Linuxで使われる似た機能を持つコマンドの違い

Linux

Linux には似たような機能を持つが微妙に違うコマンドがいくつもあるので、今回はそれについて書きたいと思います。環境は Linux Mint です。

ls / dir / ll の違い

いずれもファイルを一覧表示するコマンドですが ls が色付きで表示されるのに対し dir は色が付かないといった違いがあります。これは lsls --color=auto としてエイリアスに登録されていることによるものなので dir --color=auto と実行すれば ls と同じ出力結果になります。

また ll はコマンドではなく ls -alF のエイリアスなので ls -alF を実行するのと同じです。

ll を使用する注意点として、ディストリビューションによっては ll が標準でエイリアスとして登録されていない点や ls -l など別のエイリアスとして登録されている点などが挙げられます。

ホームディレクトリで ls -al を実行した時の出力画面


ホームディレクトリで dir -al を実行した時の出力画面


ホームディレクトリで ll を実行した時の出力画面

Linux Mint では ls -alF を実行したのと同じ結果になります。


cat / more / less / head / tail の違い

これらのコマンドは、ファイルの中身を見るためによく使われますが、機能には少し違いがあります。

cat は、ファイルの内容を全て端末に表示します。なので、内容が長いファイルを見る場合、ファイルの最初の方はスクロールバーを使って手動で戻る必要があるので、内容の長いファイルを見るには不向きです。

moreless は、端末に表示される内容を1ページずつに分けるコマンドです。こういう機能は「ページャ」と呼ばれます。more とは異なり less は最終行に行っても [q] キーを押さない限り、シェルプロンプトに戻りません

head は、デフォルトの場合ファイルの最初の10行を表示するコマンドです。

tail は、デフォルトの場合ファイルの最後の10行を表示するコマンドです。

ちなみに、headコマンドとtailコマンドは以下のように -n オプションで画面に表示する行数を指定することも可能です。

### foobar.txt の最初の5行を表示する
$ head -n 5 foobar.txt
$ head -5 foobar.txt

### foobar.txt の最後の5行を指定する
$ tail -n 5 foobar.txt
$ tail -5 foobar.txt

kill と killall の違い

kill は、「プロセスID」を指定するのに対し、killall は、「プロセス名」を指定します。プロセスIDは psコマンドで見ることができます。

rm -r と rmdir の違い

どちらもディレクトリを削除するコマンドですが rm -r指定したディレクトリだけでなくその中にあるファイルや下層ディレクトリなども全て削除します。

それに対して rmdir指定したディレクトリのみを削除するため、指定したディレクトリ内が空でない場合「ディレクトリは空ではありません」というエラーが出ます。

useradd と adduser の違い

どちらも新規ユーザーを追加するコマンドですが、Debian系のLinuxの場合 useradd が非対話的なバイナリ形式のコマンドですが、adduseruseradd を対話的にしたスクリプト形式になっています。

一方で、RedHat系のLinuxの場合は adduseruseradd にシンボリックリンクされているので、実行しても useradd を実行したのと同じ結果になります。

userdel と deluser の違い

どちらも不要なユーザーを削除するコマンドですが、Debian系Linuxでは両方使えますが、RedHat系Linuxでは userdel のみ使えます。

which と whereis の違い

whichは、指定したコマンドの実行ファイルがどこにあるかフルパスで表示するコマンドです。

whereisは、実行ファイルのパスだけでなく、ソースコードのパスやマニュアルページのパスなど関連する全てのパスを表示します。

whatis / apropos の違い

どちらもマニュアルから該当するコマンドを検索するコマンドですが、whatisは完全に一致する内容のみを表示するのに対し aproposは部分的に一致する内容を全て表示します。

whatis で mv を検索した場合の出力結果

apropos で mv を検索した場合の出力結果

参考にさせていただいたサイト様

Linuxのコマンドの情報を調べるwhich、whereis、whatis、apropos、man
Linuxのコマンドの実行ファイルやマニュアルの情報を確認するコマンドwhich、whereis、whatis、apropos、manの機能と使い方、似たところと違うところの紹介。
【決定版】Linuxでユーザーを作成・削除したりユーザー情報を変更したりする方法
本記事ではLinuxを使っているユーザー向けにユーザーを作成したり削除したり、既存ユーザーの情報を変更する方法を解説します。 Linuxには大きく分けてDebian系とRedHat系の2種類のディストリビューションが存在 ...
【 adduser 】コマンド――新規ユーザーを作成する
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、新規ユーザーを作成する「adduser」コマンドです。

コメント