linux中文本管理的常见命令

 

 linux的几个重要哲学思想:

1.一切皆文件,使用纯文本文件保存软件的配置信息2.功能单一的小程序组合小程序完成复杂任务3.一般来讲我们使用纯文本文件保存软件的配置信息,大多数情况下我们对整个系统的操作都是实现通过编辑它的配置文件来完成,也就意味着处理文本文件是我们作为系统管理员是一个重要的基本要求,因此我们必须掌握常见的文本处理工具来实现对配置文件的管理.  

  1. 查看文本:cat、 tac 、more 、less 、 head、 tail  

1 cat(连接并显示,能够实现将你通过几个参数给的文本文件的内容一个一个的完全显示出来) 

  1. -n:可显示行号(行号不是文件的内容,只是显示的号码); eg:cat -n /etc/issue  

  2. -E:显示每一行的行结束符(对于Linux系统而言文本文件的行结束符为$);  

  3. -T: 显示制表符;  

  4. -A:显示所有;  

  5. -v:可以显示其它的非打印符  

  6. shift+paup/padn:翻页  

  7. tac 将文件内容从最后一行显示到第一行;  

  8. Ctrl+c(控制组合键):退出编辑命令  

2 分屏显示:  

  1. more:支持向后翻(翻到尾部会退出)  

  2. less:向前翻  

  3. q 退出  

  4. head:查看文件的前n(n默认为10)行  

  5. tail:查看文件的后n(n默认为10)行  

  6. -n :可以指定显示多少行  

  7. eg:head -n 1 /etc/inittab 查看文件的第一行  

  8. eg: head -n 2 /etc/inittab 查看文件的前两行  

  9. eg:tail -n 5 /etc/inittab 查看文件的后5行  

  10. tail -f:查看文件尾部,不退出,等待显示后续追加至此文件的新内容;  

3 文本处理相关的命令:  

  1. cut、join、sed、awk(报告生成命令,此命令可支持一种编程语言,功能较强大)  

  2. datebase:数据库  

  3. 关系型数据库:  

  4. 表(可没行,但不可没列):二维表(有行列组成)  

  5. 文本文件:可用分隔符保存 eg:Tom:23:male:2013/2/28  

  6. cut:(查看文本)  

  7. -d:指定字段分隔符,默认是空格,与其它选项结合时不能省略  

  8. -f:指定要显示的字段  

  9. -f 1,3:离散显示法 查看第1列和第3列  

  10. -f 1-3: 连续显示法 查看第1至3列  

  11. ―E:显示每一行的结束  

  12. -n:所有输出的行数  

4 文本排序的命令:  

  1. sort默认不是按数值大小排序  

  2. eg:nano sort.test  

  3. sort -n sort.test  

  4. sort -n -u sort.test  

  5. -n:按数值大小排序  

  6. -r:降序  

  7. -n -r:可同时使用(按数值从大到小排序)  

  8. -t:字段分隔符  

  9. -k:指定以哪个字段为关键字进行排序  

  10. -u:排序后相同的行只显示一次  

  11. -f:排序时忽略字符大小写(即不区分字符大小写)  

  12. -d:只显示重复的行  

  13. -c:显示文件中行重复的次数  

5 文本统计的命令:wc(word count 

  1. eg:#wc /etc/fstab  

  2. 8 48 608 /etc/fstab(8行 48个单词 608个字节)  

  3. 行数 单词数 字节数  

  4. -l:只显示行数  

  5. -w:只显示单词数  

  6. -c/-m:只显示字节数  

  7. -L:最长的字节包含多少字符数  

6 字符处理命令:tr(用于实现转换或删除字符) 后面不能直接跟文件  

  1. 用法:tr [OPTION]...SIZE1[SIZE2]  

  2. eg: tr 'ab''AB' 把ab的换成AB  

  3. eg;tr 'a-z''A-Z'、etc/passwd 把一条指令中所有小写字母换成大写字母  

  4. -d:表示删除出现在字符集中的所有字符;  

  5. eg:tr -d 'ab'

7 bash及其特性:  

  1. 广义的shell(外壳,是离用户最近的一个程序,用户直接直接连计算机所用的外壳程序)包括GUI和GLI两部分  

  2. GUI:Gnome,KDE,Xfce  

  3. GLI:sh,csh(近似于C语言),ksh(商业化产品,需付费才能安装使用)、bash(遵循开源协定)、tcsh,zsh  

  4. 程序只能有一个,进程可以有多个  

  5. Linux还具有的特性是允许一个用户账号登录多次  

  6. 进程:在每个进程看来,当前主机上只存在内核和当前进程,进程是程序的副本,进程是程序执行实例  

  7. shell自由命令:子shell  

7.1 用户工作环境  

  1. bash(是一个进程):  

  2. 1、支持命令历史、命令补全  

  3. 2、支持管道、重定向  

  4. 3、命令别名  

  5. 4、命令行编辑  

  6. 5、命令行展开  

  7. 6、文件名通配  

  8. 7、变量  

  9. 8、编程  

7.2 bash的特性:  

1).命令行编辑:  

  1. 光标跳转:  

  2. Ctrl+a: 跳到命令行首  

  3. Ctrl+e: 跳到命令行尾  

  4. Ctrl+u:删除光标至命令行首的内容  

  5. Ctrl+k: 删除光标至命令行尾的内容  

  6. Ctrl+l: 清屏  

