美文网首页
10个 Linux/Unix下 Bash 和 KSH shell

10个 Linux/Unix下 Bash 和 KSH shell

作者: 胡柑18285 | 来源:发表于2017-10-17 15:09 被阅读0次

    背景:


    阅读新闻

    10个 Linux/Unix下 Bash 和 KSH shell 的作业控制实例

    [日期:2014-03-13]

    来源:Linux中国

    作者:Linux

    [字体:大 中 小]

    Linux 和 Unix 属于多任务的操作系统,也就是说一个系统在同一时间段内能运行多重任务(进程)。在这个新的博客系列,我将会列出相关的 Linux 和 Unix 作业(job)控制的命令,你可以通过这些命令在 Bash 或 Korn 还有 POSIX shell 下实现执行多重任务。

    什么是作业控制?

    作业控制不只是能够停止/挂起(stop/suspend)正在执行的进程(命令),也可以继续/唤醒(continue/resume)执行你需要的每一个进程。这完全可以用你的操作系统和 bash/ksh 之类的 shell 或 POSIX shell 完成。

    谁给作业控制的提供了环境?

    Bash / Korn shell,或者是 POSIX shell 提供给了作业控制的环境。

    跟作业表打个招呼吧

    你的 shell 会留有一张当前作业的表单,称为作业表。当你键入命令时,shell 会给它分配一个 jobID(也称作 JOBSPEC)。一个 jobID 或 JOBSPEC只是很小的整数数值。

    #1: 创建你的首个 Linux/Unix 作业

    我要运行一个名为 xeyes 的命令,它会在屏幕上显示两个椭圆的眼睛,输入: $ xeyes &

    输出样例:

    Fig.01: 在后台运行 xeyes 命令

    我使用&符号让一个 job 在后台运行。shell 会打印一行信息类似如下:

    [1]6891

    在这个例子中,有两个数字输出,分别表示:

    1 : 在后台执行的 xeyes 任务的作业号为 1。

    6891 : 作业1的进程ID。

    我在多执行一些 job:

    ## 启动一个文本编辑器,X 的系统负载显示,和 sleep 命令 ##

    gedit /tmp/hello.c &

    xload &

    sleep 100000&

    #2: 列出当前的作业

    要查看当前 shell 的激活的任务状态,输入:

    $ jobs

    $ jobs -l

    输出如下:

    [1]9379Running xeyes &

    [2]9380Running gedit /tmp/hello.c &

    [3]-9420Running xload &

    [4]+9421Running sleep 100000&

    简要描述如下:

    字段值描述示例

    1

    [1]

    jobID 或 JOB_SPEC - 工作号要与fg, bg, wait, kill和其他shell命令一起使用。你必须在工作号前缀添加一个百分号:(%)。

    加号 (+) 标识着默认的或是现在的作业。

    减号 (-) 标识着前一个作业。

    %1

    fg %1

    kill %2

    2

    9379

    进程 ID - 系统自动为每个进程创建并分配地独有的身份标志号。

    kill 9379

    3

    Running

    状态 - 关于作业的状态:

    Running - 该 作业正在运行,还没有被外部信号挂起。

    Stopped - 该作业已经被挂起。

    N/A

    4

    xeyes &

    command - 由shell给出的命令。

    script &

    firefox url&

    你也可以用 ps 命名列出当前系统正在运行的进程:

    $ ps

    #3: 停止或挂起正在运行的作业

    按下[Ctrl]-[Z]键或使用kill 命令,如下所示:

    kill -s stop PID

    举个例子,启动ping 命令,然后用 Ctrl-Z 键来停止 ping 命令作业:

    Animated gif 01: 挂起 ping 命令作业

    linux

    在 Fedora 20 安装 Google Talk 插件

    ls显示文件大小时显示单位

    相关资讯

    bash KSH shell

    Bash简明教程--变量 (今 21:58)

    Linux入门学习:认识shell和bash (03月25日)

    如何用 Bash 创建一个二进制发布包 (09/25/2015 08:42:19)

    Bash的基本功能 (03月27日)

    快来帮 Bash 投票新 LOGO 吧! (12/19/2015 20:55:48)

    Bash 下如何逐行读取一个文件 (09/02/2015 08:53:33)

    本文评论

    查看全部评论 (0)

    表情: 表情

    姓名:

    匿名

    字数

    同意评论声明

    评论声明

    尊重网上道德,遵守中华人民共和国的各项有关法律法规

    承担一切因您的行为而直接或间接导致的民事或刑事法律责任

    本站管理人员有权保留或删除其管辖留言中的任意内容

    本站有权在网站内转载或引用您的评论

    参与本评论即表明您已经阅读并接受上述条款

    最新资讯

    Bash简明教程--变量

    Citrix Linux Virtual Delivery Agent本地

    IBM Tivoli Lightweight Infrastructure目

    PowerDNS Authoritative Server拒绝服务漏

    Adobe Digital Editions释放后重利用漏洞(

    AlienVault USM/OSSIM跨站脚本漏洞(CVE-

    OpenSSL statem/statem.c拒绝服务漏洞(CVE-

    OpenSSL crypto/x509/x509_vfy.c拒绝服务漏

    Apache Ranger create user 跨站脚本漏洞(

    SQLite 临时文件创建漏洞(CVE-2016-6153)

    相关文章

      网友评论

          本文标题:10个 Linux/Unix下 Bash 和 KSH shell

          本文链接:https://www.haomeiwen.com/subject/bgeduxtx.html