Diary

Diary

日々学んだことをアウトプットする場として初めてみました

ターミナル上での情報の見つけ方

ターミナル上での情報の見つけ方

ターミナル上で操作をしていて、「同じコマンドを何回もブラウザで検索している人」や「詰まった際に毎回ブラウザで検索しないと解決できない人」には参考になるかもしれません。

  • 誰のためのものか
    • ある程度基本的なコマンドを覚えた
  • 誰のためのものではないか
    • あんまりコマンドを使ったことがない人
  • 何が学べるか
    • ブラウザに戻らずターミナルだけで必要情報を検索できるようになる
    • man, type

目次

なお以降の例は次の環境で試したものです

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
...

$ uname -r
5.4.0-1038-raspi

manコマンド

オプションなどの細かい使い方がうる覚えなコマンドを、ターミナル上でぱぱっと検索したい時に使っています。

manコマンドとは

「指定したコマンドのマニュアルを表示させる」コマンドであり、マニュアルの略からmanとなっています。

その基本的な使い方は

# 調べ方
$ man コマンド
# iでカーソル下、kでカーソル上
# qで終了

です

必要な情報の探し方

コマンドによっては、man コマンドで大量の情報が出てくるので、必要なものを選択するためにgrepを使います

例えば、「列を並び替えるのにsortを使えば良いことは覚えていたが、数字での並び替えをどうすればいいか」を調べるには、以下のようにします。

$ man sort | grep num
...
 -n, --numeric-sort
  compare according to string numerical value
...

よって、-nのオプションをつけたら良さそうなことがわかります。

また、grepのマッチした前後N行も表示させるオプションとして、-A(前)、-B(後)、-C(前後)もよく使います。

man sort | grep key -A2

typeコマンド

基本的にはコマンドの存在チェックを行うコマンドである。

# コマンドが存在する場合
$ type ls
ls is aliased to `ls --color=auto`
$ type cd
cd is a shell builtin
$ type xargs
xargs is /usr/bin/xargs

# コマンドが存在しない場合
$ type lss
bash: type: lss: not found

複数コマンドの候補がある場合に、全て表示するには-aオプションをつけます

$ type -a ls
ls is aliased to `ls --color=auto`
ls is /usr/bin/ls
ls is /bin/ls

(cf) whichコマンド

同じく、コマンドの存在をチェックしてくれるコマンドにwhichがあります。 whichは以下のように、コマンドの存在する場所のパスを示してくれます。

$ which ls
/usr/bin/ls

(cf) whichコマンドとの違い

typeは何でも検索できるのに対し、whichはビルトインコマンドは検索できないという性質があります

$ type cd
cd is a shell builtin

$ which cd

また、type自身がビルトインコマンドなので、実際にターミナルで打って実行されるのはtypeの方の結果になります

# typeはシェルコマンド
$ type type
type is a shell builtin

# 実際にlsとして実行されるのはtypeの結果
$ type ls
ls is aliased to `ls --color=auto`
$ which ls
/usr/bin/ls