UNIX系コマンド

UNIX系OSで使えるコマンド

筆者はLinuxかmacOSを使うことが多い。

About

Linux(GNU系)とmacOS(BSD系)では同じコマンドでもオプションや挙動が違うことがあるので、注意が必要。

参考:

関連ページ

リファレンス

日付・時刻・時間

date

https://linuxjm.osdn.jp/html/GNU_coreutils/man1/date.1.html

※macOS(BSD系)だとオプションが異なる

Examples:

# 書式指定
date +%Y%m%d # YYYYMMDD
date +%FT%T  # ISO8601風
date +%s     # unixtime
date +%s.%N  # ナノ秒まで取得
date +%s.%3N # ミリ秒まで取得

# 日時指定/相対
## GNU系
date -d tomorrow # 明日
date -d '1 hour' # 1時間後
date -d '1 days ago' # 昨日
## macOS
date -v -1d # 昨日

# 日時指定/絶対
## GNU系
date -d @1530675922 # unixtime
## macOS
date -r 1530675922 # unixtime

# ファイルのタイムスタンプを取得
date -r FILE
## unixtime形式で取得
date +%s -r FILE

# macOSで任意の日時を任意のフォーマットで
date -f '入力フォーマット' -j '日時' +'出力フォーマット'
## 具体例
date -f '%F %T' -j '2021-03-01 01:30:00' +'%s'

NOTE:

  • Mac だと -d '〜' オプションが使えない
  • %N はGNU拡張らしい

参考:

アーカイブ

zip/unzip

## dir/ を再帰的に圧縮
## 展開すると dir/ も出来る
zip -r foo.zip dir/

## 中身を bar/ に展開
unzip foo.zip -d bar/

参考:

チェックサム

cksum

ファイルのCRCチェックサムを算出し、ファイルサイズとともに表示する。

※CRC-32 (IEEE規格)とは異なる

例:

$ cksum foo.txt
4032292776 319 foo.txt

関連項目:

参考:

md5sum

MD5ハッシュ値を算出

例:

$ md5sum foo.txt
1d1e64beb5220bf54122293141185c1a  foo.txt

参考:

shasum

SHAチェックサムを算出する。
-a オプションでアルゴリズムを指定できる。
デフォルトはSHA-1

Examples:

$ shasum foo.txt
f1d2d2f924e986ac86fdf7b36c94bcdf32beec15  foo.txt

$ shasum foo.txt -a 256
b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c  foo.txt

類似コマンド:

  • sha1sum
  • sha256sum
  • sha512sum

例:

$ sha256sum foo.txt
b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c  foo.txt

ファイルシステム

exportfs

exportfs -a  # /etc/exports の全てのディレクトリをエクスポート
exportfs -v  # 現在エクスポート中のディレクトリ一覧

参考:

mount

## uid, gid指定
mount -o uid=1000,gid=1000 /dev/sdb1 /mnt

※NFSの場合、uid/gid指定は不可

See also:

参考:

umount

umount <mount先>
umount <mount元>

リソース管理

top(1)

top(1): tasks - Linux man page

Examples:

# インタラクティブモード
top
## 描画間隔を5秒に変更
top -d 5

# バッチモードで1回だけ実行
top -b -n 1
## CPUコアごとの負荷も表示
top -b -n 1 -1

インタラクティブモードの主な操作:

  • M … メモリ使用率順にソート
  • P … CPU使用率順にソート
  • 1 … CPUコアごとの負荷を表示
  • c … プロセス名詳細を表示(トグル)
  • q … 終了
  • F or O … ソートするフィールドを選ぶ
  • R … ソートの昇順/降順を切り替え

Mac版の違い:

  • -b オプションやバッチモードがなさそう
  • CPUコアごとに負荷を見る方法がわからん

参考:

ユーティリティー

history

Bash, Zshで引数の扱いが異なるところがある。

# Zsh
history -N

# Bash
history N

参考:

timeout

timeout <N> command args...

指定した秒数の経過後、コマンドを終了する。

オプション:

オプション意味
-s <シグナル>
--signal=<シグナル>
タイムアウト時に送信するシグナル。デフォルトは TERM
-k <N>
--kill-after=<N>
最初のタイムアウトでシグナル送信後、指定時間を過ぎてもコマンドが動いている場合、 KILL シグナルを送る

参考:

watch

watch -n <N> command args...

N秒ごとにコマンドを実行して出力を表示。

参考:

xargs

NOTE:

オプションGNUmacOS機能
-rYes?入力が空白しかないときはコマンド実行しない

参考:

Child Pages