查看文本:
cat,tac,more,less,head,tail
cat:
-n: number
-A:显示特殊字符
-E:显示行尾
tac:
反向显示
more:
到文件尾后就退出
b:向前一屏
space:向后一屏
ENTER:向下一行
less:
到文件尾后后不退出
b:向前一屏
space:向后一屏
ENTER:向下一行
head:查看前n行
tail:查看后n行
-n 2:查看前2行
-f :持续查看,等待更新,后续追加
文本处理:
cut,join,sed,awk,sort,uniq,grep,paste
cut:
-d:指定分隔符,默认是空格,可以加空格也可以不加
-f:指定要显示的字段
-f 1,3
-f 1-3
sort:
-n:数值排序
-r:降序
-t:分隔符
-k:指定排序字段
-u:unique(去重)
-f:忽略大小写
uniq:
必须相邻的重复的才会去重
-d:只显示重复的行
-D:重复行全部都显示
-c:统计每行重复的次数
文本统计
wc:
-w:word
-c:character(看不到特殊字符也计算在内)
-l:line
-L:最长的一行包含多少字符
字符处理
tr:
转换,删除字符,使用标准输入
tr 'a-z' 'A-Z' < /etc/passwd
-d:删除字符集中的所在字符
进程:是程序的副本,在每个进程看来,当前主机上只存在内核和当前进程,是程序执行的实例
export LANG=en
bash及其特性:
shell:外壳
GUI:Gnome,KDE,Xface
CLI:sh,csh,ksh,bash,tcsh,zsh
用户工作环境:
bash:
shell,子shell
#pstree
bash:
1.命令历史
2.管道,重定向
3.命令别名
4.命令行编辑
5.命令行展开
6.文件名通配
7.变量
8.编程
命令行编辑:
光标跳转:
Ctrl+a:跳到命令行首
Ctrl+e:跳到命令行尾
Ctrl+u:删除光标至行首的内容
Ctrl+k:删除光标至行尾的内容
Ctrl+左右方向键可以一次跳一个单词
Ctrl+l:清屏
命令历史:
查看命令历史:history
-c:清空命令历史
-d:从指定位置删除指定个命令历史 OFFSET [n]
-w:保存命令历史至历史文件~/.bash_hostory
HISTSIZE:命令历史缓冲区大小
命令历史使用技巧:
!n:执行命令历史中第n条命令
!-n:执行命令历史中倒数第n条命令
!!:执行上一条命令
!str:执行开头匹配str的最近一个命令
!$:引用上一个命令的最后一个参数
esc,.:引用上一个命令的最后一个参数
Alt+.:引用上一个命令的最后一个参数(远程终端不支持)
命令补全:
搜索PATH当唯一时自动补全,当不唯一时敲击两次tab会列出所有命令,如果命令太多会询问是否显示
路径补全:
同上
命令别名:
alias commandstr='command'
unalias commandstr
只在当前shell中有效
命令替换:
把命令中某个子命令替换为其执行结果的过程
$(command)
`command`(反引号)
bash支持的引号:
``:命令替换
"":弱引用,可以实现变量的替换
'':强引用,不完成变量的替换
文件名通配,globbing
*:任意长度的任意字符
?:单个任意字符
[]:匹配指定范围内的任意单个字符 [abc] [a-m] [0-9] [0-9a-z]
[^]:匹配指定范围之外的任意单个字符
[:space:]:空白字符
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]:大小字母
[:alpha:]:字母
[:digit:]:数字
[:alnum:]:数字和大小写母
用的时候要再一层[]:即 [[:space:]] [^[:sapce:]]
练习:
1.创建a123, cd6, c78m, c1 my, m.z, k 67, 8yu, 789等文件;注意,以上文件是以逗号隔开的,其它符号都是文件名的组成部分;
2.显示所有以a或m开头的文件;
ls [am]*
3.显示所有文件名中包含了数字的文件;
ls *[0-9]*
ls *[[:digit:]]*
4.显示所有以数字结尾且文件名中不包含空白的文件;
ls *[^[:space:]]*[0-9] ?????????
5.显示文件名中包含了非字母或数字的特殊符号的文件;
ls *[^[:alnum:]]*
cat,tac,more,less,head,tail
cat:
-n: number
-A:显示特殊字符
-E:显示行尾
tac:
反向显示
more:
到文件尾后就退出
b:向前一屏
space:向后一屏
ENTER:向下一行
less:
到文件尾后后不退出
b:向前一屏
space:向后一屏
ENTER:向下一行
head:查看前n行
tail:查看后n行
-n 2:查看前2行
-f :持续查看,等待更新,后续追加
文本处理:
cut,join,sed,awk,sort,uniq,grep,paste
cut:
-d:指定分隔符,默认是空格,可以加空格也可以不加
-f:指定要显示的字段
-f 1,3
-f 1-3
sort:
-n:数值排序
-r:降序
-t:分隔符
-k:指定排序字段
-u:unique(去重)
-f:忽略大小写
uniq:
必须相邻的重复的才会去重
-d:只显示重复的行
-D:重复行全部都显示
-c:统计每行重复的次数
文本统计
wc:
-w:word
-c:character(看不到特殊字符也计算在内)
-l:line
-L:最长的一行包含多少字符
字符处理
tr:
转换,删除字符,使用标准输入
tr 'a-z' 'A-Z' < /etc/passwd
-d:删除字符集中的所在字符
进程:是程序的副本,在每个进程看来,当前主机上只存在内核和当前进程,是程序执行的实例
export LANG=en
bash及其特性:
shell:外壳
GUI:Gnome,KDE,Xface
CLI:sh,csh,ksh,bash,tcsh,zsh
用户工作环境:
bash:
shell,子shell
#pstree
bash:
1.命令历史
2.管道,重定向
3.命令别名
4.命令行编辑
5.命令行展开
6.文件名通配
7.变量
8.编程
命令行编辑:
光标跳转:
Ctrl+a:跳到命令行首
Ctrl+e:跳到命令行尾
Ctrl+u:删除光标至行首的内容
Ctrl+k:删除光标至行尾的内容
Ctrl+左右方向键可以一次跳一个单词
Ctrl+l:清屏
命令历史:
查看命令历史:history
-c:清空命令历史
-d:从指定位置删除指定个命令历史 OFFSET [n]
-w:保存命令历史至历史文件~/.bash_hostory
HISTSIZE:命令历史缓冲区大小
命令历史使用技巧:
!n:执行命令历史中第n条命令
!-n:执行命令历史中倒数第n条命令
!!:执行上一条命令
!str:执行开头匹配str的最近一个命令
!$:引用上一个命令的最后一个参数
esc,.:引用上一个命令的最后一个参数
Alt+.:引用上一个命令的最后一个参数(远程终端不支持)
命令补全:
搜索PATH当唯一时自动补全,当不唯一时敲击两次tab会列出所有命令,如果命令太多会询问是否显示
路径补全:
同上
命令别名:
alias commandstr='command'
unalias commandstr
只在当前shell中有效
命令替换:
把命令中某个子命令替换为其执行结果的过程
$(command)
`command`(反引号)
bash支持的引号:
``:命令替换
"":弱引用,可以实现变量的替换
'':强引用,不完成变量的替换
文件名通配,globbing
*:任意长度的任意字符
?:单个任意字符
[]:匹配指定范围内的任意单个字符 [abc] [a-m] [0-9] [0-9a-z]
[^]:匹配指定范围之外的任意单个字符
[:space:]:空白字符
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]:大小字母
[:alpha:]:字母
[:digit:]:数字
[:alnum:]:数字和大小写母
用的时候要再一层[]:即 [[:space:]] [^[:sapce:]]
练习:
1.创建a123, cd6, c78m, c1 my, m.z, k 67, 8yu, 789等文件;注意,以上文件是以逗号隔开的,其它符号都是文件名的组成部分;
2.显示所有以a或m开头的文件;
ls [am]*
3.显示所有文件名中包含了数字的文件;
ls *[0-9]*
ls *[[:digit:]]*
4.显示所有以数字结尾且文件名中不包含空白的文件;
ls *[^[:space:]]*[0-9] ?????????
5.显示文件名中包含了非字母或数字的特殊符号的文件;
ls *[^[:alnum:]]*