目錄
簡介
一.設置主機名稱
1.1通過文件修改
1.2通過命令修改
二.網絡管理命令nmcli
2.1查看網卡
2.2設置網卡
三.簡單處理字符
3.1seq打印連續字符
3.2printf,echo打印字符
3.3sort排序
3.4uniq冗余處理?
3.5cut對字符的截取
四.xargs輸入轉參
簡介
以下命令都是在編寫shell腳本常用的命令
一.設置主機名稱
1.1通過文件修改--/etc/hostname
#通過配置文件來修改主機名
[root@localhost ~]# vim /etc/hostname
[root@localhost ~]# cat /etc/hostname
fjwyyy.org
[root@localhost ~]# hostnamectlStatic hostname: fjwyyy.org
1.2通過命令修改
#通過命令直接修改主機名
[root@fjwyyy ~]# hostnamectl hostname FJWYYY
[root@fjwyyy ~]# hostnamectlStatic hostname: FJWYYY
二.網絡管理命令nmcli
2.1查看網卡
[root@FJWYYY ~]# nmcli device show ens160
[root@FJWYYY ~]# nmcli device status
[root@FJWYYY ~]# nmcli connection show
[root@FJWYYY ~]# nmcli connection show ens160
2.2設置網卡
#沒有網卡時添加靜態網卡
nmcli connection add type ethernet con-name test \
ifname ens160 ipv4.method manual \
ipv4.addresses 192.168.81.100/24
#更改網卡信息
nmcli connection modify test ipv4.addresses 192.168.81.100/24
三.簡單處理字符
3.1seq打印連續字符
seq 1 5
seq 1 2 5 #設置步長為2
seq -f "%03g" 1 3 #將格式設置為00x來打印
seq -f "%02g" 1 3 #將格式設置為02來打印
seq 5 -2 1 #將步長設置為-2,實現反向打印
seq 1 10 > test
tac test
3.2printf,echo打印字符
printf與echo的區別是,echo是linux內置的命令功能齊全
printf "helo world"
printf "hello world\n" #\n換行
printf "hello\tworld\n" #\t制表符
printf "3%%\n" #%%打印%
printf "%.0f" "3.1415926" #"%.0f" 打印整數
printf "%.1f" "3.1415926" #"%.1f" 打印浮點數
printf "%.2f\n" "3.1415926"
echo "hello world"
echo -n "hello world" # 取消換行輸出
echo -e "hello\tworld" #-e 實現轉義
echo -e "\r"
echo -e "\033[33mhello fjw\033" #設置shell字符顏色
echo -e "\033[34mhello fjw\033[0m" #設置單次輸出shell字符顏色
3.3sort排序
先生成測試文件
[root@localhost ~]# sort -n test # -n 對數字進行排序
[root@localhost ~]# sort -rn test # -r 對數字進行倒敘
[root@localhost ~]# sort -un test # -u 去重復
[root@localhost ~]# sort -n test -o fjw # -o 將排序后的結果輸出到文件中
[root@localhost ~]# cat fjw
[root@localhost ~]# sort -n -t ":" -k 2 test2 #-t 指定分隔符 -k 指定列數
3.4uniq冗余處理?
要對文本先排序后冗余
[root@localhost ~]# sort -n test3 | uniq -c
[root@localhost ~]# sort -n test3 | uniq -d
[root@localhost ~]# sort -n test3 | uniq -u
3.5cut對字符的截取
[root@localhost ~]# cut -d : -f 1 test4
[root@localhost ~]# cut -d : -f 1,5 test4
[root@localhost ~]# cut -d : -f 1-3 test4
[root@localhost ~]# cut -d : -f -3 test4
[root@localhost ~]# cut -d : -f 5- test4
-d 指定分隔符 -f 指定顯示的列數
[root@localhost ~]# cut -c 1-4 test4
[root@localhost ~]# cut -c 1-10 test4
四.xargs輸入轉參
xargs 命令作用是將標準輸入數據轉換成命令行參數,能夠處理管道或者標準輸入并將其轉換成特定命令 的命令參數
4.1將輸入通過管道xargs進行轉參
[root@localhost ~]# seq 1 5 | xargs touch
[root@localhost ~]# seq 1 5 | xargs xargs rm -rf
4.2修改輸出行數與個數
#將多行輸入轉單行輸出
[root@localhost ~]# xargs < test5
#指定每行輸出個數
[root@localhost ~]# xargs -n 3 < test5
4.3指定分隔符來去掉分隔符
#指定分隔符
[root@localhost ~]# echo "abc:abc:abc" | xargs -d :
[root@localhost ~]# echo "abc:abc:abc" | xargs -d a
4.4使用字符代表接受值進行批量處理
#用字符代替接受值
[root@localhost mnt]# ls * | xargs -Ifjw cp fjw /media/fjw.bak
[root@localhost mnt]# ls /media/
file1.bak file2.bak file3.bak file4.bak file5.bak[root@localhost mnt]# ls * | xargs -pIhaha mv haha /media/haha.bak #-p參數用于提示用戶是否確認操作
mv file1 /media/file1.bak?...y
mv file2 /media/file2.bak?...y
mv file3 /media/file3.bak?...y
mv file4 /media/file4.bak?...n
mv file5 /media/file5.bak?...y[root@localhost mnt]# echo | xargs -r cp file file.bak