2017年6月3日土曜日

便利だけど忘れやすいLinuxコマンドまとめ

毎回忘れて検索している気がするので、探しやすいようにメモしておきます。

見辛いCSVを整形してターミナルで閲覧

# 他にも色々あるけどインストールが楽 (go get github.com/Konboi/csviewer)
csviewer -p test.csv
cat test.csv | csviewer

見辛いHTMLを整形してターミナルで閲覧

# xmllintは色々面倒なのでtidyを利用 (apt-get install tidy)
tidy -i -utf8 < test.html | vim -

見辛いJSONを整形してターミナルで閲覧

# apt-get install jq
jq -C . test.json | less -R

文字列を含む箇所を前後5文字を含めて抽出

# 改行のない最小化ファイルの検索に便利
grep -o -E '.{,5}foobar.{,5}' test.txt

ディレクトリの使用量を見やすい形で表示

du -sh dir

時刻/日付をUNIX TIMEに変換

date +%s                            # 現在時刻
date +%s --date `date -Idate`       # 今日の日付
date +%s --date 2017-06-01          # 指定した日付
date +%s --date "2017-06-01 12:00"  # 指定した時刻

UNIX TIMEを時刻に変換

date --date @1496242800

プロセスの表示 (ps)

# chromeなどの表示がうざいので折り返しなしで表示
ps aux --sort -pcpu | less -S  # CPU使用量順
ps aux --sort -rss  | less -S  # メモリ使用順

プロセスの表示 (top)

top  # まずは平凡に起動
# Shift+PキーでCPU使用量順
# Shift+Mキーでメモリ使用順順
# Shift+Tキーで実行時間順

プロセスをcgroupのtreeで表示

systemd-cgls

プロセスの停止

ps aux | fzf | awk '{ print \$2 }' | xargs kill -9
ps aux | fzf --preview 'echo {}' --preview-window=bottom:wrap | awk '{ print \$2 }' | xargs kill -9  # おすすめ

OSのバージョン表示

uname -a                 # カーネルのバージョン
cat /etc/lsb-release     # Ubuntuのバージョン
cat /etc/debian_version  # Debianのバージョン

ユーザ設定を読み込んでコマンドを実行

bash -lc 'command'  # ~/.bash_profileを読み込んで実行
bash -ic 'command'  # ~/.bashrcを読み込んで実行

サーバ上のXを利用 (SSH上で画像を開く等)

# サーバ側でSSHのX11 Forwardingを有効にする事前準備は必要
ssh -XC user@host    # X11転送を有効にしてSSHクライアントを起動
# display image.png  # ログイン後はXが必要なコマンドも使える

気軽にHTTPサーバを立てる

python -m SimpleHTTPServer [port]  # python2
python -m http.server [port]       # python3
ruby -run -e httpd . -p [port]     # ruby1.9.3-

ユーティリティコマンド

bc                  # 電卓
cal                 # カレンダー
curl wttr.in/tokyo  # 天気
time hoge           # hogeの実行時間を計測

関連付けに従って開く

gnome-open https://www.google.co.jp/
xdg-open test.txt

文字化けするzipファイルを展開

unzip -O cp932 test.zip

unzipで複数ファイルを一括展開

unzip '*.zip'  # シングルコーテーションなどで囲うのが重要
unzip \*.zip  # これでも動くけど上のほうが覚えやすいかな?

最近は使われない圧縮形式の展開

# x付ければ大抵なんとかなる
# 最近はatool (apt-get install atool) を使ったほうが楽かも
lha x foo.lzh    # LZH (apt-get install lha)
unrar x foo.rar  # RAR (apt-get install unrar)

コマンド終了時にメール送信

# メールコマンドのインストールと設定が必要
# 最近はTwitterに通知するスクリプトを作ったほうが気楽かも知れない
command && echo [content] | mail -s [subject] [to@example.com]

Git関連

git config --global core.quotepath false  # 日本語ファイルの文字化け回避

エイリアスに登録

alias ps-cpu="ps aux --sort -pcpu | less -S"
alias ps-mem="ps aux --sort -rss | less -S"
alias osversion="cat /etc/lsb-release"
alias unixtime="date +%s"
alias unixdate="date +%s --date `date -Idate`"
alias weather="curl wttr.in/tokyo"
alias pskill="ps aux | fzf --preview 'echo {}' --preview-window=bottom:wrap | awk '{ print \$2 }' | xargs kill -9"
頻繁に使うものや特に忘れやすいものはエイリアスに登録しておくと楽です。 ~/.bashrcに上記を登録しても良いかも知れません。

0 件のコメント: