1.5 cut命令
cut 把一个文件分段
cut -d:(指定分割符) -f(第几段) 3,4,5 /etc/passwd
cut -c(截取第几个字符) 1-10 /etc/passwd
1.6 sort命令
sort 用来排序,什么都不加的,按ASCII码来排序!
sort -t:(指定分割符) -k3(第几段) -n(纯数字排序) /etc/passwd
sort -t:(指定分割符) -k3,5(区间段用,号,不能用-) -n(纯数字排序) -r(反序排序) -u(去重复) /etc/passwd
如果sort -un 1.txt去重复 (里面的英文有多行,都会把英文字母当成字符串处理,最后只留一个)
1.7 wc命令
wc -l(文档有多少行数) 1.txt 2.txt
wc -w(有多少个word单词) 1.txt
wc -m(有多少个字符,包括还有一个\n) 1.txt
1.8 uniq和tee命令
uniq 主要是用来去重复的
uniq -c(计算有多少个重复的数量) 2.txt 如果两个重复的行没有挨着的,是去不了重复的
sort 2.txt|uniq -c 先排序再去重复
tee 用来重定向加上双重输出
echo "xuan" |tee 1.txt (把xuan重定向到1.txt,然后在屏幕上显示xuan)
1.9 tr和split命令
tr 用来替换字符的
ls *.txt |tr 'a-z' 'A-Z'小写变大写
ls *.txt |tr 'abcde' 'ABCDE'一一对应的
split 用来切割大文件的
split -b(根据大小来分,,默认是以b字节为单位) 50m 1.txt
split -l(根据行来分) 100 1.txt
切割后源文件还存在
split -l(根据行来分) 100 1.txt new_(切割后的文件名)
2.0 shell中连接符(并且、和、或者)
&&并且 ls 1.txt && ls 2.txt #左边命令执行成功后,才会执行右边的命令
如果前面的命令执行成功才会执行后面的命令,如果前面的命令执行不成功就不再执行后面的命令
||或者 ls 1.txt || ls 2.txt #左边命令执行不成功,才会执行右边的命令
如果前面的命令执行不成功就会执行后面的命令
&&:左边命令执行成功后,才会执行右边的命令
||:左边命令执行不成功,才会执行右边的命令
; :左边命令执行成功与否,后边命令都会执行
1. shell特性
命令历史 history !! !$ !n !字符
Tab 键可以补全文件路径或者命令
alias a=“b” unalias a
通配符 *匹配零个或多个字符 ?匹配一个字符
输入输出重定向 >, >>, <, 2>, 2>>
管道符 |
作业控制 ctrl+z, jobs, fg, bg
2. 变量
系统变量名都是大写,echo 可以查看变量名
env 可以列出当前用户的所有环境变量以及用户自定义全局变量
set命令可以把所有变量列出来包括系统的和自定义的全局变量以及当前shell自定义变量
linux下设置自定义变量规则: (1)格式为 “a=b”, 其中a为变量名,b为变量的内容,等号两边不能有空格;(2)变量名只能由英、数字以及下划线组成,而且不能以数字开头;(3)当变量内容带有特殊字符(如空格)时,需要加上单引号;(4)如果变量内容中需要用到其他命令运行结果则可以使用反引号;(5)变量内容可以累加其他变量的内容,需要加双引号;
系统所有用户使用变量: export myname=Aming 全局变量,加入/etc/profile并source /etc/profile永久生效
系统某个用户使用变量: export myname=Aming 加入当前用户家目录下的 .bashrc中 source .bashrc
export myname=Aming 全局变量,export 不加任何选项表示,声明所有的环境变量以及用户自定义变量
用户自定义变量,可以使用 unset 变量名 进行解除变量设置
3. 系统和个人环境变量的配置文件
/etc/profile PATH, USER, LOGNAME, MAIL, INPUTRC, HOSTNAME, HISTSIZE, umask等
/etc/bashrc $PS1 umask 以后如果设置umask修改 /etc/profile 不要改这个文件
.bash_profile 用户自己的环境变量
.bashrc 当用户登录时以及每次打开新的shell时, 执行该文件
.bash_history 记录命令历史用的
.bash_logout :当退出shell时,会执行该文件。
4. shell中的特殊符号
* 匹配符号,零个或多个任意字符
? 匹配符号,1个任意的字符
# 注视说明用的,使后面的内容失去原本的意义
\ 脱义字符,将特殊字符还原为普通字符
|将符号前面命令的结果丢给符号后面的命令,一般针对文档操作的命令比较常用,例如cat, less, head, tail, grep, cut, sort, wc, uniq, tee, tr, split, sed, awk等等
$ 引用变量,还有 !$
; 分号,多条命令写一行时,分隔命令
~ 用户家目录
& 放到命令最后面,让命令在后台运行
>, >>, 2>, 2>> [错误]重定向,追加[错误]重定向
[ ] 中括号,中间为字符组合,代表中间字符中的任意一个 ls 1[23a].txt
5. 常用命令:
1)cut
语法: cut -d ‘分隔字符’ [-cf] n 这里的n是正整数
-d 后面指定分隔符,用单引号引起来,-f 指定第几段 cut -d ':' -f 1 /etc/passwd |head -n 5
-c 后面只有一个数字表示截取第几个字符head -n2 /etc/passwd|cut -c2
-c 后面跟一个数字区域,表示截取从几到几head -n2 /etc/passwd|cut -c2-5
2)sort
语法: sort [-t 分隔符] [-kn1,n2] [-nru] (n1
-t 后指定分隔符,-kn1,n2表示在指定的区间中排序,-k后面只跟一个数字表示对第n个字符排序,-n表示使用纯数字排序 sort -t: -k3 -n /etc/passwd
-r 表示以降序的形式排序 sort -t: -k3,5 -r /etc/passwd
-u 去重 cut -d: -f4 /etc/passwd |sort -n -u
3)wc
用于统计文档的行数、字符数、词数
不加任何选项,会显示行数、词数以及字符数
-l 统计行数
-m 统计字符数
-w 统计词数
4)uniq
uniq 去重复,最常用就一个 -c 用来统计重复的行数,去重前要先排序sort testb.txt |uniq -c
5)tee
后跟文件名,类似于>,比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上
6)tr 用来替换字符
最常用的就是大小写转换: head -n2 /etc/passwd |tr '[a-z]' '[A-Z]'
tr 替换一个字符也是可以的 grep 'root' /etc/passwd |tr 'r' 'R'
7)split 切割大文件用的
-b : 按大小来分割单位为byte split -b50 1.txt
默认会以xaa, xab, …这样的形式定义分隔后的文件名,也可以指定文件名 split -b50 1.txt 123
-l : 按行数分隔,split -l10 file
6. && 和 ||
command1 ; command2 前面命令是否执行完成都会执行后面命令
command1 && command2 只有前面命令执行成功才会执行后面命令
command1 || command2 只有前面命令不成功再去执行后面命令
扩展知识点:
1. source exec 区别 http://alsww.blog.51cto.com/2001924/1113112
2. bash_profile和bashrc的区别 http://www.aminglinux.com/bbs/thread-7719-1-1.html3. Linux特殊符号大全http://www.aminglinux.com/bbs/thread-7720-1-1.html
4.