2).命令历史:  

  1. 查看命令历史: history  

  2. -c:清空命令历史  

  3. -d OFFSET [n]: 删除指定位置的命令  

  4. eg:history -d 500 删除第500个  

  5. eg:history -d 510 3 从第510开始往后删除3个  

  6. -w:保存命令历史至历史文件中(保存缓存区的文件)  

  7. ~./bash_history  

  8. 环境变量(定义命令历史的历史环境)  

  9. PATH:命令搜索路径  

  10. HISTSIZE:命令历史缓冲区大小(默认为1000)eg:echo $HISTSIZE  

  11. 命令历史的使用技巧:  

  12. !n :执行命令历史中第n条命令;  

  13. !-n:执行命令历史中的倒数第n条命令;  

  14. !!:执行上一条命令;  

  15. !string(任意字符串):执行命令历史中最近一个以指定字符串开头的命令;  

  16. !$ :(按住"esc" 松开后按"."或Alt+.):引用前一个命令的最后一个参数;  

  17. 命令补全:搜索我们给出的起始路径下的每个文件名,并试图补全;  

8 命令别名  

  1. alias CMDALLAS='COMMAND [options] [arguements]'

  2. eg:alias cls=clear  

  3. 在shell中定义的别名仅在当前shell生命周期中有效,别名的有效范围仅为当前的shell进程;  

  4. unalias 撤销别名  

  5. unalias CMDALLA  

  6. eg:unalias cls  

  7. 命令替换:$(COMMAND)或‘COMMAND‘('为反引号)  

  8. eg:#echo ”The current directory /root." 当前目录是root   

  9. pwd 直接切换到当前目录  

  10. #echo ”The current directory is $(pwd)." 把root换成pwd  

  11. #echo ”Dir is‘pwd‘"  

  12. 把命令中某个子命令替换为其执行结果的过程;  

  13. eg:touch ./file-$(date+%F-%H-%M-%S).txt file-2013-2-28-14-53-31.txt  

  14. bash支持的引号:  

  15. ‘‘:反引号,命令替换  

  16. "":弱引用,可以实现变量替换  

  17. '':强引用,不完成变量替换  

9 文件名通配,globbin  

  1. * : 可以用于实现任意长度的任意字符  

  2. ?:匹配任意单个字符(限定几个字符写几个问号)  

  3. []:匹配指定范围内的任意单个字符  

  4. [abc],[a-m],[a-z],[A-Z],[0-9],[a-zA-Z],[0-9a-zA-Z]  

  5. 使用# man 7 glob可获得以下7种:  

  6. [:space:]:空白字符  

  7. [:punct:]:标点符号  

  8. [:lower:]:小写字母  

  9. [:upper:]:大写字母  

  10. [:alpha:]:大小写字母  

  11. [:digit:]:数字  

  12. [:alnum:]:数字和大小写字母  

  13. eg:#ls  

  14. #touch a123 abc ab123 xyz x12 xyz123  

  15. #ls  

  16. #ls a* (以一个字母a开头,后跟任意字符)  

  17. #ls a*3(以字母a开头以数字3结尾的文件)  

  18. #ls *y*(以任意一个字符开头,后跟y)  

  19. #ls ?y* (y之前只有一个字符)  

  20. #ls [a-zA-Z]*[0-9] (以字母开头,以数字结尾)  

  21. [^]:匹配指定范围之外的任意单个字符  

  22. [[:alpha:]]*[[:space:]]*[[:alpha:]](字母开头,中间有空白字符,字母结尾)  

 

你可能感兴趣的:(cat,tail)