shell脚本学习之自我总结(持续更新)

变量值编辑

变量variable:value
匹配规则Matching rules:regular_expressionr_exp
旧字串:old_str
新字串:new_str

变量后缀替换

${value%r_exp} 从尾部开始匹配,匹配上最短字串就删除
${value%%r_exp} 从尾部开始匹配,匹配上最长字串就删除

变量前缀替换

${value#r_exp} 从头部开始匹配,匹配上最短字串就删除
${value##r_exp} 从头部开始匹配,匹配上最长字串就删除

变量字串替换

${value/old_str/new_str} 替换变量中旧字串为新字串,只替换左边匹配到的第一个
${value//old_str/new_str} 替换变量中旧字串为新字串,替换全部

命令实现结果

hehe_hehe_gaxaxd.txt.txt → hamor_good.csv

[hamor@hamor_test ~]$ value="hehe_hehe_gaxaxd.txt.txt"
[hamor@hamor_test ~]$ echo ${value%%.*t}.csv && value=$(echo ${value%%.*t}.csv)
hehe_hehe_gaxaxd.csv
[hamor@hamor_test ~]$ echo hamor_${value##h*_} && value=$(echo hamor_${value##h*_})
hamor_gaxaxd.csv
[hamor@hamor_test ~]$ echo ${value//ax/o}
hamor_good.csv
[hamor@hamor_test ~]$ 

批量文件后缀".txt"换成".csv"

for file in *.txt
do
mv ${file} "${file%.txt}.csv"
done

date命令

用法: date [选项] [+格式]
特点:
①格式和选项前后顺序可替换;
②选项可省略,表示当前时间;
③选项和格式最好放进双引号中;
④选项和格式都有一定的规范。
实例:

[hamor@hamor_test ~]$ date "+%F %T" --date="-1day+10hour+2minute+10second"
2023-11-01 08:33:31
[hamor@hamor_test ~]$ date  -d "-1day+10hour+2minute+10second" "+%Y-%m-%d %H:%M:%S"
2023-11-01 08:33:33
[hamor@hamor_test ~]$ date_data=$(date "+%Y%m%d");date "+%Y%m%d" --date="$date_date -1day"
20231031
[hamor@hamor_test ~]$ 

find命令

用法:find [paths] [expressions] [actions]

#10天内1到2M的jar后缀文件
find /opt -type f -size -3M -size +1M -atime -10 -name "*.jar" -exec ls -lrth {} \;
#删除超过7天的message日志文件
find /var -type f -atime +7 -name "message*" |xargs rm;
#atime/mtime/ctime是天单位
#amin/mmin/cmin是分钟单位

sed命令

用法:sed [options] ‘command’ file
sed -n ‘1,3p’ /etc/passwd
sed -n ‘/^root:/p;//bin/bash$/p’ /etc/passwd|uniq
sed -i ‘1i xxxxxx’ /etc/passwd
sed -i ‘2a xxxxxx’ /etc/passwd
sed -i ‘1d;3d’ /etc/passwd
sed -i.bak ‘s#/bin/false#/sbin/nologin#g’ /etc/passwd

密码维护

修改密码

[root@hamor_test ~]# passwd test
Changing password for user test.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@hamor_test ~]# echo 123456 | passwd --stdin test
Changing password for user test.
passwd: all authentication tokens updated successfully.
[root@hamor_test ~]# echo "test:123456"|chpasswd
[root@hamor_test ~]# 

查看用户有效期

chage -l test

修改用户有效期

chage -M 99999 test

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值