Linuxコマンド・ランキング

沢山存在するコマンドの中でもどのコマンドが頻繁に使用されているのかを調べてみました。

調べてみたところランキングにしていたサイトが2件ございましたのでご紹介いたします。

まずはこちらのサイトのランキングから一覧のページを作成したコマンドのみを抜粋してご紹介いたします。

1位 tar ファイルを書庫化・展開する(拡張子.tarなど)
8位 zip ファイルを圧縮する(拡張子.zip)
9位 chmod ファイルやディレクトリのアクセス権を変更する
13位 rpm RPMパッケージをインストール/アンインストールする
17位 yum パッケージを取得してインストール/アップデートをする
18位 wget ファイルをダウンロードする

続きましてこちらのサイトのランキングから一覧のページを作成したコマンドのみを抜粋してご紹介いたします。

1位 vi
7位 echo

両サイトより抜粋してみましたが、被ったコマンドがありませんでした。
なのでこの8つのコマンドの内、どれをよく使うのかを調べるために実際にCentOS 6でサーバーを構築した際に使用したコマンドをランキングにしてみました。また、両サイトの様に一覧を作成したコマンドのみを抜粋しております。

2位 vi
9位 rm
10位 rpm
11位 yum
13位 chmod

zip/unzip コマンド一覧

zipファイルとして圧縮

$ zip 作成するZIPファイルPATH 圧縮対象PATH ... # 圧縮時

zipファイルを解凍

$ unzip 解凍するZIPファイルPATH # 解凍時

ディレクトリを指定して再帰的に圧縮する

$ zip -r 作成するzipファイルPATH 再帰的に圧縮するフォルダ

圧縮対象となるファイル名を指定して圧縮する

$ zip 作成するZIPファイルPATH 圧縮対象PATH ... -i 圧縮対象ファイル名

cp コマンド一覧

そのままファイルをコピーする

$ cp コピー元 コピー先

ファイル名を同じ名前としてコピーする

$ cp コピー元 コピー先のディレクトリ名

複数ファイルに同時にコピーする

$ cp コピー元その1 コピー元その2 コピー先のディレクトリ名

ワイルドカードを使って一度にコピーする

$ cp file* ディレクトリ名

ディレクトリごとコピーする

$ cp -r コピー元ディレクトリ コピー先ディレクトリ

上書きになるときは要確認する

$ cp -i ファイル元 コピー後

上書き時に今日の日付を後ろにつけてバックアップファイルを作成する

$ cp -b --suffix=_$(data +%Y%m%d) コピー元 コピー先

シンボリックリンクを作成する

$ ln -s 元ファイル シンボリックリンク
$ cp -s 元ファイル シンボリックリンク

「file1」を「file2」にコピーする

ファイルの属性はなるべく保持され、シンボリックリンクはそのままコピーされる

$ cp -a file1 file2

「dir1」を「dir2」にコピーする

ディレクトリの内容もそのままコピーされる

$ cp -a dir1 dir2

コピーしたファイルの名前が表示される

$ cp -v コピー元 コピー先

強制的に上書きコピーする

$ cp -f コピー元ファイル コピー先PATH

強制的に上書きコピーする(上書きの有無を聞かれる場合)

$ \cp -f コピー元ファイル コピー先PATH

上書き時にバックアップを取得する

$ cp --backup コピー元ファイル コピー先PATH

上書き時に番号付きのバックアップを取得する

$ cp --backup=numbered コピー元ファイル コピー先PATH

権限やオーナー、グループを保持したままコピーする

$ cp -p コピー元ファイル コピー先PATH

ハードリンクを作成する

$ cp -l コピー元ファイル コピー先PATH

ディレクトリ構造を含めてコピーする

$ cp --parents コピー元ファイル コピー先PATH

mkdir コマンド一覧

ディレクトリを新規作成する

$ mkdir ディレクトリ名

パーミッションを指定しディレクトリを作成する

