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

仮想マシン、Linux、Ubuntu

仮想マシン、Linux、Ubuntu

Ⅰ. 概要

Linuxこれは、UNIXを基盤とした、世界中の開発者が共同で開発したオープンソースのオペレーティングシステムです。Linuxは、オペレーティングシステムとして、コンピュータのようなハードウェア上で動作しますが、すでにWindows OSがインストールされている環境で、仮想マシンを利用して体験することができます。 仮想マシン仮想マシン、VMこれは、一種の仮想的なコンピューターであり、この仮想環境では、Linux だけでなく、Windows など、さまざまなオペレーティングシステムをインストールして利用できます。VMware を利用して仮想環境を構築し、Linux を Ubuntuインストール方法と、基本的なコマンドの使い方について説明します。



Ⅱ. Linuxとは

Linux簡単に言うと、 ユナイクス (Unix)これは、世界中の開発者によって開発されたオープンソースのオペレーティングシステムです。UNIXは、現代のすべてのオペレーティングシステムの原型と見なすことができます。Linuxには、いくつかの派生バージョンがありますが、大きく Debian、Red Hatグループこれらのディストリビューションは、Debianを基盤とした有名なオペレーティングシステムであるiOSがあります。また、現在広く利用されているUbuntuにより、Debian系のディストリビューションは有名になりました。Red Hat系のディストリビューションは、オープンソースですが、その後もサポートを提供しています。Red Hat系のディストリビューションには、CentOSがあり、このカテゴリについては、さらに詳しく調べてみることをお勧めします。


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


Windowsにもカーネルがあり、カーネルは自動車のエンジンに似ています。 ブート、ファイルリスト、属性(サイズ、タイプ、位置)、マルチタスクのためのスケジューリング、メモリ空間の管理など、システムの裏側の役割ソフトウェアとハードウェア間の連携を管理する役割を担います。Windows を使用していると、一度は遭遇したことがあるかもしれません。 青い画面これは、カーネルが深刻なシステムエラーを起こし、処理や制御ができなくなる状態です。


※ ブルースクリーンは、ハードウェアの故障を示す現象であり、ドライブのエラーによって発生することがあります。ハードウェアドライブは、ハードウェアメーカーが提供するもので、WindowsやLinuxのバージョンに合わせて製造されています。


シェル命令解釈プログラムは、命令を解釈し、カーネルに信号を送信することで、カーネルは電気信号を送信し、ハードウェアを制御します。ハードウェアは受信した電気信号を再び送信し、カーネルが動作することで、シェルを通じてアプリケーションを実行および管理することができます。 シェルは、Windows のコマンドプロンプトであり、コマンドラインインターフェース (CLI) を使用しています。シェルには、`ping`、`ipconfig`、`notepad`などのコマンドがあり、これらを使用してアプリケーションを実行したり、管理したりすることができます。シェルには、独自の自動化機能を持つスクリプトが存在し、これらのスクリプトを使用することで、一連のコマンドを自動化し、繰り返し作業を可能にします。


仮想マシンにアクセスする前に、LinuxのISOファイルをダウンロードする必要があります。時間がかかる場合があるので、事前にダウンロードしておくことをお勧めします。

Ubuntu 20.04.6 LTS (Focal Fossa)



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

  1. 仮想マシン

仮想マシン (Virtual Machine, VM)これは、ルーターの役割を果たす、一種の仮想的なコンピュータです。 仮想ルーターこれにより、一台のコンピュータで複数の仮想環境を、異なるオペレーティングシステムで利用することが可能になります。仮想マシンプログラムには ゲストOS複数の台が存在する可能性があります。 ホストOS(自分のコンピュータのOS)これは、仮想ルーターを通じてアクセスします。実際にVMwareをインストールし、Windowsのネットワーク設定を開くと、VMware Network Adapter (VMNET) が表示されます。 LANチップ(ネットワークとコンピュータを接続するハードウェア)これは、実際のハードウェアではなく、仮想ネットワークドライバを通じて、ホストOSがゲストOSにアクセスするためのインターフェースとして機能します(ホストコンピュータのハードウェアを利用しますが)。


