大量のファイルを削除する
- たとえばtmpディレクトリのファイルをすべて削除する場合など
- 通常の
rm
で削除すると引数リストが長すぎます
と怒られる場合- 引数に渡せる総バイトを超えていることが原因
ls | xargs rm
-
xargs
を使うと、引数に渡せる限界ギリでコマンド発行、さらに繰り返しをしてくれる
フォルダの中にあるファイルの数を数える
ls -l | wc -l
ハードディスクの使用量を確認する
- 全体使用量
df -h
- 特定のフォルダ以下の使用量
du -sh ./usr
長いジョブを実行しないといけないが、ターミナルを閉じて帰りたい時
- 通常はコマンド叩いて実行中にターミナルを閉じるとジョブはstopされる
- 帰りたい時もあるし、wifi切れて切断になっても止まってしまう
これから実行しようという時
-
nohup
を使うだけ- これだけで実行後はターミナルを閉じても処理は継続する
nohup hoge.sh
もう実行してしまっている時
- 長いジョブ実行中のターミナルで
ctrl + z
を押す- これによりジョブが一時中断状態になり、別コマンドを受け付けるようになる
-
bg 1
を発行すると一次中断ジョブをバックグラウンドに回して再開させる-
bg 1
の1
はバックグラウンドの1番目の意味で、複数あればインクリメント
-
-
disown %1
で自セッションのジョブでなくする- これをすることでターミナルを閉じてもジョブは継続するようになる
ディレクトリがなかったらディレクトリを作成する(サブディレクトリも)
! test -d /hoge/fuga && mkdir -p /hoge/fuga
自分のシェル名を取得する
echo ${0##*/}
catで出力する結果の最後に改行を付与する
- cat結果をリダイレクトすると改行つかないんだよなぁって時
function catln() {
echo "$(cat $@)"
}
catln(hoge.txt) >> fuga.txt
相手サーバのポートが空いているか確認する
nmap -p 80 hoge.co.jp
ディレクトリを再帰的に作成する
ネストしたディレクトリを一気に作成してくれる。
すでに存在するフォルダを指定してもエラーとしないでやってくれるのがいいところ。
mkdir -p ./test/test1/test2
braceを使って複数のディレクトリを一気に作成することもできる
mkdir -p ./test/{hoge,fuga,log}
フォルダの圧縮、解凍
なんどやってもうろ覚えでtarに怒られる
tar zvcfp xxxxx.tar.gz [directory]
tar zvxfp xxxxx.tar.gz
なお、特定のフォルダを除外して圧縮するには --exclude
を使えばOK
tar zvcfp xxxxx.tar.gz --exclude [exclude directory path] [directory]
ssh(scp)でファイルをダウンロードする(鍵認証)
サーバからダウンドードするとして、クライアント側のターミナルで実行
サーバにsshで接続してから実行するのではない
scp -i ~/.ssh/xxxxxxx.pem -r server_loginid@xxx.xxx.xxx.xxx:target_dir ./download_dir
ディスク使用量を調べる
全体
df -h
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1 233Gi 148Gi 84Gi 64% 2901840 4292065439 0% /
devfs 184Ki 184Ki 0Bi 100% 637 0 100% /dev
特定のディレクトリ配下
du
はいくつか使い方があるけど↓が個人的に一番使用頻度が高い
du -sh ./*
38M ./cache
16K ./certs
7.7G ./machines
メモリ使用量が多い順にプロセスを表示
ps alx | awk '{printf ("%d\t%s\n", $8,$13)}' | sort -nr | head -10
ユーザに所属グループを追加する
usermod -aG user group
定期的に古いファイルを削除する
cron
と find
を使う古典的手法で。
# 毎日4時に実行
0 4 * * * find /path/to/log -name '*.log' -mtime +30 -delete
ショートカット
オリジナルファイルのバックアップ
cp -p ~/hoge ~/hoge.org
とか書くことすらめんどい
cp -p ~/hoge{,.org}
オリジナルファイルとのdiff
diff -u ~/hoge.org ~/hoge
とか書くことすらめんどい
diff -u ~/hoge{.org,}
mkdirしてすぐcdする
$_
の意味はググってくださいませ
mkdir hoge && cd $_