进程
进程是是内存结构,也可以理解为用户代理,用户对计算机的使用过程,是由进程发起的。进程是一种动态的过程,一般含有指令,变量,程序等。它是把一个程序从内存空间里调出来,给其一个适合其运行的空间。
进程的结构最上层是uid,用来区别不同进程。然后是代码段。可用ls /proc/查看
每个数字是正在运行的进程的进程号
Cd /proc/10 ls可以查看某个进程的信息
进程标示符是有符号的16位二进制,号码为1-32767,但1永远属于init,因为它是linux启动时条用的第一个进程。每个进程都有其父进程衍生过来的。所以当前每个进程都原生与init,可用命令调用查看。
进程有进程状态,某时刻处于进程状态的只能有一个。
内核的几大状态:内存管理,进程管理,硬件管理,cpu管理,文件管理,等。如同我们的大脑同时只能思考一件事一样,cpu某一时刻也只能处理一件事,是靠time slice 时间片来划分。Cpu靠优先级来确定现运行哪个程序。一般优先级由数字决定,数字越低,优先级越高。但是我们也可以人为调整其优先级。也可以清除一个进程。
下面我们介绍有关进程的命令。
1,  查看进程
Ps( 有些需要横线,有些不需要)
进程分用户进程和守护进程,用户进程和terminal有关,而守护进程和terminal无关,即使用户突出,也依然运行。
a 显示与终端有关的进程,
x 显示与终端无关的进程
u 显示进程的发起者
进程状态:
D 可终端睡眠
R 等待运行的进程
S 可中断睡眠的进程
X 死掉的进程
< 高优先级进程
n 低优先级进程
l 被锁定的页面,不可置换到虚拟内存中去
tty 由哪个终端启用进程
cmd 由哪个命令发起的进程
euser 显示借用的谁的身份
ps –ef :额外的完全格式的进程信息
pa axo 选列,ps grep 选行。Linux中直接定义可与正则表达式相匹配的pgrep,pgrep  -l 1 列出了所有进程中包含1的。Pgrep的取反是加v来实现。
更多命令可以使用man ps
信号:信息是进程之间通信的一种信息本                               
Sign 15 称为优雅终止。Sign 9 则强行终止。Sign 1 ,HUP ,则不用重启服务仍可重读信息。
 
优先级:接受cpu的权利,由nice决定,为-2019 默认0
Renice 1 –p PID ,renice 来调进程号
top动态检测系统状态是一个十分重要的命令,经常用于系统调或系统瓶颈分析。top有许多子命令。top每隔五秒钟刷新一次。
我们先介绍一下第一行。
Us ;用户发起的进程占的cpu的百分比
Sy:系统内存空间,即系统发起的进程占的百分比
Ni:改动过nice的进程占的百分比
Id:cpu的空闲周期
Wa:显示等待时长占cpu的时常
Hi:硬件中断时间。
Si:软中断。
St:当前系统上被虚拟机偷走的时间。
 
PID:每个进程的ID
USER:该进程所属用户
PR:进程优先级
 
NInice的简写
%cpu:cpu的使用率
%mem:内存使用率。
TIME+:cpu使用时间的累加。
 
at 某个特定时刻所做的事情。时间可以是绝对时间,也可以是相对时间,也可以是模糊时间。如:at now+1 at 16:30
at
-l 查看计划任务,但看执行结果需要到邮箱中去查看
-d + number 移除计划 也可用 at rm
-q 指定队列名 ,但名字必须是单个字母,大小写均可
 
Crontab:指定周期性任务计划作业。
Crontab –e 编辑,可检查语法错误。Vim则不行;
共有六段,排序如下:分,小时,天,月,每周几
若用两段时间,中间可用逗号隔开譬如:10 3,8 *** 即每天的310分和9点十分
定义频率可用出发,直接用相对字段除以频率即可
Run-parts每天运行一遍某个程序
crontab也有缺点,它需要你一天24小时在线,否则无法圆满执行你所定义的计划,为了弥补这种缺点,就产生了一种工具即anacron,它会帮你检查再开机时没有执行的计划你可以在最多精确到天。anacron中定义一旦发现任务没有执行什么时候执行,一般为分钟。
Anacron也需要一个进程,可以用service anacron statu查看
 命令分组
命令分组意味着不再当前shell中运行,而是在子shell中运行。
信号捕捉 trap
如:trapped () {
trap echo “ you are interputing ping “ && exit 3 INT
}
For I in {1..254} ; do
Ping  –c  l w 1 192.168.0.$I &> /dev/null
If [ &? –eq 0 ]; then
Echo “the station online”
Else
Echo “The station offline…
fi
done
 Bash
path定义命令搜索路径。
Shell 中有几个文件可以定义 有:/etc/profile ./etc/profile..d*/ ,~/.bash_profile
/etc/bashrc and ~/.ebashrc
无论是/etc/profile .还是~/.bash_profile都是登陆式文件/etc/profile./etc/profile..d*//etc/bashrc都是全局有效,而~/.bashrc~/.bash_profile是家目录中定义的。
登陆式shell会先读/etc/profile再读/etc/bashrc,而非登陆式shell只读/etc/bashrc
我们在回顾一下登陆式shell的调用过程 /etc/profile.->~/.bashrc /etc/profile..d*/->~/.bashrc->/etc/bashrc
非登陆式shell~/.bashrc->/etc/bashrc->/etc/profile..d*/