ルーター(異なるネットワークを接続するためのハードウェアとソフトウェアの組み合わせ)ランは、一種のゲートウェイとして、日常生活の例として空港を考えてみてください。韓国人が他の国に入国するために必ず空港を経由する必要があるように、この2つのネットワークをプロトコルを通じて接続する役割を果たします。それぞれのネットワークは、独自のメッセージを伝達するために、コミュニケーションの特性を持ち、その特性をルールとして定義することが重要です。 プロトコルこれらは、互いに通信するために、プロトコルのルールに従ってメッセージを送信し、応答します。プロトコルの代表的な例としては、 HTTP(ハイパーテキスト転送プロトコル)そして、私たちがインターネットで確認できる住所は「http://', 'https://'로 これらは、例えば、Naverを利用する際に、Naverの画面に表示される情報を簡単に確認できるようにする役割を担っています。


  1. ネットワーク

コンピュータのハードウェアの構成要素のうち、LANチップをOSが利用できるのは、ネットワークドライバのおかげです。 上でも述べたように、ネットワークドライバは、ハードウェアであるLANチップを制御するプログラムであり、LANチップに搭載されています。 変換プラグ インターフェース電気信号を他の機器とやり取りし、動作する。私のコンピュータを通じて、インターネットプロトコルにより、Naver、Google、Daumなどのウェブサイトにアクセスできるのは、 IPアドレス その理由は、IPアドレスは主に IPv4(IPバージョン4)、IPv6(IPバージョン6)これは、個人のコンピュータのネットワークデバイスがネットワーク上でどのように識別されるかを伝える値です。一般的には、ルーターを使用した場合、IPアドレスが192.168.~のような形式で割り当てられます。このIPアドレスは、ルーターが自動的に割り当てるもので、同じルーターに接続されたデバイス間で共有することができます。 社内(プライベート)IPアドレスこれにより、ネ이버やGoogleなどのウェブサイトにアクセスするために、外部ネットワークに接続できるようになります。 公式(公認)のIPアドレスそれが必要だ。


DNS(ドメイン名システム)サーバーしかし、コンピュータは0と1の数字しか認識できないため、人間が理解しやすい名前で表現する必要があります。 IPアドレスの変換その役割を担う。例えば、「www.naver.com「私たちがネ이버のURLを簡単に認識できるのは、このURLをコンピュータが読み取れるように、DNSサーバーが192.168.1.1(例)のようなIPアドレスに変換してくれるからです。」


ルーターは、ネットワークに接続されたデバイス(私のコンピューター)に、これらのIPアドレスを自動的に割り当てて管理します。 DHCP (動的ホスト構成プロトコル) サーバーDHCPサーバーは、ネットワーク上のIPアドレスを自動的に割り当てる役割を担います。 様々なネットワーク情報(IPアドレス、サブネットマスク、デフォルトゲートウェイなど)そして、利用者が設定する必要がなく、自動的に設定してくれるため、管理が容易です。そのため、仮想マシンの仮想ルーターは、ホストコンピュータのハードウェアを使用して、DHCPサーバーを通じてゲストOSにIPアドレスを割り当てる役割を担います。IPアドレスは、同じネットワークを使用しているデバイス間で、内部IPアドレスを割り当てるのと同じように ゲストOS同士でのみ共有できる 社内IPアドレスそれはそうです。


上記のように、ホストOSとゲストOSはIPアドレスが似ているように見えますが、実際には 別のネットワーク環境つまり、ネットワーク設定に表示されるWindowsのLANアダプターとVMwareのネットワークアダプターは、それぞれ異なるネットワーク環境です。では、私のコンピュータから仮想環境にどのようにアクセスすればよいのでしょうか?

理由は、ホストOSが外部IPアドレスを通じてネ이버にアクセスするのと同様に、 仮想ルーター(ゲートウェイ)兼DNSサーバーご要望を送信した場合、 これは、仮想ルーターが、各ゲストOSにDHCPサーバーから割り当てられたIPアドレスを特定し、それらを通じて接続するためです。 では、ホストOSは、仮想環境の外部IPアドレスとどのように通信できるのでしょうか?

ルーター(仮想環境と実環境の両方) NAT(ネットワークアドレス変換)それは、外部IPアドレスに変換することで、互いに識別できるようにするためです。つまり、

VMwareのネットワークアダプタと仮想ルータを通じて、私のPCのLANアダプタやルータと通信しています。この仕組みをより理解するために、NAT(ネットワークアドレス変換)について学ぶ予定です。これは、今後の授業や個人的な学習で詳しく解説します。


  1. VMware Workstation Pro 17

Linuxを利用する方法はいくつかあります。Windows OSをインストールする際に、新しいパーティションにISOイメージファイルをインストールする方法があります。また、これから紹介する仮想マシンを利用する方法もあります。仮想マシンを使用するには、専用のソフトウェアをインストールする必要があります。 VMware Workstation Pro 17いくつかのバージョンがあります。Pro版は有料で、30日間無料で利用できますが、Player版は重要なスナップショット機能を利用できないため、推奨はしません。

