当前位置: 技术问答>linux和unix
linux命令
来源: 互联网 发布时间:2015-07-26
本文导语: 初学linux(Red hat 9.0)啥子命令都不晓得,大家说说啊,给一些实用的命令及其格式 | 7.4.4 进程 shell除了建立管道之外还有许多别的功能。下面我们讨论一次运行几条命令的情况,在管道...
初学linux(Red hat 9.0)啥子命令都不晓得,大家说说啊,给一些实用的命令及其格式
|
7.4.4 进程
shell除了建立管道之外还有许多别的功能。下面我们讨论一次运行几条命令的情况,在管道使用中我们已遇到过。另外,在一个命令中用分号隔开两个命令,命令解释程序能够识别分号,并把命令行分成两个命令并给予执行,例如:
$ date; who
Thu Mar 25 10:53:41 GMT 1999
frank tty1 Mar 26 23:45
renee tty2 Mar 26 23:59
wang tty3 Mar 27 00:06
qhua tty4 Mar 26 23:31
shell顺序执行两条命令,然后再送提示符到终端。
如果需要的话,你可行同时运行一个以上的程序。例如,你想做一些相当耗费时间的事情,如对一本书的字数进行统计。但你不打算等待计数程序wc结束再开始做其它工作,那么可以键入命令:
$ wc ch * >wc.out &
6944 命令shell打印出的进程标识号
在命令行结束时的符号&将告诉shell“开始运行命令,然后询问终端的下一个命令”。因此,在命令开始执行后,便可以在命令运行过程中做其它工作。上例的程序将输出保留在文件wc.out中,保证其结果不受其他事情的干扰。
程序运行称作进程。shell为响应&符而打印的数目称作进程标识号;它可用来干予指定程序的运行。
程序和进程的区分是很重要的。wc是一个程序,每当你运行程序wc一次,便产生一个新进程。假如在同一时间几次运行同一程序,那么每次的进程有不同的进程标识号。
例如,运行一个带&的管道线,如下所述
$ pr ch * | lpr &
6951 lpr进程标识号
由于符号&作用到整个管道线。因此所有进程都立即起动,然而终端上只打印一个进程号,这是一序列进程中的最后一个进程的标识号。
命令
$ wait
一直等到&启动的所有进程结。假如没有发生什么响应,表明你的命令还在运行。你可以用DELETE来中止等待。
根据进程标识号,使用kill命令便可终止某个进程:
$ kill 6944
若忘记了进程标识号,ps命令会告诉你正在运行程序的进程标识号。kill 0命令终止你所有的进程,而只留下注册登记的shell进程。如果你想了解其它用户在做什么,ps-ag将告诉你当前系统在运行的全部进程。下面是一个ps程序的输出:
$ ps –ag
PID TTY TIME CMD
36 co 6:29 /etc/cron
6423 5 0:02 -sh
6704 1 0:04 -sh
6722 1 0:12 vi pager
4430 2 0:03 -sh
6612 7 0:03 -sh
6628 7 1:13 rogue
6843 2 0:02 write dmr
6949 4 0:01 login bimmler
6952 5 0:08 pr ch1.1 ch1.2 ch1.3 ch1.4
6951 5 0:03 lpr
6959 5 0:02 ps –ag
6844 1 0:02 write rob
PID是进程标识号;TTY是与该进程相关联终端号(表示谁的进程);TIME是进程花费时间(以秒计算);最后是运行的命令的名称。
进程和文件系统有类似的层次结构:每一个进程有其父进程,还可以有其子进程。你的shell是由专门的进程生成的,这一进程主要管理系统与终端间的连结。运行命令的进程,是shell进程的直接子进程。如果你在这些进程里运行别的程序;例如在编辑程序ed的进程中使用!命令运行其它程序,ed就生成了一个自己的子进程,而这一子进程正是shell的孙进程。
有时进程执行时间太长,以至等不到它结束就要关闭终端下班。终端一旦关闭或断开连线,所有进程都要终止,即使已使用了&符也是如此。命令nohup(“nohangup”)可以用于处理这一情况:当你键入
$ nohup command &
这一命令使程序在你退出注册后仍然继续运行。命令中的任何输出均放在nohup文件里。一般再没有停止nohup命令的办法。
假如你的进程需要占用较多的处理机资源,而其它用户与你共享这些资源,在这样情况下,用低优先级运行下机后的程序是比较适宜的。这可以由另一个程序nice完成:
$ nice expensive-command &
nohup自动调用nice,由于你在退出注册再运行程序,稍长的运行时间是可以接受的。
最后,还可以告诉系统在凌晨某个时间运行你的程序。因为凌晨很少有人使用机器,这时使用命令at(1):
$ at time
whatever commands
you want …
ctl-d
这是一个典型的用法,当然命令参数也可以存放在文件中:
$ at 3am
shell除了建立管道之外还有许多别的功能。下面我们讨论一次运行几条命令的情况,在管道使用中我们已遇到过。另外,在一个命令中用分号隔开两个命令,命令解释程序能够识别分号,并把命令行分成两个命令并给予执行,例如:
$ date; who
Thu Mar 25 10:53:41 GMT 1999
frank tty1 Mar 26 23:45
renee tty2 Mar 26 23:59
wang tty3 Mar 27 00:06
qhua tty4 Mar 26 23:31
shell顺序执行两条命令,然后再送提示符到终端。
如果需要的话,你可行同时运行一个以上的程序。例如,你想做一些相当耗费时间的事情,如对一本书的字数进行统计。但你不打算等待计数程序wc结束再开始做其它工作,那么可以键入命令:
$ wc ch * >wc.out &
6944 命令shell打印出的进程标识号
在命令行结束时的符号&将告诉shell“开始运行命令,然后询问终端的下一个命令”。因此,在命令开始执行后,便可以在命令运行过程中做其它工作。上例的程序将输出保留在文件wc.out中,保证其结果不受其他事情的干扰。
程序运行称作进程。shell为响应&符而打印的数目称作进程标识号;它可用来干予指定程序的运行。
程序和进程的区分是很重要的。wc是一个程序,每当你运行程序wc一次,便产生一个新进程。假如在同一时间几次运行同一程序,那么每次的进程有不同的进程标识号。
例如,运行一个带&的管道线,如下所述
$ pr ch * | lpr &
6951 lpr进程标识号
由于符号&作用到整个管道线。因此所有进程都立即起动,然而终端上只打印一个进程号,这是一序列进程中的最后一个进程的标识号。
命令
$ wait
一直等到&启动的所有进程结。假如没有发生什么响应,表明你的命令还在运行。你可以用DELETE来中止等待。
根据进程标识号,使用kill命令便可终止某个进程:
$ kill 6944
若忘记了进程标识号,ps命令会告诉你正在运行程序的进程标识号。kill 0命令终止你所有的进程,而只留下注册登记的shell进程。如果你想了解其它用户在做什么,ps-ag将告诉你当前系统在运行的全部进程。下面是一个ps程序的输出:
$ ps –ag
PID TTY TIME CMD
36 co 6:29 /etc/cron
6423 5 0:02 -sh
6704 1 0:04 -sh
6722 1 0:12 vi pager
4430 2 0:03 -sh
6612 7 0:03 -sh
6628 7 1:13 rogue
6843 2 0:02 write dmr
6949 4 0:01 login bimmler
6952 5 0:08 pr ch1.1 ch1.2 ch1.3 ch1.4
6951 5 0:03 lpr
6959 5 0:02 ps –ag
6844 1 0:02 write rob
PID是进程标识号;TTY是与该进程相关联终端号(表示谁的进程);TIME是进程花费时间(以秒计算);最后是运行的命令的名称。
进程和文件系统有类似的层次结构:每一个进程有其父进程,还可以有其子进程。你的shell是由专门的进程生成的,这一进程主要管理系统与终端间的连结。运行命令的进程,是shell进程的直接子进程。如果你在这些进程里运行别的程序;例如在编辑程序ed的进程中使用!命令运行其它程序,ed就生成了一个自己的子进程,而这一子进程正是shell的孙进程。
有时进程执行时间太长,以至等不到它结束就要关闭终端下班。终端一旦关闭或断开连线,所有进程都要终止,即使已使用了&符也是如此。命令nohup(“nohangup”)可以用于处理这一情况:当你键入
$ nohup command &
这一命令使程序在你退出注册后仍然继续运行。命令中的任何输出均放在nohup文件里。一般再没有停止nohup命令的办法。
假如你的进程需要占用较多的处理机资源,而其它用户与你共享这些资源,在这样情况下,用低优先级运行下机后的程序是比较适宜的。这可以由另一个程序nice完成:
$ nice expensive-command &
nohup自动调用nice,由于你在退出注册再运行程序,稍长的运行时间是可以接受的。
最后,还可以告诉系统在凌晨某个时间运行你的程序。因为凌晨很少有人使用机器,这时使用命令at(1):
$ at time
whatever commands
you want …
ctl-d
这是一个典型的用法,当然命令参数也可以存放在文件中:
$ at 3am