WeSeong ログイン
← 記事一覧に戻る
Linux

仮想マシン、Linux、ubuntu

仮想マシン、Linux、ubuntu

Ⅰ. 概要

Linux(Linux)これは、世界中の Unix ベースの開発者によって開発されたオープンソースのオペレーティングシステムです。 Linuxコンピュータなどのハードウェアデバイスをオペレーティングシステムとして動作させることができますが、 Windows(Windows) OSインストールされている環境で仮想マシンを試すことができます。 仮想マシン (Virtual Machine, VM)これは一種の仮想コンピュータであり、この仮想環境では、 Linux さらに Windows また、さまざまなオペレーティングシステムをインストールして使用することもできます。 VMwareこれを使用して仮想環境を作成します Linuxを ubuntuそれをインストールし、基本的なコマンドを使用する をご紹介します



II. Linuxとは何ですか?

Linux(Linux)簡単に言えば、 UNIX (Unix)これは、世界中の開発者によって作成されたオープンソースのオペレーティングシステムです。Unixは、すべての現代のオペレーティングシステムの基盤をなしています。 Linuxいくつかの支店があり、その中には Debian, Red Hat 支店で割り切れる Debian 有名なオペレーティングシステム「Apple」はこの一家で生まれました。 iOSあります。最近では多く使われています。 ubuntuその理由は Debian このシリーズは有名になりました。 Red Hat このスイートはオープンソースですが、料金を請求し、サポートを提供しています。 Red Hat 家庭内では CentOS一つあり、そのセクションをご覧になることをお勧めします。


ハードウェア - カーネル(Kernel) - シェル - アプリケーションで構成される構造において、Linuxオペレーティングシステムはカーネルを介して動作します。


Windowsまた、カーネルというものがあり、これは車のエンジンのようなものです。 起動、ファイルリスト、プロパティ(サイズ、タイプ、場所)、マルチタスクのための スケジューリング、メモリ領域管理などのバックエンドの役割ソフトウェアとハードウェア間の制御を担当します。 Windowsおそらく、一度は遭遇したことがあるでしょう。 ブルースクリーンこれは、カーネルがパニック状態になり、何も処理または制御できなくなった重大なシステムエラーです。


※ 青い画面は、ドライブの故障によるハードウェアエラーを示しています。ハードウェアドライブは、ハードウェアメーカーが提供し、Windows または Linux の特定のバージョンと互換性を持つように設計されています。


Shellは、コマンドを解釈し、カーネルに信号を送信するコマンドインタプリタです。カーネルは、その後、ハードウェアを制御する電気信号を送信します。ハードウェアは、電気信号を送り返し、カーネルがシェルからアプリケーションを実行し、管理できるようにします。シェルは、Windowsのコマンドプロンプトであり、CLIに基づいており、を含んでいます。このを通じてアプリケーションを実行または管理するコマンドには、ping、ipconfig、およびnotepadなどがあります。シェルには、一連のコマンドを自動化し、繰り返し作業を可能にする組み込みスクリプトが備わっています。


仮想マシンに入る前に Linux iso ファイルをダウンロードする必要があります。これは時間がかかるため、事前に行うことをおすすめします。

Ubuntu 20.04.6 LTS (Focal Fossa)



III. 仮想マシンとネットワーク

  1. 仮想マシン

仮想マシン (Virtual Machine, VM)ルーターとして機能する仮想コンピュータとして機能します。 仮想ルーターGateway)を通じて これにより、複数のオペレーティングシステムを単一のコンピュータ上で複数の仮想環境で使用することができます。 ゲスト OS複数のインスタンスが存在する可能性があります ホストOS(マイコンピュータ) OS)「仮想ルーター」に移動しますを通じて アプローチです。実際、 VMwareインストール Windows ネットワーク設定に入ると、 VMware Network Adapter VMNETここにあります。コンピューターに。 LANチップ(ネットワークとコンピュータを接続するハードウェア)実際に使用されるハードウェアは物理的なものではなく、仮想ネットワークドライバーです(ホストコンピュータのハードウェアは利用されますが、ハードウェアはドライバープログラムを介して制御されます)。を通じて, ホスト OS は、ゲスト OS がアクセスできるインターフェースとして機能します。


