Linuxコマンド

Linuxコマンド基礎

More than 1 year has passed since last update.


リダイレクト


  • コマンド > ファイル名:コマンドの標準出力をファイル名に書き込み

  • コマンド >> ファイル名:コマンドの標準出力をファイル名に追記

  • コマンド &> ファイル名:コマンドの標準出力と標準エラー出力をファイル名に書き込み

  • コマンド &>> ファイル名:コマンドの標準出力と標準エラー出力をファイル名に追記

  • コマンド 2> ファイル名:コマンドの標準エラー出力をファイル名に書き込み

  • コマンド > /dev/null:標準出力などを捨てる

  • コマンド > /dev/null 2>&1:標準出力と標準エラーマージして、捨てる


ANDリスト


  • Aコマンド && Bコマンド:Aコマンドが成功したらBコマンドを実行


ORリスト


  • Aコマンド || Bコマンド:どれかが成功するまでコマンド実行(失敗したら次コマンドを実行とも言える)


ファイル・ディレクトリ操作


ls ファイルやディレクトリ情報の表示


  • -l:詳細表示

  • -a:.で始まる隠しファイルも表示

  • -t:最終更新時間でソート表示

  • -r:逆順に表示

  • -1:縦に並べて表示

  • -i:ファイルのiノード番号を表示


ll "ls -l"のエイリアス


pwd カレントディレクトリ表示


特殊ディレクトリ


  • .:カレントディレクトリ

  • ..:1階層上のディレクトリ

  • ~:ホームディレクトリ

  • /:ルートディレクトリ


cd カレントディレクトリの変更

cd ディレクトリ名


  • 引数なしだと、ホームディレクトリに移動

  • cd -:1つ前のディレクトリに戻る


mkdir ディレクトリの作成

mkdir ディレクトリ名


  • -p:途中のディレクトリもすべて作成


rmdir ディレクトリの削除

rmdir ディレクトリ名


  • 中身が空のディレクトリでないと消せない

  • -p:途中のディレクトリもすべて削除


cp ファイルやディレクトリのコピー

cp コピー元 コピー先


  • -i:上書き確認

  • -r:ディレクトリコピー

  • -p:ファイル情報(所有者、属性、更新日時など)もそのままコピー

  • -v:コピーしたファイル名を表示

  • -f:同名でも警告せず上書き


scp リモートでファイルコピー

scp コピー元 コピー先

リモート時の指定:user@192.168.1.0:パス

オプションはcpと同じ


mv ファイルやディレクトリの移動、ファイル名変更

mv 移動元 移動先


  • -i:上書き確認

  • -f:強制実行(確認無効)


rm ファイルやディレクトリの削除

rm ファイル名


  • -i:削除確認

  • -r:ディレクトリ内を再帰的に削除

  • -f:強制削除(警告メッセージを表示しない)


chmod ファイルやディレクトリの権限変更

chmod 権限 ファイル名


  • 数字指定:ユーザー、グループ、その他、の権限をそれぞれ4bitで表現。777など

  • u+x:ugoa(ユーザー、グループ、その他、全員)に、rwx(読み取り、書き込み、実行)権限を追加

  • go-wx:対象の権限を削除

  • u=rwx:対象をその権限にする

  • -R:ディレクトリとその中身を再帰的に処理


chown ファイルやディレクトリの所有者変更

chown 所有者:グループ ファイル名


  • -R:ディレクトリとその中身を再帰的に処理


touch ファイルのタイムスタンプ変更

touch ファイル名


  • デフォルトだと、タイムスタンプを現在時刻に変更

  • -d 日時:指定した日時にタイムスタンプを変更


find ファイルの検索

find パス(ワイルドカード指定可能)


  • -name ファイル名:指定ファイル名を検索(ワイルドカード使用可能)

  • -ctime 日:指定日にデータ更新やステータス変更があったファイル

  • -atime 日:指定日にアクセスがあったファイル

  • -mtime 日:指定日にデータ更新があったファイル

  • -cmin 分、-amin 分、-mmin 分:上記の分バージョン

  • 指定日:+3(3日前以降~)、-3(今~3日前まで)、3(3日前)

  • A -and B:AかつB

  • A -or B:AまたはB

  • -not A:A以外


ln ファイルやディレクトリのリンクを作成

ln リンク元 登録名


  • 通常時はハードリンク(実体は増えない)作成

  • -s:シンボリックリンク(ショートカット)を作成する


tar (圧縮)アーカイブの作成・展開

tar オプション アーカイブファイル名 ディレクトリ名


  • czvf:圧縮アーカイブ作成

  • xzvf:圧縮アーカイブ展開


ファイルの中身表示・編集


cat ファイルの中身を表示(短いファイル向け)

cat ファイル名


  • -n:行番号付きで表示


less ファイルの中身を表示(長いファイル向け)

less ファイル名


head ファイル先頭10行(デフォ)を表示

head ファイル名


  • -n 行数:表示する行数を指定。オフセット指定も可能


tail ファイル末尾10行(デフォ)を表示

tail ファイル名


  • -n 行数:表示する行数を指定。オフセット指定も可能

  • -f:ファイルをリアルタイムで監視状態にする


grep 指定した内容を含む行やファイルを検索

grep 検索文字列(正規表現可) 対象のパス


  • -r:サブフォルダ以下を再帰的に検索

  • -i:アルファベットの大文字小文字の違いを無視

  • -E:拡張正規表現を使う

  • -v:指定文字列にマッチしない行を検索(除外)

  • -n:マッチした行番号を表示


vi エディタを起動

vi ファイル名


sed ファイルの編集

