Linux 管道符知识点。

    管道符"|" 作用:把前面的命令输出结果交给后面的命令执行

示例:

    1、cat 1.txt |wc -l  或者 cat 1.txt |grep '999' 如图1所示。


图片关键词

图1 管道符的作用


这里的"cat 1.txt |grep '999'" 这右边的"grep '999'" 也相当于我们平时关键词查找,查找出包涵此字符的那行内容显示列出来(linux上专业术语:过滤出包含此字符的行内容列出来)。


2、find ./  -type f |wc -l (将当前目录与其子目录中所有的一般文件列出再交给右边行数统计命令执行统计行数)如图2所示。

图片关键词

图2 管道符的作用

关于管道符其实有很多命令可以使用的,总之要明白管道符的作用就是把左边的(前边的)命令执行的结果交给右边的(后边的)命令执行,后边的学习当中接触的各种各样的用法也很多,所有不用太刻意的去怎么怎么样;随着学习的深入也会越来越了解。


Linux 作业控制知识点

    作业有两种形式     

        1、fg (Foreground) :  当你在终端窗口输入命令,这个命令将会占据终端窗口,直到命令执行完成, 这是一个前台Job

        2、bg (Background) :  当你在命令后面添加& 符号,命令将不会占据终端窗口(你可在shell prompt继续输入),这是一个后台Job

    前台和后台的区别

        前面我们提到了前后台控制作业,现在我们有必要说明一下前后台的区别。 
            1. 首先,前台下面只能运行一个进程组和作业,而后台下面可以运行多个进程组和作业。 
            2. 前台下面的作业可以从标准输入中收到字符,而后台的作业则不能从标准输入中读取字符,当后台作业如果尝试从标准输入中读取字符时,那么后台作业会被阻塞。 
            要理解这一点,首先我们要明白一下Linux中对输入和输出队列的组织方式。他们之间的关系如图1所示。

图片关键词

图1 前后台关系图


Linux作业控制命令

    后台符号(&):直接让作业任务在后台运行快

    Ctrl+Z:让作业切换到后台并停止运行

    jobs:显示后台作业任务列表

    fg [%id]:将作业任务切换到前台并运行 fg %2

    bg [%id]:将作业任务切换到后台并运行 bg %2

    kill [%id]:终止作业任务 kill %2

用户在终端中启动一个作业时,默认是在前台运行。前台作业的特点就是从标准输入接收用户指令并通过标准输出将返回信息展示给用户。

后台作业则脱离了标准输入和标准输出,并不需要用户参与,默默在用户看不到的地方运行。类似于Windows中多窗口界面,选中一个窗口则自动激活窗口并切换到前台运行,而其他窗口则自动转入后台运行。

示例:

    1、后台符号 "&" 作用:直接让作业任务在后台运行,如图2所示。

图片关键词

图2 后台符合"&"作用直接让作业任务在后台运行


使用起来也非常简单,只需要把该符号放置在执行命令的后面即可。通过在执行一个命令需要花费较长的时间或执行命令后就不再需要用户输入命令等操作时使用。

拓展:如图2命令"sleep 1000 &"执行与结果讲解

  • 后台符号与前面的命令之间需要添加空格

  • [1]表示后台作业任务的编号

  • 1661表示后台作业对应的PID

    2、快捷键Ctrl+Z作用:让作业任务放置至后台并停止运行,如图3所示。

图片关键词

图3 "Ctrl +z" 让命令放置至后台并停止运行



3、jobs 作用:显示所有作业任务列表

    常用选项

        -l :显示作业任务的PID

        -p :仅显示作业任务的PID

        -r :仅显示运行状态的作业任务

        -s :仅显示停止状态的作业任务

jobs示例,如图4所示。

图片关键词

图4 "jobs"命令与选项参数的作用


3、fg (Foreground) 作用:将作业任务切换到前台并运行

    fg [id] :后台有多个作业任务时,则需要使用后台作业任务的id标识来指定要切换至前台运行的作业任务,如图5所示。

图片关键词

图5 "fg"的作用


需要注意的是,如果"jobs"列表中的最后一条或多条任务是正在运行的状态,则"fg"会忽略掉,直至到最后一次后台任务是停止的状态才调至前台执行,如图6所示。

图片关键词

图6 "fg"不加id标识号只对停止状态的后台任务有效



4、bg (Background) 作用:将作业任务切换到后台并运行

    bg [id] :后台有多个作业任务时,则需要使用作业任务的id标识来指定要切换至后台运行的作业任务,如图7所示。

图片关键词

图7 "bg"同样也是只作用在停止状态的后台任务要指定某个在后台执行时加上id标识号即可

注意:合格规范的使用id标识号的方式是"%id"而不是直接加"id".如不规范的"fg 2"与规范的"fg %2",不规范的"bg 2"与规范的"bg %2"


5、kill [%id]:终止某个作业任务如图8所示。

图片关键词

图8 kill的作用

当终止后台某个命令时,使用"jobs"查询首次还是可以看到那条命令且状态为已终止。二次查询后则已经消失,因为已经结束,相当我们使用的"Ctrl +c"的效果。