經常使用命令實踐mysql
[root@b ~]# cat c.txt
1.1.1.1
2.2.2.2
3.3.3.3
4.4.4.4sql
[root@b ~]# cat c.txt |sed 's/^/& /' &做用是代替前面須要替換舊的內容,這裏指^。而^有指代以某某開頭。
1.1.1.1
2.2.2.2
3.3.3.3
4.4.4.4bash
[root@b ~]# cat c.txt |sed 'N;s/\n/ /'|sed 'N;s/\n/ /' N指每次讀取2行,而後將換行符替換爲空格dom
1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4排序
tr -d "\n" tr命令的做用——刪除換行符,合併多行it
[root@b ~]# cat c.txt | tr -d "\n 默認刪除換行符後,全部字段連在一塊兒sed
1.1.1.12.2.2.23.3.3.34.4.4.4打包
[root@b ~]# cat c.txt |sed 's/^/& /' | tr -d "\n" 利用sed替換命令在每一個字段行首添加空格符select
1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4sort
sed和tr命令對比:
[root@b ~]# cat c.txt |sed 's/^/& /' | tr -d "\n" | xargs echo
1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4 #開頭無空格
[root@b ~]# cat c.txt |sed 'N;s/\n/ /'|sed 'N;s/\n/ /'
1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4 #開頭無空格
[root@b ~]# echo " 1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4"
1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4 #開頭有空格
[root@b ~]# echo " 1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4" | xargs echo
1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4 #開頭無空格
sort排序命令使用
[root@b ~]# sort -nr -t ":" -k 3 /etc/passwd | head -n表示以數值型進行排序,-t指定分隔符爲冒號,-r表示反向排序,-k指定排序的字段範圍,這裏是按第三個3字段排序
abc:x:1002:1003::/home/abc:/bin/bash
feng:x:1001:1002::/home/feng:/bin/bash
no:x:1000:1001:no:/home/no:/bin/bash
systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
polkitd:x:998:997:User for polkitd:/:/sbin/nologin
saslauth:x:997:76:Saslauthd user:/run/saslauthd:/sbin/nologin
unbound:x:996:996:Unbound DNS resolver:/etc/unbound:/sbin/nologin
geoclue:x:995:994:User for geoclue:/var/lib/geoclue:/sbin/nologin
mysql:x:994:1000::/home/mysql:/sbin/nologin
[root@b ~]# find . -maxdepth 1 -name "*.sh" #find查找當前目錄下一級目錄的全部符合條件的文件,-maxdepth 參數用於指定find查找目錄的層級深度,默認find查找當前目錄及目錄下全部子目錄內符合條件的文件。
./a.sh
[root@b ~]# tar czf a.tar.gz a.sh #tar打包文件,屢次打包用同一個打包名稱時,後面打包內容會覆蓋前面打包內容。須要注意!
[root@b ~]# tar czf a.tar.gz c.txt
[root@b ~]# tar czf a.tar.gz a.sh.bak
[root@b ~]# tar -tf a.tar.gz
a.sh.bak
[root@b ~]# i=1 #$((i++)) 與$i區別,須要注意。i++等價於i=$i+1的意思。
[root@b ~]# echo $((i++))
1
[root@b ~]# echo $i
2
[root@b ~]# echo $((i++))
2
[root@b ~]# echo $i
3
[root@b ~]# echo $((i++))
3
[root@b ~]# echo $i
4
while read 用法,表示逐行去讀取某個文件
[root@b ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@b ~]# while read line;do echo $line;done </etc/hosts # </etc/hosts表明read文件內容的來源
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
select選擇菜單,PS3爲固定語句格式。
[root@b linshi]# cat b.sh
#!/bin/bash
PS3="what system do you like?"
select i in CentOS Ubuntu Redhat
do
echo "you like system is:" $i
done[root@b linshi]# sh b.sh1) CentOS2) Ubuntu3) Redhatwhat system do you like?1you like system is: CentOSwhat system do you like?2you like system is: Ubuntuwhat system do you like?3you like system is: Redhatwhat system do you like?^C