Shellメモ


Shell

if文

IF[ $0-eq 0]
THEN
echo "success"
ELIF[ $0-eq 1]
THEN
echo "failed,code is 1"
FI

for文

#FOREACH
for i in $@
do
    echo $i
done

#FOR
for((i =0; i <10; i++))
do
    echo $i
done

while文

while["$ans"!="yes"]
do
read -p "please input yes to exit loop:" ans
done

head | tail

#上からN行目以前の内容を取得
head +20 notes.log
#下からN行目以前の内容を取得
head -20 notes.log

#監視
tail -f notes.log
#上からN行目以後の内容を取得
tail +20 notes.log
#下からN行目以後の内容を取得
tail -20 notes.log

grep

#検索したい文字を含む行を取得
grep "string" *.txt
#検索したい文字を含まない行を取得
grep -V "string" *.txt
#正規表現を使用
grep -E "string[0-9]" *.txt
#他の使用例
cat file | grep "string"

find

#ファイルやフォルダを検索コマンド
#名前指定でファイルやフォルダ検索
find path -name "*.txt"
find path -name "*.txt" -type f #ファイルのみ検索
find path -name "*.txt" -type d #フォルダのみ検索
#権限指定で検索
find path -perm 777
#ユーザーで検索
find path -user root
#変更時間で検索
find path -mtime -5 #5日以内のもの
find path -mtime +3 #3日以前のもの
#サイズで検索
find path -size +1024k #1M以上のもの
find path -size -1024#1M以下のもの
#検索したものに他の処理を追加
find path -name "*.txt"|xargs rm -rf #削除
find path -name "*.txt"|xargs ls -l #権限を見る

sed

#2行目を表示($は最後行)
sed -n '2'p file
#1行目~4行目を表示
sed -n '1,4'p file
#正規表現使用、losを含む行をを表示
sed -n '/los/'p file
#正規表現使用、4行目からlosを含む行までの内容をを表示
sed -n '4,/los/'p file
#1行2行目を表示しない
sed -n '1,2'd file

awk

#ファイル内の全部列を表示
awk '{print $0}' file.txt
#ファイル内の第1列と第7列を表示
awk '{print $1,$7}' file.txt
#ファイル内の第1列と第7列を表示(「:」で分割した列)
awk -F: '{print $1”\t”$7}' file.txt
#ファイル内の第3行目の第1列を整数に変換して表示(NRは行の意味、NFは列の意味)
awk '{if(NR==3){print int($1)}}' file.txt
#ファイル内の[192.168.100.1]を含む全部列を表示(「!~」は含まない)
cat file | awk '{print $1~/192.168.100.1/{print $0}}' 

crul

uniq

#重複内容を排除して表示
uniq file
#重複回数を表示
uniq -c file
#重複行のみ表示
uniq -d file

sort

#昇順
sort file 
#降順
sort -r file 
#「:」で分割、一列目の降順
cat file | sort -t: -k1 -r

less

コマンド 動作内容
読込 r 画面を再描画します。
読込 R 画面を再描画します。(閲覧中に変更があった場合にその内容が反映されます。)
読込 F ファイルの最終行を読み続けます。(「tail -f」コマンドと同様)
移動 SPACE 1画面進めます。
移動 d 半画面進めます。
移動 RETURN 1行進めます。
移動 b 1画面戻ります。
移動 u 半画面戻ります。
移動 y 1行戻ります。
移動 g, < ファイルの先頭に移動します。
移動 G, > ファイルの終端に移動します。
検索 /パターン 「パターン」マッチする前方検索を行います。
検索 ?パターン 「パターン」マッチする後方検索を行います。
検索 n 前回の検索を繰り返します。
検索 N 前回の検索を逆方向へ繰り返します。
ヘルプ h, H ヘルプを表示します。
終了 q, Q, :q, :Q, ZZ 終了します。

その他

#プロセスを調べる
ps -ef | grep ssh
#行数を統計する
xxxx | wc -l
#フォルダコピー(dir2存在しない場合)
cp -r dir1 dir2
#ファイルを5行ごとに分割
split -5 file newfile