0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

備忘録:Linuxコマンド & ショートカット等

Last updated at Posted at 2021-12-10

はじめに

よく使うけ、ど忘れしてしまうLinux周りのコマンド集です。
※随時更新予定

grepコマンドオプション

-e:複数指定
-E:拡張正規表現
-v:指定した以外を検索
-r:ディレクトリの中も検索
-i:大文字小文字を区別しない
-o:指定した文字のみ取り出し
-B:検索でヒットした前の行を出力 ex: grep test -B 10 test.txt
-A:後の行
-C:前後の
-c:検索でヒットした行数
-n:行番号を付け出力
-w:単語の完全一致検索
-l:ファイルのリストを出力

gz形式などで圧縮されたファイルをgrepしたい場合

  • zをgrepの先頭につけて実行します。
zgrep

mkdir

-p 親ディレクトリも作成
-m パーミッション指定して作成

awk

-F:区切り文字を指定

# 三項演算子 (条件 ? 条件が正の場合の値:条件が偽の場合の値)
$ seq 10 | awk '{print $1%2 ? "奇数":"偶数"}'

組み込み変数

  • NR:処理中の行数を取得する

sed

  • 文字の置換する場合に使用
  • -E:拡張正規表現(-rでも同じ使い方ができる)
# 特定の文字を入れ替える
$ echo teet | sed 's/ee/es/'
test

# 末尾にgを付けて、一致する全ての文字を置換
$ echo teet | sed 's/e/s/g'
tsst

# &で検索対象の文字を格納
$ echo test | sed 's/test/&&/'
testtest

# \1,\2,\数字で()で指定した文字を参照する
echo test | sed -E 's/(te)(st)/\2\1/'
stte

# 末尾にpで前に指定した一致する行を出力する。
# -nオプションで各行を出力させない
$ sed -n '/\.txt$/p'

xargs

  • コマンドに引数を渡すときに使用
# 後ろにコマンドを指定しないとechoを実行する
$ seq 10 | xargs
1 2 3 4 5 6 7 8 9 10

# -n数字オプションで指定した数ずつコマンドに渡す
$ seq 10 | xargs -n5
1 2 3 4 5
6 7 8 9 10

# -I@ @にxargsが受け取ったものを1つずつ格納できる(複数のファイルを作成するときなどに便利)
$ seq 10 | xargs -I@ mkdir dir_@
$ ls
dir_1  dir_10  dir_2  dir_3  dir_4  dir_5  dir_6  dir_7  dir_8  dir_9

# -P数字で並列処理を行う
# PCのcpuが分からなければnprocで調べられる。
$ seq 10 | xargs -P2 -I@ mkdir dir_@
$ seq 10 | xargs -P$(nproc) -I@ mkdir dir_@

cp

cp コピー元 コピー先
-i 上書きの場合、可否を確認
-r(R) ディレクトの中身ごとコピー
-p コピー元の日時を継承

ファイルのバックアップを取るときに下記の書き方をすればファイル名を追記せずにスマートにバックアップが取れる。
cp test.conf{,.202112bk}

mv

mv 移動したいfiledir 移動先dir
mv 名前を変更したいfiledir 変更したい名前filedir
mv file file file dir/.
┗複数のファイルを移動
-f 移動先に同名ファイルがあれば強制的に移動
-i 確認

rm

-r(R) ディレクトリを削除
-f 確認なしで削除

su

ハイフン 環境変数を引き継かず、ユーザーのホームディレクトリに移る
-c "" ""内のコマンドを実行

ssh-keygen

-t 暗号方式指定 デフォルトはrsa
-b ビット数を指定
-y OpenSSH形式の秘密鍵ファイルを読み出し、OpenSSH形式の公開鍵を標準出力に出力する
-f ファイルを指定

read

ユーザーからの入力値を受け取り、変数に格納してそれを次の処理で使用したい場合に使用
-p コメント入力

yumとrpmコマンド

インストールしたソフトウェアの一覧
yum list installed

yumリポジトリにソフトウェアがあるか確認
yum info

rpmパッケージ削除
rpm -evh soft

rpmパッケージの保存
wget xxxxx.rpm

rpmパッケージのインストール
rpm -ivh xxxx.rpm

インストールされているrpmパッケージを一覧表示
rpm -qa

パッケージからインストールされたファイルを一覧表示
rpm -ql

ポートの確認

netstat -tnlp

ssh接続コマンド

ssh -i passwd namae@domein

ターミナルショートカット

shift + ctl + PgDn 1画面移動

正規表現

. 任意の1文字
+ 直前の文字の1回以上の繰り返し
* 直前の文字の0回以上の繰り返し
? 直前の文字が0か1か
^ 先頭
$ 後方
\ 正規表現ではないことを指定
[] 中の文字のどれか1文字

ヒアドキュメント

cat >> test.txt << EOF
aa
aa
aa
EOF

上記の書き方でファイルに追記することができる。シェルスクリプト作成時に便利

シェル関連

クオートの違い

''は中の変数をただの文字列として認識
""は中の変数を変数として認識

seq

-fオプションで数字を入れて出力ができる
%g(整数)
%f(小数)

seq -f 'echo %g個; sleep 1' 10 | bash

IFS

区切り文字を指定することができる
IFS=,

tee

標準入力から受け取った内容を、標準出力とファイルに書き出すコマンド

VIM小技

複数の行末に文字の挿入

  • 短形選択後に$A
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?