※ ルーター(さまざまなネットワーク接続を結ぶハードウェアとソフトウェアで構成され、Gateway) とは何か?ゲートウェイの一種であり、実生活における良い例は空港です。韓国人が別の国に入るために空港を通過するのと同じように、プロトコルを介して通信する二つのネットワークを結ぶゲートウェイとして機能します。各ネットワークは独自のメッセージを伝える通信特性を持ち、これらの特性はルールによって定義されます。これがプロトコルです。プロトコルのルールに従ってメッセージを送受信し、互いに通信します。プロトコルの典型的な例はHTTP(Hyper Text Transfer Protocol) であり、インターネット上で見ることのできるアドレスは 'http://',' と 'https://'로' です。例えば、Naverを使用する際にNaver画面に表示される情報を簡単に閲覧するのに役立ちます。


  1. ネットワーク

オペレーティングシステムが使用できるコンピュータハードウェアの要素の一つに、ネットワークドライバのおかげでLANチップがあります。前述のように、ネットワークドライバはハードウェアであるLANチップを制御するプログラムです。 アダプタ インターフェースを通じて これは、他のデバイスから電気信号を送受信することで機能します。私のコンピュータを通じて Naver、Google、Daum に Web 上でアクセスできるのは、インターネットプロトコルを使用しているためです。 IP アドレス なぜなら、IP アドレスは大部分が IPv4(IP version 4)、 IPv6(IP version 6)パーソナルコンピュータ上のネットワークデバイスがネットワーク上でどのように識別されるかを示す値があります。通常、ルーターを使用する場合、IPアドレスは192.168.~などとなります。このIPアドレスはルーターによってランダムに割り当てられ、同じルーターに接続されたデバイス間で共有できます。 内部(プライベート) IPNaver、Google、またはDaum にアクセスするには、公式 (認可済み) IP アドレスが必要です。


※ DNS(Domain Name System)サーバしかし、コンピュータはバイナリの数字(0と1)しか読めないため、人間が理解できる名前を付ける必要があります。 IPアドレス値の変換それは提供する役割を果たします。たとえば、www.naver.com' ナーバーのアドレスを簡単に認識できるのは、コンピュータがそのアドレスを読み取れるからです。 192.168.1.1(たとえば、DNS サーバでは、このような IP アドレスの値を変換するためです。


ルータは、ネットワークに接続されたデバイス(私のコンピュータ)にこれらのIPアドレスを自動的に割り当て、管理します。 DHCP(Dynamic Host Configuration Protocol) サーバという役割を果たします DHCP サーバ さまざまなネットワーク情報(IP アドレス、サブネット マスク、デフォルト ゲートウェイなど)仮想マシンプログラムには、ホストコンピュータのハードウェアを使用してDHCPサーバとして機能する仮想ルーターが含まれています。を通じて ゲストオペレーティングシステムにIP範囲が割り当てられます。IP範囲は、同じルータを使用するデバイスに内部的に割り当てられ、これは同じネットワーク上のデバイスに内部IPアドレスが割り当てられるのと同様です。 ゲスト OS 間のみ共有あなたができること 内部 IPです。


前述のように、ホスト OS とゲスト OS の IP アドレスは似ているため、同じネットワーク環境を共有しているように見えますが、実際には その他のネットワーク環境つまり、ネットワーク設定で見るものです Windows LAN アダプタ VMware Network アダプタは異なるネットワーク環境です。では、私のコンピュータ上の仮想環境に接続するにはどうすればよいのでしょうか。

その理由は、ホスト OS に外部 IP があるからですを通じて Naverにアクセスするのと同じように 仮想ルータ(ゲートウェイ)として DNS サーバリクエストを送信すると、 仮想ルータは各ゲスト OS ごとに設定されています DHCP これは、サーバによって割り当てられたIPアドレスを見つけて接続するためです。 では、ホスト OS は仮想環境の外部 IP とどのように通信することができますか。

ルータ(仮想および物理両方) NAT(Network Address Translation)を通じて なぜなら、外部の IP アドレスを変換することで、互いを識別できるようになるからです。つまり、

VMware Network アダプタと仮想ルーターを通じて 私のコンピュータ LAN アダプタはルーターと通信します。これをより明確に理解するために、 NAT(Network Address Translation)これを理解する必要があり、後の授業や個人研究で補足していきます。


  1. VMware Workstation Pro 17

Linux を活用する方法はいくつかあります。一つは、新しいパーティションを割り当てて Windows OS をインストールする方法です。もう一つは、仮想マシンを使用する方法です。仮想マシンを使用するには、iso イメージファイルをインストールする必要があります。VMware Workstation Pro 17 版のプログラムをインストールする必要があります。これはプロバージョンなので有料ですが、30日間は無料です。ただし、重要なスナップショット機能がサポートされていないため、Playerバージョンはおすすめしません。

