【Linux】shell脚本的常用下令

打印 上一主题 下一主题

主题 2122|帖子 2122|积分 6366

目录

简介
一.设置主机名称
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

  1. #通过配置文件来修改主机名
  2. [root@localhost ~]# vim /etc/hostname
  3. [root@localhost ~]# cat /etc/hostname
  4. fjwyyy.org
  5. [root@localhost ~]# hostnamectl
  6. Static hostname: fjwyyy.org
复制代码


1.2通过下令修改

  1. #通过命令直接修改主机名
  2. [root@fjwyyy ~]# hostnamectl hostname FJWYYY
  3. [root@fjwyyy ~]# hostnamectl
  4. Static hostname: FJWYYY
复制代码


二.网络管理下令nmcli

2.1查看网卡

  1. [root@FJWYYY ~]# nmcli device show ens160
  2. [root@FJWYYY ~]# nmcli device status
  3. [root@FJWYYY ~]# nmcli connection show
  4. [root@FJWYYY ~]# nmcli connection show ens160
复制代码



2.2设置网卡

  1. #没有网卡时添加静态网卡
  2. nmcli connection add type ethernet con-name test \
  3. ifname ens160 ipv4.method manual \
  4. ipv4.addresses 192.168.81.100/24        
复制代码

  1. #更改网卡信息
  2. nmcli connection modify test ipv4.addresses 192.168.81.100/24
复制代码


三.简单处理字符

3.1seq打印一连字符

  1. seq 1 5            
  2. seq 1 2 5            #设置步长为2
  3. seq -f "%03g" 1 3    #将格式设置为00x来打印
  4. seq -f "%02g" 1 3    #将格式设置为02来打印
  5. seq 5 -2 1           #将步长设置为-2,实现反向打印
复制代码

  1. seq 1 10 > test
  2. tac test
复制代码

3.2printf,echo打印字符

printf与echo的区别是,echo是linux内置的下令功能齐全
  1. printf "helo world"
  2. printf "hello world\n"         #\n换行
  3. printf "hello\tworld\n"        #\t制表符
  4. printf "3%%\n"                 #%%打印%
  5. printf "%.0f" "3.1415926"      #"%.0f" 打印整数
  6. printf "%.1f" "3.1415926"      #"%.1f" 打印浮点数
  7. printf "%.2f\n" "3.1415926"
复制代码


  1. echo "hello world"
  2. echo -n "hello world"       # 取消换行输出
  3. echo -e "hello\tworld"        #-e 实现转义
  4. echo -e  "\r"
  5. echo -e "\033[33mhello fjw\033"    #设置shell字符颜色
  6. echo -e "\033[34mhello fjw\033[0m"    #设置单次输出shell字符颜色
复制代码

3.3sort排序

先生成测试文件



  1. [root@localhost ~]# sort -n test            # -n 对数字进行排序
  2. [root@localhost ~]# sort -rn test           # -r 对数字进行倒叙
  3. [root@localhost ~]# sort -un test           # -u 去重复
  4. [root@localhost ~]# sort -n test -o fjw     # -o 将排序后的结果输出到文件中
  5. [root@localhost ~]# cat fjw
  6. [root@localhost ~]# sort -n -t ":" -k 2 test2    #-t 指定分隔符  -k 指定列数
复制代码



3.4uniq冗余处理 

  1. 要对文本先排序后冗余
  2. [root@localhost ~]# sort -n test3 | uniq -c   
  3. [root@localhost ~]# sort -n test3 | uniq -d
  4. [root@localhost ~]# sort -n test3 | uniq -u
复制代码

3.5cut对字符的截取


  1. [root@localhost ~]# cut -d : -f 1 test4
  2. [root@localhost ~]# cut -d : -f 1,5 test4
  3. [root@localhost ~]# cut -d : -f 1-3 test4
  4. [root@localhost ~]# cut -d : -f -3 test4
  5. [root@localhost ~]# cut -d : -f 5- test4
  6. -d 指定分隔符 -f 指定显示的列数
复制代码


  1. [root@localhost ~]# cut -c 1-4 test4
  2. [root@localhost ~]# cut -c 1-10 test4
复制代码



四.xargs输入转参

xargs 下令作用是将标准输入数据转换成下令行参数,能够处理管道大概标准输入并将其转换成特定下令 的下令参数
4.1将输入通过管道xargs进行转参
  1. [root@localhost ~]# seq 1 5 | xargs touch
  2. [root@localhost ~]# seq 1 5 | xargs xargs rm -rf
复制代码


4.2修改输出行数与个数
  1. #将多行输入转单行输出
  2. [root@localhost ~]# xargs < test5
  3. #指定每行输出个数
  4. [root@localhost ~]# xargs -n 3 < test5
复制代码

4.3指定分隔符往复掉分隔符
  1. #指定分隔符
  2. [root@localhost ~]# echo "abc:abc:abc" | xargs -d :
  3. [root@localhost ~]# echo "abc:abc:abc" | xargs -d a
复制代码

4.4使用字符代表接受值进行批量处理
  1. #用字符代替接受值
  2. [root@localhost mnt]# ls * | xargs -Ifjw cp fjw /media/fjw.bak
  3. [root@localhost mnt]# ls /media/
  4. file1.bak  file2.bak  file3.bak  file4.bak  file5.bak
  5. [root@localhost mnt]# ls * | xargs -pIhaha mv haha /media/haha.bak #-p参数用于提示用户是否确认操作
  6. mv file1 /media/file1.bak?...y
  7. mv file2 /media/file2.bak?...y
  8. mv file3 /media/file3.bak?...y
  9. mv file4 /media/file4.bak?...n
  10. mv file5 /media/file5.bak?...y
  11. [root@localhost mnt]# echo | xargs -r cp file file.bak
复制代码




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王柳

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表