👁️

CentOsでコマンドを調べるプロになる

2020/12/28に公開

はじめに

どうやらくーばねてすをやっつけるにはLinuxさんと仲良くしないといけないらしく、Linuxさんの操作を調べたのだが、たくさんのコマンドを使わなくてはいけないのが分かった。全てのコマンドを記憶しておくことは無理なので、コマンド検索のプロを目指すことにした。くーばねてす倒す。

概要

コマンドの使い方を調べる

--helpオプションでコマンドのヘルプを検索
manコマンドでより詳しい説明を表示する。

コマンドのパスを探す

whichコマンドでコマンドのフルパスを表示する

日本語表記の仕方と英語表記の仕方

をまとめた

コマンドの使い方を調べる

■--helpオプションでコマンドのヘルプを検索
ほとんどのLinuxコマンドは-helpコマンドが使える。このオプションでコマンドのヘルプメッセージを表示することができる。

$ 調べたいコマンド --help

↓catコマンドを調べてみた例

$ cat --help
使用法: cat [オプション]... [ファイル]...
ファイル、または標準入力を連結し、標準出力に出力します。

  -A, --show-all           -vETと同じ
  -b, --number-nonblank    空行を除いて行番号を付け加える。-n より優先される
  -e                       -vEと同じ
  -E, --show-ends          行の最後に $ を付け加える
  -n, --number             全ての行に行番号を付け加える
  -s, --squeeze-blank      連続した空行の出力を抑止する
  -t                       -vTと同じ
  -T, --show-tabs          TAB文字を`^I'で表示
  -u                       (無視)
  -v, --show-nonprinting   非表示文字と`^'や`^'を付けて表示 (LFDとTABは除く)
      --help     この使い方を表示して終了する
      --version  バージョン情報を表示して終了する

ファイルの指定がなかったり, - であった場合, 標準入力から読み込みます.

例:
  cat f - g  最初に f の中身を出力し、次に標準入力を出力します。
            そして g の中身を出力します。
  cat        標準入力を標準出力に複製します。

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
cat の翻訳に関するバグは <http://translationproject.org/team/ja.html> に連絡してください。
完全な文書を参照する場合は info coreutils 'cat invocation' を実行してください。

始めて使うコマンドやうろ覚えコマンドは--helpコマンドで概要を確認するとよい。
使用方法
コマンドの概要
オプション一覧と意味
参考資料の紹介
がのっている
■manコマンドでより詳しい説明を表示する。
manコマンドを使うと更に細かいマニュアルが見れる。

$ man 調べたいコマンド

↓catコマンドを調べてみた例

CAT(1)                                                                User Commands                                                                CAT(1)

NAME
       cat - concatenate files and print on the standard output

SYNOPSIS
       cat [OPTION]... [FILE]...

DESCRIPTION
       Concatenate FILE(s), or standard input, to standard output.

       -A, --show-all
              equivalent to -vET

       -b, --number-nonblank
              number nonempty output lines, overrides -n

略

AUTHOR
       Written by Torbjorn Granlund and Richard M. Stallman.

COPYRIGHT
       Copyright c 2013 Free Software Foundation, Inc.  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
       This is free software: you are free to change and redistribute it.  There is NO WARRANTY, to the extent permitted by law.

SEE ALSO
       tac(1)

       The full documentation for cat is maintained as a Texinfo manual.  If the info and cat programs are properly installed at your site, the command

              info coreutils 'cat invocation'

       should give you access to the complete manual.

GNU coreutils 8.22     

manコマンドを使うと自動的にlessコマンドを使ってマニュアル表示される。
lessコマンドと同じでスペースキーでスクロール、qで終了。
--helpより詳細な説明が表示される。本当は日本語表記で表したくて色々設定したりインストール
したけどうまくいかなかったのでman日本語表記計画はまた今度('_')
manの閲覧できる大体の内容は以下
・コマンド名と簡単な説明
・オプションと引数の指定
・コマンドの詳細説明
・オプション一覧と使用方法
・使い方例
・動作を変更するための変数について
・関連するファイルについて
・関連のあるコマンドについて
・不具合について
※manそんなに知りたくない!って覚えた。
■キーワードからコマンドを探す
コマンドがわからないけどあれやりたいって時が結構あるんじゃないでしょうか。
そんなときはやりたいキーワードからマニュアルを探すことができる。

$ man -k やりたいキーワード

↓マニュアルをキーワード検索

man -k copy
bcopy (3)            - copy byte sequence
copy_file_range (2)  - Copy a range of data from one file to another
copysign (3)         - copy sign of a number
copysignf (3)        - copy sign of a number
copysignl (3)        - copy sign of a number
getutmp (3)          - copy utmp structure to utmpx, and vice versa
getutmpx (3)         - copy utmp structure to utmpx, and vice versa
memccpy (3)          - copy memory area
memcpy (3)           - copy memory area

man -k で気になったマニュアルをmanコマンドで確認するといい。
マニュアルの後ろの(1)などの数字はマニュアルの分割番号。
番号の意味
1   コマンド
2   システムコール(カーネルによって提供される機能)
3   ライブラリ関数(プログラムライブラリ内の関数)
4   デバイスファイル
5   ファイルの書式
6   ゲーム
7   その他
8   システム管理コマンド

コマンドのパスを探す

■whichコマンドでコマンドのフルパスを表示する
コマンドのパスを調べたい時はwhichコマンドを使う。

$ which オプション コマンド

↓catのフルパスを検索

$ which cat
/usr/bin/cat

whichコマンドはパスの中から見つかった最初のコマンドだけを表示するので、複数のコマンドが配置されているときは、-aオプションを付けることで全ての実行ファイルを検索できる。

$ which -a lsmod
/usr/sbin/lsmod
/sbin/lsmod

どういう時に使うのか
・シェルスクリプト開発時のパスが想定通り通っているか確認したい
・複数バージョンの同一コマンドが別ディレクトリに入っている場合、どれが使われるか確認したい
らしい!

日本語表記の仕方と英語表記の仕方

日本語表記でヘルプメッセージを表記させたい場合、
LANG=ja_JP.UTF-8
を追加する。

$  LANG=ja_JP.UTF-8 cat --help

↓また、英語で表示させたい場合

$  LANG=C cat --help

言語設定はほかのコマンドでも切り替えて指定できる。
頻繁にLANGの操作をする場合、環境変数を設定する。

まとめ

とりあえず--helpだけは忘れない!!!
man -kも使えそうだなって思った。

Discussion