linux_通配符

通配符和正则表达式区别?

通配符用在用户命令行bash环境,而正则表达式用于linux三剑客(awk, sed, grep)

那,有哪些通配符?

* 所有字符    五星

ls *.txt            # 列举目录下所有.txt结尾的文件

du -sh /*        # 计算 / 目录下各目录总大小

find /home -type f -name '*.py'    # 找到 /home 下所有以 .py结尾的文件

?    任意一个字符

ls ????.sh       # ?相当于占位符,列出 .sh 前面任意4个字符的文件信息

;    两个命令的分隔符,两个命令之间没有任何关系

echo 'hello'; echo 'word'        # 两行打印,可以通过 -n 参数表示一行打印,-e	让一些 \t \n 不在是字符

#     配置文件注释,注释掉的配置行失效

|      效率不高,前者输出是后者输入

cat -n /etc/profile | grep -i 'histsize'    # -n 添加行号, -i 不区分大小写

~     当前用户家目录

cd ~       # 回到当前用户家目录

  -       上一次目录

cd –     # 返回上一次工作目录    

$     变量前需要加的符号

echo $LANG        # 打印LANG变量

/      路径分隔符,也是根

‘      单引号,所见所得

echo '`date`'    # 打印 `date`

"      双引号,会把 ` 括起来的当做bash命令先解析,输出结果

echo "`date`"        # 会解析date命令,并把结果交个echo执行

echo $(date)        # 和上面一样

echo `date`          # 和上面一样

ls -l $(which mkdir)      # 查询 mkdir 命令所在目录详细信息

`      反引号,解析命令

ls -l `which mkdir`        # 查询 mkdir 命令所在目录详细信息

{}     命令组合 和 序列

touch oldboy{1..10}     # 创建oldboy1 到 oldboy10 文件

touch oldboy{a..f}        # 创建 oldboya 到 oldboyf 文件

cp a.txt{..bak}             # 给a.txt 文件当前备份为 a.txt.bak

mkdir -p /data/{1, 2}/old      # 给不同目录下创建相同目录

&&   与,and,前面命令执行成功执行后面一个任务

!      非, not

||     或, or, 前一个命令执行失败执行后面一个任务

上一篇:shell 变量


下一篇:echo命令