cut命令
cut:
-d:指定字段分隔符,默认是空格
-f:指定要显示的字段
1
2 cut -d: -f 1,3 /etc/passwd
cut -d: -f 1-3 /etc/passwd
sort命令
sort命令是以首字母的大小进行升序排列
sort sort.txt
-n:以大小顺序进行升序排列
-r:以首字母的大小进行降序排列
-u:去除多余的重复的
-f:排列时忽略字符大小写
sort -n -r:以大小顺序进行降序排列
1 | sort /etc/passwd |
-t: 指明字段以:为分隔符进行排序
-k以哪个字段为关键字进行排序
(一般这个可以和uniq进行结合)
uniq命令
uniq:
-d:指出相邻重复的行
-D:指出相邻重复的行并列出重复次数
-c:指出相邻的某一行重复的次数
wc命令
wc:
wc test1.txt
4 4 44 test1.txt
行数 单词数 字节数
-l:只显示行数
tr命令
转换或删除字符
such as:
1
tr a A
abababab (回车)
AbAbAbAb
1
tr ab AB
acBdd
AcBBd
(即把所有要大小写的字符进行替换)
如要将/etc/passwd中的ad字符大小写:
1
tr ad AD < /etc/passwd
如果所有都大小写转换:
1
tr a-z A-Z
-d 删除
1 | tr -d abcd < test2.txt |
会删除所有有a/b/c/d的
type命令
判断一个名字当前是否是alias、keyword、function、builtin、file或者什么都不是:
1 | type ls 的输出是 ls 是 `ls --color=auto' 的别名 |
bash及其特性:
shell:外壳
进程:在每个进程看来,当前主机只存在内核和当前进程
进程是程序的副本,进程是程序执行实例
shell,子shell
举例:
#csh
这个时候就转为csh了,ctrl+d就回到原shell了。
bash:
1/命令历史
2/管道/重定向
3/命令别名
4/命令行编辑
5/命令行展开
6/文件名通配
7/变量
8/编程
命令行编辑:
光标跳转:
ctrl+a:跳到命令行首
ctrl+e:跳到命令行尾
ctrl+u:删除光标至命令行首的内容
ctrl+k:删除光标至命令行尾的内容
命令历史: ~/.bash_history存放history执行的命令
history -c :清空命令历史
history -d 500删除第500个命令
history -d 500 10 删除第500个起后10个命令
!n:执行第n条命令
!-n:执行倒数第n条命令
!!:执行上一条命令
!+string:
如果命令历史里面执行过ls / cd / ps -aux 命令,则可以直接!l 来执行ls,不过这个有技巧,即能够和所有已执行命令区分开来的string来进行表示;
! $:引用前一条命令的参数
环境变量:
PATH:命令搜索路径
HISTSIZE:指定命令历史大小(红帽系列默认为1000) echo $HISTSIZE
命令别名:
alias cls ‘clear’
只在当前的shell的生命周期内有效
撤销别名
unalias + 别名
unalias cls
#命令替换: $(command) 反引号
把执行的结果
1 | echo "The current directory is $(pwd)." |
touch a_$(date +%F).txt
touch a_$(date +%F-%H-%M-%S).txt
touch b_date +%F
.txt
bash支持的引号:
``:命令替换
"":弱作用,可以实现变量替换
'':强引用,不完成变量替换
文件名通配:
*:任意长度的任意字符
?:任意单个字符
[]:匹配指定范围内的任意单个字符:
[abc],[a-m],[a-z],[A-Z],[0-9],[a-zA-Z]
ls [a-zA-Z]*[0-9]
[^]:匹配指定范围外的所有字符:
ls [^0-9]*