[Linux]Shell必知必会
2794 ワード
1.ヒント付き入力
2.常用判断フラグ
3.パラメータ関連
4.switch-case文
5.ユーザーとグループを追加し、変数計算賦値し、ファイルの所属を変更し、ユーザーを削除する
6.タイミングタスク
7.文書処理
8.日付処理
9.浮動小数点数演算
10.Forサイクル
11.演算関連
12.ファイル操作
13.suとsu-の違い
suディレクトリは切り替えず、環境変数は変えずsu-ルートと環境変数を含むrootユーザーに完全に切り替える
14.sudoとsuの違い
a.必要なパスワードが異なり、sudo権限を持つユーザーはrootパスワードを知らなくても権利付与コマンドを実行できる
b.sudoは一時的に実行権限を高め、suはrootユーザー権限を直接使用し、suはsudoより危険係数が高い
#!/bin/bash
read -p "input file name:" FILENAME
echo $FILENAME
2.常用判断フラグ
-c
-d
3.パラメータ関連
$0 ; $1
4.switch-case文
case $1 in
'start')
echo "start";;
'stop')
echo "stop";;
*)
echo "error";;
esac
5.ユーザーとグループを追加し、変数計算賦値し、ファイルの所属を変更し、ユーザーを削除する
i=1
groupadd class1
while [[ $i -le 30 ]];do
if [[ $i -le 9 ]];then
USERNAME=stu0$i
else
USERNAME=stu$i
fi
useradd -G class1 $USERNAME
chown -R $USERNAME /home/$USERNAME
chgrp -R class1 /home/$USERNAME
userdel -r $USERNAME
i=`expr $i + 1` # i=$(( $i + 1 )) expr
done
6.タイミングタスク
# vim /etc/crontab
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
0 8-18/1 * * * => 8 18
0 23,1-8/2 * * * => 23 8
7.文書処理
cut -f1 == > , tab ,
-d , cut -d "," -f1 ( f1-3 f1,3 )
sed–i '23s/test/tset/g' test.txt ==> 23 test tset
sed -n '5p' test.txt | cut -f3 ==> 5 3
sed -i '1,3d' test.txt ==> 1 3
echo -n ==>
awk -F "," '{if($2>56789){print $0}}' file.txt ==> 56789
sed -n "1p;3p;5p;7p;10p;15p" file.txt ==> 1,2,5,7,10,15
awk 'NR==1||NR==3||NR==5||…||NR=15{print $0}' file.txt
sed -i "s#\t#\|#g" file.txt ==> tab |
sed -i 's/\t/|/g' file.txt
grep -n
head -n 3 3
8.日付処理
date "+%y-%m-%d %H:%M:%S"
9.浮動小数点数演算
$(echo "$i + $j" | bc)
10.Forサイクル
for (( j=1;j<=3;j++ ));do
echo $j
done
for i in $array;do
echo $i
done
11.演算関連
($(du ./*)) ==>
${#A[@]} == A
$(VAR%sh) sh
12.ファイル操作
find / -size +50k -size -100k ==> 50K 100K
13.suとsu-の違い
suディレクトリは切り替えず、環境変数は変えずsu-ルートと環境変数を含むrootユーザーに完全に切り替える
14.sudoとsuの違い
a.必要なパスワードが異なり、sudo権限を持つユーザーはrootパスワードを知らなくても権利付与コマンドを実行できる
b.sudoは一時的に実行権限を高め、suはrootユーザー権限を直接使用し、suはsudoより危険係数が高い