-
printf '%s\t%s\t%s\n' 1 2 3 4 5 6
查看全部 -
^[^a-z]? 中括號內^代表取反
查看全部 -
a* 匹配所有
aa*?
查看全部 -
添加IP地址與更換IP地址(遠程登錄是改不了的)
[root@localhost ~]# vim huan?
#!/bin/bash
read -p "Do you want to add or replace IP [add/rep] : " ar
if [ -n $ar ]
? ? ? ? then
case $ar in
? ? ? ? "add")
read -p "please input your IP address: " ip
read -p "please input your NETMASK : " net
read -p "please input your GATEWAY : " gat
read -p "please input your DNS : " dns
if [ -n $ip -a -n $net -a -n $gat -a -n $dns ]
? ? ? ? then
? ? ? ? ? ? ? ? sed "4s/dhcp/static/g" /etc/sysconfig/network-scripts/ifcfg-ens33
? ? ? ? ? ? ? ? sed "6s/no/yes/g" /etc/sysconfig/network-scripts/ifcfg-ens33
? ? ? ? ? ? ? ? sed "15s/no/yes/g" /etc/sysconfig/network-scripts/ifcfg-ens33
? ? ? ? ? ? ? ? echo "IPADDR=$ip" >> /etc/sysconfig/network-scripts/ifcfg-ens33
? ? ? ? ? ? ? ? echo "NETMASK=$net" >> /etc/sysconfig/network-scripts/ifcfg-ens33
? ? ? ? ? ? ? ? echo "GATEWAY=$gat" >> /etc/sysconfig/network-scripts/ifcfg-ens33
? ? ? ? ? ? ? ? echo "DNS1=$dns" >> /etc/sysconfig/network-scripts/ifcfg-ens33
? ? ? ? ? ? ? ? systemctl restart network
? ? ? ? fi
? ? ? ? ;;
? ? ? ? "rep")
t=$( cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep "IPADDR" |cut -f 2 -d "=" )
u=$( cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep "NETMASK" |cut -f 2 -d "=" )
v=$( cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep "GATEWAY" |cut -f 2 -d "=" )
w=$( cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep "DNS1" |cut -f 2 -d "=" )
read -p "please input your IP address: " i
read -p "please input your NETMASK : " n
read -p "please input your GATEWAY : " g
read -p "please input your DNS : " d
if [ -n $i -a -n $n -a -n $g -a -n $d ]
? ? ? ? then
? ? ? ? sed "4s/dhcp/static/g" /etc/sysconfig/network-scripts/ifcfg-ens33
? ? ? ? sed "6s/no/yes/g" /etc/sysconfig/network-scripts/ifcfg-ens33
? ? ? ? sed "15s/no/yes/g" /etc/sysconfig/network-scripts/ifcfg-ens33
? ? ? ? sed "17s/IPADDR=$t/IPADDR=$i/g" /etc/sysconfig/network-scripts/ifcfg-ens33
? ? ? ? sed "18s/NETMASK=$u/NETMASK=$n/g" /etc/sysconfig/network-scripts/ifcfg-ens33
? ? ? ? sed "19s/GATEWAY=$v/GATEWAY=$g/g" /etc/sysconfig/network-scripts/ifcfg-ens33
? ? ? ? sed "20s/DNS1=$w/GATEWAY=$d/g" /etc/sysconfig/network-scripts/ifcfg-ens33
? ? ? ? systemctl restart network
? fi
? ? ? ? ;;
? ? ? ? *)
? ? ? ? echo "Your input is wrong"
? ? ? ? ;;
esac
fi
?chmod 755 huan
查看全部 -
[root@localhost ~]#? vim userdel.sh
#!/bin/bash
read -p "please you input yes or no delete anyuser [y/n] : " yn
read -p "please you input delete number : " num
if [ -n $yn ]
then
case $yn in
? ? ? ? ? ? ? ? "y")
? ? ? ? ? ? ? ? ? ? ? ? touch name
? ? ? ? ? ? ? ? ? ? ? ? cat /etc/passwd | grep "/bin/bash" | grep -v "root" | cut -d ":" -f 1 >> name
? ? ? ? ? ? ? ? ? ? ? ? for i in $( cat name )
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? do
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? a=0
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? for (( a=0;a<=$num;a=a+1 ))
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? do
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? userdel $i
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? done
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? done
? ? ? ? ? ? ? ? ? ? ? ? rm -rf name
? ? ? ? ? ? ? ? ? ? ? ? ;;
? ? ? ? ? ? ? ? "n")
? ? ? ? ? ? ? ? ? ? ? ? echo "[root@localhost ~]# "
? ? ? ? ? ? ? ? ? ? ? ? ;;
? ? ? ? ? ? ? ? *)
? ? ? ? ? ? ? ? ? ? ? ? echo "no have it"
? ? ? ? ? ? ? ? ? ? ? ? ;;
esac
fi
[root@localhost ~]# chmod 755 userdel.sh
查看全部 -
cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" |cut -f 2 -d "="?
#提取IP地址、子網(wǎng)掩碼、網(wǎng)關、dns
查看全部 -
cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep "IPADDR" |cut -f 2 -d "="
#提取IP地址
查看全部 -
grep “a*” test.txt
匹配多個a或者0個a的行
查看全部 -
#!/bin/bash
df -h | grep "/dev/vda1" | awk '{printf $5 "\n"}' | cut -f 1 -d "%"
awk 'END{print "test"}{printf $2 "\n"}' student.txt
echo "指定分隔符"
cat /etc/passwd | grep "/bin/bash" | awk 'BEGIN{FS=":"}{printf $1 "\t" $3 "\n"}'
echo "根據(jù)條件篩選"
cat student.txt | grep -v "Name" | awk '$4>40{print $2}'
查看全部 -
awk 語法:
默認使用tab或者空格分割
awk 有內置的一些函數(shù)可以調用 比如substr
awk 也可以將正則作為條件,比如
awk '/in/ {printf $2 "\n"}' student.txt
查看全部 -
ID Name gender mark
1 geek F 89
2 jin F 70
3 xin F 45
#!/bin/bash cut?-f?2,4?student.txt
查看全部 -
cut 用來提取列
-d 默認分隔符為tab
查看全部 -
字符處理命令
etc/passwd 為當前保存的用戶信息
sort?
不給參數(shù)按照行的字母順序排列,默認分隔符為tab
-r 取反
echo "指定分隔符是: 用第三個字段開頭 第三個字段結尾排序 就是只用第三個字段排序 使用數(shù)字進行排序"
echo "對每行用冒號分割(-t)后的字段的第三個列用數(shù)字(-n)的方式進行排序 "
sort -n -t ":" -k 3,3 /ect/passwd
wc 是的縮寫word count
-l 只統(tǒng)計行數(shù)
-w 只統(tǒng)計單詞數(shù)
-m 只統(tǒng)計字符數(shù)
查看全部 -
sed 主要用來修改文檔數(shù)據(jù)
echo "刪除第二行"
sed '2d' student.txt
echo "刪除第二行到第四行"
sed '2,4d' student.txt
echo "刪除第二行后追加字符串 a為append"
sed '2a geek v5' student.txt
echo "刪除第二行前插入字符串 i 為insert"
sed '2i geek v5' student.txt
echo "替換整行"
sed '2c geek v5' student.txt
echo "替換行中的字符串 顯示到屏幕 但不會改變文件的內容"
sed '3s/28/70/g' student.txt
echo "替換行中的字符串 不顯示到屏幕 且會改變文件的內容 -i會改變文件內容"
sed -i '3s/28/70/g' student.txt
echo "多個動作同時執(zhí)行 不加行號 搜索所有文件內容 70 置空 xin替換成hui"
sed -e 's/70//g;s/xin/hui/g' student.txt
查看全部 -
定義:sed 是一種輕量級流編輯器,是Stream EDitor的縮寫
作用:sed 替換字符串內容 對數(shù)據(jù)進行選取 替換 刪除 新增
格式:sed [選項] '[動作]' 文件名
????選項:-n 一般sed命令會把所有的數(shù)據(jù)都輸出到屏幕,如果加入此選擇
則只會把經(jīng)過sed命令處理的行輸出到屏幕
?????????????-e 允許對輸入數(shù)據(jù)應用多條sed命令編輯
????????????? -i 用sed的修改結果直接修改讀取數(shù)據(jù)的文件,而不是由屏幕輸出
動作:
????? ? a 追加,在當前行后添加一行或者多行
????????c 行替換,用c后面的字符替換原數(shù)據(jù)行
????????i? 插入,在當前行前插入一行或多行
????????d 刪除,刪除指定的行
????????p 打印,輸出指定的行
????????s 字符替換,用一個字符串替換另一個字符串。格式為”行范圍s/舊字符串/新字符串/g“(和vim中的替換格式類似)
查看全部 -
條件 動作
查看全部 -
awk 默認使用空格或者tab鍵作為分隔符
使用{FS=":"}指定分隔符
查看全部 -
cat stu.txt | printf? 這種執(zhí)行不成功?
管道運算符返回的是數(shù)據(jù)流 而printf只認識字符串
可以用 printf‘%s\t%s\t%s\t%s\t\n’$(cat stu.txt?) 實現(xiàn)對文件內容的打印
某種意義上 printf是awk的子命令
查看全部 -
awk 一行行的讀取文件里的內容 文件為$0 第一列(字段)為$1 第二列(字段)為$2
查看全部 -
統(tǒng)計命令 wc
wc [選項] 文件名
選項
-l:只統(tǒng)計行數(shù)
-w:只統(tǒng)計單詞數(shù)
-m:只統(tǒng)計字符數(shù)
查看全部 -
sort?-t?":"?-k?3,3?/etc/passwd? #?指定分隔符是“:”,用第三字段開頭,第三字段結尾排序,就是只用第三字段排序
sort?-n?-t?":"?-k?3,3?/etc/passwd
查看全部
舉報