`

如何在 Linux 中执行命令?

阅读更多
1、怎样在后台执行命令

在命令的最后加上 &。举例,以下命令将在 X 窗口下后台启动 icq 客户端程序,所以当 icq 运行时,我的 X 窗口不会被挂住。

licq&

进程识别号,任务编号(job_number),显示在屏幕上,在运行其他相关命令的时候你可以使用。相关的命令有:

fg job_number

fg=foreground,把后台进程恢复到前台运行,如果该任务已经被停止,将重新启动任务。

bg job_number

bg=background,把前台的进程送到后台运行,如果该任务已经被停止,将重新启动任务。跟命令行后面加 & 具有相同效果。

<CTRL><Z>

把当前正在前台运行的进程送到后台并且停止该进程。

jobs

列出所有的激活的任务进程。

kill process_ID

中止进程识别号为 process_ID 的进程,可以使用 ps 命令找到你要中止的进程的识别号。

为了让一个后台运行的进程在你退出系统后继续运行,可以使用命令 nohup(=no hungup),举例:

nohup make &

该命令可能在编译一个很大的程序。

2、怎样在某一特定时间执行命令(使用“at”和“batch”)

at 命令可以让你指定特定的日期和时间来运行某个程序。举个例子,我可以在每天早上七点钟开始在我的 CDROM 上播放音乐:

at 7:00
cdplay <CTRL><D>

在以上例子,我在命令行里输入“at 7:00”接着按回车。接着,at 命令显示一个“at>”的提示符,然后我输入“cdplay”接着按回车,最后,我同时按住 <CTRL> 和 <D> 结束输入。如果我接着按回车,另外一个“at>”提示符出现,我可以接着输入那些我希望在早上7点钟运行的程序。然后在最后输入 <CTRL><D>。<CTRL><D> 就象是向当前的输入送一个文件结束符合,告诉输入已经完毕。不要连续按 <CTRL><D> 两次,否则你就自动退出系统了。

你可以使用以下命令列出当前在任务调度表里的任务:

at –l

你可以看到那些还在任务调度表里还在等待的程序的清单。

如果你改变主意,绝对把某个程序从任务调度表里删除。举例:

atrm 8

该命令将从任务调度表里删除命令编号为8的程序。

我也可以安排一个程序在稍晚一点的时间运行,比如:

at 23:55 12/31/00
startx

该命令将在新千年夜晚启动我的 X-Windows 系统(2000年12月31日,午夜前5分钟)。

如果你不能运行 at 命令,查看一下是否任务调度服务程序(atd)已经被加载(可以使用 root 用户运行 ntsysv 加载)。如果 at 命令对 root 用户有效但是对于普通用户无效,检查一下是否文件 /etc/at.deny 是否存在,同时,确认文件 /etc/at.allow 不存在。这是所有用户可以运行 at 命令的缺省设置。如果你想要只有指定的用户才能够运行 at 命令,可以生成文件 /etc/at.allow 并且把用户的名单加到文件里。

对于 at 命令其他的可选项,运行

man at

当系统载荷很低的时候,如果你希望在后台运行一个“处理器饥渴型”的任务,你可以选择使用 batch 命令。举例,我可以运行 setiathome(一个数据分析程序用来帮助寻找外部智能生命,SETI):

batch
at>setiathome <CTRL><D>

在以上例子里,我在命令行输入 batch 然后回车,在“at>”命令提示符下,我输入想要在后台运行的程序名称。程序试图立刻运行,但是其实会等到系统载荷小于0.8的时候才会开始运行。你可以通过检查虚拟文件 /proc/loadavg 来检查系统载荷:

cat /proc/loadavg

当批命令完成后,输出结果将会以电子邮件的方式送到我的信箱。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics