版权声明:来一来,看一看,有钱的捧个人场,没钱的你不得捧个人场 https://blog.csdn.net/wait_for_eva/article/details/84061559
alias
# 直接设置别名
alias cls=clear
# 如果命令包含空格,用引号包含,建议使用单引号
alias cp='cp -i'
# 取消别名
unalias cls
通过shell
设置的别名生命周期跟随shell
生命周期,下次登录就会失效。
可通过修改配置文件进行设置,并永久生效。
vim ~/.bashrc
然后就会明白,为什么经常cp
,mv
, rm
会有提示,因为就是被alias
了。
具体问题和解决办法可以看一下这个东西。
结果引用
$(cmd)
:引用命令执行结果
形式 | 作用 |
---|---|
$(cmd) |
命令执行结果引用 |
cmd |
命令执行结果引用 |
别问我为什么用
黑体+下划线
,因为重点标记是用反引号进行包含的。反引号里面用反引号,老是自己就匹配上了,转义都没用,我能怎么办,臣妾也很无奈啊。
如果有知道的老兄,给我一点指引吧。
- 打印当前目录
echo "the dir absolutely path is $(pwd)."
- 创建日期文件
touch godme.txt.$(date +%Y-%H-%d)
日志文件都是这样,每天创建一个,既分割文件,又标记日期,不要太方便
{}
展开touch {godme,foreva,judas}.txt.`date+%Y-%H-%d`
会创建三个,同后缀的文件就能一次性全部创建完成了。
{}
中的数据别带空格
,要不效果对不上的啊
- 分配率
mkdir {a,b}_{c,d}_{e,f}
会创建五个文件夹,文件夹元素可以理解为
(a+b)(c+d)(e+f)
乘开之后的因子。也可以理解为嵌套循环,一层一层的会慢慢遍历。
引号
符号 | 名称 | 详细 |
---|---|---|
"" |
双引号 | 弱引用,中间可做变量引用 |
'' |
单引号 | 强引用 自带 "转义" 纯字符串 无引用 |
`` | 反引号 | 命令替换 引用命令 |
别问为什么
u+b
,反引引反引不太会。
通配符
符号 | 说明 |
---|---|
* |
任意长度任意字符 |
? |
任意长度单个字符 |
[] |
空集合 |
[a-z] |
小写字母 |
[[:lower:]] |
``[a-z]` |
[A-Z] |
大写字母 |
[[:upper:]] |
[A-Z] |
[[:alpha:]] |
[a-zA-Z] |
[0-9] |
数字 |
[[:digit:]] |
[0-9] |
[[:alnum:]] |
[a-zA-Z0-9] |
[[:space:]] |
空白字符 |
[[:punct:]] |
标点符号 |
^ |
补集 |
- 字符理解
- 所谓集合
[]
表示的就是集合。
[abc]
表示的是三个字母。
[a-z]
表示的是范围集合表示。
[:alpha:]
表示的是字符类别,相当于a-z
。但不论是
范围表示
还是类别表示
,最后必须是集合。所以必须用
[]
包括,于是有了[[:alpha:]]
。
- 字符取反
对集合内部进行取反,理解了
类别表示
,就能轻易理解了。
[^[:alpha:]]
,对元素取反,没问题。
- 空白匹配
空白匹配关键不在于匹配,而是怎么不用空白来匹配空白。
当使用到
空白
的时候,命令中就不得不使用引号,但是又变得不能正则泛化。ls [[:alnum:]]*[[:space:]]*[[:alnum:]]
通过
类别
进行表示,就可以用有
来进行无
的表示,省去一个麻烦。
更多信息,可以通过man 7 glob
进行查看。
man 1 sh
man 3 glob
man 3 fnmatch
man 7 locale
man 7 regex