LinuxのTip集
この記事について
この記事はLinuxについての小ネタ・小技的なものを書き連ねる。
著者はUbuntuを使っているのでUbuntuよりであると思うが基本的にはどのディストリビューションでも使えるようなものをまとめるつもりである。
なお新たなTipが見つかったりしたら更新する予定です。
rc系ファイル
rc
はRun Command
の略でありそれぞれの起動時に実行されるコマンドである。
OS起動時コマンド群
/etc/rc$n.d/
以下のディレクトリにあるファイル群で$n
はランレベルを表している。
それぞれのランレベルに応じた起動プロセス=初期化などが記述されている。
ラン(起動)レベルとは
- 0: 停止、全ての機能が停止した状態
- 1: シングルユーザーモード、管理者(root)のみアクセスできるモードでネットワークもオフ、ログイン時にパスワードがいらない、基本的に緊急用
- 2: CLIのマルチユーザーモードのネットワークオフ、何らかの理由でネットワークに繋ぎたくない用
- 3: CLIのマルチユーザーモード、CLI=黒い文字列の操作画面のみでサーバー用途用
- 4: 未定義、いろいろカスタマイズできるのでカスタマイズ用としても使える(?)
- 5: GUIのマルチユーザーモード、いわゆる普通のPCが立ち上がったモード
- 6: 再起動、全てのデーモンプロセスに停止シグナルを送って停止させているモード
.XXXrc
先頭の.
は隠しファイルを意味して通常は表示されない。(ls -a
を付けると表示される)
XXX
はプロセスの名前でプロセスを起動させたときに実行される初期化処理などが書かれている。
.bashrc
いわゆるbashが起動するときの起動スクリプト、現在のLinux(少なくともUbuntu)ではシステム設定が書かれているので基本的にユーザーは書き換えずにユーザー用の.bash_profile
にユーザー用設定を書くべきである。
この.bash_profile
は.bashrc
の中の以下の部分で読み込まれている。
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
リソース確認系コマンド
プロセス系
ps
今実行しているプロセスを表示する。よくps ax
のような形で実行される。ps ux
などの形で一覧表示することが多い。(と思う)
$ ps ux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
$name $num 0.0 0.0 127568 3916 pts/52 Ss 21:03 0:00 -bash
このような形で一覧が表示されるa
オプションを付けると全てのプロセスになる
top
現在実行しているプロセスをリアルタイムで表示する。
オプション
-b
バッチモードオプションを使うことで普通のコマンドっぽく解析していろいろが出来る
次のようなオプションで表示をフィルターすることも可能である。
-
-n $num
回数 -
-d $sec
間隔 -u/U $user
-
-p $pid
プロセスIDを指定
メモリ系
free
メモリの空きと使用している容量をみる。Linux系では空き容量の確認はf(ree)と名付けられているようである。
ストレージ系
df(Disk free)
ファイルシステムの空き容量を見る。各パーティションのマウントポイント等しかでない。各ディレクトリの情報などは下のdu
を使う。
du(Disk used)
そのファイル(ディレクトリ)が使っている容量を見る。
よく使う、オプションなど
-
-h
:--human-readable
の略で人に分かりやすい表示形式 -
-maxdepth(mindepth)
: 再帰するディレクトリの最大(最小の)深さ。
コマンドイディオム
コマンドの結果を検索
ps -aux | grep "$str"
コマンドで検索=grepなので単にパイプでつなぐだけ
- grepコマンドのmanでは
grep [OPTION...] PATTERNS [FILE...]
となっているのでこっちのほうが特殊用途と思われる。
自動バックアップファイルの削除
$ find ${dirname} \( -name "*~" -o -name "#*#" -o -name "*.swp" \) -delete
*~
: Linuxの自動バックアップファイル、#*#
: emacsの編集中のファイル、*.swp
: vi系の編集中のファイルを削除する。
条件は()
でまとめるがコマンドでは\
でエスケープする-o
はor(アンドは-a
)
k(キロ),G(ギガ),T(テラ)表示でのソート
$ du -lh -d ${max_depth} | sort -h
-d ${max_depth}
は--max-depth=n
の略、掘りたいディレクトリの深さ(--min-depthと合わせることで特定の深さだけ表示させることも可能)。
-h
はk/G/Tでの表示でsortコマンドでも使えるのでこれでソート表示可能
- ただし、検索が終わるまで表示をためるので容量が大きい場合は表示まで時間がかかる(パイプで繋がなければ終わったものから順次表示される)
ログ用ファイルの書き出しとdateとtee
$ du -lh -d ${max_depth} | sort -h | tee "du_$(date "+%Y%m%d).log"
上は前の書き出しをdate
コマンドで日付をつけたものをtee
コマンドで標準出力とファイルに書き出している。
tee
はT
で書き出し先を2方向に分岐することから来ている。(因みにT字路は本来丁字路で別である。)
dateのオプション
dateコマンドは日付を書き出すコマンドである。何もオプションをつけないと環境に従った形式で出力される。例えば日本語(日本時)環境だと2020年 11月 10日 火曜日 12:50:14 JST
となる。
"+{...format}"
を使うことで形式を変更することが可能である。"%Y"は4桁の西暦、%y
は西暦の0埋め有の下2桁、%-y
で0埋め無、%_y
でスペース埋め(これらの埋めは他のオプションでも使える)。
細かいオプションなどはこの記事で確認できる。
あとがき
終わってないのでnull
Discussion