VMware Workstation Proをダウンロードする

スナップショットこれは、仮想環境で使用されるテクノロジーで、コンピューター上で行われた作業やインストールされたものを保存および管理します。 画像毎月保存された画像がエラーにより破損した場合、以前のスナップショットに簡単に復元できます。スナップショットがない場合、完全な災害が発生し、最初からやり直しが必要になることもあります。さらに、ハッキングやランサムウェアによるデータベースの破損が回復できない場合、スナップショットがないと、すべてを復元するか、まったく復元できないという極端な状況に陥る可能性があります。 スナップショット用の段階的バックアップ機能これにより、ログを分析することで、特定のイベントの前後の状態を簡単に特定し、復旧することができます。 画像が撮影された後に変更されたデータのみが新しいスナップショットとして記録されますスナップショットは、次の機能を備えています。 ツリー構造そう書いてあります。


※ ランサムウェア: 銀行や他の業界で使用される暗号化アルゴリズムは、復号化できない一方向アルゴリズムです。このアルゴリズムがランサムウェアで使用されているため、データを回復することは不可能です。


VMware Workstation Proのインストールに関する詳細な説明が記載されたブログを以下に示します。

VMware Workstation Pro 17のダウンロードとインストール方法

このブログの所有者に感謝します。


VMwareをインストールして起動すると、この画面が表示されます。


Linuxをインストールする前に、上の画像のように仮想マシンを作成する必要があります。 Create と New Virtual Machine クリック.



クリックすると、次の画面が表示されます。 Customハードウェア、オペレーティングシステム、およびネットワークの種類を個別に設定できるため、これを選択します。


このセクションでは、ubuntu isoファイルをインストールするかどうかを尋ねられます。起動後に設定可能で、個別にインストールすることもできるため、下の項目を選択してください。


次の画面が表示されます。 Linuxなぜなら、私たちはそれを使用するからです。 Linuxそれを選択し、コンピュータのビットバージョンに合わせて調整してください ubuntuと ubuntu 64-bit 真ん中のものを選択します。


次の画面では、仮想マシンの名前とディレクトリの設定を行います。これらの設定はそのままにしておいて構いません。


このセクションでは、プロセスの使用量を指定することもできます。デフォルト値に設定することもできます。


は設定が必要であり、通常のパーソナルコンピュータのハードウェアを使用しているため、複数の仮想環境を作成すると、メモリ不足によりコンピュータの動作が遅くなる可能性があります。また、console をLinux と併用すると、x-windows(GUI) を利用しないため、メモリを少なくして実行できます。したがって、1GBを推奨しますが、設定後に起動が遅くなる場合は、メモリを少し増やすこともできます。


※ 3 Tier構造 : サーバーはクライアント層、アプリケーション層、データ層で構成され、これにより三つ以上の仮想環境が作成されます。これにより、パソコンのメモリ使用量が増加し、パフォーマンスが低下する可能性があります。この構造については後ほど調査します。


このセクションが表示されるまで、次のボタンを押し続けることができます。コンピュータの実際のディスク容量を使用するため、一般的な学習目的では20 GBで十分ですが、必要に応じて容量をさらに増やすことができます。


ここまで来たら、設定はすべて完了です。進むボタンを押してから、最後にFinishを押すだけです。


※ 設定したディレクトリに進むと、「ubntu 64-bit.vmx」というファイルが存在します。このファイルを使用して、設定やバージョンを再度変更することができます。Ubuntu 64-bit.vmx.lck(Lock ファイル)仮想マシンが異常終了した場合、ロックファイルが残ることがあります。ただし、エラーにより起動できない場合は、ディレクトリに入り、削除してから再起動することができます。


このように作成された画面では、左側に My Computer このセクションで作成した仮想マシンを確認できます。 ubuntu isoファイルを後でインストールするように設定したので、右クリックして下のオプションを選択します。 Settings入力 Use ISO image file以前に受け取った ubuntu ただ、ISO ファイルを添付するだけです。


作成した仮想マシンを起動します Linuxインストールしたら、 Linuxこのインストールプロセスは韓国語で行えますので、個別に添付しません。


先ほども述べたように、 x-windowsこれを使用するとメモリが大量に消費され、不要です。 console私はそれを使うつもりですが、正確に terminalで Linux私たちはそれを使用するつもりです。なので、起動するとき、 Linuxそれをコンソールモードに変える必要があります。まず、 x-windowsで Linuxそれを実行し、次の順序でコマンドを入力します。


  1. sudo systemctl set-default multi-user.target (デフォルトの起動モードをコンソールモードに設定する)

