UNIX Shell 编程(2)
字符匹配
星号(*)匹配0个以上的字符;而问号(?)则匹配1个字符。
如:
ls [a-z]*[0-9]
表示显示文件名以小写字母开始,且以数字结尾的文件列表。
输出重定向
命令的输出一般是提交到标准输出设备,可以转向到文件内,这叫输出重定向。
在有标准输出的命令后,添加>file符号后,命令的输出就会写入文件file。
如:
[root@localhost misc]# who
root pts/1 2009-04-14 09:39 (10.3.34.117)
fedora tty7 2009-04-14 10:44 (:0)
[root@localhost misc]# who >users
[root@localhost misc]# ls
collect mon users wb wbb2 wbx writeback
[root@localhost misc]# cat users
root pts/1 2009-04-14 09:39 (10.3.34.117)
fedora tty7 2009-04-14 10:44 (:0)
另一种类型的输出重定向,由字符>>表示,它意思是命令的输出从标准输出追加到指定的文件后面。因此,文件以前的内容不会丢失,新的输出添加到最后。
如:
[root@localhost misc]# cat users
root pts/1 2009-04-14 09:39 (10.3.34.117)
fedora tty7 2009-04-14 10:44 (:0)
[root@localhost misc]# ls
collect mon users wb wbb2 wbx writeback
[root@localhost misc]# ls >>users
[root@localhost misc]# cat users
root pts/1 2009-04-14 09:39 (10.3.34.117)
fedora tty7 2009-04-14 10:44 (:0)
collect
mon
users
wb
wbb2
wbx
writeback
Shell能识别一种特别格式的输出重定向,如果输入:
> file
前面没有命令,shell会创建一个空文件(长度为0字符),如该文件以前存在,其内容会丢失。
如:
[root@localhost misc]# >file4
[root@localhost misc]# wc file4
0 0 0 file4
[root@localhost misc]# cat file3
This is in file1.
This is in file2.
This is in file1.
[root@localhost misc]# >file3
[root@localhost misc]# wc file3
0 0 0 file3
输入重定向
同输出重定向,命令的输入也可重定向为来自于文件。用大于号>表示输出重定向,用小于号表示输入重定向。
如:
[root@localhost misc]# wc -l users
9 users
[root@localhost misc]# wc -l < users
9
管道
统计当前登陆进系统的用户数:
[root@localhost misc]# who >users
[root@localhost misc]# wc -l < users
2
表明有2个用户登陆了系统。在任何适合如果想知道有多少登陆用户,都可以使用此命令序列。
还有一种方法来判断登陆用户数而不需要使用文件。
Unix系统可以把两条目录的效果连接起来,这种连接称为管道。
管道可以把一条命令的输出直接作为另一条命令的输入。
管道效果由字符 | 实现,它必须在两条命令之间。
故统计登陆用户数可以这么实现:
[root@localhost misc]# who | wc -l
2
在两条命令间建立管道后,第一条命令的标准输出就直接连接到第二条命令的标准输入。
如统计当前目录的文件数:
[root@localhost misc]# ls | wc -l
11
过滤器
Unix所指的过滤器是指能够从标准输入中接受输入,对输入进行处理后,把结果写入标准输出的任何程序。
命令cat和sort是过滤器,而who、date、cd、pwd、echo、rm、mv及cp都不是。
标准错误
除标准输入和标准输出之外,还有一种标准设备,称之为标准错误。
标准错误默认也是终端。
如:
[root@localhost misc]# ls n*
ls: cannot access n*: No such file or directory
见上面,“cannot access...”信息实际上是由ls命令写入标准错误,而非标准输出。
[root@localhost misc]# ls n* > foo
ls: cannot access n*: No such file or directory
尽管输出重定向到文件foo,该信息仍然在终端显示了。且:
[root@localhost misc]# wc foo
0 0 0 foo
foo文件为空。
标准错误也可重定向到文件,格式为:
命令 2> 文件
注意:2和>之间不能有空格。
如:
[root@localhost misc]# ls n* 2> foo
[root@localhost misc]# cat foo
ls: cannot access n*: No such file or directory
一行可以键入多条命令,命令间用分号分隔。
比如既查看当前时间又查看当前工作目录:
[root@localhost misc]# date;pwd
Tue Apr 14 11:29:15 CST 2009
/tools/test/misc
命令发送到后台
有些命令执行时间很长,可以放到后台执行。在键入的命令之后跟一个&符号,该命令就发送到后台执行。
如:
[root@localhost misc]# sort file3 > out & #sort发往后台执行
[2] 30584 # 进程id
此时,终端可立即做其它工作。
[2] 30584 解释:第一个称为该命令的工作号,第二个是进程标识号。
可以用ps命令查看:
[root@localhost misc]# ps
PID TTY TIME CMD
2303 pts/1 00:00:00 bash
30354 pts/1 00:00:00 sort
30589 pts/1 00:00:00 ps
[2]- Done sort file3 > out
ps可以显示系统中正运行的进程的信息。
PID进程标识号,TTY进程终端号,TIME进程已运行的时间,CMD进程名。
如果加上-f选项,将显示更详细内容。
[root@localhost test]# ps -f
UID PID PPID C STIME TTY TIME CMD
root 30665 30657 0 12:30 pts/2 00:00:00 -bash
root 30775 30665 0 13:17 pts/2 00:00:00 ps -f
注:PPID父进程的标识号,STIME进程启动时间,以及命令参数。
分享到:
相关推荐
LINUX与UNIX SHELL编程指南
Linux与Unix shell编程指南(完整高清版)Linux与Unix shell编程指南(完整高清版)Linux与Unix shell编程指南(完整高清版)Linux与Unix shell编程指南(完整高清版)Linux与Unix shell编程指南(完整高清版)Linux...
linux&unixShell编程2
Linux与UNIX Shell编程指南.pdf
LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 LINUX UNIX SHELL 编程 ...
shell编程入门经典--LINUX与UNIX Shell编程指南 (中文pdf版)
用Linux/UNIX Shell编程语言设计系统监控程序.pdf
shell编程入门教程+shell脚本专家指南+UNIX.shell编程24小时教程
第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...
实践大师:Unix Shell编程篇 实践大师:Unix Shell编程篇
本书共分五部分 ,详细介绍了SHELL编程技巧,各种UNIX命令及语法,还涉及了UNIX的文字处理以及少量的系统管理问题。本书内容全面,文字简洁流畅,适合SHELL编程人员学习、参考。 目录 第一部分 SHELL 第一章 文件...
LINUX与UNIX Shell编程指南
《LINUX与UNIX SHELL编程指南》读书笔记-二次发布版
6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书 6本pdf及chm的shell 编程的书
Linux与Unix shell 编程指南,看看还是有点用的吧...
UNIX Shell编程24小时教程
LINUX与UNIX SHELL编程指南LINUX与UNIX SHELL编程指南LINUX与UNIX SHELL编程指南
LINUX与UNIX SHELL编程指南LINUX与UNIX SHELL编程指南LINUX与UNIX SHELL编程指南