文章目录
- 常用命令:
- 创建目录:
- 链接:
- 文本搜索:
- 文件搜索:
- 通配符:
- Shell常见通配符:
- shell Meta字符(元字符)
- 转义字符
常用命令:
ls 【查看文件】
格式:
ls -a 查看所有文件包含隐藏文件
ls -l 以列表形式查看文件,不包含隐藏文件
ls -lh 以列表形式查看文件,不包含隐藏文件 ,按照1024倍数显示{KB MB GB}
ls -all以列表形式查看文件,包含隐藏文件 快捷方式【ll】
创建目录:
mkdir 目录名 -p 递归创建
rmdir 目录名 目录一定是空的
rm 文件 -i询问 -r 递归传出
链接:
格式:
ln 源文件 链接文件 硬链接
ln -s 源文件 链接文件 软连接
硬链接文件占磁盘空间 但是删除源文件不会影响硬链接文件
软链接文件不占磁盘空间 但是删除源文件会影响软链接文件
硬链接和拷贝(复制)区别 无论你修改了哪一个链接之后的文件 两个文件都会改变 保持一致 但是拷贝不会
1、改变软链接文件就是相当于间接的改变了源文件
2、查看文件时默认链接数为1 如果有链接一次递增
3、如果创建的软链接文件和源文件在不同的目录下,需要使用绝对路径
文本搜索:
grep '搜索内容' 文件名
-n 显示行号
-v 反选
-i 忽略大小写
文件搜索:
find 目录 参数 文件名(可以使用通配符)
-name 文件名
-size 大小
-perm rwx
通配符:
Shell常见通配符:
通配符 | 含义 | 实例 |
* | 匹配 0 或多个字符 | a*b a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, axyzb, a012b, ab。 |
? | 匹配任意一个字符 | a?b a与b之间必须也只能有一个字符, 可以是任意字符, 如aab, abb, acb, a0b。 |
[list] | 匹配 list 中的任意单一字符 | a[xyz]b a与b之间必须也只能有一个字符, 但只能是 x 或 y 或 z, 如: axb, ayb, azb。 |
[!list]或[^list] | 匹配 除list 中的任意单一字符 | a[!0-9]b a与b之间必须也只能有一个字符, 但不能是阿拉伯数字, 如axb, aab, a-b。 |
[c1-c2] | 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] | a[0-9]b 0与9之间必须也只能有一个字符 如a0b, a1b… a9b。 |
[!c1-c2]或[^c1-c2] | 匹配不在c1-c2的任意字符 | a[!0-9]b 如acb adb |
{string1,string2,…} | 匹配 sring1 或 string2 (或更多)其一字符串 | a{abc,xyz,123}b 列出aabcb,axyzb,a123b |
shell Meta字符(元字符)
shell 除了有通配符之外,还有一系列自己的其他特殊字符。
字符 | 说明 |
IFS | 由 或 或 三者之一组成(我们常用 space ) |
CR | 由 产生 |
= | 设定变量 |
$ | 取变量值或取运算值 |
> | 重定向 stdout |
< | 重定向 stdin |
| | 管道符号 |
& | 重导向 file descriptor ,或将命令置于背景执行 |
( ) | 将其内的命令置于 nested subshell 执行,或用于运算或命令替换 |
{ } | 将其内的命令置于 non-named function 中执行,或用在变量替换的界定范围 |
; | 在前一个命令结束时,而忽略其返回值,继续执行下一个命令 |
&& | 在前一个命令结束时,若返回值为 true,继续执行下一个命令 |
|| | 在前一个命令结束时,若返回值为 false,继续执行下一个命令 |
! | 运算意义上的非(not)的意思 |
# | 注释,常用在脚本中 |
\ | 转移字符,去除其后紧跟的元字符或通配符的特殊意义 |
转义字符
有时候,我们想让 通配符,或者元字符 变成普通字符,不需要使用它。那么这里我们就需要用到转义符了。 shell提供转义符有三种。
字符 | 说明 |
‘’(单引号) | 硬转义,其内部所有的shell 元字符、通配符都会被关掉。 |
“”(双引号) | 软转义,其内部只允许出现特定的shell 元字符:$用于参数替换 `(反单引号,esc键下面)用于命令替换 |
(反斜杠) | 又叫转义,去除其后紧跟的元字符或通配符的特殊意义 |