IT備忘録

インフラエンジニアのIT備忘録です

Linuxサーバ運用の備忘録

bashシェルスクリプトの書き方

shebang

bash(インタプリンタ言語)シェルスクリプトである事を明記する
#!/bin/bash

if、case、forのサンプルコード

github.com

for awkコマンドのサンプルコード

github.com

ファイルの内容を出力⇒バッククォートで(`)で囲みecho出力

echo `cat test2.txt`

重複行と空行を削除し、別ファイルにリダイレクトする

sort test1.txt | uniq | grep -v '^\s*$' > test2.txt

ファイルの行数を変数に格納

変数名=`wc -l test1.txt | cut -d ' ' -f1`

変数の値を標準出力

printf "変数の値は${変数名}です。\n"


コマンドの各種オプション

grep -o
⇒マッチする部分のみを表示する

echo -n
⇒行末の改行を行わない

□eval

変数に格納したコマンドを実行するコマンド

eval ${cmd}

xargsコマンドの使い方
# findコマンドで抽出したファイルを削除する
find . -name "*.rb" -type f | xargs rm
findコマンドとexecコマンドの使い方
# findコマンドで抽出したファイルのパーミッションを変更する
find . -name "*.rb" -type f -exec chmod 600 () ¥;

mountコマンド(ISOファイルをマウントする)

オプション 内容
-a /etc/fstabに記載されているファイルシステムをマウント
-t マウントするファイルシステムのタイプを指定
-r 読み取り専用でマウント
-w 書き込み可能でマウント
# UUIDとマウント先のパーティションを確認
cat /etc/fstab
# UUIDに対応するデバイスのディスクパーティションを確認
blkid
# ISOファイルをマウントする
mount -r -t iso9660 /dev/cdrom /mnt/cdrom
# マウント状態を確認
df
# ISOファイルをアンマウント
umount /mnt/cdrom