sed ファイル名


  • -e 指示:指示通りに編集


    • "s/置換前文字列/置換後文字列/":置換(1行に1つ)

    • "s/置換前文字列/置換後文字列/g":全置換

    • "s/置換前文字列/置換後文字列/i":大文字小文字を無視



  • -r:拡張正規表現が使用可能になる


awk テキスト処理

awk オプション 'パターン{アクション}' ファイル名

例(小数点表示):awk '{ OFMT="%.10f" } { res=$1*1; print res }'


  • -F:区切り文字指定

  • OFMT:数値フォーマット指定

  • print:表示


hexdump 16進数などで表示

hexdump ファイル名


  • -c:ASCII文字で出力


文字列操作


cut テキストの各行から必要な部分を切り取り

cut 切り取り指定 ファイル名


  • -f 取り出す列:区切り文字で区切った列を取り出す

  • -d "区切り文字1文字":区切り文字を指定(デフォルトはタブ)

  • -b 数字:指定バイト目の文字を表示。範囲指定やカンマ複数指定も可能


sort 行毎に並び替え


  • -n:数値として並び替え

  • -r:逆順に並び替え

  • -t "区切り文字":区切り文字を指定

  • -k ソートする列:区切り文字で区切った列数目をソート

  • -b:先頭空白を無視


uniq 重複行を削除(前提としてソートされていること)


  • -c:重複行数をカウントして表示


wc ファイルの行数、単語数、文字数などをカウント

wc ファイル名


  • -l:行数

  • -w:単語数

  • -c:文字数


tr 文字を置換

tr 検索文字 置換文字


  • tr abc 123:aを1に、bを2に、cを3に置換する


read 標準入力から1行読み込み

read 変数名


  • 利用時は、普通に&変数名

  • シェルにパイプで結果を渡す時などで使う

  • キーボードからの入力にも使える


プロセス関係


ps 実行中のプロセス表示


  • a:端末操作のプロセスを表示

  • u:ユーザー名と開始時刻を表示

  • x:端末操作以外のプロセスを表示


pstree プロセスの親子関係表示


  • -a:引数表示


kill プロセスを終了

kill プロセスID


セキュリティ関係


ssh-keygen 鍵ペアを作成


  • 最初に保存場所を聞かれるがデフォルトで良いのでEnterを押す

  • 次にパスフレーズを決める

  • 秘密鍵は既定の場所に置いておき、公開鍵をサーバー等に登録する

  • 公開鍵の登録方法は、サーバーの認証したいユーザーのホームディレクトリに.sshディレクトリに、authorized_keysという名前で置き、ファイルを600、.sshディレクトリを700に変更

  • 公開鍵は追記することで複数登録できる

  • 公開鍵の中身の先頭にcommand="コマンド"を追加すれば、そのコマンド限定になる

  • 公開鍵が複数あり、既定以外の公開鍵を使いたい場合は、明示的な鍵指定が必要


ユーザー関係


su ユーザー変更

su - ユーザー名


  • ハイフンを指定しなくてもできるが、ハイフンがあると環境設定もそのユーザーのものになる


sudo 指定ユーザー(デフォroot)でコマンド実行

sudo コマンド


useradd ユーザー作成

useradd ユーザー名


  • -g グループ名:グループ指定


passwd パスワード登録

passwd ユーザー名


usermod ユーザー編集

usermod ユーザー名 オプション


  • -g グループ名:グループ指定


userdel ユーザー削除

userdel ユーザー名


  • -r:ホームディレクトリ削除


groupadd グループ作成

groupadd グループ名


groupmod グループ編集

groupmod グループ名 オプション


  • -n 新グループ名:グループ名変更


groupdel グループ削除

groupdel グループ名


groups グループ表示


ネットワーク系


ping ネットワーク疎通確認

ping ターゲット(ホスト名かIPアドレス)


traceroute 対象までのネットワーク経路を確認

traceroute ターゲット


ifconfig インターフェースのIPアドレス等を表示

ifconfig インターフェース


netstat ネットワークの状況表示


  • -r:ゲートウェイまでの流れを表示

  • -n:IPアドレスで表示


その他


echo 文字列や変数を表示

echo 文字列


yum パッケージを取得してインストール

yum コマンド [パッケージ]


  • install:インストールコマンド

  • list installed:インストール済みパッケージを一覧表示

  • remove:パッケージアンインストール

  • search:パッケージ検索


  • -y:すべてyesとしてインストール



rpm RPMパッケージインストール

rpm オプション xxx.rpm


  • -i:インストール

  • -vh:イン直状況

  • -e:アンインストール

  • -Uvh:アップデート

  • -qa:インストール済パッケージ表示

  • --force:強制インストール


df ディスクの使用量を表示


top システムの負荷状況を表示


  • c:コマンドの詳細表示とノーマル時の切り替え

  • q:終了

  • Shift+M:メモリー使用量順に並び替え

  • Shift+T:CPU仕様時間順に並び替え

  • Shift+P:CPU使用率順に戻す


history コマンドの実行履歴を表示


chkconfig システム起動時のサービス自動起動などの設定


  • chkconfig サービス名 on/off


service サービスの起動や停止を実行

service サービス名 コマンド


  • start:起動

  • restart:再起動

  • stop:停止

  • status:状態確認


date 現在日時を確認


  • +書式:書式を指定して日時を出力

  • %Y%m%d:YYYY年MM月DD日


sleep 指定時間停止

sleep 指定


  • 10s、10m、10h、10d:10秒、10分、10時間、10日


which コマンド自体のパスを表示

which コマンド名


alias コマンドの別名を登録する

alias 別名=登録したいコマンド


man コマンドの使い方マニュアルを見る

man コマンド名


コマンドのヘルプ

コマンド --help