linux进程、管道和重定向

1.shell先后使用fork和exec系统调用来执行一个外部命令。

2.在linux系统中,有三个文件会被内核自动打开,分别是stdin、stdout、stderr。

3.进程的属性相关命令:

查看进程的属性 ps [options]

实时监视CPU的活动状态并且交互地控制这些进程 top命令

显示物理内存和swap分区的使用情况 free命令(非实时) 想要持续地监视 free -s 10

4.kill命令:

kill命令是通过向指定进程发送信号,操作系统根据信号来实现对指定进程如何操作。

kill [-signal_number] proc-list

命令kill -l 返回所有信号的号码以及名字的列表

缺省信号,代表终止进程

5.进程和作业的控制:

需要在Linux上执行一些需要很长时间才能完成的工作,而这些工作执行时,又希望做一些其他的工作,这时就要将命令放到后台去执行,通过在命令后加&实现。

作业是一个不运行于前台的进程,并且只能在关联的终端上。

使用fg命令把后台的进程转移到前台执行, fg [%jobID]

使用bg命令吧前台被挂起的命令转到后台后台继续执行,bg[%jobID]

使用jobs命令显示所有挂起的和后台进程的作业号,jobs [option] [%jobID]

6.linux的守护进程:

任何在后台执行的程序都可以称为守护进程,如lpd、smtpd、httpd、inetd

7.linux定时作业调度:

crond守护进程定期检查是否有要执行的作业,如有需要执行的作业吗,便会自动执行。crond守护进程用于检查/var/spool/cron目录中是否存在一个和用户名同名的crontab文件,检查其中列出的执行时间,并在适当的时间提交执行命令。

crontab命令用来创建、编辑、删除crontab文件,每一个用户都可以有一个crontab文件来保存调度信息,使用它运行任意一个shell脚本或者命令,隔一段时间运行一次。

crontab [-u user] -e(-l,-r)

crontab crontabname

crontab文件中每一条目(行)表示一个特定的时间运行作业,格式是:

minute hour day month weekday command

at命令允许用户向crond守护进程提交作业,使其在稍后的时间运行。

at -f at.sh 12:30

8.命令行中使用操作符:

command1;command2  --命令的顺序执行

command1&command2&  --命令的并发执行(也就是每个命令都在后台执行)

commond1&&command2  --只有前面的命令执行成功,后一条命令才执行

command1||command2  --只要一条命令执行成功,后面的命令就不执行了

command1|command2   --将command1的标准输出连接到command2的标准输入

9.linux系统启动、关闭和进程层次结构:

查看进程的层次关系,用ps -ef 命令和pstree命令。

用shutdown或halt命令关闭linux系统。

10.输入输出重定向:

command < filename

command > filename  --重定向可能覆盖文件,用command >> filename可避免,将输出添加到该文件末尾。

通过使用文件描述符,在bash、POXIS shell 中标准输入和标准输出能够分别使用 0<, 1>, 2>操作符来重定向, grep "Joson" students 1> output.out 2> output.err

注意: 在shell命令行的解析中,重定向操作按照从左到右的顺序进行,

sort 0< students 1> students.sort 2> students.err

sort 2>students.err 0< students 1> students.sort  两者的区别

cat ch1 ch2 ch3 1>
ch.out.err 2>&1

cat ch1 ch2 ch3 2> ch.out.err 1>&2   表示标准输出和错误输出都到一个文件中。

时间: 2025-01-12 01:36:55

linux进程、管道和重定向的相关文章

Linux shell管道与重定向及实例分析

一.管道 管道命令操作符是:"|",它仅能处理由前面一个命令的正确输出信息,也就是standard output的信息,对于stdandard error信息没有直接处理能力:然后,传递给下一个命令,作为标准输入standard input. linux管道执行过程: 管道命令使用说明: command1正确输出,作为command2的输入,然后command2的输出作为command3的输入,command3的输出打印到屏幕上: 通过管道:command1.command2的正确输出

linux下管道及重定向

系统默认设定: 标准输入:STDOUT,0 标准输出: STDIN,1 标准错误输出: STDERR,2 2.I/O重定向: >:覆盖输出 set -C :禁止对已经存在的文件覆盖重定向 如需强制覆盖输出重定向:可使用 >| set +C :启用对已经存在的文件覆盖重定向 >>:追加输出 2> :  标准错误输出 2>> :标准错误追加方式 &> : 标准或错误输出至同一文件 举例说明:ls /etc/ &> /tmp/err.txt

linux shell 管道命令(pipe)使用及与shell重定向区别

linux shell 管道命令(pipe)使用及与shell重定向区别 看了前面一节:linux shell数据重定向(输入重定向与输出重定向)详细分析 估计还有一些朋友是头晕晕的,好复杂的重定向了.这次我们看下管道命令了.shell管道,可以说用法就简单多了. 管道命令操作符是:"|",它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard error 信息没有直接处理能力.然后,传递给下一个命令,作为标准的输入 st

