查日志
查看文件前面50行数据
head -n 50 filename == head -50 filename
查看文件后面50行数据
tail -n 50 filename == tail -50 filename
查看文件20-50行数据
head -50 filename | tail -31
先查看文件前50行数据,用 | 管道连接, 以取出的内容作为tail的输入
awk 'NR==20 NR==50' filename
sed -n '20,30p' filename
查看某个关键词上下文10条数据
grep -C 10 keyword catalina.out 查找关键字上下文的10条数据存到 catalina.out 文件中
sed 命令
利用模式进行匹配
sed -n '/Hello/'p filename
利用行号和模式进行匹配
sed -n '3,/Hello/' filename
打印1-3行数据
sed -n '1,3p' filename
让程序休眠xx秒
sleep xxs
让程序休眠xx分钟
sleep xxm
切换用户名
su -用户名
文件夹命令
mkdir doc1 文件夹
mkdir doc1 doc2 doc3 在当前目录创建同级目录doc1,doc2,doc3
mkdir -p doc/subDoc -p创建多层级子目录 创建doc目录和子目录subDoc
rmdir doc1 删除文件夹doc1及里面的全部内容
rmdir -p a1/a2/a3 删除文件夹a1里面的全部目录
文件命令
touch
>
cp
rm
mv
tar 文件压缩与解压命令
tar -cvf c.tar a b 将文件a b 压缩到文件c.tar里面
tar -xvf c.tar a b 将文件c.tar里的文件a,b解压到当前文件夹里
unzip a.zip 解压a.zip到当前文件夹里
find 查找文件
find a* 查找文件以a开头的文件
find /a/s* 查找绝对路径/a目录下的以s开头的文件
find a* -print 查找a开头的文件,并打印出来
tail -n 500 显示文件后500行
tail -1 显示文件最后一行
tail -f 查看动态日志
vi vim编辑文件
vi a.txt编辑文件a.txt(如果文件a.txt不存在,则创建一个)
i 开始编辑
esc退出编辑文件
:w保存修改
:q退出修改
:wq保存并退出修改
:q!强行退出文件,不保存修改
?xx 查找文件中关于xx的内容
echo 'hello'>>a.txt 输出hello追加到a.txt中
echo '你好'>a.txt 用'你好'覆盖a.txt文件
cat a.txt | grep 'hello' 在a.txt文件中查找含有hello的文本
clear 清屏
hostname 查看当前主机名
hostname b 修改当前主机名为b
reboot 重启
shutdown 关机
logout 注销当前用户
top 实时,动态的查看当前CPU,MME(内存)最近的负载信息
按大M,从大到小的顺序 按大cpu,从大到小的顺序
kill 7890 杀死进程号为7890的进程
kill -9 7890 强杀pid为7890的进程
ifconfig 查看当前ip地址
ping ip/hostname
at单定时次任务
参数解释
- -V 查看版本号
- -d atrm的别名
- -c 打印任务到标准输出
- -l atq的别名
- -m 当指定任务被完成后,将给用户发送邮件,即便没有指定输出
- -q<队列> 使用指定的队列
- -f<文件> 从指定的文件读入任务而不是标准输入读入
- -t 以时间参数的形式提交要运行的任务
示例
22:34执行
at 22:34
三天后的下午5点执行
at 5pm+3 days
明天17:20输出到指定目录里面
at 17:20 tomorrow
ctrl+D结束编辑
atq 查看有没有执行工作任务
atrm 4 删除序号为4的任务
at -c 3 显示已设置的任务列表
启动
- systemctl start atd 启动at命令服务 atd 是at程序的守护线程
- systemctl status atd 查看at命令状态
- systemctl is-enabled atd 查看at命令是否开机启动
要运行定时任务,Linux系统上必须要有负责这个计划任务的服务,这个服务就是atd服务。不过并非所有的linux distribution都会默认运行这个服务的。需要用/etc/init.d/atd start去激活。或者/etc/init.d/atd restart
运行方式与安全
at服务运行atd服务上面的,当使用at命令编写执行计划后,执行计划会写在/var/spool/at/目录内,该目录便能等待at服务的取用与运行。不过很多黑客攻击都是通过某个账号,进入到服务器内,然后执行一些定时计划,把系统信息发送给他们,以达到黑取信息的目的。这时候就得使用到两个文件来做控制,一个是/etc/at.allow,一个是/etc/at.deny。写在at.allow文件里的用户可以执行定时计划,如果用户没写在at.allow里面,则该用户不运行执行计划任务。也可以不用去考虑at.deny文件。如果文件at.allow不存在,则看at.deny文件,写在deny文件里面的用户会被拒绝,其它用户则允许执行。如果两个文件都不存在,则只可以有root用户去执行计划任务。很多distributions都是假设系统上所有的账户都是安全的,就创建了一个at.deny空文件,允许所有的用户都去创建和执行计划任务。
crontab循环定时任务
crond服务
systemctl start crond
systemctl reload crond
systemctl restart crond
systemctl stop crond
system status crond
等价于
service crond start
service crond stop
service crond restart
service crond reload
service crond status
参数
crontab -e 创建一个定时任务
crontab -u user -e 创建用户user的定时任务
crontab -l 查看定时任务详情
crontab -u user -l 查看用户User的定时任务详情
crontab -r -u u 删除指定定时任务
实例
* * * * * command
分时日月周 命令
第一列 分 1-59 (每分钟用* 或 */1)
第二列 时 1-23 (0表示0点)
第三列 日1-31
第四列 月1-12
第五列 周1-6 (周日用0或7表示)
第六列 表示用运行的命令
* 表示每
/ 表示频率多少一次 */10 1-23/2
- 表示区间 1-6
,表示分散的几个数字 1,2,10-13, 16
创建定时计划
例1.每天2点1分执行备份任务
crontab -e 1 2 * * * tar -zcvf /opt/grab2.tar.gz /boot/grub2
crontab -l
写在系统级别中的计划任务
vim /etc/crontab
1 2 * * * root echo 'a1111'>>a.txt
运行方式与安全
/var/spool/cron/ 存放每个用户创建的定时任务,文件用创建者名字命名
/etc/crontab 这个文件负责安排由系统管理员安排的维护系统或其它的计划任务
/etc/cron.d/ 此目录用来存放要执行的crontab定时任务文件或脚本
/var/adm/cron/ cron.allow cron.deny与单次任务的原理一样