Bash コードスニペット集

Bash の基本的なコードスニペットを集めた備忘録です。

    Loading...

## .bashrc の設定

ターミナルセッションの設定と、便利なエイリアス各種を設定します。以下の例では ls に手を加えています。

~/.bashrc
if [ $UID -eq 0 ]; then
  PS1="\[\033[31m\]\u@\h\[\033[00m\]:\w\n\$ "
else
  PS1="\[\033[34m\]\u@\h\[\033[00m\]:\[\033[36m\]\w\[\033[00m\]\\n\$ "
fi

export LSCOLORS=cxfxexdxbxegedabagacad
alias ls="ls -FG --color=auto"
alias ll="ls -lh"
alias tree="tree -C"
alias back="cd $OLDPWD"
alias py="python3"

## リダイレクト

command > file   # 標準出力を上書きして書き込み
command >> file  # 標準出力を追加書き込み
command 2> file  # 標準エラー出力を上書きして書き込み
command &> file  # 標準出力、エラー出力を同一ファイルに書きこみ

## for による繰り返し

ファイル名のループ:

for file in *.txt; do
  echo "$file"
done

seq を使った連番生成:

for i in $(seq 1 10); do
  echo $i
done

ブレース展開↗を使用した連番生成:

for i in {1..10}; do
  echo $i
done

## ファイルを読み込む

while read line; do
  echo "$line"
done < "file.txt"

## ヒアドキュメント

bashのヒアドキュメントを活用する - Qiita
ヒアドキュメントとは複数行の文字列を簡潔に記述するための機能です。これをecho 'hoge'echo 'fuga'echo 'piyo'こんな風に記述できますcat &lt;&lt; EOSh…
bashのヒアドキュメントを活用する - Qiita favicon qiita.com
bashのヒアドキュメントを活用する - Qiita
cat << EOF
hoge
fuga
EOF

ヒアドキュメントをファイルに書き込む:

cat << EOF > "file.txt"
hoge
fuga
EOF

## find コマンドの活用

# ファイルを検索して消す
find . -name "*.txt" -type f | xargs rm

# ファイルの容量を見る
find . -name "*.txt" -type f | xargs ls -lh

# ファイルから共通する行を抽出
find . -name "*.txt" -type f | xargs cat | grep "string" 

# ファイルを特定のディレクトリに移動
find . -name "*.txt" -type f | xargs -I{} mv {} ./path/to/dir

## sed

ファイルの中身を表示:

# 1,3行目を標準出力
sed -n 1,3p file.txt

ファイルの中身を正規表現で置換:

# hoge を fuga にすべて置換して標準出力
sed "s/hoge/fuga/" file.txt

# 置換した内容を上書き
sed -i "s/hoge/fuga/" file.txt

# 3行目のみ置換
sed -e "3 s/hoge/fuga/g" file.txt

## awk

やる気出たら書きます…

Discussions

記事がありません