Linuxコマンドチートシート

Linuxコマンドチートシート

scp

scpコマンドでリモートサーバに接続してアップロードやダウンロードすることが出来ます。

GUIツールだとWinSCPが有名です。

scpでアップロード

リモートサーバ(ホスト名:remotehost)にアップロードする例です。

s$ cp a.jar remotehost:/tmp/.

このコマンドで、remotehostサーバの/tmp配下にa.jarを配置することが出来ます。

scpでダウンロード

リモートサーバ(ホスト名:remotehost)からダウンロードする例です。

$ scp remotehost:/tmp/a.jar ./

このコマンドでremotehostサーバの/tmp配下のa.jarを、コマンドを叩いた場所(上記ではカレントディレクトリ)にダウンロードすることが出来ます。

historyでコマンド履歴参照

historyコマンドでコマンドの履歴を参照できます。

  641 export xxxx
  642 aws secretsmanager get-secret-value --secret-id hoge --query SecretBinary --output text | base64 -d > hoge.pem
  643 exit
  644 ls -la
  645 history

上記のように過去のコマンドが表示されて、!番号とすれば実行することが出来ます。

mvで移動

mvコマンドは移動させるコマンドです。

$ mv a.txt /tmp/.

これでa.txtを/tmp配下に移動させることが出来ます。

tailでログファイルを参照

アクセスログなど常に出力されるログファイルを見たい場合は、catやviewよりtailコマンドで参照すれば末尾のログが常に見えて便利です。

$ tail -500f /opt/tomcat/logs/catalina.out

-30fとすると、末尾30行をモニタリングしていきます。

tailコマンド結果をgrep

tailコマンドでモニタリングしても、ログ出力量が非常に多い場合などの場合、tailコマンドでログを追えません。そういう場合はgrep –line-bufferedオプションを使用してログをgrepします。

$ tail -100f hoge.log | grep --line-buffered "20150101"

20150101という文字列の行だけモニタリングできるようになります。

grep --line-bufferedの詳細については「Linuxのtailコマンドで指定した文字でフィルターする方法」を参照ください。

psでプロセス確認

psコマンドでプロセスを確認することが出来ます。

$ ps axuw | grep java

dateで形式指定

dateコマンドで出力方法をISO8601形式にしたり色々指定ができます。

$ date --iso-8601
2015-11-10
$ date --iso-8601='seconds'
2015-11-10T08:27:48+0900
$ date --iso-8601='minutes'
2015-11-10T08:27+0900
$ date --iso-8601='hours'
2015-11-10T08+0900
$ date --iso-8601='ns'
2020-11-10T08:55:04,941599660+0900

dateでエポックタイムに変換

現在時刻をエポックタイムに変換します。

$ date +%s
1447154040

–dateオプションで時刻を指定してエポックタイムに変換することもできます。

$ date --date='2015-11-10T20:14:00+09:00' +%s
1447154040

〇分前の時間を指定したりすることもできます。

–date=’3minutes ago’オプションを指定すれば現在日時から3分前になります。

$ 3分前
$ date --date='3minutes ago'
2021年 1月 21日 木曜日 14:24:07 JST
$ #エポックタイム
$ date --date='3minutes ago' +%s
1611206656

egrep

egrepコマンドでgrep(拡張版)を行うことができます。grep -Eと同じです。

egrep '対象文字列' ファイル

具体的には以下のような感じです。

egrep '2020/11/17' /home/ec2-user/a.log

-Aオプションを指定してマッチした行から指定した行数後ろを表示します。

以下ではマッチした行から30行後ろを表示します。

$ egrep '2020/11/17' -A30 /home/ec2-user/a.log

cut

cutコマンドで必要な文字だけ出力したり加工したりすることが出来ます。

-bオプションで指定した数値。基底値は1です。

$ echo 12345678901234567890 | cut -b1-
12345678901234567890
$ echo 12345678901234567890 | cut -b0-
cut: フィールドと位置は1から始まる番号です
Try 'cut --help' for more information.
$ echo 12345678901234567890 | cut -b2-
2345678901234567890

