はじめに
このチュートリアルは、Linuxの基礎を教えるシリーズの第1弾で、ターミナルの使い方、Linuxコマンドライン、およびコマンドの実行について説明します。Linuxが初めての方は、Linuxサーバーとやり取りする標準的な方法であるターミナルに慣れておくと良いでしょう。
このチュートリアルを最大限に活用したい場合は、接続して使用するLinuxサーバーが必要です。まだサーバーをお持ちでない場合は、次のリンクに従って迅速に作成できます:DigitalOcean Dropletの作成方法。このチュートリアルはUbuntu 22.04サーバー向けに書かれていますが、一般的な原則は他のLinuxディストリビューションにも適用されます。
さあ、まずはターミナルエミュレーターについて説明しましょう。
ターミナルエミュレーター
A terminal emulator is a program that allows the use of the terminal in a graphical environment. As most people use an OS with a graphical user interface (GUI) for their day-to-day computer needs, the use of a terminal emulator is a necessity for most Linux server users.
以下は、各オペレーティングシステムでよく使われる無料のターミナルエミュレーターです。
- Mac OS X:Terminal(デフォルト)、iTerm 2
- Windows:ConEmu、Windows Terminal、PuTTY
- Linux:Gnome Terminal、Konsole、XTerm
各端末エミュレーターには、それぞれ独自の機能があります。一般的に、現代の端末エミュレーターはタブ付きウィンドウとテキストの強調表示をサポートしていることが期待されます。
シェル
Linuxシステムでは、シェルはユーザーのコマンドやスクリプトファイルを解釈し、サーバーのオペレーティングシステムにそれらを実行するよう指示するコマンドラインインターフェースです。広く使用されているいくつかのシェルがあり、Bourne-Again shell (bash
) や Z shell (zsh
) などがあります。各シェルには、コマンドの解釈方法に関する独自の機能セットや複雑さがありますが、入出力のリダイレクト、変数、条件テストなどの機能があります。
このチュートリアルは、通常 bash
と呼ばれる、ほとんどのLinuxディストリビューション(Ubuntu、Fedora、およびRHELなど)のデフォルトシェルであるBourne-Again shellを使用して作成されました。
コマンドプロンプト
最初にサーバーにログインすると、通常、今日のメッセージ(MOTD)で迎えられます。これは、サーバーが実行しているLinuxディストリビューションのバージョンなどのさまざまな情報を含む通知メッセージです。MOTDの後、コマンドプロンプトまたはシェルプロンプトに移動し、そこでサーバーにコマンドを発行できます。
コマンドプロンプトで表示される情報はユーザーによってカスタマイズできますが、以下はデフォルトのUbuntu 20.04コマンドプロンプトの例です:
sammy@webapp:~$
コマンドプロンプトの構成を分解したものは以下の通りです:
sammy
:現在のユーザーのユーザー名webapp
:サーバーのホスト名~
:現在のディレクトリ。デフォルトのシェルであるbash
では、~
またはチルダは特殊な文字で、現在のユーザーのホームディレクトリへのパスに展開されます。この場合、/home/sammy
を表します。$
:プロンプトシンボル。これは、コマンドプロンプトの末尾を示し、その後にユーザーのキーボード入力が表示されます。
例えば、root
としてログインし、/var/log
ディレクトリにいる場合のコマンドプロンプトの見た目は次のようになります:
root@webapp:/var/log#
注:コマンドプロンプトを終了するシンボルは #
です。これは、root
の標準プロンプトシンボルです。Linux では、root
ユーザーは スーパーユーザー アカウントであり、システム全体の管理機能を実行できる特別なユーザーアカウントです。これは制限のないユーザーであり、サーバー上で任意のタスクを実行できます。
コマンドの実行
コマンドは、実行可能ファイルの名前を指定してコマンドプロンプトで発行できます。これはバイナリプログラムまたはスクリプトである場合があります。OS にインストールされている多くの標準 Linux コマンドとユーティリティがあり、これらを使用してファイルシステムをナビゲートしたり、ソフトウェアパッケージをインストールしたり、システムやアプリケーションを構成したりできます。
実行中のコマンドのインスタンスは プロセス として知られています。コマンドが 前景 で実行される場合(これがコマンドが実行されるデフォルトの方法です)、ユーザーはプロセスが終了するのを待たなければなりません。その後、コマンドプロンプトに戻され、その時点でさらにコマンドを発行できます。
重要なのは、Linux のほとんどのものが大文字と小文字を区別する点です。ファイル名、ディレクトリ名、コマンド、引数、オプションも大文字と小文字を区別します。期待どおりに機能しない場合は、コマンドのスペルと大文字小文字を再確認してください!
以下は、コマンドの実行の基本をカバーするいくつかの例です。
注意:すでにLinuxサーバーに接続していない場合は、今がログインする良いタイミングです。Linuxサーバーを持っているが接続できない場合は、このリンクに従ってください: SSHでDropletに接続する方法.
引数やオプションなしで
引数やオプションなしでコマンドを実行するには、コマンドの名前を入力してEnter
キーを押します。
このようにコマンドを実行すると、コマンドごとに異なるデフォルトの動作が表示されます。たとえば、引数なしでcd
コマンドを実行すると、現在のユーザーのホームディレクトリに戻ります。ls
コマンドは、現在のディレクトリのファイルとディレクトリの一覧を表示します。ip
コマンドを引数なしで実行すると、ip
コマンドの使用方法を示すメッセージが表示されます。
現在のディレクトリのファイルとディレクトリの一覧を表示するために、引数なしでls
コマンドを実行してみてください(存在しない場合もあります):
引数を指定して
多くのコマンドは、引数またはパラメータを受け入れることができ、コマンドの動作に影響を与えることがあります。たとえば、cd
コマンドを使用する最も一般的な方法は、変更するディレクトリを指定する単一の引数を渡すことです。たとえば、/usr/bin
ディレクトリに移動する場合、次のコマンドを発行します:
cd /usr/bin
cd
コンポーネントがコマンドであり、最初の引数/usr/bin
がコマンドに続きます。コマンドプロンプトの現在のパスが更新されたことに注意してください。
新しいカレントディレクトリに含まれるファイルを表示するには、ls
コマンドを実行してみてください。
ls
Output…
grub-mkrescue sdiff zgrep
grub-mkstandalone sed zipdetails
grub-mount see zless
grub-ntldr-img select-editor zmore
grub-render-label semver znew
grub-script-check sensible-browser
オプションを使用した場合
ほとんどのコマンドは、オプション、またはフラグ、スイッチとしても知られるものを受け入れ、コマンドの動作を変更できます。オプションはコマンドに続き、単一の-
文字に続いて1つ以上のオプションが示され、個々の大文字または小文字の文字で表されます。一部の複数の単語オプションは、--
で始まり、フラグテキストが続きます。
オプションがどのように機能するかの例として、ls
コマンドを見てみましょう。次に、ls
を使用するときに便利ないくつかの一般的なオプションを示します:
-l
:「ロングリスト」を表示し、パーミッション、所有権、ファイルサイズ、タイムスタンプなどの追加の詳細が含まれます-a
:ディレクトリのファイルをすべて表示します(.
で始まる非表示ファイルも含む)
ls
に-l
フラグを使用するには、次のコマンドを使用します:
リストには以前と同じファイルが含まれていますが、それぞれのファイルに関する追加情報も含まれています。
前述のように、オプションはしばしばグループ化されます。 -l
と-a
オプションを一緒に使用したい場合は、ls -l -a
を実行するか、次のように組み合わせることができます:
リストには、-a
オプションのため、隠しディレクトリ.
と..
が含まれていることに注意してください。
オプションと引数を使用した場合
ほとんどの場合、コマンドを実行する際には、オプションと引数を組み合わせることができます。
たとえば、現在のディレクトリに関係なく、/home
の内容を確認するには、次のls
コマンドを実行します:
ls -la /home
ls
はコマンドであり、-la
はオプションで、/home
はリストするファイルやディレクトリを示す引数です。これにより、/home
ディレクトリの詳細なリストが表示され、サーバー上のすべての通常のユーザーのホームディレクトリが含まれるはずです。
環境変数
環境変数は、コマンドやプロセスの実行方法を変更するために使用される名前付きの値です。サーバーに最初にログインすると、いくつかの構成ファイルに従って、いくつかの環境変数がデフォルトで設定されます。
すべての環境変数を表示
特定のターミナルセッションに設定されているすべての環境変数を表示するには、env
コマンドを実行します:
env
出力がたくさん表示されるでしょう。 PATH
エントリを探してください:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PATH
環境変数は、コマンドが発行されたときにシェルが実行可能なプログラムやスクリプトを探すディレクトリのコロン区切りリストです。たとえば、env
コマンドは/usr/bin
にあり、そのパスがPATH
環境変数に含まれているため、そのフルパスを指定せずに実行できます。
変数の値を表示
環境変数の値は、変数名の前に$
を付けて取得できます。これにより、参照された変数がその値に展開されます。
たとえば、PATH
変数の値を表示するには、echo
コマンドを使用できます:
echo $PATH
または、ユーザーのホームディレクトリに設定されているHOME
変数を使用して、次のようにホームディレクトリに移動できます:
cd $HOME
設定されていない環境変数にアクセスしようとすると、それが何も設定されていない場合には空の文字列に
環境変数の設定
環境変数を表示する方法を知ったので、それらを設定する方法を学ぶべきです。
環境変数を設定するには、変数名で始めて、すぐに=
記号を入力し、その後に必要な値を指定します:
VAR=value
既存の変数を設定する場合は、元の値が上書きされます。変数が最初から存在しない場合は、新しく作成されます。
Bashには、変数をエクスポートして子プロセスで継承されるようにするexport
というコマンドが含まれています。これにより、現在のセッションからエクスポートされた環境変数を参照するスクリプトを使用できます。
変数を設定する際には、既存の変数を参照することもできます。たとえば、アプリケーションを /opt/app/bin
にインストールした場合、次のコマンドでそのディレクトリを PATH
環境変数の末尾に追加できます:
export PATH=$PATH:/opt/app/bin
次に、echo
を使用して /opt/app/bin
が PATH
変数の末尾に追加されたことを確認してください:
echo $PATH
この方法で環境変数を設定すると、現在のセッションのみに適用されます。つまり、ログアウトしたり、他のセッションに変更したりすると、環境への変更が保存されません。環境変数を恒久的に変更する方法もありますが、それについては後のチュートリアルで説明します。
結論
Linux ターミナルについて学び始めたばかりですが、いくつかのコマンドを学んだことで、Linux コマンドの知識を拡張する良い基盤ができたはずです。このシリーズの 次のチュートリアル で、ファイルのナビゲーション、表示、編集、およびその権限の変更方法について学びましょう。
Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal