ID和PID的产生
ps( process status)
查看现在的进程
上例中,列出了两个进程,进程 5198 和进程 10129,各自代表命令 bash 和 ps。正如我们所看到的, 默认情况下,ps 不会显示很多进程信息,只是列出与当前终端会话相关的进程。为了得到更多信息, 我们需要加上一些选项,但是在这样做之前,我们先看一下 ps 命令运行结果的其它字段。 TTY 是 “Teletype” 的简写,是指进程的控制终端。这里,Unix 展示它的年龄。TIME 字段表示 进程所消耗的 CPU 时间数量。正如我们所看到的,这两个进程使计算机工作起来很轻松。
加上ps以后可以看到更多关于系统运行的信息
加了X之后会有全部的进程
多了一行stat 是当前进程的状态
字母的含义
更多的信息 像这样 ps aux 不要-
这个选项组合,能够显示属于每个用户的进程信息。使用这个选项,可以唤醒 “BSD 风格” 的输出结果。 Linux 版本的 ps 命令,可以模拟几个不同 Unix 版本中的 ps 程序的行为。通过这些选项,我们得到 这些额外的列。
动态查看进程的方法top##
默认时是每三秒刷新一次
top 程序连续显示系统进程更新的信息(默认情况下,每三秒钟更新一次),”top”这个名字 来源于 top 程序是用来查看系统中“顶端”进程的。top 显示结果由两部分组成: 最上面是系统概要,下面是进程列表,以 CPU 的使用率排序。
top 程序接受一系列从键盘输入的命令。两个最有趣的命令是 h 和 q。h,显示程序的帮助屏幕,q, 退出 top 程序。
在后台运行程序#
比方说,我们想让 shell 提示符返回,却没有终止 xlogo 程序。为达到这个目的,我们把 这个程序放到后台执行。把终端看作是一个有前台(表层放置可见的事物,像 shell 提示符) 和后台(表层之下放置隐藏的事物)(的设备)。启动一个程序,让它立即在后台 运行,我们在程序命令之后,加上”&”字符:
执行命令之后,这个 xlogo 窗口出现,并且 shell 提示符返回,同时打印一些有趣的数字。 这条信息是 shell 特性的一部分,叫做工作控制。通过这条信息,shell 告诉我们,已经启动了 工作号为1(“[1]”),PID 为28236的程序。如果我们运行 ps 命令,可以看到我们的进程:
工作控制,这个 shell 功能可以列出从终端中启动的任务。执行 jobs 命令,我们可以看到这个输出列表:
进程返回到前台fg#
一个在后台运行的进程对一切来自键盘的输入都免疫,也不能用 Ctrl-c 来中断它。使用 fg 命令,让一个进程返回前台执行:
fg %1
停止程序的运行或者移动到前台
停止 xlogo 程序之后,通过调整 xlogo 的窗口大小,我们可以证实这个程序已经停止了。 它看起来像死掉了一样。使用 fg 命令,可以恢复程序到前台运行,或者用 bg 命令把程序移到后台。
和 fg 命令一样,如果只有一个任务的话,jobspec 参数是可选的。
因为把一个进程从前台移到后台很方便,如果我们从命令行启动一个图形界面的程序,但是 忘记把它放到后台执行,即没有在命令后加上字符”&”,(也不用担心)。
kill 命令被用来“杀死”程序。这样我们就可以终止需要杀死的程序。这里有一个实
例:
在这里 kill %1 和28401是一样的
ctrl-c 对应的是 中断 INT 较慢
ctrl-z 对应的是 中断停止TSTP 快速
进程,和文件一样,拥有所有者,所以为了能够通过 kill 命令来给进程发送信号, 你必须是进程的所有者(或者是超级用户)。
监听进程的相关命令
存储系统相关命令#
/etc/fstab 这个文件列出系统启动时要挂载的设备
/etc/fstab 这个东西的字段是描数文件系统的概况的
命令mount##
这个命令被用来挂载文件系统,但是执行不带参数的这个命令,将会显示一系列当前挂载的文件系统
格式的列表
umont /dev/hdc
卸载光盘
卸载了之后就要再挂载,
卸载的时候不能使用哪个东西
为什么卸载是重要的(先卸载后移植)
主要是缓存的原因。
再挂载设备的时候,计算机会不时向缓存中写入设备
/dev/下的设备
启动的链接
另外,我们经常看到符号链接比如说/dev/cdrom,/dev/dvd 和/dev/floppy,它们指向实际的 设备文件,提供这些链接是为了方便使用。如果你工作的系统不能自动挂载可移动的设备,你可以使用 下面的技巧来决定当可移动设备连接后,它是怎样被命名的。首先,启动一个实时查看文件/var/log/messages (你可能需要超级用户权限):
[me@linuxbox ~]$ sudo tail -f /var/log/messages
实时查看信息
显示再次停止之后,输入 Ctrl-c,重新得到提示符。输出结果的有趣部分是一再提及“[sdb]”, 这正好符和我们期望的 SCSI 磁盘设备名称。知道这一点后,有两行输出变得颇具启发性:
Jul 23 10:07:59 linuxbox kernel: sdb: sdb1
Jul 23 10:07:59 linuxbox kernel: sd 3:0:0:0: [sdb] Attached SCSI
removable disk
This tells us the device name is /dev/sdb for the entire device and /dev/sdb1 for the first partition on the device. As we have seen, working with Linux is full of interesting detective work!
这告诉我们这个设备名称是/dev/sdb 指整个设备,/dev/sdb1是这个设备的第一分区。 正如我们所看到的,使用 Linux 系统充满了有趣的监测工作。
Tip: Using the tail -f /var/log/messages technique is a great way to watch what the system is doing in near real-time.
小贴士:使用这个 tail -f /var/log/messages 技巧是一个很不错的方法,可以实时 观察系统的一举一动。
With our device name in hand, we can now mount the flash drive:
既然知道了设备名称,我们就可以挂载这个闪存驱动器了:
[me@linuxbox ~]$ sudo mkdir /mnt/flash
[me@linuxbox ~]$ sudo mount /dev/sdb1 /mnt/flash
将dev挂载到那个
[me@linuxbox ~]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 15115452 5186944 9775164 35% /
/dev/sda5 59631908 31777376 24776480 57% /home
/dev/sda1 147764 17277 122858 13% /boot
tmpfs 776808 0 776808 0% /dev/shm
/dev/sdb1 15560 0 15560 0% /mnt/flash
The device name will remain the same as long as it remains physically attached to the computer and the computer is not rebooted.
这个设备名称会保持不变只要设备与计算机保持连接并且计算机不会重新启动。