LoginSignup
28
30

More than 5 years have passed since last update.

LinuxコマンドTipsあれこれ(随時更新)

Last updated at Posted at 2016-03-14

大量のファイルを削除する

  • たとえば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 11 はバックグラウンドの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 

定期的に古いファイルを削除する

cronfind を使う古典的手法で。

# 毎日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 $_
28
30
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
30