shell常用通配符

  • 匹配0个或多个任意字符,即匹配任何内容
    ? 匹配一个任意字符
    [] 匹配“[]”中任意一个字符,[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c
    [-] 匹配“[]”中任意一个字符,"-"代表是一个范围。如[a-z]代表匹配一个小写字母
    [^] 逻辑非,表示匹配不是"[]"内的一个字符。例如,1表示匹配一个不是数字的字符
    {s1,s2,....} 逻辑或,表示匹配s1或s2

  1. 0-9 ↩

文件重定向或复制清空文件内容
使用cat查看 /dev/null文件内容并重定向输出到 who-login.log中
cat /dev/null >who-login.log
复制 /dev/null 文件内容到who-login.log中
cp /dev/null who-login.log


?匹配任何单一字符
*匹配任何字符和字符串,包括空字符串
[set] 匹配set中的任何字符,1或[!set]表示不匹配set里的字符
?(Linux) 匹配Linux 0次或1次
*(Linux) 匹配Linux 0次以上(包括0次)
+(Linux) 匹配Linux 1次以上(包括1次)
@(Linux) 匹配Linux 1次
!(Linux) 匹配除Linux之外的模式,反向匹配

打开bash识别正则

shopt -s extglob
关闭bash识别正则
shopt -u extglob

bash开启特殊模式字符后,以下五个模式匹配操作符将被识别
?(pattern-list) 所给模式匹配0次或1次
*(pattern-list) 所给模式匹配0次以上(包括0次)
+(pattern-list) 所给模式匹配匹配1次以上(包括1次)
@(pattern-list) 所给模式仅匹配1次
!(pattern-list) 不匹配所给模式

列出00-22号所有目录
ls -al + (0[0-9]|2[0-2])

bash参数globstar可以控制连续两个 * 的行为
globstar 在disable (shopt -u globstar) 和* 行为是相同的 即匹配当前目录下文件和文件名
在enable (shopt -s globstar)就会递归匹配所有文件和目录


  1. set ↩

输出终端语言环境:
locale

root@server-0ncbmx:~# locale -a
C
C.utf8
POSIX
en_US.utf8

设置语言环境和字符类型环境类型
export LANG=en_us.UTF-8
export LC_CTYPE=en_US.UTF-8

验证输出字符环境类型
root@server-0ncbmx:~# local3
-bash: local3: command not found
root@server-0ncbmx:~# locale
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=C.UTF-8


借用影视飓风Tim说过的话
“有人说你可以不懂摄影
但一定要记录生活
你拍的不好没有关系
没有记录下来才是最可惜的一点
因为很多事情过后
已经不能凭空想象起来了
当按下快门的那一刻
时间就停在了这里
在于把尽兴的瞬间变成一个永恒
当你回看的时候
回忆起当时的心情
它会让这段回忆变得更加具体
也更加鲜活一些”。#手机摄影#