shell脚本中常用的命令
- date +%Y%m%d%H%M%S -----打印年月日时分秒
- echo -e "\033[32m color this word \033[0m" ----输出时添加颜色,32m是绿色,31m是红色
- find / -name *.log -type f -size -1M -mtime -30 -perm 755 ----查找到小于1M的30天内修改了的 权限为755的log文件
- find ./ -maxdepth 1 -type d -name "*" -exec rm -rf {} \; 删除当前文件夹下的所有文件夹
- ll | awk '{print $9}'|grep -v '^$'; -----打印第9列,去除空格,如果在shell脚本里ll需要改成ls -l
- read -p "press any key to continue..."(另:read -n 1) ----------按任意键继续
- echo -e "\n" | ./jdk-6u26-linux-x64.bin-----JDK文件安装时提示按回车继续,添加echo -e "\n" |后不提示。
-
find /home/ -maxdepth 1 -type d ! -name "home"|awk -F"/" '{print $NF}' 不显示指定目录名
find /home/ -maxdepth 1 -type d ! -name "home" -o -name "test2folder"|awk -F"/" '{print $NF}' 只显示指定目录名 - \cp -f sourcefile targetdir ####拷贝时如果是覆盖,不提示覆盖。
- awk '/RX/&&/bytes/{print $3}' 同时匹配“RX”及bytes
-
awk -vAWK_DATE=$DATE 'BEGIN {print AWK_DATE}'-------从SHELL向AWK传递变量 BEGIN一定要大写
- grep baseurl=file:/// CentOS-Media.repo |sed -i "s#baseurl=file.*#baseurl=file:///$Media_path#" CentOS-Media.repo 替换baseurl=file后所有的内容为Media_path的值
- scp -r -o Port=$Server_port root@$DB_IP:"$CONFIG" "$CONFIG"; 远程服务器拷贝配置文件
- url=jdbc:postgresql:\/\/:192.168.10.100: 替换该串字符中的ip为DB_IP的值。\/\/这个表示的时候是四个斜杆转义
sed -i s#url=jdbc:postgresql:\\\\/\\\\\/.*:#url=jdbc:postgresql:\\\\/\\\\\/$DB_IP:# $CONFIG - str=20190129---> ${str:0:4}-${str:4:2}-${str:6}---结果是:2019-01-29,从0位字符开始往后显示总共4个字符(从0算起,含第1个),从4位字符开始往后显示2个字符(含第5个),从6位字符起第7个开始不限
- read -p "input something:" cmd 用户输入的内容会传给变量cmd,echo $cmd
- sed -i 's/[[:space:]]/AA/g' host.txt 将空格替换成AA字符