Linux には似たような機能を持つが微妙に違うコマンドがいくつもあるので、今回はそれについて書きたいと思います。環境は Linux Mint です。
ls / dir / ll の違い
いずれもファイルを一覧表示するコマンドですが ls が色付きで表示されるのに対し dir は色が付かないといった違いがあります。これは ls が ls --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 は、ファイルの内容を全て端末に表示します。なので、内容が長いファイルを見る場合、ファイルの最初の方はスクロールバーを使って手動で戻る必要があるので、内容の長いファイルを見るには不向きです。
more と less は、端末に表示される内容を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 が非対話的なバイナリ形式のコマンドですが、adduser は useradd を対話的にしたスクリプト形式になっています。
一方で、RedHat系のLinuxの場合は adduser が useradd にシンボリックリンクされているので、実行しても useradd を実行したのと同じ結果になります。
userdel と deluser の違い
どちらも不要なユーザーを削除するコマンドですが、Debian系Linuxでは両方使えますが、RedHat系Linuxでは userdel のみ使えます。
which と whereis の違い
whichは、指定したコマンドの実行ファイルがどこにあるかフルパスで表示するコマンドです。
whereisは、実行ファイルのパスだけでなく、ソースコードのパスやマニュアルページのパスなど関連する全てのパスを表示します。
whatis / apropos の違い
どちらもマニュアルから該当するコマンドを検索するコマンドですが、whatisは完全に一致する内容のみを表示するのに対し aproposは部分的に一致する内容を全て表示します。
コメント