パーミッションは、000から777までの3桁の8進数の形式や、
u=w+といった権限を与えるユーザー=権限の形式で指定できる。

パーミッションが666の場合、全ユーザに読み書き許可、実行許可なし。

$ mkdir -m パーミッション指定 ディレクトリ名
$ mkdir --mode=パーミッション指定 ディレクトリ名

ディレクトリが存在していてもエラーメッセージを表示させず、現在あるディレクトリはそのままにして新規に作成することはなく子ディレクトリを作成する

$ mkdir -p ディレクトリ名

ディレクトリを作成した結果のメッセージを表示する

$ mkdir -v ディレクトリ名

tar コマンド一覧

アーカイブ

$ tar cvf tarファイル名 アーカイブ対象ディレクトリ

圧縮してアーカイブ

$ tar cvzf tgzファイル名 圧縮対象ディレクトリ

展開

$ tar xvf tarファイル名

解凍して展開

$ tar xvzf tgzファイル名

特定のファイルのみ解凍して展開

$ tar xvzf tgzファイル名 ファイルパス

アーカイブされているファイルの一覧

$ tar tf tarファイル名

圧縮してアーカイブされているファイルの一覧

$ tar tzf tgzファイル名

tarの既定値を表示

$ tar --show-defaults

アーカイブに新たなファイルを追加

$ tar -rvf アーカイブファイル名 アーカイブに内包するファイル

新しいファイルのみがアーカイブされる

$ tar -uvf アーカイブファイル名 アーカイブに内包するファイル

tarアーカイブされたファイルの内容を追加する

$ tar -Avf アーカイブファイル名 アーカイブに内包するアーカイブ済みファイル

アーカイブファイル内からファイルを削除する

$ tar --delete -f アーカイブファイル名削除ファイル名

バックアップのアーカイブファイルの作成

$ tar --suffix=STRING -cvf アーカイブファイル名アーカイブ元ファイル名

アーカイブに追加した元ファイルを削除する

$ tar --remove-files -cvf アーカイブファイル名アーカイブ元ファイル名

アーカイブにボリューム名を設定する

$ tar -cvf アーカイブファイル名 -V ボリューム名 アーカイブ元ファイル名

アーカイブ元のファイルのディレクトリを指定する

$ tar -cvf アーカイブファイル名 -C アーカイブ元ディレクトリ アーカイブ元ファイル名

ファイルの更新時刻を表示

$ tar --utc -cvf アーカイブファイル名アーカイブ元ファイル名

アーカイブを書き出した後に検証

$ tar -W -cvf アーカイブファイル名アーカイブ元ファイル名

アーカイブされたファイルを解凍し展開・復元を行う

$ tar -x -xvf アーカイブファイル名アーカイブ元ファイル名

解凍した際に変更日時の新しいファイルを置き換えない

$ tar --keep-newer-files -xvf アーカイブファイル名

解凍する場合に既存のファイルを置き換える

$ tar --overwrite -xvf アーカイブファイル名

解凍する時に該当のファイルを削除する

$ tar -U -xvf アーカイブファイル名

解凍する時に該当のディレクトリを削除する

$ tar --recursive-unlink -xvf アーカイブファイル名

アーカイブから取り出したファイルをプログラムで開く

$ tar --to-command=プログラム -xvf アーカイブファイル名

アーカイブのファイルの更新時刻を現在時刻とする

$ tar -m -xvf アーカイブファイル名

すべての解凍が終了するまでファイルの属性を変えない

$ tar --delay-directory-restore -xvf アーカイブファイル名

アーカイブから取り出したファイルを標準出力に表示

$ tar -O -xvf アーカイブファイル名

bzip2形式で圧縮する

$ tar -j -cvf アーカイブファイル名 アーカイブ元ファイル

gzip形式で圧縮する

$ tar -z -cvf アーカイブファイル名 アーカイブ元ファイル

圧縮されたアーカイブを解凍する

