この記事では、ターミナル コマンドを使用する方法と、各コマンドに関する情報と動作について説明します。
また、プロセスについて説明するための例もいくつか紹介します。
コマンドライン ツールはとても役に立ちます。ツールを使用すると、グラフィカル ユーザー インターフェイス(UI)での退屈な作業を、数秒のタスクとして実行できます。大きなファイルの各列の最後の4行を削除する作業を、ユーザー インターフェイス アプリケーションで行うと長時間時間かかります。しかし、コマンド ラインでは、これを自動化することができます。
Ubuntu Linuxでターミナル ウィンドウを開く最も一般的な方法は次のとおりです。
Ubuntu Linuxでは、多くのコマンドがターミナル シェルに関連付けられています。以下の記事には、最もよく使用されるコマンドがリストされています。
さまざまなターミナル コマンドを使用するうえで必要なすべての情報を知ることができるコマンドは、主に3つあります。
manコマンドは、ターミナルで使用されているすべてのコマンドのマニュアルを表示します。
ほとんどのシェル コマンドでは、さまざまなオプションを使用できます。コマンドに関する何らかの情報や使用できるオプションのリストを表示するには、 man
コマンド(manualコマンドの略)を使用します。詳細な情報を知りたいコマンドの名前を引数として指定します。これは、 man
コマンドがどのコマンドの情報を出力するかを指します。
Example: コマンド「man who
」を入力すると、次のメッセージが表示されます。
WHO(1) User Commands WHO(1)
NAME
who - show who is logged on
SYNOPSIS
who [OPTION}... [ FILE | ARG1 ARG2 ]
DESCRIPTION
-a, --all
same as -b -d --login -p -r -t -T -u
-b, --boot
time of last system boot
-d, --dead
print dead processes
-H, --heading
print line of column headings
-i, --idle
add idle time as HOURS:MINUTES, . or old (deprecated, use -u)
-l, --login
print system login processes
--lookup
attempt to canonicalize hostnames via DNS
-m, only hostname and user associated with stdin
Manual page who(1) line 1
マニュアルの多くは、数行にわたって画面に表示されます。カーソル、ARROW
キー、またはPage UpキーとPage Downキーを使用して、テキスト内を移動します。スペースバー キーを押すと、テキストの次の行が表示されます。qキーを押すと、マニュアルは終了してシェルに戻ります。
man pageから、-a
オプションを使用して、アクティブなユーザー セッションに関する詳細情報を表示できます。
user@3[user]$ who -a
|
|
|
|
Nov 14 13:47 |
|
10 |
id=si |
term=0 |
exit=0 |
|
|
|
system boot |
Nov 14 13:47 |
|
|
|
|
|
|
|
|
run-level 5 |
Nov 14 13:47 |
|
|
Last=S |
|
|
|
|
|
|
Nov 14 13:47 |
|
835 |
id=15 |
term=0 |
exit=0 |
LOGIN |
|
|
tty1 |
Nov 14 13:47 |
|
958 |
id=1 |
|
|
root |
|
- |
tty2 |
Nov 14 19:15 |
00:19 |
959 |
|
|
|
user |
|
- |
tty3 |
Nov 14 19:28 |
00:06 |
960 |
|
|
|
LOGIN |
|
|
tty4 |
Nov 14 13:47 |
|
961 |
id=4 |
|
|
LOGIN |
|
|
tty5 |
Nov 14 13:47 |
|
962 |
id=5 |
|
|
LOGIN |
|
|
tty6 |
Nov 14 13:47 |
|
963 |
id=6 |
|
|
user |
|
? |
:0 |
Nov 14 13:47 |
? |
965 |
|
|
|
|
|
|
pts/3 |
Nov 14 16:29 |
|
1746 |
id=/3 |
term=0 |
exit=0 |
user@3[user]$
そのほか、プログラムのヘルプ ファイルも読み取ります。また、man
コマンドは、シェル、関数、およびライブラリに関する情報も提供します。
特定のコマンドの使用方法が分からない場合は、 -h
または –help
スイッチを付けてコマンドを実行します。使用方法に関する情報と、コマンドで使用できるオプションのリストが表示されます。
Example: コマンド「wget
」の使用方法を知りたい場合は、 wget –help
または wget -h
を探します。
User@Ubuntu@#$ wget --help
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options t
oo.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a '.wgetrc' -style command.
Logging and input file:
通常かなり多くの情報が画面に表示されます。スクロールするのが困難な場合もあります。出力をより簡単に読み取るには、 pipe
処理をlessコマンドまで行います。すると、キーボードのカーソル/矢印キーでスクロールできるようになります。
Example: wget -help | less
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options t
oo.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a '.wgetrc' -style command.
Logging and input file:
-o, --output-file=FILE log messages to FILE.
:
qを押すと、lessユーティリティーを閉じることができます。
特定のオプションを見つけるには、出力に pipe
と grep
コマンドを使用します。(例:次のコマンドを実行して、 proxy.
という単語を含むオプションを検索します。)
wget -help | grep proxy
User@ubuntu:~$ wget --help | grep proxy
--no-proxy explicitly turn off proxy.
--proxy-user=USER set USER as proxy username.
--proxy-password=PASS set PASS as proxy password.
User@Ubuntu:~$
一部のコマンドは、 info
システム内部でも文書化されています。ここでの情報は、 man
コマンドの出力を補完します。
Example: コマンド「info ls,
」を入力すると、次の出力が表示されます。
[support@support]$" info ls
これで、コマンド「ls
」コマンドを使用します。
File: coreutils.info, Node: ls invocation, Next: dir invocation, Up: Directory listing
'ls': List directory contents
=============================
The 'ls' program lists information about files (of any type,
including directories). Options and file arguments can be intermixed
arbitrarily, as usual.
For non-option command-line arguments that are directories, by
default 'ls' lists the contents of directories, not recursively, and
omitting files with name beginning with '.'. For other non-option
arguments, be default 'ls' lists just the file name. If no non-option
argument is specified, 'ls' operates on the current directory, acting
as if it had been invoked with a single argument of '.'.
By default, the output is sorted alphabetically, according to the
locale settings in effect. (1) If standard output is a terminal, the
output is in columns (sorted vertically) and control characters are
output as question marks; otherwise, the output is listed one per line
and control characters are output as-is.
--zz-Info: (coreutils.info.gz)ls invocation, 48 lines --Top------------------
Welcome to info version 4.3 Type C-h for help, m for menu item.
スペースバー キーを押すか、カーソル/ARROW
キーを使用して、下にスクロールできます。
help
)の場合は、Hを押します。quit
)の場合は、Qを押します。
ターミナルからほとんどの操作を実行できますが、ユーザー インターフェイスからも同様に実行できます。
すでに説明したように、多くのコマンドは最初にターミナルで作動するように設計されていましたが、その後ユーザー インターフェイスが主流になりました。そのため、GUIの中にはぎこちない感じのものもあります。それは、ほとんどのLinuxサーバーのビルドで、出来上がってから後付けされたためです。
メニューからターミナルが開かれるデフォルトの位置は、ホーム フォルダーです。「~」と記述されます。 ~
現在のディレクトリーは、.
オペレーターで確認できます。コマンド、場所、ファイルでの操作で、現在のフォルダー選択に対して実行されるコマンドのほとんどは、大文字と小文字が区別されます。 /home
は、 /HOME
または /Home
を探します。
ドライバーのタイトルが長い場合は、TABキーを使用してファイル名をオートコンプリートします。例えば、 driver-128947232jaseu.sh
の場合、「 dri
」と入力すると、その残りが入力されます。また、 dri
で始まるファイルが2つある場合は、別の文字を追加して「driv
」として、もう一度やり直してください。オートコンプリートされた内容が意図したものと一致しているか確認してください。
ほとんどすべてのコマンドは、 man
pageを使用するか、最初のコマンドを入力した後に -h
または --help
を入力すると、ほぼ完全に読み取ることができます。その場合の構文は、 man command_name
、 command_name -h
または command_name --help
を探します。
より詳細な情報が必要な場合は、infoを使用します。コマンドを検索するには、 info command_name
を探します。こうしたコマンドの多くは、coreutilsパッケージに入っています。また、 info
は、 info coreutils command_name
の呼び出しを使用して確認できます。ここで、探しているコマンドと command_name
を探します。
ほとんどすべのコマンドは、ステップバイステップで進捗状況を正確に表示できます。これには通常、 -v
または --verbose
を探します。
コマンドには、詳細情報を表示するためのコマンド フラグを同時に複数指定できます。詳細については、 ls -al
の例を参照してください。
一部のコマンド名はわかりにくいものもあります。これは、古い時代のUnixで、スペース制限のために縮めた名残が現在も残っているためです。
cd
- ホームに戻ります。同様: cd ~
cd..
- 1つ前のディレクトリーに戻ります。例えば、 /home/user/Desktop
から、 cd..
を使用して /home/user
を探します。これは、 cd ../../
に拡張して、2つ前のディレクトリー /home
を探します。
cd foldername/
- 現在のフォルダー内の指定したフォルダーに移動します。
/
を省略することが重要です。例えば、 /home/user
から Desktop
を探します。「 cd Desktop/
」( /
を Desktop
を探します。その前に /
を入力するとファイル システムのrootに移動して、機能しません。
cd /some/other/path
- 指定されたフォルダーのパスに移動します。ただし、正しいパスを入力する必要があります。また、 TAB
キーを使用してオートコンプリートもできます。
ls
- 現在のフォルダー内のすべてのファイルをリストします。
ls -l
- 所有者、アクセス権、サイズ、変更日などが入ったより長いリストが表示されます。
ls -a
- 非表示のファイルおよびフォルダーと通常のリストを表示します。
ls -al
- 2つのオプションが組み合わさり、非表示のファイルおよびフォルダーが長い形式で表示されます。
ls -h
- 人間が読める形式(バイトではなく KB, MB, GB,
)でファイル サイズを表示します。これは、ほとんどの場合、-l
フラグを付けて使用されます。
移動していないディレクトリー内のファイルを表示できます。例えば、 /home/user/Desktop
にいるときに、 /home/user
のファイルを表示したい場合、 ls ../
を使用して、1つ前のディレクトリーのファイルを一覧表示できます。
cp file /path/to/folder
- 指定したファイルを所定のパスにコピーします。
cp -r folder /path/to/folder
- フォルダーのコンテンツを別のフォルダーに繰り返しコピーします。
cp *.extension /path/to/folder
- 指定した拡張子と一致するファイルを新しいフォルダーにコピーします。すべての.docファイルをコピーするには、 cp *.doc /path/to/folder
と入力します(そのフォルダーは存在する必要があります)。
cp name* /path/to/folder
- 指定されたフォルダーに name
で始まるすべてのファイルをコピーします。また、 example
で始まるすべてのファイルをコピーするには、 cp example* /path/to/folder
と入力します(このフォルダーはすでに存在している必要があります)。
この mv
の構文は、前述の cp
の例と似ていますが、#2は除きます。mv
では、-r
フラグを使用できません。これは、フォルダーを移動すると、その内容も移動されるためです。どのインスタンスも構文は具体的には同一ではありませんが、上記の例に沿って機能します。詳細については、manページを参照してください。
ファイルをrm
を使用して削除すると、永久に削除されます。ごみ箱は使用しません。これを使用する場合は注意してください。また、削除するファイルに間違いがないことを確認してから、 Enter
キーを押します。削除コマンドを過度に複雑にすると、最後まで完了しないことがあります。
rm file
- コンピューターからその特定のファイルを削除します。
rm -r folder
- コンピューターからその特定のフォルダーを削除します。
rm -rf folder
- コンピューターからその特定のフォルダーを強制的に削除します。このコマンドを間違って使用すると、正しく構成されません。
ターミナルで nano
を使用してファイルを編集し、足りない部分を迅速に設定することができます。これは便利ですが、プレーン テキスト ファイルとプログラミング ファイルを処理するため、Microsoft Wordドキュメントなどでは正しく表示されません。
rootがファイルを所有している場合、通常のユーザーはそのファイルを編集できません。変更を保存するには、 nano
を sudo
の前に追加する必要があります。追加しないと、ファイルは読み取り専用モードで開かれます。
nano newfile.whatever
で指定した名前でファイルを開いて編集します。
nano existing_file
- 編集のために既存のファイルを開きます。
内部から: nano
同時に CTRL+O
キーを押してファイルを保存し、名前を変更するか、 Enter
キーを押して同じ名前を維持します。これで、ファイルが保存されます。
最後に、 nano
を終了するには、 CTRL+X
キーを同時に押します。保存していない変更がある場合は、保存するかどうかを尋ねるメッセージが表示されます。
mkdir folder_name
- 指定した名前のフォルダーを作成します。
mkdir -p /path/to/folder/name
- 必要に応じて各フォルダーを作成します。フォルダー /home/user/1stfolder/2ndfolder
を作成する際に、 /home/user
のみが存在する場合は、 mkdir -p
を使用すると 1stfolder,
と 2ndfolder
を探します。
ps aux
- コンピューターで実行されているすべてのプロセスの詳細をリストします。これには、ユーザー、プロセスID、 PID,
、プロセスの名前が含まれます。この機能を使用して、プロセス リストを表示し、必要に応じて不要なプロセスや停止したプロセスを強制終了することができます。
kill PID
- PIDは問題のあるプロセスを参照する番号です。PIDは、 ps aux
を探します。プロセスが終了することを拒否した場合は、 kill -9 PID
を指定して、何らかの方法でプロセスを終了する必要があります。
killall program
- Killall
は、名前(by name
)を指定して、リストされているプログラム(listed program
)を探します。例えば、Firefoxインターネット ブラウザー セッションが3つ開いている場合、 killall Firefox
はすべてのFirefoxセッションを強制終了します。 kill
は、問題のあるFirefoxプロセスの指定されたPIDだけを指定して強制終了します。
xkill
は、ユーザー インターフェイスでウィンドウをクリックして強制終了する方法です。「xkill
」と入力すると、どくろ印のアイコンが表示され、次にクリックしたウィンドウが強制終了されます。
Pipes
は、縦線(straight bar,
)で表示されます(または、 |
キーとして知られています)。
このキーはWindowsではほとんど使用されませんが、通常バックスラッシュ キーと一緒にあります。
パイプはコマンドをリンクするために使用されます。 Pipes
あるコマンドの出力結果を、チェーンでつながれている2番目のコマンドの入力として使用するようにルーティングします。
オンライン リソースを参照して、pipes
の詳細と使用方法を確認してください。それらにはいくつかボリュームがあります。
>
は、既存のファイルのコンテンツを新しいコマンドの出力で上書き(overwrite
)するために使用します。
>>
は、既存のファイルのコンテンツを新しいコマンドの出力で上書き(append
) するために使用します。これは、ログ操作の実行に便利です。
Example:
ps aux > processes.log
は、 ps aux
の出力を processes.log
ファイルに送信して、コマンドの出力をテキスト エディターに表示し、ファイルの現在の内容を上書きします。
tee
は、|
を付けて使用し、コマンド出力をどこか別の場所に送信するために使用します。これは、見逃したエラーがある場合に便利です。画面のすべての表示が、ファイルにも取り込まれます。
Example: dmesg
| tee boot.txt
は、 dmesg
コマンドを実行して、初期起動情報を表示します。そうすると、 |
は、 dmesg
の出力を tee
に送信し、そこからターミナルとログ ファイル boot.txt
を探します。
現在のディレクトリー内のファイルを実行可能ファイルとしてマークした後、そのファイルを実行する必要がある場合は、./
オペレーターを使用して、root権限のない通常のユーザーとしてファイルを実行できます。 ./
は、文字通り「現在のディレクトリー内(in the current directory
)」を意味します。そのため、現在のディレクトリー以外のファイルには機能しません。
現在のディレクトリーにないファイルを実行する必要がある場合は、正しく実行されているプログラムにパスを渡す必要があります。例えば、Pythonプログラムの場合は、 python /path/to/file
です。また、シェル ファイルの場合は、 sh /path/to/file
です。他のプログラムもありますが、これらが最も一般的です。
例えば、「operation not permitted?
」を探します。コマンドの前にsudo
を探します。前掲の例と同様に、 sudo python /path/to/file
と入力して、root権限でスクリプトを実行します。
ターミナルからユーザー インターフェイス プログラムを実行する場合は、プログラム名(大文字と小文字が区別されます(case sensitive!
))を入力して起動します。現在のターミナルは使用できなくなります。プログラムが開いている間にターミナルを閉じると、プログラムも強制終了されます。より良い方法として、 program_name
を使用して、ターミナルで「exit
」と入力してそれを閉じると、プロセスは実行し続けます。
ターミナルからroot権限でユーザー インターフェイス プログラムを実行する必要がある場合は、 gksudo
または gksu
をその前に追加します( sudo
を探します。ユーザー インターフェイス アプリケーションを起動するために sudo
を使用することは好ましくありません。回避する必要があります。
Donot
usesudo
を「Operation not permitted.
」が表示されたからという理由だけで使用しないでください。root権限を使用して不適切な場所でコマンドを実行すると、コンピューターが破壊(destroy)
されることがあるため注意してください。ファイルが信頼できるソースからのものであることを確認してください。
ディレクトリー内で位置が分からなくなった場合は、コマンド「pwd
」を入力して、作業中のディレクトリーを出力します。
ディスク領域を計算する場合は、 df -h
で簡単に計算できます。
フォルダーまたはファイルのサイズを計算する場合は、 du -cksh target_name
を使用します。現在のフォルダーのサイズを計算する場合は、 du -cksh
を探します。
実行可能ファイルのマークを付ける場合は、 chmod +x filename
を使用します。
isoをマウントする必要がある場合は、Linuxにこの機能が組み込まれています。例えば、 /home/user/isomount
にディレクトリーを作成して、 mount -o loop /path/to/myisofile.iso /home/user/isomount
コマンドを実行します。そうすると、コンテンツがそのフォルダー内にマウントされます。
コマンドの実行中に再度実行する必要があるが、どうやったのか正確に覚えていない場合は、コマンド「history
」をターミナルに入力すると、コマンド履歴が出力されます。履歴をクリアする場合は、 history -c
を使用して情報を消去します。