※ ここで、sudo は管理者権限で操作を行うことを指示するものであり、systemctl はシステム設定コマンドです。set-default は起動モードを設定し、multi-user オプションは起動モードに関連しています。multi-user.target はコンソールモードと考えることができます。


  1. sudo apt-get update (これにより、Linux で使用できるパッケージのリストが更新されます。)


consoleと terminalそれは別の概念です。 console物理的なハードウェア形式です terminalこれは、テキストの入力と出力を処理する環境です。 console比較すると terminalは Linux リモートアクセスを支援するコマンドにより、使いやすさを実現 SSH(プロトコル)サーバを通じて terminalで Linux利用します。ターミナルサーバー上ではフォントや韓国語の表示が簡単で、デフォルトでもあります。 utf-8それを支援します。


  1. SSH サーバを sudo apt-get install openssh-server -y. にインストールします。


WebサービスにアクセスするためにWebブラウザが必要なように、SSHサーバにアクセスするためにはクライアントが必要です。最もよく使用されているクライアントはputtyで、以下のリンクからダウンロードできます。難しいことはありませんので、関連記事をご参照ください。

PuTTYをダウンロード: 最新リリース (0.79)

※ PuTTYリモート接続する場合は、ゲスト OS の IP アドレスを知る必要があります。そこで ip addrコマンドを使用します。デフォルトでは、Web ブラウザはポート 80 を default、PuTTY はポート 22 を使用します。ポートは空港番号のようなもので、外部世界に接続するプラグのようなものです。プログラムを識別する番号であり、ポート番号によっては異なるプログラムを使用できます。


注意してください。Windows には ping コマンドがあり、ネットワークが現在アクティブかどうかを確認するプロトコルを使用できます。これは「ping + アドレス」の形式で使用され、応答がない場合は、ネットワークがアクティブでないか、セキュリティ上の理由によりブロックされていることを意味します。ping コマンドでメッセージを送信すると、サーバーが応答します。これは、サーバーをダウンさせるサービス妨害攻撃(DoS)を防ぐためのセキュリティ対策です。この攻撃では、大量のインターネットトラフィックを送信してサーバーをダウンさせます。



IV. Linux コマンド

Linuxには多くのコマンドがあり、他の人がまとめた表のような良いリソースもたくさんあります。それらの表を覚えて使うのはよいことですが、すべてを一度にやろうとするよりも、使いながら学ぶ方がよいと思います。そこで、授業で使った基本的なコマンドをご紹介します。必要な場合は、関連するコマンドをすぐに見つけることができるので、ぜひご参考ください。


  1. sudo init (0~6)

は起動レベル (Run Level) と呼ばれ、起動プロセス中に使用されるコマンドです。0 はシステムをシャットダウンすることを意味し、 はシステムを再起動することを意味します。

$ sudo shutdown -r(옵션)

は、上記のコマンドと同じ機能を果たします。上記のコマンドでは、-r を使用してコマンドの終了時刻を指定できます。時刻が指定されていない場合は、デフォルトで 60 秒後に終了します。また、システムを再起動することを意味する reboot など、一般的に使用される 6 つの数字もあります。


2. ln

Windows では、プログラムをインストールすると、デスクトップにショートカットが表示されます。Linux では、特定の実行可能ファイルへのショートカットを作成できます。

ln target(원본) name(바로가기)

3. history

history (옵션 -c, -w)
history > /tmp/abc.log

以前に使用したコマンドの一覧を表示し、オプション '-c' を指定すると一覧を削除します。オプション '-w' を指定すると現在の一覧をファイルに保存します。第二の例では、コマンドの一覧が /tmp にある abc.log というファイルに保存されます。


4. cat

cat /경로/파일명

このコマンドはファイルの内容を出力します。特定のファイルの内容を取得するには、パスとファイル名を指定できます。


※ Linux で設定情報が保存されるディレクトリは etc.

※ PuTTYを通じて 現在使用している端末はデフォルトのブラウザです sh コマンドを通じて シェル(エクスプローラ)を変更することはできますが、表示方法はシェルの設定によって異なります。たとえば、 PuTTYを通じて 実行すると表示されるシェルには現在の場所へのパスが表示されますが、それを sh に変更すると表示されなくなります。


5. cd

