1.通配符
有些符号不表示原来的意思,它代表了一类字符
作用:去匹配文件的名字
*代表任意长度的字符,不能显示隐藏文件
?代表任意一个字符
匹配已 p 开头 ls p*
匹配已 conf 结尾 ls *conf
匹配中间包含conf ls *conf*
\ 转义符,表示原来的意思
{1..10} | 1到10 |
{a..z} | a b c ...z |
{A..Z} | A B C .....Z |
[123]([此处括号里值代表一个字符]) | 取其中之一有就显示没有也无所谓 |
[a-z]单个小写字母 | 范围需要注意 |
[0-9]单个数字 | 匹配数字范围(0123456789) |
[[:lower:]] | 小写字母表示 a-z |
[[:upper:]] | 大写字母表示 A-Z |
[^zhou] | 匹配列表中的所有字符以外的字符 |
[[:digit:]] | 任意数字,相当于0-9 |
[[:alpha:]] | 任意字母 |
2. alias
alias 命令别名=’命令‘
unalias 别名命令 删除别名
\ 加别名命令 (显示原始命令)
alias 建立的命令是临时性的,重启就没有了
永久修改:
/etc/.profile会影响全部用户
/root/.bashrc只影响当前用户
(绝对路径>别名>内部>hash>外部命令)
3.du(disk usage)
查看当前所在文件夹占用了磁盘的多少单元块。默认1单元块为4K, 不满4K 按4k算
du [选项] [文件或目录… ]
选项 | 说明 |
---|---|
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 |
-h | 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果 |
-s(--summarize) | 只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小 |
--max-depth=n (-d 1) | 最大显示到第n层 |
--exclude | 不计入统计 |
(a和s无法同时使用)
我磁盘空间不足如何排查:
可看文件夹有哪些比较大的文件,用du -a 去一个个排查
只看/etc下面两层文件: du -d 2 /etc
3.创建文件夹
文件名最长255个字节
包括路径在内文件名称最长4095
除了斜杠和NULL(空指针null pointer),所有字符都有效.但使用特殊字符的目录名和文件不 推荐使用,有些字符需要 用引号来引用。
创建目录mkdir ( make directories)
mkdir -p 递归创建 没有文件夹 会自动递归创建
mkdir aa bb cc 一次性创建三个文件夹aa.bb.cc
touch:建空文件夹(后面跟的文件不存在)
4.硬连接与软连接
硬连接 同一个文件取不同的名或者叫多个名字,不支持文件夹
软连接 类似于windows里快捷方式,软连接,符号连接,会指向原来的文件、
对比项 | 硬链接 | 软链接 |
---|---|---|
本质 | 本质是同一个文件 | 本质不是同一个文件 |
inode(身份证号) | 相同 | 不同 |
连接数 | 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 | 删除,新建都不会改变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 只是链接数减一,但链接文件的访问不受影响 | 无法访问连接文件 |
文件类型 | 和源文件相同 | 链接文件,和源文件无关 |
文件大小 | 和源文件相同(指向硬盘上的同一个文件) | 源文件的路径的长度 |
语法:
硬连接:ln 源文件 目的位置
软连接:ln -s 源文件 目的位置
源文件用绝对路径
5.复制
cp(copy)
要复制文件夹一定要加-r
-f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 |
-i | 覆盖目标同名文件或目录时提醒用户确认 |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
-a | 完整保留所有的信息 |
-v | 可视化 |
-u | 相当于增备,差异备份(只对文件夹起作用) |
如果已有文件夹会生成子目录
5.移动或改名
mv [选项] … 源文件或目录… 目标文件或目录 单个文件
源文件和目标文件路径位置一样是改名
源文件和目标文件位置不一样是移动,也可以是移动并改名
(只能一个个改名)
rename 可以批量改名
mv
-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;
-i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项);
-n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;
-v:显示文件或目录的移动过程;
6.删除文件
rm [选项] 要删除的文件或目录
-f、强制
-i、交互
-r 递归(删除目录需要)
删除文件后空间不释放: 有别人在使用 这个大文件 造成空间不释放
7.查找文件
locate
-i 不区分大小写的搜索
-n 只列举前n个匹配项目
优点:快
缺点:找的系统的数据库文件,不具备实时性
模糊查找不够精确
不是去磁盘上真的给你找
用在查找一些老旧文件使用locate比较好
find
缺点:慢,在磁盘上一块一块的给你查找
优点:精确查找
选项多,查找的功能多
格式:find 范围 查找条件 处理动作
名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 -iname "文件名称" 不区分大小写 |
按文件大小查找 | -size | 根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 |
按inode号 | -inum | 根据文件inode号查找 |
按权限查找 | -perm | 按文件权限查找 |
最大搜索目录深度 | -maxdepth level | 将你的文件已分级的形式查找 |
最小搜索目录深度 | -mindepth level | 同上 find /etc -maxdepth 2 -mindepth 2 |
8. 显示命令
只能看普通的文本文件
缺点
如果内容过多会显示不全
-A显示隐藏字符
-n显示行号
标准输入:您输入的指令
标准输出:电脑反馈给你信息
错误输出:电脑的一些报错信息
重定向: 重新定义标准输出方向
如何合并两个文件
cat A B >C(竖向合并)
paste A B>C(横向合并)
命令显示过多也可以使用管道符 | 加more查看
管道符:将前面命令的结果,当作后面命令的参数执行
命令1 | 命令2 | 命令3
左边的的命令 一定要有标准输出
右边的命令一定要可以接受标准输出
基本操作
空格下一行 到文末后自动退出
回车一行一行滚动
q退出
可以使用/ 查找 n向下 N向上查找
Page Up 向上翻页,Page Down 向下翻页
head
head -n 数字 文件名(不加具体的数字,默认开头十行)
看文件的前数字行
head -n 3 test
看文件的前3行
head -n -数字
(去掉最后数字行)
tail
tail 和head 相反,查看文件或标准输入的倒数行
tail -n 具体数字 文件名 (不加具体的数字,默认结尾十行)
tail -f (=tailf) 具体数字 文件名 实时跟踪最后十行
tail -n +数字
从第几数字行开始显示
统计列数,wc本身就是参数 word
-l:统计行数
-w:统计单词个数
-c:统计字节数
grep 后跟的是 正直表达式(匹配文件中的字符串)(grep awk sed)
过滤命令中的字符
grep [选项] 查找条件 目标文件
-i:查找时忽略大小写
-v:反向查找,输出与查找条件不相符的行
-o 只显示匹配项
-f 对比两个文件的相同行
-c 匹配的行数
基本格式
要查找的字符串以双引号括起来单引号也可以
“^……”表示以……开头,“……$”表示以……结尾
“^$”表示空行
grep “^root" passwd
已 root 开头
快速过滤文件,找到含有特定字符的文件
grep -r 表达式 文件夹
9.split
分割文件
我有一个10G的文件,怎么分割成小的文件存储
split -b 100M 文件名
10.压缩,解压缩
gzip和bzip都是压缩软件,比如windows里的好压和360 压缩或微软自带的等等
比较gzip和bzip之间的压缩比例,压缩时间等问题
gzip [-9] 文件名
提高压缩比例,但是文件较大时效率会低
bzip2 [-9] 文件名...
gzip -d .gz格式的压缩文件 d就是解压
bzip2 -d .bz2格式的压缩文件
9代表压缩比率,9最大1最小,使用以上两种压缩源文件不存在了
gzip的压缩率 要高于bzip2
不会使用 因为只能对文件操作
12.tar 归档
对选项的顺序有要求
-f 代表使用tar归档(只要出现tar一定要出现f)
-c 建立归档文件
-x解开归档
-j 代表使用bzip2压缩
-z代表使用gzip压缩
-C指定 解压的目录
-t 不解开压缩包,查看压缩包中的内容
-v 显示借压缩过程
tar的语法:
建立归档
tar fzcv 文件