#----------------------------------------------------------#
# ====> 红色字体 -特指煮酒个人所见。加粗则为需要重点注意。 #
# ====> 蓝色加粗 -特指与本文相关人员,包括参与修正的朋友。 #
# ====> 煮酒品茶 -Http://cwtea.blog.51cto.com #
#----------------------------------------------------------#
煮洒品茶:拼写检查spell、进程建立、列表、控制与删除、系统调用的追踪、延迟的进程调度(sleep、at、crontab等)、/proc文件
Spell程序
:检查文件里是否有拼写错误。这个程序会读取命令行上指定的所有文件,在标准输出上产生排序后的单词列表,这个列表上的单词不是在它的字典里找不到,就是无法从标准的英文文法应用派生出来。如("words"派生于"word")
COMM:
Ispell 与aspell
Ispell
-l 在标准输出打印拼错的单词列表。
-p file 以file作为正确单词拼法的个人字典。类似spelll以+起始的私有文件选项。
Aspell
--mode 使aspelll忽略一些类型的标记,如SGML与TEX
--mode=none 表示不做任何过滤。
在awk内的拼写检查程序(一部分函数)
进程(process):指的是执行中程序的一个实例(instance),新进程由fork()与execve()等系统调用所起始,然后执行,直到它们下达exit()系统调用为止。
注:unix支持多进程,每个进程权容许在极短期间执行,称为时间片段。调度器(scheduler)的部分负责管理进程的执行,当出现多CPU时,调度器会试着使用所有CPU处理工作负载。进程会被指定优先权,在任何瞬间,等待执行之进程的平均数,称平均负载(load average)
进程建立
注:一个命令shell所起始的每个进程,都会以下列保证事项启动:
进程具有一个内核文本(kernel context):在内核里的数据结构,会记录与进程相关的信息,让内核便于管理与控制进程的执行。
进程拥有一个私用的(private)、被保护的(protected)虚拟地址空间,它可能就像机器可定址空间那么大。
三个文件描述代码(标准输入、标准输出、标准错误输出)都已开启,且立即可用。
起始于交谈模式shell的进程,会拥有一个控制终端机(controlling terminal),其扮演三个标准文件数据流的默认来源处与目的地,控制终端机是让用户可将信号传送给进程。
命令行参数里的通配字符会被展开。
内存的一个环境变量区域会存在,包含具有健与值(key/value)指定的字符串,可通过程序库调用取得。
进程列表:
System V式
[root@bogon ~]# ps
PID TTY TIME CMD
2879 pts/1 00:00:00 bash
2908 pts/1 00:00:00 ps
System V式Ps -efl
[root@cwtea ~]# ps -efl
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 78 0 - 2587 - 03:34 ? 00:00:00 init [5
1 S root 2 1 0 -40 - - 0 migrat 03:34 ? 00:00:00 [migra]
1 S root 3 1 0 94 19 - 0 ksofti 03:34 ? 00:00:00 [ksoft]
BSD式 ps aux
[root@cwtea ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.4 0.1 10348 680 ? Ss 03:34 0:00 init [5]
root 2 0.0 0.0 0 0 ? S< 03:34 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? SN 03:34 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S< 03:34 0:00 [events/0]
解释说明:user与UID为进程拥有者,PID为进程ID值,PPID为父进程ID。
尝试了一下:
[root@cwtea ~]# iostat
-bash: iostat: command not found
[root@cwtea ~]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 132 bogon:ssh bogon:64837 ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 6 [ ] DGRAM 6981 /dev/log
unix 2 [ ] DGRAM 1576 @/org/kernel/udev/udevd
unix 2 [ ] DGRAM 7445
unix 3 [ ] STREAM CONNECTED 7410 /tmp/.X11-unix/X0
unix 3 [ ] STREAM CONNECTED 7409
unix 3 [ ] STREAM CONNECTED 7406 /tmp/.X11-unix/X0
unix 3 [ ] STREAM CONNECTED 7405
unix 3 [ ] STREAM CONNECTED 7386 /tmp/.X11-unix/X0
unix 3 [ ] STREAM CONNECTED 7379
unix 2 [ ] DGRAM 7375
unix 2 [ ] DGRAM 7073
unix 2 [ ] DGRAM 6989
[root@cwtea ~]# nfsstat
Warning: No Client Stats (/proc/net/rpc/nfs: No such file or directory).
[root@cwtea ~]# sar
-bash: sar: command not found
[root@cwtea ~]# uptime
03:41:59 up 7 min, 1 user, load average: 0.00, 0.15, 0.11
[root@cwtea ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 265612 20540 194884 0 0 536 34 1023 71 2 2 91 6 0
[root@cwtea ~]# w
03:42:11 up 7 min, 1 user, load average: 0.00, 0.15, 0.11
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.100.80 03:36 0.00s 0.03s 0.00s w
[root@cwtea ~]# xcpustate
-bash: xcpustate: command not found
[root@cwtea ~]# procinfo
-bash: procinfo: command not found
注:shell在处理下一个命令之前会等待一进程结束,不过只要在命令最后加入&字符,而非分号或换行符号,便能将进程放在后台中执行:wait命令可用以等待某个特定进程完成,在不加任何参数的情况下,则为等待所有后台进程的完成。Bg、fg、jobs、以及wait都为处理于目前shell下所建立的执行中进程的shell命令。
注:4组键盘字符可用以中断前台进程,ctrl-c(intr:杀除)、ctrl-y(dsusp:暂时搁置,直到输入更新为止)、ctrl-z(susp:暂时搁置)、与ctrl-\(quit:以核心转储(core dump)方式杀除)。
进程控制与删除
Kill支持信号
[root@cwtea ~]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU
25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH
29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN
35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4
39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6
59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
下接:
一起学shell之(九-2)拼写检查、进程
http://cwtea.blog.51cto.com/4500217/879971
©著作权归作者所有:来自51CTO博客作者煮酒品茶的原创作品,如需转载,请与作者联系,否则将追究法律责任
进程 一起学shell拼写检查Shell