shell命令

1.测试shell命令的执行时长

1.for num in {1..100};do echo ${num};done 
--执行打印1-100
1
2...
100
2.for n in {1..3};do str=`seq -s ":" 10`;echo ${str};done 
--(-s)是打印序列字符串(1-10)
结果:
1:2:3:4:5:6:7:8:9:10
1:2:3:4:5:6:7:8:9:10
1:2:3:4:5:6:7:8:9:10
----统计字符串长度时间谁最长
3.time for n in {1..3};do str=`seq -s ":" 10`;echo ${str};done 
结果:
real	0m0.002s--实际
user	0m0.002s--用户
sys	0m0.001s--内核
4.time for n in {1..3};do str=`seq -s ":" 10`;echo $str |wc -L;done
结果: 
real	0m0.005s
user	0m0.003s
sys	0m0.002s
变慢了。。。
5.time for n in {1..3};do str=`seq -s ":" 10`;expr length "${str}";done
结果:
real	0m0.004s
user	0m0.003s
sys	0m0.001s
6.linux@ubuntu:~$ time for n in {1..10};do str1=`seq -s "change" 100`;echo ${str1}|awk --最长'{print length($0)}';done
结果:
real	0m0.022s
user	0m0.018s
sys	0m0.007s


2.shell的命令

1.linux@ubuntu:~$ name="gtgtyxy"
linux@ubuntu:~$ echo ${name#gt}
gtyxy
2.linux@ubuntu:~$ unset name
linux@ubuntu:~$ echo ${name}
--清空变量值
3.linux@ubuntu:~$ name="gtgt180"
                        0123456
linux@ubuntu:~$ echo ${name:3}---从3开始到结尾
t180
4.linux@ubuntu:~$ echo ${name:3:2}---从3开始只有两位
t1
5.linux@ubuntu:~$ echo ${name#gt}--删掉头部的最短的gt开始输出
gt180
linux@ubuntu:~$ echo $name |wc -L/l----统计字符串长度输出最长的一个---输出有几行
7/1
6.linux@ubuntu:~$ echo ${name//gt/aa}---一个/是只替换一个---两个/是全替换
aaaa180
7.linux@ubuntu:~$ echo ${name%0}------删掉从尾部开始的0
gtgt18
8.linux@ubuntu:~$ echo ${name##g*t}--删掉头部的最长的gt开始输出
180





3.删除文件名

ex:
linux@ubuntu:~/shell/sub_str$ ls
gt_1_f.jpg  gt_2_f.jpg  gt_3_f.jpg  gt_4_f.jpg  gt_5_f.jpg
gt_1_f.png  gt_2_f.png  gt_3_f.png  gt_4_f.png  gt_5_f.png
修改:
1.mv ---修改单个文件名字
2.echo  ${变量//_f/}----置换成空
3.`data`
linux@ubuntu:~/shell/sub_str$ echo `date`---反引号可以取得结果
Fri 19 Jul 2024 07:18:51 AM PDT
linux@ubuntu:~/shell/sub_str$ f="gt_3_f.png"
linux@ubuntu:~/shell/sub_str$ mv $f `echo ${f//_f/_yxy}`---替换字符串、
--结果
linux@ubuntu:~/shell/sub_str$ ls
gt_1_f.jpg  gt_2_f.jpg  gt_3_f.jpg    gt_4_f.jpg  gt_5_f.jpg
gt_1_f.png  gt_2_f.png  gt_3_yxy.png  gt_4_f.png  gt_5_f.png
4.for
for f_name in `ls *f*.png`;do mv $f_name `echo ${f_name//_f/_yxy}`;done
---结果
linux@ubuntu:~/shell/sub_str$ ls
gt_1_f.jpg    gt_2_f.jpg    gt_3_f.jpg    gt_4_f.jpg    gt_5_f.jpg
gt_1_yxy.png  gt_2_yxy.png  gt_3_yxy.png  gt_4_yxy.png  gt_5_yxy.png


4.变量的处理

1.:-
gt值为空就result返回后面的字符信息,若gt有值就当这个命令不存在
linux@ubuntu:~/shell/sub_str$ result=${gt:-123}
linux@ubuntu:~/shell/sub_str$ echo ${gt}

linux@ubuntu:~/shell/sub_str$ echo ${result}
123
2.:=
如果变量为空,后面的值给gt也给result,gt有值命令就没有用。
linux@ubuntu:~/shell/sub_str$ unset gt
linux@ubuntu:~/shell/sub_str$ unset result
linux@ubuntu:~/shell/sub_str$ result=${gt:=55555}
linux@ubuntu:~/shell/sub_str$ echo ${gt};echo ${result}
55555
55555
3.:?
提示错误值,没有错误时没用
linux@ubuntu:~/shell/sub_str$ echo ${new_gt:?}
bash: new_gt: parameter null or not set
linux@ubuntu:~/shell/sub_str$ echo ${new_gt:?hihihi}
bash: new_gt: hihihi
linux@ubuntu:~/shell/sub_str$ new_gt="gtgt"
linux@ubuntu:~/shell/sub_str$ echo ${new_gt:?hihihi}
gtgt
4.:+
当变量为空,什么都不干,不为空,字符返回给result
linux@ubuntu:~/shell/sub_str$ echo ${yxy:+hhhh}

linux@ubuntu:~/shell/sub_str$ yxy="123"
linux@ubuntu:~/shell/sub_str$ echo ${yxy}
123
linux@ubuntu:~/shell/sub_str$ res=echo ${yxy:+hhhh}
hhhh

find xargs ---搜索且删除


cat del_data.sh

这样才对,会给他赋正确的值
find ${dir_path:=/data/data/} -name '*.tar.gz' -type f -mtime +7|xargs rm -f

//超过七天的-f(普通)文件搜索且删除

内置命令,外置命令

内置:系统启动时就会加载到内存中,会占用资源。是shell的一部分compgen -b查看所有内置

外置:系统需要从硬盘中读取下载到内存中才能用。/bin---/user/bin---/sbin   会开启子进程

linux@ubuntu:~/shell/sub_str$ ps -f --forest
UID          PID    PPID  C STIME TTY          TIME CMD
linux       3439    3431  0 07:03 pts/0    00:00:00 bash
linux       3853    3439  0 07:57 pts/0    00:00:00  \_ ps -f --forest
 

type可以来区别他们

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值