$ tar --gunzip -xvf アーカイブファイル名

アーカイブの内容を一覧表示

$ tar -tf アーカイブファイル名

アーカイブを分割する

$ tar -M --tape-lengts=分割する1ファイルの大きさ -cvf 分割ファイル名 分割ファイル名2…

アーカイブのボリューム情報を表示する

$ tar --test-label -vf アーカイブファイル名

ファイルのアーカイブを作成しgzip形式で圧縮する

$ tar -czvf アーカイブ.tgz 対象ファイル

gzipで圧縮されたアーカイブを展開する

$ tar -xzvf アーカイブ.tgz

chmod コマンド一覧

はじめに

ユーザーは、所有者がu、グループがg、その他ユーザーはo、すべてのユーザーはaで設定
追加の場合は+、解除の場合は-、その値にしたい場合は=を記述
アクセス権限は、実行許可ならx、書き込み許可ならw、読み取り許可ならrを設定

パーミッションを変更する

$ chmod アクセス権限 ファイル名

chmodコマンドで利用者とアクセス権限を設定する

今設定している値から次の書式で必要な箇所だけ変更することができる

$ chmod ユーザー 追加か削除か アクセス権限 ファイル名

コマンド実行の診断結果を表示する

$ chmod -v アクセス権 ファイル名

コマンドの実行結果、変更があった場合のみ、結果を表示する

$ chmod -c アクセス権 ファイル名

複数ファイルに対して設定する場合、ディレクトリ内も設定対象とする

$ chmod -R アクセス権 ファイル名

ファイルに実行可能属性を追加する

$ chmod +x ファイル名

ファイルに読み出し可能と実行可能だけを設定する

(元のファイルに書き込み権限があった場合は削除される)

$ chmod =rx ファイル名

ファイルに対し所有者だけ実行可能属性を追加する

$ chmod u+x ファイル名

所有者、所有ユーザー以外のユーザーに対して読み出し/書き込み/実行を禁止する

$ chmod o-rwx ファイル名

wget コマンド一覧

Web上のファイルをダウンロードする

$ wget http://ファイルのURL

ファイルの保存先を指定する

$ wget -O 出力先PATH http://ファイルのURL

ダウンロードに失敗しても、再度やり直しする

$ wget -c http://ファイルのURL

ダウンロードの速度制限を行う

$ wget --limit-rate=制限する速度 http://ファイルのURL

ダウンロードをバックグラウンドで実行する

$ wget -b http://ファイルのURL

UserAgentを偽装する

$ wget --user-agent="偽装するUserAgentの内容" http://ファイルのURL

URLの記述されたファイルを読み込んで複数ファイルを連続でダウンロードする

$ wget -i URLを記述したファイルPATH

再帰的にダウンロードを行う

$ wget -r http://再帰的にダウンロードを行うURL

ユーザ名・パスワードを指定する

$ wget --http-user=ユーザ名 --http-passwd=パスワード http://ファイルのURL

詳細情報を表示させない

$ wget -q http://ファイルのURL

ダウンロードせずにファイルの有無を確認する

$ wget --spider http://ファイルのURL

プロキシサーバ経由でダウンロードする

$ wget -e HTTP_PROXY=プロキシサーバのホスト:ポート番号 http://ファイルのURL

プロキシサーバにユーザ名、パスワードが必要な場合

$ wget -e HTTP_PROXY=proxy.co.jp --proxy-user=ユーザ名 --proxy-password=パスワード http://ファイルのURL

ダウンロードのリトライ回数を指定する

$ wget --tries=リトライ回数 http://ファイルのURL

サーバの応答情報を取得する

$ wget -S http://ファイルのURL

ダウンロードしたファイルの内容を標準出力に表示

$ wget -O - http://ファイルのURL

ファイルのダウンロードするディレクトリを指定する

$ wget http://ファイルのURL -P ディレクトリPATH

echo コマンド一覧

