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

Shell扩展

一个?表示一个任意字符

[root@C7 tmp]# ls
dir1   file1.txt  file2.txt  file3.txt  fileb.txt   yangge.txt
file1  file2      file3      filea.txt  yangge.log
[root@C7 tmp]# ll file1 file2 file3
-rw-r--r-- 1 root root 0 Nov  8 19:46 file1
-rw-r--r-- 1 root root 0 Nov  8 19:46 file2
-rw-r--r-- 1 root root 0 Nov  8 19:46 file3
[root@C7 tmp]# ll file?
-rw-r--r-- 1 root root 0 Nov  8 19:46 file1
-rw-r--r-- 1 root root 0 Nov  8 19:46 file2
-rw-r--r-- 1 root root 0 Nov  8 19:46 file3
[root@C7 tmp]# ll fil??
-rw-r--r-- 1 root root 0 Nov  8 19:46 file1
-rw-r--r-- 1 root root 0 Nov  8 19:46 file2
-rw-r--r-- 1 root root 0 Nov  8 19:46 file3


*表示任意多个字符

[root@C7 tmp]# ls
dir1   file1.txt  file2.txt  file3.txt  fileb.txt   yangge.txt
file1  file2      file3      filea.txt  yangge.log
[root@C7 tmp]# ls file*
file1  file1.txt  file2  file2.txt  file3  file3.txt  filea.txt  fileb.txt
[root@C7 tmp]# ls *.txt
file1.txt  file2.txt  file3.txt  filea.txt  fileb.txt  yangge.txt

[root@C7 tmp]# ls *a*
filea.txt  yangge.log  yangge.txt

[ ]匹配任意一个字符,反向^,!


[root@C7 tmp]# ls file[12]
file1  file2
[root@C7 tmp]# ls file[1234a]
file1  file2  file3
[root@C7 tmp]# ls file[^12]   取反意思
file3
[root@C7 tmp]# ls
dir1   file1.txt  file2.txt  file3.txt  fileb.txt   yangge.txt
file1  file2      file3      filea.txt  yangge.log
[root@C7 tmp]# ls file[!12]   取反意思
file3

应用场景:对文件批量删除

[root@C7 tmp]# rm -rvf file[12]
removed ‘file1’
removed ‘file2’

---------------------------

[root@C7 tmp]# ls
dir1       file2.txt  file3.txt  fileb.txt   yangge.txt
file1.txt  file3      filea.txt  yangge.log
[root@C7 tmp]# ls .
dir1       file2.txt  file3.txt  fileb.txt   yangge.txt
file1.txt  file3      filea.txt  yangge.log
[root@C7 tmp]# ls * -d
dir1       file2.txt  file3.txt  fileb.txt   yangge.txt
file1.txt  file3      filea.txt  yangge.log
在匹配过程中不想匹配到下一层

[root@C7 ~]# ll /etc/pa* -d
drwxr-xr-x. 2 root root 4096 Oct 17 13:15 /etc/pam.d
-rw-r--r--. 1 root root 3593 Nov  5 13:15 /etc/passwd
-rw-r--r--. 1 root root 3593 Nov  5 13:14 /etc/passwd-
[root@C7 ~]# ll -d /etc/pa* 
drwxr-xr-x. 2 root root 4096 Oct 17 13:15 /etc/pam.d
-rw-r--r--. 1 root root 3593 Nov  5 13:15 /etc/passwd
-rw-r--r--. 1 root root 3593 Nov  5 13:14 /etc/passwd-
root@C7 ~]# ll /etc/pa??? -d
drwxr-xr-x. 2 root root 4096 Oct 17 13:15 /etc/pam.d

{ }里面支持两种写法

1.双点语法,指一个范围

[root@C7 tmp]# touch file{1..10}
[root@C7 tmp]# ls
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
[root@C7 tmp]# touch file{a..z}
[root@C7 tmp]# ls
filea  filed  fileg  filej  filem  filep  files  filev  filey
fileb  filee  fileh  filek  filen  fileq  filet  filew  filez
filec  filef  filei  filel  fileo  filer  fileu  filex
2.逗号隔开参数

[root@C7 tmp]# touch li{aa,bb,cc}
[root@C7 tmp]# ls
liaa  libb  licc

应用场景:

[root@C7 tmp]# cp -r /etc/sysconfig/network /etc/sysconfig/network.bak
[root@C7 tmp]# cp -rv /etc/sysconfig/network{,.bak}
‘/etc/sysconfig/network’ -> ‘/etc/sysconfig/network.bak’

[root@C7 tmp]# touch file{a,b}{1,2}.txt
[root@C7 tmp]# ls
filea1.txt  filea2.txt  fileb1.txt  fileb2.txt


[root@C7 tmp]# touch file{a{1,2},b,c}
[root@C7 tmp]# ls
filea1  filea2  fileb  filec


~ 指用户家目录

[root@C7 tmp]# cd ~root 进到用户的家目录
[root@C7 ~]# pwd
/root
[root@C7 ~]# cd ~li
[root@C7 li]# pwd
/home/li
[root@C7 li]# 

[root@C7 ~]# cp -rvf /etc/services  ~li/Pictures
‘/etc/services’ -> ‘/home/li/Pictures’
 

变量扩展

[root@C7 ~]# path1="/etc/sysconfig"
[root@C7 ~]# cd $path1
[root@C7 sysconfig]# pwd
/etc/sysconfig
[root@C7 sysconfig]# cp -rvf /etc/services $path1
‘/etc/services’ -> ‘/etc/sysconfig/services’
 

[root@C7 sysconfig]# echo $path1
/etc/sysconfig
 

系统自带变量=环境变量

命令替换:应用场景:创建以当天日期命名的文件

数据库备份的时候希望备份脚本按照当天日期生成脚本。

1.获取当前日期

[root@C7 ~]# date +%R  几点几分
12:13

[root@C7 ~]# date +%F 年月日
2024-11-09
[root@C7 ~]# touch $(date +%F)-mysql.bak
[root@C7 ~]# ls
2024-11-09-mysql.bak  Desktop    Downloads             Music     Public     Videos

[root@C7 ~]# touch `date +%F`-file.bak
[root@C7 ~]# ls
2024-11-09-file.bak   Desktop    initial-setup-ks.cfg  Public
 

\ 转义字符

[root@C7 ~]# echo ${HOSTNAME}
C7
[root@C7 ~]# echo \$HOSTNAME
$HOSTNAME
[root@C7 ~]# touch li\ si
[root@C7 ~]# ls
2024-11-09-file.bak   Desktop    initial-setup-ks.cfg  Pictures   Videos
2024-11-09-mysql.bak  Documents  li si                 Public

单引号-强引用(是啥就是啥)

双引号-弱引用

[root@C7 ~]# echo '** lili aiai $HOSTNAME **'
** lili aiai $HOSTNAME **
[root@C7 ~]# echo "** lili aiai $HOSTNAME **"
** lili aiai C7 **
 


 


http://www.kler.cn/a/387877.html

相关文章:

  • Prompt 工程
  • Python 小高考篇(2)字符串
  • 机器视觉和计算机视觉的区别
  • ROM修改进阶教程------安卓14 安卓15去除app签名验证的几种操作步骤 详细图文解析
  • 壹连科技IPO闯关成功!连接器行业上市企业+1
  • leetcode day10 动态规划篇 64+139
  • vite+vue3项目兼容低版本浏览器
  • 定位,堆叠,CSS精灵,过渡,光标(前端)
  • 软考高级架构 - 8.2 - 系统架构评估 - 超详细讲解+精简总结
  • Linux系统编译boot后发现编译时间与Windows系统不一致的解决方案
  • nginx配置文件介绍及示例
  • 深度学习——多层感知机MLP(一、多层感知机介绍)
  • 设计模式-行为型-常用-2:职责链模式、状态模式、迭代器模式
  • 【安装配置教程】二、VMware安装并配置ubuntu22.04
  • jmeter常用配置元件介绍总结之取样器
  • CDH大数据平台部署
  • 高防服务器和高防IP的区别是什么?
  • Vue2中使用firefox的pdfjs进行文件文件流预览
  • vue.js组件和传值以及微信小程序组件和传值
  • WordPress文章自动提交Bing搜索引擎:PHP推送脚本教程
  • Visual Studio高版本到低版本的转换
  • Spring Boot 监视器
  • EMNLP 2024 BoF 活动报名:用 Embeddings、Reranker、小型语言模型打造更优搜索!
  • 超萌!HTMLCSS:打造趣味动画卡通 dog
  • 「QT」几何数据类 之 QPointF 浮点型点类
  • 最大和值距离