VMware Workstation Pro のダウンロード

スクリーンショットこれは、仮想環境で使用される技術で、コンピューター上で作業した内容やインストールしたものを指します。 画像事前にバックアップを作成しておくことで、作業中にエラーが発生してデータが破損した場合でも、すぐに以前の状態に戻して復旧することができます。もしバックアップがない場合、最初からやり直す必要があり、非常に困った状況になる可能性があります。また、ランサムウェアなどのサイバー攻撃によってデータベースが破損し、復旧ができない場合、バックアップがないと、すべてをやり直すか、復旧自体が不可能になるという、極めて深刻な事態が発生する可能性があります。 スナップショットの差分バックアップ機能これにより、特定の状況が発生した場合、その状況の前後をログ分析によって簡単に把握し、復旧することができます。増分バックアップは 一度撮影した画像以降に変更されたデータのみを、新しいスナップショットとして記録する。これは、ある機能です。スナップショットとは 木構造そのような状態になっている。


※ ランサムウェア:銀行などで使用されている認証キーの暗号化アルゴリズムで、復号ができない一方通行のアルゴリズムです。このアルゴリズムがランサムウェアで使用されるため、復号が不可能となります。


VMware Workstation Proのインストールに関する、詳細な解説記事を添付します。

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

このブログの運営者の方に感謝申し上げます。


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


Linuxをインストールする前に、仮想マシンを作成する必要があります。写真に表示されている「新しい仮想マシンを作成」をクリックしてください。



クリックすると、このような画面が表示されます。ここでは「カスタム」を選択します。ハードウェア、オペレーティングシステム、ネットワークの種類を個別に設定できるからです。


この部分は、Nextで表示される画面で、UbuntuのISOファイルをインストールするかどうかを尋ねています。起動後に設定を行い、個別にインストールすることも可能ですが、最も下にあるオプションを選択するのが適切です。


次の画面では、Linuxを使用するため、Linuxを選択し、自分のコンピュータのビット数に合わせて、UbuntuまたはUbuntu 64-bitのどちらかを選択します。


次の画面は、仮想マシンの名前を設定したり、ディレクトリを設定したりする部分です。自由に設定できます。


この部分も、どのプロセスを使用するかを尋ねているもので、デフォルト設定のままで問題ありません。


この部分については、設定が必要ですが、一般的な個人のコンピュータのハードウェアを使用するため、複数の仮想環境を構築する場合、メモリ不足によりコンピュータの動作が遅くなる可能性があります。また、コンソールからLinuxを使用する場合、GUI(X-Windows)を使用しないため、より少ないメモリでも動作可能です。そのため、1ギガを推奨しますが、設定後に起動が遅い場合は、メモリを少し増やすことも可能です。


3層構造クライアント層、アプリケーション層、データ層に分けてサーバーを構成することになります。そのため、3つ以上の仮想環境が作成され、個人のコンピューターのメモリを多く消費し、動作が遅くなる可能性があります。この構成については、後で詳しく学習します。


この画面が表示されるまで、続けて操作を繰り返してください。この方法では、実際のコンピューターのディスク容量を使用するため、一般的な学習用途であれば20ギガバイトで十分ですが、必要に応じて、より大きな容量を選択することも可能です。


ここまでの設定が完了したと判断し、進捗ボタンを押して、最後に「完了」ボタンを押すことができます。


※ 設定したディレクトリに「ubntu 64-bit.vmx」というファイルがあります。このファイルを使用して、設定やバージョンを再度変更できます。「Ubuntu 64-bit.vmx.lck(ロックファイル)」もし仮想マシンが正常に終了しない場合、ロックファイルが残っていることがあります。これにより、起動ができない場合があります。そのため、ディレクトリにアクセスして、このファイルを削除し、再度起動してください。


作成された画面には、左側の「My Computer」に仮想マシンが表示されます。UbuntuのISOファイルを後でインストールする設定になっているため、マウスを右クリックし、最下部の「設定」を開き、「ISOイメージファイル」に事前にダウンロードしておいたUbuntuのISOファイルを添付すれば、インストールできます。


この方法で作成した仮想マシンを起動し、Linuxをインストールすると、Linuxを使用できるようになります。このインストール手順は韓国語で記述されているため、別途添付する必要はありません。


