一起学shell之(九-1)拼写检查、进程

简介:

 #----------------------------------------------------------#

# ====> 红色字体 -特指煮酒个人所见。加粗则为需要重点注意。 #

# ====>  蓝色加粗 -特指与本文相关人员,包括参与修正的朋友。 #
# ====> 煮酒品茶 -Http://cwtea.blog.51cto.com          #
#----------------------------------------------------------#

 

spell

Spell程序

:检查文件里是否有拼写错误。这个程序会读取命令行上指定的所有文件,在标准输出上产生排序后的单词列表,这个列表上的单词不是在它的字典里找不到,就是无法从标准的英文文法应用派生出来。如("words"派生于"word")

COMM

 

Ispell aspell

Ispell

-l 在标准输出打印拼错的单词列表。

-p file file作为正确单词拼法的个人字典。类似spelll+起始的私有文件选项。

Aspell

--mode 使aspelll忽略一些类型的标记,如SGMLTEX

--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


 
  
  1. [root@bogon ~]# ps 
  2.   PID TTY          TIME CMD 
  3.  2879 pts/1    00:00:00 bash 
  4.  2908 pts/1    00:00:00 ps 

System VPs -efl 


 
  
  1. [root@cwtea ~]# ps -efl 
  2. F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD 
  3. 4 S root         1     0  0  78   0 -  2587 -      03:34 ?        00:00:00 init [5 
  4. 1 S root         2     1  0 -40   - -     0 migrat 03:34 ?        00:00:00 [migra] 
  5. 1 S root         3     1  0  94  19 -     0 ksofti 03:34 ?        00:00:00 [ksoft] 

BSD式 ps aux


 
  
  1. [root@cwtea ~]# ps aux 
  2. USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND 
  3. root         1  0.4  0.1  10348   680 ?        Ss   03:34   0:00 init [5]         
  4. root         2  0.0  0.0      0     0 ?        S<   03:34   0:00 [migration/0] 
  5. root         3  0.0  0.0      0     0 ?        SN   03:34   0:00 [ksoftirqd/0] 
  6. root         4  0.0  0.0      0     0 ?        S<   03:34   0:00 [events/0] 

解释说明:userUID为进程拥有者,PID为进程ID值,PPID为父进程ID

 

尝试了一下:


 
  
  1. [root@cwtea ~]# iostat 
  2. -bash: iostat: command not found 
  3. [root@cwtea ~]# netstat 
  4. Active Internet connections (w/o servers) 
  5. Proto Recv-Q Send-Q Local Address               Foreign Address             State       
  6. tcp        0    132 bogon:ssh                   bogon:64837                 ESTABLISHED  
  7. Active UNIX domain sockets (w/o servers) 
  8. Proto RefCnt Flags       Type       State         I-Node Path 
  9. unix  6      [ ]         DGRAM                    6981   /dev/log 
  10. unix  2      [ ]         DGRAM                    1576   @/org/kernel/udev/udevd 
  11. unix  2      [ ]         DGRAM                    7445    
  12. unix  3      [ ]         STREAM     CONNECTED     7410   /tmp/.X11-unix/X0 
  13. unix  3      [ ]         STREAM     CONNECTED     7409    
  14. unix  3      [ ]         STREAM     CONNECTED     7406   /tmp/.X11-unix/X0 
  15. unix  3      [ ]         STREAM     CONNECTED     7405    
  16. unix  3      [ ]         STREAM     CONNECTED     7386   /tmp/.X11-unix/X0 
  17. unix  3      [ ]         STREAM     CONNECTED     7379    
  18. unix  2      [ ]         DGRAM                    7375    
  19. unix  2      [ ]         DGRAM                    7073    
  20. unix  2      [ ]         DGRAM                    6989    
  21. [root@cwtea ~]# nfsstat 
  22. Warning: No Client Stats (/proc/net/rpc/nfs: No such file or directory). 
  23. [root@cwtea ~]# sar 
  24. -bash: sar: command not found 
  25. [root@cwtea ~]# uptime 
  26.  03:41:59 up 7 min,  1 user,  load average: 0.00, 0.15, 0.11 
  27. [root@cwtea ~]# vmstat 
  28. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ 
  29.  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 
  30.  0  0      0 265612  20540 194884    0    0   536    34 1023   71  2  2 91  6  0 
  31. [root@cwtea ~]# w 
  32.  03:42:11 up 7 min,  1 user,  load average: 0.00, 0.15, 0.11 
  33. USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT 
  34. root     pts/0    192.168.100.80   03:36    0.00s  0.03s  0.00s w 
  35. [root@cwtea ~]# xcpustate 
  36. -bash: xcpustate: command not found 
  37. [root@cwtea ~]# procinfo 
  38. -bash: procinfo: command not found 

注:shell在处理下一个命令之前会等待一进程结束,不过只要在命令最后加入&字符,而非分号或换行符号,便能将进程放在后台中执行:wait命令可用以等待某个特定进程完成,在不加任何参数的情况下,则为等待所有后台进程的完成。Bgfgjobs、以及wait都为处理于目前shell下所建立的执行中进程的shell命令。

注:4组键盘字符可用以中断前台进程,ctrl-c(intr:杀除)ctrl-y(dsusp:暂时搁置,直到输入更新为止)ctrl-zsusp:暂时搁置)、与ctrl-\(quit:以核心转储(core dump)方式杀除)