画面に文字列を表示する

$ echo 表示するもの

変数名に数字を格納する

$ 変数名=数字

変数の表示をする

$ echo $変数名

変数と文字列を同時に表示する

$ echo 文字列 $変数名 文字列

変数を複数表示する

$ echo 文字列$変数名 変数名$変数名 文字列

改行を表示する

$ echo -e 1行目\\n2行目\\n3行目\\n4行目
$ echo -e "1行目\n2行目\n3行目\n4行目"

出力文字の最後の改行をしない

$ echo -n 出力文字

文字列をファイルに出力する

$ echo 文字列 > ファイル名

ファイルに文字列を追記する

$ echo 追記する文字列 >> ファイル名

セットした変数を削除する

$ unset 変数名

yum コマンド一覧

リポジトリにアップデートがないかチェックをかける

# yum check-update

リポジトリにアップデート、チェックおよび実際にアップデートする

# yum update

リポジトリからパッケージをインストールする

# yum install <pkg>

リポジトリからパッケージを検索する

# yum search <pkg>

インストールされているパッケージを削除する

# yum remove <pkg>

インストールされているパッケージの情報を表示する

# yum info <pkg>

インストールされているパッケージ一覧を表示

# yum list installed

今までダウンロードしたパッケージを削除

# yum clean packages

指定したソフトウェアのバージョン名を表示する

# yum list installed | grep ソフトウェア名

インストール可能なソフトウェアの一覧を表示する

# yum list

インストールしたソフトウェアでアップデートが必要(できる)一覧を表示する

# yum list updates

セキュリティ関連のアップデートのみ実行させる

# yum --security update

パッケージをダウングレードする

# yum downgrade パッケージ名

パッケージをアンインストールする

# yum erase パッケージ名

パッケージで利用できる各バージョンのリストを取得する

# yum --showuplicates list パッケージ名

グループインストールをする

# yum groups install グループ名

メタデータなどのキャッシュファイルを削除・変更する

# yum clean all

パッケージの最新情報を取得する

# yum makecache

リポジトリの一覧を取得する

# yum repolist

指定したファイル・コマンド名から、どのパッケージが提供しているものか確認する

# yum provides コマンド名・ファイルPATH

yumで過去に行った処理を確認する

# yum history

yumで過去に行った処理を取り消す

# yum history undo 履歴番号

対話的にコマンドを実行する

# yum shell

パッケージに変更を加える前にファイルシステムのスナップショットを取得する

# yum install yum-plugin-fs-snapshot

rpmファイルを指定してyumコマンドでインストール

# yum localinstal <rpmファイル>

全グループのリスト表示

# yum grouplist

パッケージのアップデート

# yum update <パッケージ名>

グループ内のパッケージをアップデート

# yum groupupdate <グループ名>

指定したファイルを含むパッケージの検索

# yum provides <ファイルパス>

パッケージが依存するパッケージ及びファイルの一覧を表示

# yum deplist <パッケージ名>

グループ内のパッケージを削除

# yum groupremove <グループ名>

rm コマンド一覧

ファイル削除

$ rm ファイル名

複数ファイルの削除

$ rm *

エラーメッセージを表示しない

$ rm -f ファイル名

ファイルの削除前に確認する

$ rm -i ファイル名

削除の対象が4つ以上の場合のみ削除の確認をする

$ rm -I ファイル群

ディレクトリも削除の対象とする

$ rm -r ディレクトリ名

削除の詳細表示

$ rm -v ファイル名

複数のオプションの指定

$ rm -vri *

削除の確認を行わない

$ rm --interactive=never ファイル名

マウントされたディレクトリは削除の対象にせずスキップする

$ rm --one-file-system *

ルートディレクトリ自体の削除を許可する

$ rm --no-preserve-root *

ルートディレクトリ自体の削除を許可しない

$ rm --preserve-root *

オプションと同じ名前のファイルを削除する場合

$ rm ./-iv