Linux系统的Shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。Shell的分类:
Bourne Shell
C Shell
Korn Shell
Bourne-Again Shell
Shell的基本功能:
命令的解释执行
环境变量的设置
输入输出的重定向
shell程序语言的设计
Linux/UNIX系统中标准流的定义
★ 命令处理流:加工、信息。
★ UNIX 信息流标准定义
标准定义 文件描述符 默认映射对象
标准输入流 0 键盘
标准输出流 1 显示器
标准错误流 2 输出错误信息(显示器)
shell命令解释
输出shell提示符(#/$/%)→接收信息,分析命令→转去执行命令或程序→命令结束返回
输入输出重定向
在命令中用>,>>,<符号修改信息流的走向。
也有<<用作输入重定向的特例,需指定输入信息的定界符,如:cat >file<<!......!。
例: ls –l > dir1
pwd > dir1
date>>dir1
prog < infile > outfile
cc abc.c >log (若出错仍回输出错误信息到屏幕)
cc abc.c >& log 等同于cc abc.c 1>& log
&代表标准输出和标出错误处理,unix有复制的意思
cc abc.c &>log
ls f1 f2 2>ef1 1>&2
★管道线的处理
管道线“|”可以将一个程序或命令的输出作为另一个程序或命令的输入。
ls –l >tempfile
wc –l tempfile (计算文件中的行数)
rm tempfile
上面三条命令等价于命令:
ls –l | wc -l
管道线处理可以使用的分隔符:
& 在命令行尾表示管道线输出为后台作业
&& 代替管道线符,表示左边的命令输出为“真”时执行右边的命令。
|| 代替管道线符,表示左边的命令输出为“假”时执行右边的命令。
例: write zhang <letter ||mail zhang <letter mail zhang <letter && rm letter test -f file11 &&echo "y"||echo "n" ps –ef |tee progm.ps (tee 三通命令,同时显示到屏幕上)
★shell组合键
Ctrl+c 终止命令
Ctrl+z 挂起命令
Ctrl+m 相当于按回车键
Ctrl+d 输入结束,即EOF,或注销登录
例:vi编辑文件时,命令行方式时挂起进程(ctrl-Z),用jobs(-l 进程号)或bg 查看后台,用fg %n唤回前台;
再用cat>>file查看多次追加文件的后台和文件情况。
★利用管道线对命令的输出进行处理
如:从who命令的输出中筛选出指定的用户名
who|grep username|tr -s ' '|cut -f1 -d' '
如从ifconfig 输出中筛选出IP地址
ifconfig ens33|???
ifconfig ens33|sed -nr
'2s/^.*inet(.*)netmask.*$/\1/gp'
ifconfig ens33|awk -F '[ ]+' 'NR==2{print $3}'
标签:输出,Shell,cc,命令,管道,概述,ls,Linux From: https://blog.51cto.com/u_16058240/6188444