UNIX Shell编程 学习笔记(一)
来源:互联网 发布:java 商城 小程序 编辑:程序博客网 时间:2024/05/10 02:22
Unix只能识别3种基本的文件类型:普通文件、目录文件和特殊文件。
统计文件中的单词数:wc命令
[root@localhost test]# wc Makefile
22 84 600 Makefile
第一个数字表示文件Makefile包含的行数;第二个数字表示文件包含的单词数目;第三个数字表示文件包含的字符数。
命令参数:
-l 表示显示行数
-c 表示显示字符数
-w 表示显示单词数
显示工作目录:pwd命令
[root@localhost test]# pwd
/tools/test
链接文件:ln命令
命令格式:ln from to
它类似于Windows平台上的快捷方式。
如:ln abc writeback
ls -l命令后显示:
-rw-r--r-- 2 root root 13 2009-04-13 17:45 abc
-rw-r--r-- 1 root root 6 2009-04-13 17:38 wb
-rw-r--r-- 1 root root 6 2009-04-13 17:34 wbx
-rw-r--r-- 2 root root 13 2009-04-13 17:45 writeback
注:数字2表示链接数为2,这意味着一个文件可以链接多次。
执行:[root@localhost programs]rm -f abc
文件writeback的链接数变成1了;文件仍然存在,所以它与Windows平台的快捷方式是有区别的。
ln最通常的用途是链接不同目录中的文件。链接文件的唯一限制是,链接在一起的文件必须共存于同一文件系统。要链接到不同文件系统中的文件,可以给ln命令加-s选项,这样可以建立一个符号化链接。符号化链接与初始链接有一点不同:符号化链接指向初始文件,如初始文件被删除,该符号化链接则不起作用。
[root@localhost programs]# ln -s wb wbb
[root@localhost programs]# ls -l
-rw-r--r-- 1 root root 6 2009-04-13 17:38 wb
lrwxrwxrwx 1 root root 2 2009-04-14 10:26 wbb -> wb
-rw-r--r-- 1 root root 6 2009-04-13 17:34 wbx
-rw-r--r-- 1 root root 13 2009-04-13 17:45 writeback
注意:wbb文件类型显示为1,表示它是一个符号化链接。
字符匹配
星号(*):匹配0个以上的字符;而问号(?)则匹配1个字符。
ls [a-z]*[0-9]表示显示文件名以小写字母开始,且以数字结尾的文件列表。
输出重定向:命令的输出一般是提交到标准输出设备,可以转向到文件内,这叫输出重定向。在有标准输出的命令后,添加>file符号后,命令的输出就会写入文件file。另一种类型的输出重定向,由字符>>表示,它意思是命令的输出从标准输出追加到指定的文件后面。因此,文件以前的内容不会丢失,新的输出添加到最后。
Shell能识别一种特别格式的输出重定向,如果输入:> file
前面没有命令,shell会创建一个空文件(长度为0字符),如该文件以前存在,其内容会丢失。
输入重定向:同输出重定向,命令的输入也可重定向为来自于文件。用大于号>表示输出重定向,用小于号表示输入重定向。
管道:Unix系统可以把两条目录的效果连接起来,这种连接称为管道。管道可以把一条命令的输出直接作为另一条命令的输入。管道效果由字符 | 实现,它必须在两条命令之间。故统计登陆用户数可以这么实现:[root@localhost misc]# who | wc -l
在两条命令间建立管道后,第一条命令的标准输出就直接连接到第二条命令的标准输入。
过滤器: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]# 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进程启动时间,以及命令参数。
- UNIX Shell编程 学习笔记(一)
- shell学习笔记(二):《Unix Shell编程》学习笔记
- UNIX Shell编程 学习笔记(二)
- UNIX环境高级编程学习笔记(一)UNIX基础知识
- Linux Unix shell 编程指南学习笔记(第一部分)
- Linux Unix shell 编程指南学习笔记(第二部分)
- Linux Unix shell 编程指南学习笔记(第三部分)
- Linux Unix shell 编程指南学习笔记(第四部分)
- Linux Unix shell 编程指南学习笔记(第五部分)
- Unix Shell编程(第三版)学习笔记
- Unix shell范例精解学习笔记(一)
- 学习shell编程笔记(一)
- shell编程学习笔记一
- shell 编程学习笔记(一)
- Linux shell编程学习笔记(一) shell初探
- UNIX 编程实践教程学习笔记 (一)
- Unix 环境高级编程学习笔记(一)
- Unix环境高级编程学习笔记(一) 初窥
- 滚动条
- 工作之中,这点算什么
- 简单的稀疏矩阵实现
- 一位开发工程师MM的感悟:谁拿代码开玩笑,谁就是跟自己玩命。。。。
- 【十年情感】 我和我的日语老师的故事
- UNIX Shell编程 学习笔记(一)
- div居中的设置该如何编写css?
- J2EE系统异常的处理准则
- 使用asp.net2.0或3.5编程加密、解密web.config中的配置信息
- 语法分析(算符优先文法)
- 无法使用某些类,哪怕使用了using 命名空间也不可以的原因
- Java与TSC条形码打印机(续)
- struts2与struts1的前世今生
- IT届人士的各种女人