linux-一些补充

版权声明:来一来,看一看,有钱的捧个人场,没钱的你不得捧个人场 https://blog.csdn.net/wait_for_eva/article/details/84061559

alias

# 直接设置别名
alias cls=clear
# 如果命令包含空格,用引号包含,建议使用单引号
alias cp='cp -i'
# 取消别名
unalias cls

通过shell设置的别名生命周期跟随shell生命周期,下次登录就会失效。

可通过修改配置文件进行设置,并永久生效。

vim ~/.bashrc

然后就会明白,为什么经常cpmvrm会有提示,因为就是被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:]] 标点符号
^ 补集
  • 字符理解
  1. 所谓集合

[]表示的就是集合。

[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

猜你喜欢

转载自blog.csdn.net/wait_for_eva/article/details/84061559