【Linux学习】课时4 Shell基础及常用命令(3)

曾巧文 发布于:2012-4-16 15:08 分类:Linux学习 标签: shell

1、Shell基础及常用命令(3)
1. 掌握文本过滤命令:grep
2. 掌握Shell的操作技巧
3. 了解其它常用命令


2、内容过滤命令:grep
命令名称:grep
英文原意:print lines matching a pattern
命令所在路径:/bin/grep
执行权限:所有用户
功能描述:将符合样式的该行列出
语法:grep [选项] [指定正则表达式] [搜索的目标文件]
-n 显示行号    -c  显示行数
-v 反向选择    -i   忽略大小写
示例:
grep ftp /etc/services


3、正则表达式【难点,了解】
正则表达式:一个处理字符串的规则, grep命令就是一个支持这种规则的工具。
使用它,可以提高搜索效率和精度。有点类似于Shell环境中的通配符。
符号
[]表示集合字符:[a-z] [0-9] [A-Z] [^a-z]
^ 表示行首,$表示行尾:^word ,  word$
\ 表示转义字符
.表示任意一个字符,*表示任意多个字符:
{}表示限定字符重复个数范围:o\{2\}


4、正则表达式
通过grep选取字符串
搜索特定字符串:grep –n ‘the’ test   (-vn/-in)
利用[]来搜索集合字符:
grep –n ‘t[ae]st’ test
grep –n ‘[^g]oo’ test     (‘^goo’)?
grep –n ‘[^a-z]oo’ test
行首和行尾字符:^ $
grep –n ‘^the’ test
grep –n ‘!$’ test
grep –n ‘^$’ test


5、正则表达式
通过grep选取字符串
任意一个字符(.)和重复字符(*:0个或多个前面的字符)
grep –n ‘g..d’ test
grep –n ‘[0-9]*’ test      grep –n ‘[0-9]’
限定连续重复字符范围{}
grep –n ‘o{2}’ test      grep –n ‘o\{2\}’ test
grep –n ‘go\{1,4\}’ test 
总结:^word ;  word$;  .  ;  \  ;*  ;  \{n,m\}
   [];  [^]

6、Shell操作技巧
Bash Shell的基本功能、技巧
命令记忆:记录的文件在主目录的.bash_history
history ;  history 10  ;   !num       !!
命令与文件补全:[Tab]键
命令别名:举例 alias lm=‘ls –al’     unalias lm
通配符:帮助用户查询和执行命令
数据流重定向:设置标准输入输出
多命令执行:command1 ;(&&、 ||) command2
命令替换:command1 `command`


7、Shell操作技巧
Shell通配符:
* : 匹配0或多个任意字符
? : 匹配一个任意字符
[list] : 匹配list中的任意单一字符 
[!list] : 匹配除list范围内的任意单一字符
[c1-c2] : 匹配c1-c2中的任意单一字符
[a-Z] [0-9]
{string1,string2....} : 匹配string1或string2...中的任意一个字符串。


8、Shell操作技巧
通配符使用示例:
把当前目录下“文件名含有3或者5”的文件列举出来: ls -l *[35]*
把当前目录下“文件名含有数字字符”的文件列举出来:ls –l *[0-9]*
把当前目录下“文件名以file开头以数字结尾”的文件列举出来: ls -l file*[0-9]
删除当前目录下以字母a 或 A开头的文件:
 rm [aA]*
删除当前目录下不以字母开头的文件: rm [!a-Z]*


9、Shell操作技巧
数据流重定向
将某个命令执行后应该要在屏幕上显示的数据传输到其他地方。使用情况:
当屏幕输出的信息很重要,需要把它保存下来时
后台执行的程序,不希望它干扰屏幕正常的显示,又想把程序执行的结果保存。
想把正确的消息和错误的消息分离时


10、Shell操作技巧
数据流重定向示例
ls –al > list.txt   ;    ls –al / >> list.txt
将ls –al命令的输出结果写到list.txt中,将ls –al /命令的输出结果添加到list.txt末尾。
find /etc –name ‘*pass*’ > right.txt  2> wrong.txt
将find命令的正确输出结果写到right.txt,错误输出结果写到wrong.txt。
find /etc –name ‘*pass*’ > right.txt  2> /dev/null
/dev/null : “黑洞文件”,将错误输出丢弃
cat < 1.txt  ;  cat > inputfile (Ctrl+d结束输入)
cat > inputfile < 1.txt :将1.txt的内容覆盖inputfile


11、Shell操作技巧
管道
管道命令:“|”,可以处理通过前面一个命令执行后传过来的标准正确输出信息。
“|”前命令的输出是“|”后命令的输入。

12、Shell操作技巧
管道命令
选取命令:将一段数据进过分析后取出想要的部分
grep:分析一行消息,若有所需,就将该行取出
cat test | grep –nv ‘hello’ | less
cut:分析一行消息,若有所需,就将该行所需段取出
echo $PATH | cut –d ‘:’ –f 3
排序命令:sort
cat /etc/passwd | sort | less

13、Shell操作技巧
多命令执行 : ;    &&     ||
Command1 ; Command2:先执行Command1,不管Command1是否执行成功,必执行Command2.
示例:ls –a ; du –hs (显示目录的大小)
Command1 && Command2:Command1如果执行成功,则执行Command2
示例:ls ./mydir && touch ./mydir/myfile
Command1 || Command2:Command1如果执行失败,则执行Commnad2
示例:ls ./mydir || mkdir ./mydir
示例:ls ./mydir || mkdir ./mydir && touch ./mydir/myfile


14、Shell操作技巧
Shell环境下符号总结
*:表示0个或多个字符
?:表示“一定有”一个字符
!:表示逻辑上的“非”
\:转义字符,将特殊字符还原为一般字符
;:连续命令的分隔
|:分离两个管道命令
>,>>:输出导向,分别是“替换”和“累加”
``:其中为可以先执行的功能
[]:字符组合
||、&&:类似或、与的关系


15、其它常用命令
显示或修改系统时间和日期:date
date –s “20110321 10:00”  (-s : set 设置时间)
切换用户:su userName
su zsc
su  (不接用户名时,表示切换到root用户。)
su -  (加上段横线时,表示同时更换环境设置。)
显示目前登录到系统的用户:who
显示文字:echo
挂载光盘:mount /dev/cdrom /mnt/cdrom
卸载光盘:umount /mnt/cdrom

 

版权所有:《曾巧文博客-关注互联网IT技术,记录生活点滴》 => 《【Linux学习】课时4 Shell基础及常用命令(3)
本文地址://qiaowen.net/post-1146.html
除非注明,文章均为 《曾巧文博客-关注互联网IT技术,记录生活点滴》 原创,欢迎转载!转载请注明本文地址,谢谢。

有 3968 人浏览,获得评论 0 条

发表评论:

Powered by emlog 粤ICP备12040901号

>>本作品采用-知识共享署名-非商业-禁止演绎-协议-进行许可 |站点地图 | | | | 开放分类目录 |