进程控制与删除

Kill支持信号


 
  
  1. [root@cwtea ~]# kill -l 
  2.  1) SIGHUP   2) SIGINT   3) SIGQUIT  4) SIGILL 
  3.  5) SIGTRAP  6) SIGABRT  7) SIGBUS   8) SIGFPE 
  4.  9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 
  5. 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 
  6. 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 
  7. 21) SIGTTIN 22) SIGTTOU 23) SIGURG  24) SIGXCPU 
  8. 25) SIGXFSZ 26) SIGVTALRM   27) SIGPROF 28) SIGWINCH 
  9. 29) SIGIO   30) SIGPWR  31) SIGSYS  34) SIGRTMIN 
  10. 35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+4 
  11. 39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8 
  12. 43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 
  13. 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 
  14. 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 
  15. 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6 
  16. 59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2 
  17. 63) SIGRTMAX-1  64) SIGRTMAX 




本文转自 煮酒品茶 51CTO博客,原文链接:http://blog.51cto.com/cwtea/879968,如需转载请自行联系原作者

目录
相关文章
|
2月前
|
Shell Linux 调度
【Shell 命令集合 系统管理 】Linux 调整进程优先级 renice命令 使用指南
【Shell 命令集合 系统管理 】Linux 调整进程优先级 renice命令 使用指南
50 0
|
2月前
|
存储 监控 Linux
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 查看当前正在运行的进程信息 ps命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 查看当前正在运行的进程信息 ps命令 使用指南
44 0
|
2天前
|
Shell Linux
【Linux】进程实践项目(更新中) — 自主shell编写
前几篇文章,我们学习进程的相关知识:进程概念,进程替换,进程控制。熟悉了进程到底是个什么事情,接下来我们来做一个实践,来运用我们所学的相关知识。这个项目就是手搓一个shell模块,模拟实现Xshell中的命令行输入。
10 1
|
7天前
|
监控 Linux Shell
|
1月前
|
Shell Linux
Linux脚本Shell脚本来实现一次性kill多个端口的进程
Linux脚本Shell脚本来实现一次性kill多个端口的进程
7 0
|
2月前
|
Unix Shell Linux
【Shell 命令集合 系统管理 】⭐⭐Linux 让进程休眠 sleep命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐Linux 让进程休眠 sleep命令 使用指南
41 0
|
2月前
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 终止或向进程发送信号 skill命令 使用指南
【Shell 命令集合 系统管理 】Linux 终止或向进程发送信号 skill命令 使用指南
35 0
|
2月前
|
算法 Shell Linux
【Shell 命令集合 系统管理 】Linux 显示进程之间的关系 pstree命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示进程之间的关系 pstree命令 使用指南
30 0
|
2天前
|
存储 Linux Shell
Linux:进程等待 & 进程替换
Linux:进程等待 & 进程替换
27 9
|
2天前
|
存储 Linux C语言
Linux:进程创建 & 进程终止
Linux:进程创建 & 进程终止
24 6