UNIX系コマンド
UNIX系OSで使えるコマンド
筆者はLinuxかmacOSを使うことが多い。
About
Linux(GNU系)とmacOS(BSD系)では同じコマンドでもオプションや挙動が違うことがあるので、注意が必要。
参考:
- List of Unix commands - Wikipedia … IEEE規格らしい
関連ページ
リファレンス
- SS64 Command line reference … Linux, macOS etc.
日付・時刻・時間
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拡張らしい
参考:
- 日付を取得する | UNIX & Linux コマンド・シェルスクリプト リファレンス
- date コマンド | コマンドの使い方(Linux) | hydroculのメモ
- date コマンドで日時のミリ秒単位まで表示する - Qiita
- dateコマンドで、ファイルのタイムスタンプを取得 | ex1-lab
- macOS:
- unixtimeとdatetimeを変換する(Mac/BSD編) - Qiita
- Macのdateコマンドで前日の日付を取得する - Qiita
- Macでdateコマンドを使いこなす - ののいち の 1.2..3…
アーカイブ
zip/unzip
## dir/ を再帰的に圧縮
## 展開すると dir/ も出来る
zip -r foo.zip dir/
## 中身を bar/ に展開
unzip foo.zip -d bar/
参考:
- Linuxコマンド集 - 【 zip 】 ファイルを圧縮する(拡張子.zip):ITpro
- Linux基本コマンドTips(35):unzipコマンド――ZIPファイルからファイルを取り出す - @IT
チェックサム
cksum
ファイルのCRCチェックサムを算出し、ファイルサイズとともに表示する。
※CRC-32 (IEEE規格)とは異なる
例:
$ cksum foo.txt
4032292776 319 foo.txt
関連項目:
参考:
- GNU Coreutils: 6.3 cksum: CRC チェックサムとバイト数を表示する
- Linuxコマンド【 cksum 】ファイルのCRCチェックサムとサイズを表示 - Linux入門 - Webkaru
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:
参考:
- 【 mount 】コマンド――ファイルシステムをマウントする:Linux基本コマンドTips(183) - @IT
- 製品レビュー:企業ユーザーのためのSFU 3.5活用ガイダンス 第1回 SFU 3.5の概要とNFS機能 2.NFSとユーザー名マッピング - @IT
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
orO
… ソートするフィールドを選ぶ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:
- ※Qiitaに記事を書いており、そちらを更新するケースもある:
オプション | GNU | macOS | 機能 |
---|---|---|---|
-r | Yes | ? | 入力が空白しかないときはコマンド実行しない |
参考:
Child Pages
最終更新 2021-03-04: [unix-cmd] Add note about date command on macOS (1763eafac)