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 ファイル名
参考ページです。
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コマンドでファイルの同一性をチェックする」を参照ください。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント