通配符
zsh
默认是不支持通配符的
vim ~/.zshrc:打开zsh配置文件添加
set nanomatch
sudo reboot/ source ~/.zshrc:重启或执行后面这条命令
成功后(或许也不需要执行)即可使用通配符
注意只能在当前目录查找
?:匹配一个字符
ls -d ???a
:查找以a结尾前面有三个字符的目录(-d表示目录,不加-d的话直接打出了目录里面的内容)
*:匹配任意多个字符
[list]:匹配[]list中符合条件的任意单一字符
ls a[a-k]z:
列出akz目录下的内容(假设存在akz)
[!list]:匹配除去s
的东西(只支持bash)
通配符 | 含义 | 举例 |
---|---|---|
[list] | 匹配list中的任意单一字符 | a[xyz]b a与b之间有且只有一个字符, 且只能是x或y或z, 如: axb, ayb, azb。 |
[!list] | 匹配除list中的任意单一字符 | a[!0-9]b a与b之间有且只有一个字符, 但不能是数字, 如axb, aab, a-b等 |
[c1-c2] | 匹配c1-c2中的任意单一字符 | a[0-9]b a与b之间有且只有一个字符,该字符是0-9之间的数字,如a0b, a1b,… ,a9b。 |
{string1,string2,…} | 匹配 sring1 或 string2 (或更多)其一字符串 | a{abc,xyz,123}b a与b之间只能是abc或xyz或123这三个字符串之一。 |
可在 man 7 glob
中查看
任务管理
&`:
把任务调到后台,比如在 ping baidu.com
之后,就会出现退不出来的情况(ctrl+c退出)。如果加上&就会在后台执行,不影响命令的输入。(如果已经主动修改过ctrl+c的快捷方式了的话,需要在shell的中将快捷键修改回默认)
fg
:
任务前台执行(可以将bg后的任务调到前台),此时terminal被占用,无法使用命令行输入命令。因此无法再调回bg。
ctrl+z
:
将shell执行的命令暂时挂起,即
1.保存现场(目前执行到哪里了以及各种变量,我猜);
2.切除内存(原本在内存中执行,放在置换区中,让系统执行其他进程。)
此时可以通过bg和fg将进程重新跑起来。(假设我挂起了多个进程呢—>那就先查看进程的顺序,然后在根据名字fg或bg)
杀死命令:
法1:首先把后台的调到前台,然后ctrl+c结束任务。
法2:ps命令:ps -ef
:显示所有,再用grep找一下:grep:ping
查看pid
ps -ef | grep ping:
某某 2799 2739 0 14:47 pts/0 00:00:00 ping baidu.com
-ef和-e区别:
ps -e | grep ping
2813 pts/0 00:00:00 ping
2817 pts/0 00:00:00 ping
2821 pts/0 00:00:00 ping
ps -ef | grep ping
king 2813 2739 0 15:05 pts/0 00:00:00 ping baidu.com
king 2817 2739 0 15:05 pts/0 00:00:00 ping souhu.com
king 2821 2739 0 15:06 pts/0 00:00:00 ping tecent.com
其中2799即为ping的pid(process id)
接着直接 kill 2799
就完事了
法3:pkill ping
:根据名字ping结束进程(易错,因为不但会匹配到ping,可能也会有什么ping1、ping2之类的,尤其如果 sudo
就更容易完蛋。。)
;
:连接两个命令,次序执行。
&&
和||
:与或操作,和C语言中类似,连接两个命令。(常用在脚本中)
命令替换符:``:
先将``中间的命令执行完了之后,再将返回值放到原位置继续执行命令
ls `echo -al` == ls -al
和$()
的结果是一样的。
jobs:查看进程(之后可以用fg %1(或者234之类进程前的数字)
,也可以直接%1, 将相关进程放到前台。)
nohup:
nohup ping baidu.com &:
将会忽略输入,将输出输出到nohup.out文件中
优点是不会占用前台程序
之后可以用tail filename
(默认输出最后十行,不会多次更新),或者 tail -f filename
(每次有什么变化就会强制输出文件末尾)
转义符:
字符 | 说明 |
---|---|
‘’ | 硬转义,硬引用,其内部所有的shell元字符、通配符都会被关掉。注意,硬转义中不允许出现’(单引号)。 |
“” | 软转义,软引用,其内部只允许出现特定的shell元字符(KaTeX parse error: Can't use function '\`' in math mode at position 2: ,\̲`̲,\\):用于变量值替换、`用于命令替换、\用于转义单个字符 |
\ | 反斜杠,转义,去除其后紧跟的元字符或通配符的特殊意义。 |
echo "$PATH":($PATH会生效)
echo '$PATH':写啥输出啥
下表是部分转义字符对应表:
转义字符 | 意义 | ASCII码值(十进制) |
---|---|---|
\a | 响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
\\ | 代表一个反斜线字符’’’ | 092 |
’ | 代表一个单引号(撇号)字符 | 039 |