[Note] Linux学习笔记5-6 进程、重定向和管道

Note 5 Linux 进程

什么是进程?

An executing program = A process
当你执行一个外部命令(内部命令是shell进程的一部分,不须要建立进程)时,Linux系统会为之建立一个进程,命令完成以后会撤销它
进程的建立和终止是linux系统处理外部命令所采用的惟一机制
Linux经过系统调用fork建立一个新的进程,该操做创建原进程内存的彻底拷贝,而后系统调用exec来使要执行命令的代码覆盖新进程。
(ps 命令能够用来查看进程的属性和状态,具体请自行查阅)linux

进程执行和做业控制

前台执行:当输入命令并开始执行,在当前命令结束前,你不能执行任何命令
后台执行:在执行命令的同时,你能够看到哦啊shell提示符出现,并执行其余命令shell

在命令最后添加一个 ‘&’符号,可使命令后台执行,此时会输出这样一行信息“[1] 23245” 中括号里的数字为做业号(job number),后面的数字为进程号(PID)
做业是不运行在前台的进程,只能在关联终端上访问命令行

(fg命令能够将后台进程转移到前台,用法:fg %jobid,使做业号为jobid的前台进程继续执行,或者转移到前台)
(Ctrl-C能够停止一个前台命令)
(Ctrl-Z能够挂起一个前台进程)
(bg命令能够把挂起的进程转移到后台继续执行, bg %jobidlist)
(jobs命令显示指定的被挂起进程或后台进程的状态)
(at命令使指定命令序列在指定时刻执行)
(batch命令指定做业在系统负载较轻时运行)
(kill命令能够停止后台进程)
(sleep n 命令可使正在执行的进程睡眠n秒)排序

有一种特殊的进程,守护进程(daemon)是运行于后台的系统进程,向用户提供各类类型的服务和执行系统管理任务,例如smtpd、httpd、inetd进程

在一个命令行输入多条命令,并在每条命令末尾加上分号,能够顺序执行这些命令,若以‘&’链接多条命令则并行执行它们,例如
顺序执行:命令1; 命令2; 命令3;
并行执行:命令1& 命令2& 命令3&内存

使用&&和||能够有条件的执行命令,例如:
命令1 && 命令2 表明若是命令1成功则执行命令2
命令1 || 命令2 表明若是命令1失败则执行命令2input

Note 6 重定向和管道

重定向

在默认状态下,命令的stdin 为 keyboard; stdout和stderr为屏幕
咱们可使用重定向运算符,将命令的输入和输出重定向到文件io

输入重定向,‘<’
语法:command < inputfile
命令的输入来自inputfile而不是键盘后台

输出重定向,‘>’
语法:command > outputfile
命令的输出写到文件outputfile,而不是显示器file

二者能够同时使用,好比
command < inputfile > outputfile
command > outputfile < inputfile

另外,linux内核将一些小的整数关联到每一个已打开的文件上,称为文件描述符
stdin--0 stdout--1 stderr--2
因此咱们能够这样用:
command 0< inputfile 等价于 command < inputfile
command 2> errorfile 1>outputfile
command 1> file 2> &1
(重定向的顺序是从左到右)
(2> &1含义是将错误信息输出到和1相同的文件)

默认状况下,输出和错误重定向会覆盖目标文件的内容
若是须要追加而不是覆盖,则使用>>运算符,而不是>运算符

注意,exec命令有些特殊,exec <input 将input文件中每一行做为命令由shell执行; exec >output 将shell以后全部命令输出到output文件里

管道

Linux容许一条命令的输出做为另外一条命令的输入
语法: 命令1 | 命令2 | 命令3 ...
命令1的输出做为命令2的输入,以后同理

例子:
ls -l | grep ”somedata“
grep “data” < inputfile | lpr -Pspr
who | sort | grep "name" | mail -S "content" xxx@xx.com
(第三条命令将who的输出排序,找到其中包含name的行,并和content一块儿发送给xxx@xx.com)

当你想要把命令的输出既输出到文件,又经过管道传递,那么你须要tee命令语法: tee [options] filelist做用: 将输出送到标准输出和filelist中用法: command1 | tee file1 file2 | command2

相关文章
相关标签/搜索