Resource > Bash

echoでsudoを使う

ファイルに設定を追記したい場合、下記の様ではうまくいきません。
 $ sudo echo "hoge" >> /etc/fuga.conf
この場合、teeを使用します。
 $ echo "hoge" |sudo tee -a /etc/fuga.conf

ファイルを一行ずつ読む

 while read line; do
     echo $line
 done < $FILE

 $ echo 'hoge
 > fuga
 > hige' >testFile
 
 $ while read line; do
 > echo $line
 > done < testFile
 hoge
 fuga
 hige

関数

関数は呼び出す前段に定義しておく必要があります。
 functoin hoge() {
     echo $1
 }
 
 hoge hige

配列

 TEST=("hoge" "hige")
 echo ${TEST[0]}
 echo ${TEST[1]}

配列のループをまわす場合は下記のようにします。
 for elem in ${TEST[@]}; do
     echo $elem
 done

文字列のパターンマッチングを行う

例えば、変数 $file に "xml" が含まれる事を確認するには下記のようにする。
 if [[ $file == *xml ]] ;then
     echo "xml"
 fi

マシン情報

 uname -a
 cat /proc/cpuinfo
 cat /proc/meminfo
 cat /proc/version
 cat /etc/redhat-release

ユーザー管理

現在のユーザー名を表示

 $ whoami

uid, gidを表示

hogeユーザーのuid, gid を表示
 $ id hoge

グループにユーザーを追加

hogeユーザーを group1,group2,group3 に追加
 $ usermod -G group1,group2,group3 hoge

グループにログイン

group1にログイン
 $ newgrp group1

mount

iso

 $ mount -t iso9660 -o loop isoFile mountPoint