上記で軽く触れたように、X-Windowsを使用すると、多くのメモリを消費するため、本来はコンソールとして使用するべきですが、実際にはターミナルとしてLinuxを使用する予定です。そのため、起動時にLinuxをコンソールモードで動作するように設定する必要があります。まず、X-WindowsでLinuxを実行し、以下の手順でコマンドを入力します。


  1. sudo systemctl デフォルト設定に設定multi-user.target(起動時に、デフォルト設定をコンソールモードに設定するという意味。

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


  1. sudo apt-get update (これは、Linuxで使用できるパッケージのリストを最新の状態に更新するコマンドです。)


コンソールとターミナルは異なる概念です。コンソールは物理的なハードウェアであり、ターミナルはテキストの入力と出力を処理するための環境です。コンソールと比較して、ターミナルはLinuxコマンドの使用が容易であり、SSH(プロトコル)サーバーを通じてターミナルでLinuxを使用することができます。ターミナルサーバーは、フォントや日本語の表示が容易であり、基本的にはUTF-8をサポートしているためです。


  1. `sudo apt-get install openssh-server -y` を実行することで、SSHサーバーをインストールします。


SSHサーバーを利用するには、クライアントとなるWebブラウザをインストールする方法と同様に、クライアントが必要です。一般的に使用されているクライアントの一つがPuTTYで、以下のリンクからダウンロードできます。比較的簡単にインストールできるため、関連する情報を調べてみることをお勧めします。

PuTTYのダウンロード: 最新版 (0.79)

PuTTYリモートアクセスを行う際、ゲストOSのIPアドレスを知っておく必要があるため、 IPアドレス コマンドを活用しましょう。一般的に、ウェブブラウザはデフォルトで80番ポートを使用し、PuTTYは22番ポートを使用します。ポートとは、空港の番号をイメージすると分かりやすいですが、外部との接続に使用されるプラグのような役割です。つまり、ポート番号によって、どのプログラムを使用するかが変わります。


※ Windows の ping 「ping」というコマンドを使用することで、ネットワークが現在利用可能かどうかを確認できます。このコマンドは、「ping + 住所」という形式で使用され、応答がない場合は、ネットワークが利用できないか、またはセキュリティ上の理由でブロックされている可能性があります。「ping」コマンドでメッセージを送信すると、サーバーは応答します。これは、DDoS攻撃(サービスを停止させるために大量のインターネットトラフィックをサーバーに送り込む攻撃)からサーバーを保護するためのものです。



Ⅳ. Linux コマンド

Linuxのコマンドは非常に多く、他の人がまとめた表形式の資料もたくさんあります。これらの資料を覚えるのも良いですが、実際に多くのコマンドを一度に覚えるよりも、実際に使っていく中で学ぶ方が効果的だと考えています。そのため、授業で使用した基本的なコマンドをまとめ、共有したいと思います。必要に応じて検索すれば、関連するコマンドが見つかるはずです。


  1. sudo init (0~6)

これは「起動レベル」と呼ばれ、起動プロセスを実行する際に使用されるコマンドです。0番はシステムを終了することを意味します。

$ sudo shutdown -r(옵션)

このコマンドと同様の機能を持つものです。このコマンドの「-r」オプションは、終了時間を指定するために使用できます。指定がない場合は、デフォルトで60秒後に終了します。その他、よく使用されるオプションの一つに「6」があり、これは再起動を意味し、システムを再起動します。


2. イン

Windowsと同様に、Linuxでも特定の実行ファイルのショートカットを作成し、デスクトップに配置することができます。

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

3. 歴史

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

以前に使用したコマンドのリストを表示し、オプション '-c' を指定すると、リストを削除します。オプション '-w' を指定すると、これまでのリストをファイルとして保存できます。2番目の例では、コマンドのリストを `/tmp` (パス) の `abc.log` (ファイル名) という場所に保存することを意味します。


4. 猫

cat /경로/파일명

これは、ファイルの内容を出力するコマンドです。パスとファイル名を指定することで、特定のファイルの内容を読み込むことができます。


※ Linuxで設定情報が保存されるディレクトリは などそれはそうです。

※ PuTTYで利用するターミナルは、デフォルトのターミナルエディタを使用します。 (省略) コマンドを使用してターミナル(シェル)を変更することは可能ですが、ターミナルの設定によって表示方法が異なる場合があります。例えば、PuTTYで起動すると、現在のディレクトリを表示しますが、`sh`コマンドで起動すると、その表示はされません。


5. CD

cd /경로
cd -
cd ~id

このコマンドは、ディレクトリの場所を移動させるために広く使用されます。パスを指定しない場合、`/home/アカウント名` ディレクトリに戻ります。ログイン時には、現在位置も同じ場所になります。2番目の例は、直前のディレクトリに戻ります。3番目の例は、IDを使って、ユーザーのホームディレクトリに戻ります。IDを省略すると、ログインに使用したアカウントのホームディレクトリに戻ります。


6. ls

ls
ls -al
ls -altr

ディレクトリ内のファイルやディレクトリの一覧を表示します。'-al'オプションを使用すると、隠しファイルや属性も含めて、一覧形式で表示します。'-altr'オプションを使用すると、同じように一覧を表示しますが、't'によって時間順に、'r'によって逆順に表示します。


※ `ls -al` コマンドで全体をリスト表示した場合、一番左端に「d」と表示されている場合はディレクトリ、「-」が表示されている場合はファイルです。


7. 触る

touch 파일명

0サイズの空のファイルを生成し、同じ名前のファイルが存在する場合は、そのファイルの更新日時を変更します。セキュリティ上の理由から、ファイルを作成できないように、あらかじめこのコマンドでファイルを作成しておくこともあります。


※ オプションについては 「r」この場合、ディレクトリに関連する操作が繰り返されると、別の意味を持つ可能性があります。 「a」これは全体を指します。 'f'これは、ファイルの強制的な処理や、特定の操作を強制することを意味します。 「n」多くの場合、これらは数字に関連しています。

※ LinuxはWindowsとは異なり、ファイル拡張子の概念がありません。そのため、 逆方向のトンネル化 攻撃の手法としては、標的とするサーバーに、管理者を欺いてプログラムをアップロード(通常ファイルに見せかける)し、実行することで、外部からのアクセスを可能にするバックドアを作成します。ファイアウォールは、内部からの外部へのアクセスをほとんど制限しないため、クライアントからサーバーにアクセスし、データを外部に送信することが容易です。また、Linuxは拡張子という概念がないため、偽装がしやすいという特徴があります。


8. ファイル

file /경로/파일명

上記で述べたLinuxのヒントに関連して、ファイル拡張子の概念は存在しませんが、ファイルの種類を特定する方法は、このコマンドを使用することです。


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


9. 頭、尻尾

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

`cat`コマンドでファイルの内容を表示する際、ファイル全体を読み込むため、大きなファイルの場合、時間がかかることがあります。そのため、一部の内容を表示するコマンドとして、`head`と`tail`があります。`head`はファイルの先頭から、`tail`はファイルの末尾から読み込みます。`-n`オプションを使用することで、読み込む行数を指定でき、デフォルトでは10行に設定されています。


※ Linuxで実行ファイルの場合、「フォアグラウンド」と「バックグラウンド」というモードがあり、「フォアグラウンド」は、ユーザーが見える状態で実行されるモードです。一方、「バックグラウンド」は、ユーザーには見えませんが、バックグラウンドで実行されます。 '-f'わあ '-デーモン(-d)'これは選択肢として設定できます。


10. コピー

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

`cp`コマンドは、ファイルやディレクトリをコピーするために使用されます。


11. 部屋

rm -rf ./경로

`rm`コマンドは、ファイルやディレクトリを削除するもので、`-rf`オプションを使用すると強制的に削除できます。特定のファイルを削除することも、サブディレクトリ全体を削除することも可能です。


12. ifconfig

sudo apt-get install net-tools

ifconfig
ifconfig 인터페이스명 up/down

ネットワーク関連のコマンドを使用する場合、Linux系のシステムでは、パッケージのインストールなしで基本的なコマンドを使用できる場合もありますが、Ubuntuではパッケージのインストールが必要です。`ifconfig`コマンドは、ネットワークインターフェースに関する情報を表示します。RX、TXパケットは、受信および送信されたパケットの数を表示します。Ether情報(エタ情報)は、ネットワークインターフェースの固有の識別子(MACアドレス)です。`up/down`オプションを使用することで、インターフェースを起動または停止できます。



おまけ

Pythonの基礎が終わって😄、次はLinuxとネットワークに移りました。そこで、仮想マシンを使ってLinux、Ubuntuをインストールし、コマンド操作を体験しました。これまでは学んでいなかった分野だったので、普段よりも集中して、予想以上に多くのことを理解する必要がありました。そのため、すべての内容を記憶することは難しかったのですが、復習のために、授業で学んだ概念を再度確認し、ブログ記事を作成しました。まだ概念が完全に理解できていない部分もあるので、もし誤りがあれば、コメントで教えていただけると幸いです。