#《快乐的 Linux 命令行》

xlogo

这个xlogo命令可以在显示屏上显示一个X,可以随着拖动变大小,必须要有显示器才行。

#&

在命令后加&后台执行:

1
command &
1
2
onns@onns-desktop:~$ xlogo &
[1] 3642

[1] 3642shell 特性的一部分,叫做任务控制(job control)。

任务号(job number)为1,PID 为3642

1
2
3
4
5
onns@onns-desktop:~$ ps
PID TTY TIME CMD
2306 pts/0 00:00:00 bash
3642 pts/0 00:00:00 xlogo
4229 pts/0 00:00:00 ps

jobs命令列出从终端中启动了的任务:

1
2
onns@onns-desktop:~$ jobs
[1]+ Running xlogo &

#fg

fg命令让一个进程返回前台:

1
fg %jobspec

fg命令之后接一个百分号和任务序号(jobspec)。

如果只有一个后台任务,那么jobspec(job specification)是可有可无的。

1
2
3
4
onns@onns-desktop:~$ jobs
[1]+ Running xlogo &
onns@onns-desktop:~$ fg %1
xlogo

#ctrl z

停止进程,这么做通常是为了允许前台进程被移动到后台。

1
2
3
4
5
6
7
onns@onns-desktop:~$ xlogo
^Z
[2]+ Stopped xlogo

onns@onns-desktop:~$ jobs
[1]- Stopped xlogo
[2]+ Stopped xlogo

使用 fg 命令,可以恢复程序到前台运行,或者用 bg 命令把程序移到后台。

1
2
3
4
5
onns@onns-desktop:~$ bg %2
[2]+ xlogo &
onns@onns-desktop:~$ jobs
[1]+ Stopped xlogo
[2]- Running xlogo &

#kill

kill命令用来终止程序。

这个 kill 命令不是真的“杀死”程序,而是给程序发送信号。信号是操作系统与程序之间进行通信时所采用的几种方式中的一种。

1
kill [-signal] PID...

如果在命令行中没有指定信号,那么默认情况下,发送TERM(Terminate,终止)信号。

  • 编号1代表HUP,挂起(Hangup)。这是美好往昔的残留部分,那时候终端机通过电话线和调制解调器连接到远端的计算机。这个信号被用来告诉程序,控制的终端机已经“挂断”。通过关闭一个终端会话,可以展示这个信号的作用。在当前终端运行的前台程序将会收到这个信号并终止。许多守护进程也使用这个信号,来重新初始化。这意味着,当一个守护进程收到这个信号后,这个进 程会重新启动,并且重新读取它的配置文件。Apache 网络服务器守护进程就是一个例子。
  • 编号2代表INT,中断。实现和 Ctrl-c 一样的功能,由终端发送。通常, 它会终止一个程序。
  • 编号9代表KILL,杀死。这个信号很特别。尽管程序可能会选择不同的 方式来处理发送给它的信号,其中也包含忽略信号, 但是 KILL 信号从不被发送到目标程序。而是内核立 即终止这个进程。当一个进程以这种方式终止的时候, 它没有机会去做些“清理”工作,或者是保存工作。 因为这个原因,把 KILL 信号看作最后一招,当其它 终止信号失败后,再使用它。
  • 编号15代表TERM,终止。这是 kill 命令发送的默认信号。如果程序仍然 “活着”,可以接受信号,那么这个它会终止。
  • 编号18代表CONT,继续。在一个停止信号后,这个信号会恢复进程的运 行。
  • 编号19代表STOP,停止。这个信号导致进程停止运行,而不是终止。像 KILL 信号,它不被发送到目标进程,因此它不能被忽略。

进程,和文件一样,拥有所有者,所以为了能够通过 kill 命令来给进程发送信号,你必须是 进程的所有者(或者是超级用户)。

kill -l可以得到一个完整的信号列表:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
onns@onns-desktop:~$ 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

不是很常用,蛮看一下罢了。