Linux 基礎コマンド

はじめに

  • 想定読者: Linux初心者で、コマンドはちょっと知ってる
  • 記号や書式の意味

紹介コマンド

以下のコマンドについて紹介します。

  • cd
  • pwd
  • ls
  • mkdir
  • rmdir
  • cat
  • less
  • tail
  • touch
  • rm
  • mv
  • cp
  • ln
  • find
  • chmod
  • chown
  • ps
  • kill

cd

chage directoryの略で、カレントディレクトリから移動するのに使用します。

cd <目的のディレクトリパス>

pwd

print working directoryの略で、カレントディレクトリを表示してくれます。

pwd

ls

listの略で、カレントディレクトリのファイルやディレクトリなどを一覧にして表示してくれます。
また、引数にパスを与えると、そのパスのファイルやディレクトリを表示してくれます。

ls [表示したいパス]

隠しファイルまで表示したい時は、aオプションを使用します。

ls -a [表示したいパス]

各ファイルを詳細まで表示したい時は、lオプションを使用します。

ls -l [表示したいパス]

mkdir

make directoryの略で、ディレクトリを作成します。

mkdir <作成するディレクトリ名>

rmdir

remove directoryの略で、空のディレクトリを削除します。
注意ですが、ディレクトリが空でない場合は削除できません。

rmdir <空のディレクトリ名>

cat

concatenateの略で、対象のファイルの中身を表示します。
複数ファイルを引数にとることも可能で、その場合は引数の順に内容を並べて表示します。

cat <表示したいファイル名1> <表示したいファイル名2> ...

less

こちらもファイルの中身を表示するコマンドですが、catとは違い、専用の画面で内容を表示できます。
ファイルの中身が多い時にはこちらの方が便利です。

less <ファイル名>

tail

こちらもファイルの中身を表示しますが、tailは最終行から10行だけを表示します。
ファイルは複数指定することも可能です。

tail <ファイル名1> <ファイル名2> ...

また、行数を変更したい場合は、nオプションを使用します。

tail -n <行数> <ファイル名> <ファイル名2> ...

touch

新規の空ファイルを作成します。
もし既存のファイルが存在する場合は、タイムスタンプを更新します。

touch <ファイル名>

rm

removeの略で、ファイルを削除します。
ただし、この削除はゴミ箱に移すわけではなく、完全に削除されますので気をつけます。

rm <ファイル名1> <ファイル名2> ...

また、ファイルではなくフォルダを削除することもできます。
ただし、フォルダの中身も全て削除されます。

rm -r <フォルダ名>

mv

moveの略で、ファイルやディレクトリを移動させたり、名称を変更できます。

mv <移動元ファイル(ディレクトリ)> <移動先ファイル(ディレクトリ)>

注意が必要なのは、移動先の名称が存在しなかった場合、移動元ファイル(ディレクトリ)は移動するのではなく、名称が移動先でした内容に変更されます。
また、移動先が存在した場合でも、移動元と移動先がどちらもファイルの場合は、移動先が移動元で上書きされる、という処理になります。
ここは注意が必要ですが、上書きしそうな場合は確認してくれるiもあります。

cp

copyの略で、ファイルやディレクトリをコピーします。

cp <コピー元ファイル名> <コピー先ファイル名> # コピー先ファイル名でコピー
cp <コピー元ファイル名> <コピー先ディレクトリ名> # コピー先ディレクトリ名にコピー
cp -r <コピー元ディレクトリ名> <コピー先ディレクトリ名> # コピー元ディレクトリをコピー先へまるごとコピー

こちらもmvと同じ注意点として、同一名が存在するときは内容が上書きされるので、iオプションで実行前に確認を表示できます。

ln

linkの略で、既存ファイルのハードリンクまたはシンボリックリンクを作成します。

ln <ファイル名> <リンク名> # ハードリンク
ln -s <ファイル名> <リンク名> # シンボリックリンク

find

ディレクトリ内を条件指定して検索するコマンドです。
使い方の詳細を深ぼると非常に長くなるので、以下でよく使う条件を例にして記載しています。
こちらを実行すると、「検索ディレクトリ内に存在する、検索ファイル名を持つファイルを検索し、その結果を出力する」という意味になります。

find <検索ディレクトリ> -name <検索ファイル名> -print

chmod

change modeの略で、ファイルやディレクトリの権限設定を行います。
記述方法は以下の2通りあります。

chmod <モード> <対象のファイル(ディレクトリ)> #方法1
chmod <8進数表記のモード> <対象のファイル(ディレクトリ)> #方法2  

方法1の場合は、モードの部分に対象者、権限の設定方法、権限の種類を記述します。

  • 対象者: u(所有ユーザ)、g(所有グループ)、o(その他ユーザ)、a(全ユーザ)
  • 権限の設定方法: +(追加)、-(削除)、=(設定)
  • 権限の種類: r(読取)、w(書込)、x(実行)

例えば、所有グループに書き込み権限を追加したい場合は、chmod g+w <対象ファイル>のように実行します。 複数の対象者、複数の権限を同時に設定することもでき、次のようになります。

chmod u-r,o+w <対象ファイル> # ユーザから読取権限を削除、その他グループに書込権限を追加
chmod go+x <対象ファイル> #グループおよびその他グループに書込権限を追加
chmod u=rw,go=r <対象ファイル> #ユーザに読み書き権限を追加して実行権限を削除、グループおよびその他グループに読取権限を追加して書込実行権限を削除

方法2の場合は少し難しく、全ての対象者に対する権限を8進数3桁で表記して指定します。
3桁の内訳は、左からユーザ、グループ、その他グループです。
それぞれの桁の値は、rを4点、wを2点、xを1点として、その権限を持つなら加点します。
言葉だけだと分かりにくいので、同じ内容を示す方法1の表記と比べてみます。

chmod u=rw,go=r <対象ファイル> #方法1
chmod 644 <対象ファイル> #方法2

上記の場合、ユーザはrw権限を持つので4+2=6、グループおよびその他グループはr権限のみなので4、よって644となるわけです。

chown

change ownerの略で、ファイルやディレクトリの所有者を変更します。
注意として、管理者権限で実行する必要があります。

chown <所有者名> <ファイル名(ディレクトリ名)> #所有ユーザを変更
chown :<所有グループ名> <ファイル名(ディレクトリ名)> #所有グループを変更

ps

process statusの略で、実行中のプロセス一覧を表示します。

ps

kill

実行中のプロセスやジョブを終了させます。

kill <プロセスID> #プロセスを終了
kill %<ジョブID> #ジョブを終了

また、何らかの原因で終了させられないため、強制終了させたい時があります。
そんなときは、コマンドのあとに強制終了のシグナルを記載して実行します。
次のコマンドはどちらも同じ意味です。

kill -SIGKILL <プロセスID>
kill -9 <プロセスID>

おわりに

過去になんとなくその場を乗り切るために使ってきたLinuxコマンドたちですが、改めて系統的に学習すると頭の中で整理されてスッキリしました。