cd /경로
cd -
cd ~id

は、ディレクトリの場所を移動するコマンドとして一般的に使用されます。パスを入力しなかった場合は、/home/username ディレクトリに戻ります。ログイン時の現在の場所は同じです。第二の例では、前のディレクトリに戻ります。第三の例では、IDを通じて ユーザーのホームディレクトリに戻ります。ID を省略した場合は、ログインアカウントのホームディレクトリに戻ります。


6. ls

ls
ls -al
ls -altr

ディレクトリ内のファイルまたはディレクトリのリストを表示します。'-al'オプションとして「すべてを選択(隠しファイルとプロパティを含む)」を選択します リスト それは「」という形で表れています。-altr'表示されるリストは同じですが、't' では時系列で表示され、'r' では逆順で表示されます。


※ ls -al を使用して全リストを表示すると、左側の最初の項目が 'd' の場合はディレクトリ、'-' の場合はファイルです。


7. touch

touch 파일명

同じ名前のファイルがすでに存在する場合、サイズが0の新しいファイルを作成し、変更日時を変更します。セキュリティ上の理由から、このコマンドを使用して事前にファイルを作成することで、アクセスを防止したり、ファイルの作成を阻止することができます。


※オプションに'r'が含まれている場合、ディレクトリに関して負の意味を持つ可能性があります。'a'はすべてを意味し、'f'はファイルまたは強制を意味します。'n'は主に数値に関連しています。

※ Linux には、Windows とは異なり拡張子の概念がありません。そのため、Reverse Tunnerling攻撃では、管理者を欺いてターゲットサーバーにプログラムをアップロードし、それを実行して外部からアクセスできるバックドアを作成します。ファイアウォールでは、アウトバウンド トラフィックにほとんど制限がかからないため、クライアントはサーバーに接続してデータを送信できます。また、Linux には拡張子の概念がないため、管理者を欺くことが容易です。


8. file

file /경로/파일명

前述のように、Linux にはファイル拡張子の概念はありませんが、このコマンドはファイルがどのタイプであるかを判断するためのものです。


※ Linuxでは、フォルダ名とファイル名が同じ場合、フォルダを作成できません。また、大文字と小文字を区別します。


9. 頭と尾

head /경로/파일명
tail /경로/파일명
head, tail -n 15 /경로/파일명

cat コマンドを使用してファイルの内容を読み取る場合、全ファイルがロードされるため、大容量のファイルの場合は長時間かかることがあります。そのため、head と tail コマンドではファイルの一部だけが表示されます。head は最初から読み取り、tail は最後から読み取ります。 '-n' オプションで数値を指定すると、その数の行だけが読み取られます。デフォルトでは、数値は 10 に設定されています。


※ Linux実行可能ファイルの場合 foregroundと backgroundしかし、あるものがあります foreground(リアルタイムの監視を容易に行えるロギングこそが、私たちが見た状態で実行できることを可能にしています。 backgroundは表示されませんが、バックグラウンドで実行されています。それぞれ '-f'と '-daemon(-d)'オプションとして指定できます。


10. cp

cp 어떤 파일/디렉토리로부터 어디에

cp コマンドはファイルとディレクトリをコピーします。


11. rm

rm -rf ./경로

rm コマンドではファイルとディレクトリを削除でき、 '-rf' オプションでは強制的に削除できます。削除するファイルを指定したり、すべてのサブディレクトリを削除することもできます。


12. ifconfig

sudo apt-get install net-tools

ifconfig
ifconfig 인터페이스명 up/down

ネットワーク関連のコマンド Linux 場合によっては、さまざまなファミリにはパッケージのインストールが必要なく、基本的なコマンドで利用できます。 ubuntuパッケージをインストールする必要があります。 ifconifg このコマンドは、ネットワークインタフェースに関する情報を表示します。 RX, TX packets入ったパケットと出たパケットを示します。 ether この情報は、ネットワークインタフェースの一意の識別子ですMAC)です。 up/down オプションとして、インターフェースをオン/オフすることができます。



レビュー

Pythonは完了し、クラスはLinuxとネットワークに移りました。私たちは仮想マシンを使用してLinux,ubuntuインストールを通じてコマンドを実行しました。これは今まで学んだことのない部分なので、いつもより集中して学習しなければならず、すべてを覚えきれなかったのですが、授業で取り上げられた概念を振り返りながらブログ記事を書きました。概念がまだ明確ではないため、間違いがあるかもしれません。ご指摘いただければ幸いです。👋