当前位置: 首页 > article >正文

【Linux】shell脚本的常用命令

目录

简介

一.设置主机名称

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

http://www.lryc.cn/news/2387792.html

相关文章:

  • Netty应用:从零搭建Java游戏服务器网络框架
  • Pycharm and Flask 的学习心得(9)
  • Linux初始-环境安装(2)
  • Nginx 安全防护与 HTTPS 部署实战笔记
  • Python Day34 学习
  • 【ASR】基于分块非自回归模型的流式端到端语音识别
  • 国芯思辰|国产FRAM SF25C128助力监控系统高效低功耗解决方案,对标MB85RS128/FM25V01
  • 攻防世界逆向刷题笔记(新手模式9-1?)
  • 【golang】能否在遍历map的同时删除元素
  • 制作一款打飞机游戏58:子弹模式组合
  • 使用新一代达梦管理工具SQLark,高效处理 JSON/XML 数据!
  • Qt基础:数据容器类
  • Vue3监听对象数组属性变化方法
  • 深入了解PyTorch:起源、优势、发展与安装指南
  • DeepSeek智能对话助手项目
  • 浅谈Mysql的MVCC机制(RC与RR隔离级别)
  • uniapp-商城-72-shop(5-商品列表,购物车实现回顾)
  • 【git】 pull + rebase 或 pull + merge什么区别?
  • 1. 编程语言进化史与JavaScript
  • Vue3 中 Axios 深度整合指南:从基础到高级实践引言
  • MySQL#Select语句执行过程
  • hbuilder中h5转为小程序提交发布审核
  • 文档注释:删还是不删
  • 【数据结构】单链表练习
  • JVM 性能优化终极指南:全版本兼容、参数公式与场景实战
  • 分布式爬虫监控架构设计
  • MySQL的参数 innodb_force_recovery 详解
  • 学习vue3:跨组件通信(provide+inject)
  • Alibaba Sentinel 入门教程:从理论到实战
  • 2.3 TypeScript 非空断言操作符(后缀 !)详解