1.ps aux TIME 是分配的时间片的总和
ps的状态
S: interruptable sleeping
D: uninterruptable sleeping
T: stopped
Z: zombie
+: 前台进程
l: 多线程进程
L: 内存分页并带锁
N: 低优先级进程
<: 高优先级进程
s: session leader, 会话(子进程)发起者
# ps xo pid,cmd,%cpu,tty x要在前,o后面要紧跟属性
# ps xo pid,cmd,%cpu k %cpu 按照cpu来排序,k 选项指定哪列排序 属性加-倒序
图形化界面的占用内存较高,生产建议以init 3 级别运行
# ps L 显示支持的属性
# euser,ruser 执行passwd命令两列不相同,因为passwd命令有特殊权限suid所以执行命令的用于要以命令所有者的身份来执行,所以euser应该是root,而ruser是执行该命令的用户
# renice 调整优先级 renice -n -10 2612
# nice -n 5 sleep 100 直接为进程指定优先级(只有root用户可以指定进程优先级)
# ps命令的属性psr可以查看到进程在哪颗cpu上运行
# ps -C f1.sh -C f2.sh (-C f1.sh,f2.sh)shell脚本需要#!/bin/bash
# ps -eo comm,etime,user |grep systemd 可以查看开机时间(etime为系统运行时间) grep搜索的内容要在ps的命令中出现
2.# pidof vim 只查看进程的id号,kill命令的时候可以使用 pidof httpd | xargs kill -9 注意要使用xargs 因为kill命令不接收标准输入
3.# uptime load average 剩余多少个任务没有完成(1,5,10分钟内)
[[email protected] ~]#uptime
11:03:39 up 1:35, 4 users, load average: 0.00, 0.01, 0.05
11:03:39 表示当前时间
1::35 表示的是服务器的运行时间(从开机至现在)
4 users: 表示当前用户开启的终端数(w 命令可查看)
load average: 分别表示1分钟,5分钟,10分钟的负载情况即1、5、10分钟还剩多少任务没有完成,值越大表明负载越高(值大小一般不超过1)
系统负载:指在特定时间间隔内运行队列中的平均进程数
# top
hi 硬中断(如敲击键盘鼠标似的为硬件中断) si 软中断(程序的中断)
id(idle) 空闲
M:内存排序
P:CPU排序(默认排序方式)
d: 指定刷新的时间
l:是否显示uptime行
1:多CPU各自的显示状态信息(顺便可以查看cpu的个数,lscpu)
k:杀掉进程
W:保存状态至文件
4. pgrep -t terminal 指定显示某终端的进程,如:pgrep -t pts/0
pgrep -l 显示进程名和pid
5.清空free 命令中的buffer 空间的文件:/proc/sys/vm/drop_caches
# echo 1 > /proc/sys/vm/drop_caches 清空free 显示的buffer
6.vmstat 1 3 1秒一执行 3秒退出
7.一次写入大于内存的大小的数据,可以查看到swap占用的情况
# dd if=/dev/zero of=/data.file bs=2G count=3
8.pmap pid 查看进程内存的分配情况
9.kill -1 pid 重读配置文件(有时需要重新启动服务)
交互程序cat bc 可以使用ctrl + \ 来终止程序
kill 杀不掉mingetty,centos6的登录终端进程
killall 默认也是15信号
10.如ping 127.0.0.1 可以通过ping 127.1 来简写
11.ctrl + z stopped ,使用bg 作业号来运行
kill -19 ping 可以让后台运行转变为后台休眠
kill -18 ping 可以让后台由休眠转为后台运行
12.Ctrl +c 是2号信号
13.作业在执行的时候依然可以输入命令来执行如 ping 127.0.0.1 &
14.jobs只能在本终端查看到后台的进程
15.使用&将进程放到后端执行,但依然是与终端有关的,可以通过ps aux 命令查看到,如果断网进程依旧关闭,为了避免此种情况可以使用screen ,断开后使用screen -r 恢复
16.并行执行
脚本中执行:
ping 127.1 &
ping 127.2 &
ping 127.3 &
命令行中并行执行
(ping 127.1 &);(ping 127.2 &);(ping 127.3 &)
{ ping 127.1 & ping 127.2 & ping 127.3 & } 注意两边的空格
17. 时间始终同步设置
vi /etc/chrony.conf 始终保持同步,如果时间差别太大的话要使用ntpdate 172.20.0.1来立即同步
server 172.20.0.1 iburst
systemctl enable chronyd
systemctl start chronyd
centos6: /etc/ntp.conf centos7: /etc/chrony.conf 两版本的名字不同
service ntpd start
chkconfig ntpd on
18.at 17:00 ctrl+d 结束
at -l 查看作业
at -c 1 查看指定作业的详细,内容来自 /var/spool/at
ls -l /var/spool/at/ at命令写入到该文件中
at now + 15minutes
at 计划任务中如果有标准输出是发送至邮件中的,为避免大量垃圾邮件可以重定向至/dev/null
at now + 1minutes < at2.txt
echo wall atjob | at now + 1 min
at 支持标准输入,所以可以使用< 和 |
/etc/at.{allow|deny},默认只有黑名单,可以手动创建白名单,白名单黑名单都有的用户白名单的优先级高
白名单有的话,只有白名单的人才可以执行at,如果白名单里面没有,黑名单里面有的则没有权限,没有白名单,不在黑名单的人可以执行,白名单黑名单全没有的时候只有root可以执行at
脚本中使用at计划任务
at 18:00 <<EOF
rm -rf /data/*
EOF
白名单黑名单只是禁止用户再去创建at计划任务,如果将原有人员添加至黑名单,计划任务还是可以执行
19.ctrl + D (Ctrl + \) 关闭交互程序
20.crond 计划任务和at 计划任务 如果有标准输出会输出至邮件
21.crond的配置文件/etc/crontab,需要指定执行的用户名,命令写入的疾患任务不需要加
/var/log/cron 日志文件
10 21 * * * centos /bin/echo "Howdy!" 输出会发送至邮件
普通用户可以使用crontab 来创建,不能使用/etc/crontab来创建
# crontab -e (/var/spool/cron/下面创建计划任务文件,但是不能使用vim直接编辑,该文件有特殊权限suid,不能直接修改)
# crontab -e -u username
# crontan -r -u wang 删除计划任务
22.df |grep '^/dev/sd*' | sed -r '[email protected]*[ ]+([0-9]{1,3})%.*@\[email protected]' |sort -nr |head -1
23.循坏重启(centos7)
在出现引导菜单时输入e键
在linux 16开头行的末尾加rd.break后输入ctrl +x
启动之后使用mount 命令查看根分区挂载的目录,因为是只读方式挂载所以要使用mount -o remount,rw /sysroot/ 来以读写的方式重新挂载
vim /sysroot/etc/crontab 编辑计划任务,删除循环重启行后保存,init 3 启动
@reboot root reboot 循环重启
centos 6
在出现引导菜单时输入a键
最后加 空格 1 后 Enter
启动后修改循环重启计划任务文件vi /etc/crontab
24.rpm -ql crontabs
run-parts 指定目录下面所有可执行脚本全部运行
25.cat /etc/crond.0hourly 系统定义的
可以将计划任务写入到/etc/cron.*系统定义的目录中
按要求将可以将自己的脚本放到指定的目录中来定时执行
26./etc/anacrontab period in days 隔多长时间来执行
27.脚本中加sleep 20 每20秒中执行一次
vim f1.sh
cmd 0
sleep 20
cmd 20
sleep 20
cmd 40
死循环
vim f1.sh
cmd
sleep 20
f1.sh
usleep 1000000 微秒级别
28.Centos6 修改配置网卡前要关闭NetworkManager,否则重启network服务容易报错,#service NetworkManager stop chkconfi NetworkManager off
29.Centos7同步时间时多次不成功,后来发现是时区的问题,# timedatectl status 查看时区信息, #timedatectl set-timezone Asia/Shanghai
30.脚本中匹配数字的时候,可以使用正则表达是 if [[ $num =~ ^[0-9]{1,3}$ ]] ;then ... (补充: [[]] 内部使用的正则表达式扩展正则表达式)
31.[[email protected] ~]# free
total used free shared buffers cached
Mem: 1004112 937232 66880 3728 26232 585796
-/+ buffers/cache: 325204 678908
Swap: 2047996 8 2047988
325204 = 66880 - 26232 - 585796
678908 = 66880 + 26232 + 585796
32.算数运算
# echo $((1+2))
# echo $[1+2]
# echo 1+2 |bc
33.man 5 crontab
note: The day of a command’s execution can be specified by two fields — day of month, and day of week. If both fields are restricted
(ie, aren’t *), the command will be run when either field matches the current time. For example,
"30 4 1,15 * 5" would cause a command to be run at 4:30 am on the 1st and 15th of each month, plus every Friday.
34.vim 编辑器中使用的是标准的正则表达式
:%s/^[[:space:]]\+// 删除所有行首的空格
原文地址:http://blog.51cto.com/9980200/2113058