> 标准输出重定向 覆盖输出
>> 追加输出重定向
## 从第3行开始显示,显示接下来10行内容:
cat filename | tail -n +3 | head -n +10
## 过滤 -A 后n行 -B 前n行
cat test.log |grep 'xxx' -A10 -B10
## 按日期查日志
sed -n "/2022-01-14 15:05:55/,/2022-01-14 15:15:55/p" test.log
## 统计行数
wc -l file
du -h --max-depth=1 /
df -h /
find / -name root -type d
find / -name test.log
管道一般用于过滤, A|b 命令A的正确输出作为命令B的操作对象
grep 取出含有搜寻内容的行 -v 反选,:
## tail 出有关键字的日志并输出后10行
tail -f -n200 test.log|grep '出账' -A10
# 将错误输出 标准输出丢弃
nohup test.jar >/dev/null 2>&1 &
# 将错误输出输出到屏幕,标准输出丢弃
nohup test.jar >/dev/null 2>&1 &
使用crontable 创建任务后任务会记录到/var/sponl/cron里面去 执行日志保存到/var/log/cron中
## 这里,我们在每天早上 8 点整执行 find 命令;该命令会在 /home/s/coredump 目录下寻找 search 用户创建的普通 7 天前的文件,然后删除
0 8 * * * find /home/s/coredump -user search -type f -mtime +7 -delete
scp [-P22 端口号] local_file remote_username@remote_ip:remote_file
sudo scp -o xxx xxx.jar root@192.168.1.1:/home/test
n 表示获取当前执行的shell脚本的第n个参数值
if [ 条件 ]
then
指令
fi
if [ 条件 ]
then
指令1
else
指令2
fi
if [ 条件 ]
then
指令1
elif [ 条件2 ]
then
指令2
else
指令3
fi
case 变量名 in
值1)
指令1
;;
...
值n)
指令n
;;
esac
for 值 in 列表
do
执行语句
done
while 条件
do
执行语句
done
continue 跳出当前循环
exit 退出程序
#!/bin/bash
# 函数使用场景一:执行频繁的命令
dayin(){
echo "wo de mingzi shi 111"
}
dayin
#!/bin/bash
# 函数的使用场景二
dayin(){
echo "wo de mingzi shi $1"
}
dayin 111
#!/bin/bash
# 函数传参演示
# 定义传参数函数
dayin(){
echo "wode mignzi shi $1"
}
# 函数传参
dayin $1
#!/bin/bash
# 函数的使用场景二
canshu = "$1"
dayin(){
echo "wo de mingzi shi $1"
}
dayin "${canshu}"
用于配置开机自启动或者挂掉重启
配置示例:
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/xx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/xxx
PrivateTmp=true
Restart=always
RestartSec=5
其中配置 Restart=always
和 RestartSec=5
可在进程挂了之后重启,systemctl daemon-reload
重新加载配置。
Type:定义启动时的进程行为。它有以下几种值。