Shell高级命令解释

输入输出重定向

0: 标准输入文件; 1: 标准输出文件; 2: 标准错误输出文件;

COMMAND >FILENAME 相当于 COMMAND 1>file : 以覆盖的方式,将正确输出结果输出到FILENAME文件中

COMMAND >>FILENAME 相当于 COMMAND 1>>FILENAME : 以追加的方式,将正确输出结果输出到FILENAME文件中

COMMAND 2>FILENAME : 以覆盖的方式,把命令结果的错误信息输出到FILENAME文件中

COMMAND 2>>FILENAME : 以追加的方式,把命令结果的错误信息输出到FILENAME文件中

COMMAND >FILENAME 2>&1: 以覆盖的方式,把正确输出和错误信息同时输出到FILENAME文件中

COMMAND >>FILENAME 2>>&1 : 以追加的方式,把正确输出和错误信息同时输出到FILENAME文件中

COMMAND >FILENAME1 2>FILENME2 : 以覆盖的方式,将正确输出结果输出到FILENAME1,将错误信息输出到FILENAME2

COMMAND >>FILENAME1 2>>FILENME2 : 以追加的方式,将正确输出结果输出到FILENAME1,将错误信息输出到FILENAME2

COMMAND <FILENAME : 将FILENAME文件作为COMMAND的输入

COMMAND <<END : 从键盘作为输入,直到遇见分界符END结束

COMMANDN <FILENAME1 >FILENAME2 : 将FILENAME1作为COMMAND的输入,将正确结果输出到FILENAME2中

文件描述符(图片来源:C语言中文网)

Linux文件描述符表示意图

结束

exec N>FILENAME: execute a command that completely replaces the current process. 永久更改当前Shell的文件描述符N的文件指针。

/dev/tty: 这个文件代表显示器

Here Document

COMMAND <<END

  DOCUMENT CONTENT

END

Here String

COMMAND <<< STRING

Shell组命令

{ COMMAND1; COMMAND2; COMMAND3; ...} : 在当前Shell中执行命令

( COMMAND1; COMMAND2; COMMAND3; ...} : 创造一个子Shell执行命令

管道 pipe

COMMAND1 | COMMAND2

子进程

$SHLVL: Shell level 记录多个Bash进程实例嵌套深度的累加器,每次进入一层普通的子进程,SHLVL的值加1

$BASH_SUBSHELL: 记录一个Bash进程实例中多个子Shell嵌套深度的累加器,每次进入一层子Shell,BASH_SUBSHELL的值加1

信号:进程间的通信

Ctrl+C终结一个命令的执行;

kill [NUM] [PID];

disown %NUM: 将后台作业进程离开当前Shell,当前Shell关闭后,该进程继续运行

模块化

source FILENAME

. FILENAME

历史命令

!NUM: 通过history查看命令命令数字,执行第NUM条命令

!!: 执行上一条命令

!$: 代表上一条命令的最后一个参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值