查看当前的工作目录的路径--pwd
列表显示目录内容--ls
切换工作目录--cd
1.切换用户--su
格式: su 用户名
注意:普通用户切换到管理员用户需要输入密码,管理员用户切换到普通用户不需要输入密码,普通用户之间切换也要输入密码。
2.查看文件内容--cat
格式:cat 查看的文件或路径
不能查看目录,这是查看文件的,就算是路径,最后面也必须是文件结尾。
3.通配符
作用:去匹配文件的名字
符号 | 效果 |
? | 代表任意一个字符 |
* | 代表任意长度的字符(不包含隐藏文件) |
{1..10} | 1到10 |
{a..z} | a b c ... z |
{A..Z} | A B C...Z |
[123] | 里面任意一个值 |
[0-9] | 单个数字 范围(0123456789) |
\ | 转义符 表示原来的意思 |
[[:lower:]] | 小写字母表示a-z |
[[:upper:]] | 大写字母表示A-Z |
[^zhou] | 匹配列表中字符以外的字符 |
[a-z] | 单个小写字母 范围左开右闭 |
* 实例:
匹配以 p 开头 ls p*
匹配以conf结尾 ls *conf
中间包含conf ls *conf*
?实例:
[0-9] 单个数字=[0123456789]
[0-9][0-9][0-9] 三位数
数字开头 ls [0-9]*
字母开头 ls [a-zA-Z]*
\ 转义 表示原来的位置
理解[[:lower:]]
[:lower:] 一个小写
再加一个框 表示任意一个小写字符
[123] 里面任意一个
[zhou]里面任意组合
4.设置别名--alias
格式: alias 别名 = 命令
显示所有别名: alias
定义别名:
取消别名: unalias 自定义命令
命令执行顺序:
绝对路径>别名>内部>hash>外部命令(先查找别名再查找内部命令,缓存,最后外部)
使用命令alias建立的别名是临时的 重启就没有了
永久修改:
5.查看磁盘使用量--du
格式:du [选项] 【要统计的目录和文件大小】
选项 | 说明 |
-a | 每个文件的大小 |
-s | 总大小 |
-h | 显示格式 |
--max-depth=n (- d n ) | 最大显示到第n层 |
--exclude | 不计入统计 |
du -a
du -s
-a 和 -s 不能同时使用
du -h
du -a --exclude
看 /etc 下面两层文件夹
区分ll 和 du 查看磁盘使用量
ll 看到的是文件的真实大小
du 看到的是文件占了磁盘多少块(4k)一个文件不足4k按4k算
小问题:
磁盘空间不足,如何排查哪些文件夹有比较大的文件夹
du -a 文件夹 去一个个排查
6.创建新目录--mkdir
格式: mkdir [选项] 目录位置及名称
创建public
创建多个目录
创建多级目录:-p
实例:创建目录aa,在aa中再创建子目录bb,再在/aa/bb中创建cc
一次建立多个文件夹: -pv
-v:显示详细信息,包括每个创建的目录名称
7.创建新文件--touch
touch
① 新建空文件
touch 后面跟的文件名不存在
② 刷新文件时间
touch 后面的文件已存在
不存在文件名:
存在文件名:
8.创建链接文件--ln
硬链接:
格式: ln 源文件 目的位置
在opt目录下 将passwd 和 hard做硬链接
软链接:
格式:
ln -s 源文件 目的位置
注意点:
删除软连接文件夹的时候一定不能加 /
9.复制文件或目录--cp
格式: cp [选项] 源文件或目录 目标文件或目录
选项 | 说明 |
-f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 |
-i | 覆盖目标同名文件或目录时提醒用户确认 |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
-a | 完整保留所有的信息 |
-v | 可视化 |
-u | 相当于增备,差异备份(只对文件夹起作用) |
-u 增备 备份每天增加的量 原有的不变 只变之前没有的
10.删除文件或目录--rm shred
格式:rm [选项] 要删除的文件或目录
选项 | 说明 |
-f | 删除文件或目录时不提醒,直接强制删除 |
-r | 表示递归删除整个目录树 |
-i | 删除文件或目录提醒用户确认(rm默认就进行提醒) |
如何删除特殊文件?
添加路径删除
删除文件后空间不释放: 有别人在使用 这个大文件 造成空间不释放
shred
rm虽然删除了文件,但是被删除的文件仍然可能被恢复,在安全要求较高的场景下,可以使用shred安全删除文件
shred格式: shred 选项 文件
常见选项:
-z 最后一次覆盖添加0,以隐藏覆盖操作
-v 能够显示操作进度
-u 覆盖后截断并删除文件
-n 指定覆盖文件内容的次数(默认值是3次)
11.移动文件或目录--mv rename
格式: mv [选项] 源文件或目录 目标文件或目录
选项 | 说明 |
-f | 强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖 |
-i | 交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项) |
-n | 如果目标文件已经存在,则不会覆盖移动,而且不询问用户 |
-v | 显示文件或目录的移动过程 |
mv 移动或改名
源文件和目标文件路径位置一样 是改名
源文件和目标文件路径位置不一样 是移动 也可以是移动并改名 只能一个一个改名字
实例:
将opt目录下的test 文件改名成nihao
将opt目录下nihao文件移到mnt目录下
rename
格式:rename 旧字符 新字符 目标文件
实例:将 txt 改成 txt.back
12.查看命令或文件存放的目录--which
搜索范围由环境变量PATH决定(echo $PATH)
格式:which 命令或程序名
实例:查找cd命令
which 和 whereis
13.查看文件或目录--find locate
locate:
优点:快
缺点:
1找的系统数据库文件,不具备实时性
2 模糊查找不够精确
3 不是去磁盘上真的给你找 去数据库找
用在查找一些老旧文件,不长改变的文件,使用locate 是比较好的
find
优点:
精确查找
选项多,查找的功能多
实时查找
缺点:
慢 真的去磁盘上一块一块的给你查找
格式:
find 范围 查找条件 处理动作
查找类型 | 关键字 | 说明 |
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 -iname "文件名称" 不区分大小写 |
按文件大小查找 | -size | 根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件 常用的容量单位包括 kB(注意 k 是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c) |
按inode号 | -inum | 根据文件inode号查找 |
按权限查找 | -perm | 按文件权限查找 |
最大搜索目录深度 | -maxdepth level | 将文件已分级的形式查找 |
最小搜索目录深度 | -mindepth leve | 将文件已分级的形式查找 |
按层次查找:
根据时间:
根据大小:
-sixe
只能表示一个范围 + - 是范围
-size [+|-] 常用单位:k, M, G,c(byte),注意大小写
如:6k 表示(5k,6k]
如:-6k 表示[0,5k]
如:+6k 表示(6k,∞)
组合条件:
根据文件类型:
根据属主、属组查找:
根据文件名和inode查找:
处理动作:
{} | 用于引用查找到的文件名称自身 |
默认的处理动作 ,显示至屏幕 | |
-ls | 显示详细信息 |
-delete | 删除 |
-ok | 询问是否要操作 |
-exec | 不询问直接操作 |
-fls file | 查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file |
实例:
找到30天以上 以log结尾的 普通文件到opt目录 移动 删除 一条命令完成
find / -name "*log" -type f -mtime +30 -exec mv {} /opt \;
find / -name "*log" -type f -mtime +30 -delete
find / -name "*log" -type f -mtime +30 -exec rm -rf {} /opt \;