【Linux探索之旅】第三部分第二课:流、管道、重定向,三管齐下

内容简介 1.第三部分第二课:流.管道.重定向,三管齐下 2.第三部分第三课预告:监视系统活动,滴水不漏 流.管道.重定向,三管齐下 这一课我们来学一些非常有用的内容,而且相当有意思,而且内容很多,而且有可能颠覆你的三<观>(毕竟三管齐下,不颠覆三观也难). 今天的标题中的三个名称,听上去就怪怪的.什么流,管道,重定向,都啥玩意啊.不过希望学完这课,大家能够有拨云见雾的感觉. 到目前为止,我们已经学习了不少Linux的命令了,也已经比较熟悉命令行的用法了.其最基本用法是这样的: 在终端输入命令

Linux中的管道与重定向

前言: 这篇博文主要参考了鸟哥的<鸟哥的Linux私房菜>和杨鹏(NetSnake)的<Linux服务器架设>这两本书,以及在网络上查阅的资料.此博文作为我阅读<鸟哥的Linux私房菜>和<Linux服务器架设>这本书的读书笔记.那么接下来就让我们依次了解它们. 概述: 熟悉操作系统的朋友,常常会听到.用到管道和重定向这两个词,那么究竟什么是管道,什么是重定向?他们对我有用吗?可以说,管道和重定向是操作系统的精髓之一,在操作系统的进程.程序和管理等各方面,都

Linux管道及重定向

Linux管道及重定向 对shell有一定了解的人都知道,管道和重定向是 Linux 中非常实用的 IPC 机制.在shell中,我们通常使用符合'|'来表示管道,符号'>'和'<'表示重定向.那么管道和重定向的真实含义(定义)又是什么呢? 管道 管道的定义 管道就是一个进程与另一个进程之间通信的通道,它通常是用作把一个进程的输出通过管道连接到另一个进程的输入.它是半双工运作的,想要同时双向传输需要使用两个管道.管道又可以分为匿名管道和命名管道,而shell中使用到的是匿名管道,所以本文仅描述

linux入门基础——linux多命令协作:管道及重定向

linux多命令协作:管道及重定向 不要重复发明轮子 开源文化的核心理念之一就是不要重复发明轮子,很多的开源软件都是现有软件.代码.功能的重新组合,就好像通过零件装配机器一样,源代码的开发和共享让这成为了可能,同时也大大的提供了效率和生产力. 管道和重定向 在linux系统中,大多数命令都很简单,很少出现复杂功能的命令,每个命令往往只实现一个或者多个很简单的功能,可以通过将不同功能的命令组合在一起使用,以达到完成某个复杂功能的目的.组合命令的技术是管道和重定向. linux中,几乎所有命令的返回

Linux 入门记录:十六、Linux 多命令协作:管道及重定向

一.多命令协作 在 Linux 系统当中,大多数命令都很简单,很少出现复杂功能的命令,每个命令往往只实现一个或多个很简单的功能.通过将不同功能的命令组合一起使用,可以实现某个复杂功能的. Linux 中几乎所有命令的返回数据都是纯文本的(因为每个命令都是运行在 CLI 下),而纯文本形式的数据又是绝大多数命令的输入格式,这就让多命令协作成为可能. Linux 的命令行提供了管道和重定向机制,多命令协作就是通过管道和重定向完成的. 二.标准流 对于一个终端而言,可能要处理各种类型的数据,int 型

Linux进程通信----匿名管道

Linux进程通信中最为简单的方式是匿名管道 匿名管道的创建需要用到pipe函数,pipe函数参数为一个数组 表示的文件描述字.这个数组有两个文件描述字,第一个是用 于读数据的文件描述符第二个是用于写数据的文件描述符. 不能将用于写的文件描述符进行读操作或者进行读的文件描述 符进写操作,这样都会导致错误. 关于匿名管道的几点说明: 1.匿名管道是半双工的,即一个进程只能读,一个进程只能写    要实现全双工,需要两个匿名管道. 2.只能在父子进程或者兄弟进程进行通信. 3.在读的时候关闭写文件描

Linux上的IO重定向及管道-&&gt; &&gt;&gt; 2&gt; 2&gt;&gt; 2&gt;&1 2&gt;&gt;&1 | tee tr

IO重定向: 输出重定向:> 特性:覆盖输出 输出重定向:>> 特性:追加输出 # set -C 禁止覆盖输出重定向至已存在的文件: 此时可使用强制覆盖输出:>| # set +C 关闭上述特性 错误输出流重定向:2>, 2>>  只会将错误的信息输出到指定的地方 合并正常输出流和错误输出流: (1) &>, &>> (2) COMMAND > /path/to/somefile 2>&1 COMMAND &g