xxdで16進数表記する

xxdコマンドで16進表記にすることができます。オプションの詳細はxxd -hです。

xxd -pで行います。

$ echo HOGE | xxd -p
484f47450a

戻すときは-rオプション(reverse)をつけて戻すことができます。

$ echo 484f47450a | xxd -p -r
HOGE

zipinfo

Linuxコマンドのzipinfoでwarファイルの中身を見る」を参照下さい。

jar

Linuxコマンドのjarでjavaファイル一覧を表示する」を参照ください。

less

Linuxコマンド わかりやすくless」を参照下さい。

md5sum

Linuxコマンドのmd5sumをわかりやすく説明する」を参照下さい。

rm

rmコマンドで削除確認をせずにファイル削除するには-fオプションを使います。

$ rm -f ファイル名

参考ページです。

rmコマンド

curl

curlチートシート」を参照ください。

test

ファイルやディレクトリの存在チェックをするtestコマンドの使い方」を参照ください。

ls

lsコマンドとwcコマンドをパイプでつないで、ディレクトリ配下のファイル数を調べます。

$ ls | wc -l

これでファイル数を調べることができます。

ファイルオーナー、パーミッションが同じであることを確認したい場合、ls -lで複数ファイルを引数に指定します。

takahashi-h5@takahashi-h5:~$ ls -l a.txt b.txt
-rw-rw-rw- 1 takahashi-h5 takahashi-h5 29 May 20 2020 a.txt
-rw-rw-rw- 1 takahashi-h5 takahashi-h5 38 Nov 10 2019 b.txt

tar

.tar.gzや.tgzで圧縮するコマンドです。

圧縮するディレクトリ名をtestとします。

$ tar -zcvf a.tar.gz test

これでtestディレクトリを圧縮したa.tar.gzファイルが作成されます。

オプション 意味
-v アーカイブ結果を表示する
-t アーカイブの内容を一覧表示する
-z gzip形式で圧縮する(拡張子は.tar.gz、.tgzがよく使われる)
-f ファイル名 アーカイブファイル名を指定する
-x gzip形式を展開する
-c アーカイブ作成する

アーカイブを展開するコマンドです。

$ tar -xzvf a.tar.gz

export

-nオプションで環境変数削除します。

$ export -n http_proxy
$ export -n https_proxy

opensslコマンドでpemファイルの有効期限確認

$ openssl x509 -noout -dates -in hoge.pem
notBefore=Jan 1 00:00:00 2015 GMT
notAfter=Dec 31 23:59:59 2037 GMT

opensslコマンドでpfxからpemファイルに変換

pfxファイルをpemファイルに変換します。hoge.pfxをhoge.pemに変換する例です。

$ openssl pkcs12 -in ./hoge.pfx -out hoge.pem -nodes -clcerts
Enter Import Password:
MAC verified OK

xargsコマンドで改行ごとにxargsの後ろのコマンドを実行する

echoコマンドで改行を入れてxargs 実行コマンドを2回実行します。2つのサーバに順次ログインしてコマンド実行します。

sshでログインして、ls -lを実行する例です。

$ echo "a-server
b-server" | xargs -Ixx ssh -q -t xx 'ls -l'

2つのサーバのログを同時にgrepするコマンド例です。

$ echo "a-server
b-server" | xargs -P1 -Ixx ssh -q -t -t xx 'sudo \
  zgrep --color=always "検索対象文字列" /opt/tomcat/logs/ログファイル名 \
'

cp

cpコマンドでファイルに日付を付けてバックアップしたいケースがあります。

cp -p /tmp/a.php /tmp/a.php_$(date +%Y%m%d)

md5sumコマンドでファイルの同一性をチェックする

md5sumコマンドでファイルの同一性をチェックする」を参照ください。

コメント

タイトルとURLをコピーしました