#引号系列
单引号
所见即所得
echo '$LANG {1..5}'
双引号
与单引号类似 双引号里面的特殊符号会被解析(运行)
echo "$LANG{1..5}"
不加引号
与双引号类似 支持花括号(通配符)
echo $LANG {1..5}
反引号
``相当于$()
优先执行里面的命令 把结果留下
单引号 双引号 不加引号区别
```
[root@oldboyedu59 ~]# which mkdir
/usr/bin/mkdir
[root@oldboyedu59 ~]# ls -l /usr/bin/mkdir
-rwxr-xr-x. 1 root root 79864 Oct 31 03:16 /usr/bin/mkdir
[root@oldboyedu59 ~]# ls -l which mkdir
ls: cannot access which: No such file or directory
ls: cannot access mkdir: No such file or directory
[root@oldboyedu59 ~]# ls -l $(which mkdir )
-rwxr-xr-x. 1 root root 79864 Oct 31 03:16 /usr/bin/mkdir
```
#重定向符号系列
重定向?
改变数据流向
箭头的方向就是水流方向
>或1>
标准输出重定向
先清空文件内容在写入
>> 或1 >>
标准追加输出重定向
追加到文件结尾
2>
标准错误输出重定向 先清空文件 然后把错误信息写入文件中
2>>
标准追加错误输出重定向 把错误信息追加到文件结尾
>>oldboy.txt 2>&1
同时把错误信息或正确都记录到文件中
alex >>oldboy.txt 2>>oldboy.txt
定向任务
<
标准输入重定向
用来指引命令从哪里读取数据
tr
xargs
<<
标准追加输入重定向
只用来和cat配合 向文件中追加多行内容
cat >>/oldboy/oldboy.txt<<EOF
I
am
studying
with lidao
EOF
EOF ===End Of File 文件结束
创建环境
mkdir -p /oldboy/lidao
touch /oldboy/oldboy{01..5}.txt /oldboy/lidao/alex{01..5}.txt
找出/oldboy下面以.txt结尾的文件把他们删除(ls -l)
方法1 反引号
[root@oldboyedu59 ~]# ls -l $(find /oldboy -type f -name '*.txt')
-rw-r--r-- 1 root root 0 Apr 16 10:59 /oldboy/lidao/alex01.txt
-rw-r--r-- 1 root root 0 Apr 16 10:59 /oldboy/lidao/alex02.txt
-rw-r--r-- 1 root root 0 Apr 16 10:59 /oldboy/lidao/alex03.txt
-rw-r--r-- 1 root root 0 Apr 16 10:59 /oldboy/lidao/alex04.txt
-rw-r--r-- 1 root root 0 Apr 16 10:59 /oldboy/lidao/alex05.txt
-rw-r--r-- 1 root root 0 Apr 16 10:58 /oldboy/lidao/oldboy01.txt
-rw-r--r-- 1 root root 0 Apr 16 10:58 /oldboy/lidao/oldboy02.txt
-rw-r--r-- 1 root root 0 Apr 16 10:58 /oldboy/lidao/oldboy03.txt
-rw-r--r-- 1 root root 0 Apr 16 10:58 /oldboy/lidao/oldboy04.txt
-rw-r--r-- 1 root root 0 Apr 16 10:58 /oldboy/lidao/oldboy05.txt
-rw-r--r-- 1 root root 0 Apr 16 10:59 /oldboy/oldboy01.txt
-rw-r--r-- 1 root root 0 Apr 16 10:59 /oldboy/oldboy02.txt
-rw-r--r-- 1 root root 0 Apr 16 10:59 /oldboy/oldboy03.txt
-rw-r--r-- 1 root root 0 Apr 16 10:59 /oldboy/oldboy04.txt
-rw-r--r-- 1 root root 0 Apr 16 10:59 /oldboy/oldboy05.txt
-rw-r--r-- 1 root root 29 Apr 16 10:29 /oldboy/oldboy.txt
方法2 管道
find /oldboy -type f -name '*.txt'|xargs ls -l
find /oldboy -type f -name '*.txt'| ls -l
ls -l
方法3 find命令参数 -exec 熟悉
find /oldboy -type f -name '*.txt' -exec ls -l {} \;
find找出的文件 结束
老男孩教育出品-管道基础概念 find+|xargs执行过程图片
https://www.processon.com/view/link/5a3a5594e4b0f622f2a8f5d0
作业题目:
书写1个shell脚本,找出/oldboy下面以.log结尾修改时间是7天之前,大小大于1MB的文件删除
找出/etc下面以.conf结尾的文件打包压缩到/backup/conf.tar.gz下面 (/backup自己创建)
找出/oldboy下面以.txt 结尾的文件复制到/tmp下面
找出系统中文件名中包含ip的文件
ip
真·李导
符号
*
所有 任何
文件名中包含
find / -type f -name '*ip*'
{}
生成序列
?
[]
[^]
[root@oldboyedu59 ~]# \cp oldboy.txt{,.bak}
[root@oldboyedu59 ~]# ll oldboy.txt*
-rw-r--r-- 1 root root 321 Apr 16 12:19 oldboy.txt
-rw-r--r-- 1 root root 321 Apr 16 12:19 oldboy.txt.bak
[root@oldboyedu59 ~]# echo oldboy.txt{,.bak}
oldboy.txt oldboy.txt.bak
[root@oldboyedu59 ~]# echo A{,C}
A AC
[root@oldboyedu59 ~]# echo A{B,C}
AB AC
[root@oldboyedu59 ~]#