常见目录
目录 | 描述 |
---|---|
/ | 根目录 |
/boot | 启动目录,启动相关文件 |
/dev | 设备文件 |
/etc | 配置文件 |
/home | 普通用户的家目录,可以操作 |
/lib | 系统库保存目录 |
/mnt | 移动设备挂载目录 |
/media | 光盘挂载目录 |
/misc | 磁带机挂载目录 |
/root | 超级用户的家目录,可以操作 |
/tmp | 临时目录,可以操作 |
/proc | 不能直接操作,保存的是内存的挂载点 |
/sys | 不能直接操作,保存的是内存的挂载点 |
/var | 变量 |
/bin | 普通命令 |
/sbin | 命令保存目录,级用户才可以执行的命令 |
/usr/bin | 系统软件资源目录 面向普通用户的系统命令 |
/usr/sbin | 系统软件资源目录 面向超级用户的系统命令 |
命令基本格式
命令提示符
# root:当前登录用户
# localhost:主机名
# ~:当前工作目录,默认是当前用户的家目录(root 就是 /root,普通用户是 /home/用户名)
# 提示符:超级用户是 #,普通用户是 $
[root@localhost ~]
ls
查询目录中的内容,ls [选项] [文件或者目录]
-
选项:
- -a:显示所有文件,包括隐藏文件;
- -l:显示详细信息;
- -d:查看目录本身的属性而非子文件 ls /etc/;
- -h:人性化的方式显示文件大小;
- -i:显示 inode,也就是 i 节点,每个节点都有 ID 号;
-
默认当前目录下的文件列表;
文件处理命令
mkdir:创建文件夹
语法:mkdir -p [目录名]
-p:递归创建;
示例:
mkdir -p lib/css/head.css
cd:切换所在目录
语法:cd [目录]
- ~ 家目录
- . 当前目录
- … 上级目录
相对路径是参照当前所在目录
绝对路径是从根目录开始
按 TAB 键可以补全命令和目录
pwd:显示当前目录
rmdir:删除空目录(remove empty directory)
语法:rmdir [目录名]
示例:
rmdir lib
rm:删除文件或者目录
语法:rm [文件或者目录]
-r:删除目录
-f:强制删除
rm -rf 文件或者目录 递归强制删除所有目录
cp:拷贝
语法:cp [源文件或者目录] [目标文件]
-r:复制目录,默认是复制文件
-p:连带文件属性复制
-d:若源文件是链接文件,则复制连接属性
-a:相当于 -rpd
mv:移动文件或者改名
语法:mv [源文件或者目录] [目标文件]
示例:
mv 1.txt 11.txt
ln:创建软连接
语法:ln -s [源文件或目录(必须是绝对路径)] [目标文件或目录]
类似 Windows 快捷方式
修改任意一个文件,另一个都会改变
删除源文件,软链接不能使用
软链接源文件必须写绝对路径
文件搜索
locate
在后台数据库中按文件名搜索,速度比较快
数据保存在 /var/lib/mlocate/mlocate.db 后台数据库,每天更新一次
可以 updatedb 命令立刻更新数据库
只能搜索文件名
/etc/updatedb.conf 建立索引的配置文件:
- PRUNE_BIND_MOUNTS = “yes” 全部生效,开启搜索限制
- PRUNEFS 不搜索的文件系统
- PRUNENAMES 忽略的文件类型
- PRUNEPATHS 忽略的路径 /tmp
whereis
搜索命令所在路径以及帮助文档所在位置
whereis 命令名 whereis ls
-b 只查找可执行文件
-m 只查找帮助文件
可以查看Shell自带的命令,如 whereis cd
which
可以看到别名 which ls
能看到的都是外部安装的命令
无法查看 Shell 自带的命令,如 which cd
find
文件搜索命令(避免大范围的搜索,会非常消耗系统资源)
find [搜索范围] [搜索条件]
-
按名称搜索
# 在根目录下搜索文件名是 aaa.log 的文件 find / -name aaa.log
-
通配符
# 在根目录下搜索文件名是 aaa.log 的文件 # * 匹配任意内容 # ? 匹配任意一个字符 # [] 匹配任意一个中括号内的字符 # 在当前目录下搜索文件名字是 abc | abd 的文件 find . -name "ab[cd]"
-
不区分大小写
# 在根目录下搜索文件名是 A.log | a.log 的文件 find / -iname A.log
-
按所有者进行搜索
# 在 /root 目录下搜索文件所属用户是 root 的文件 find /root -user root # 在 /root 目录下搜索没有所属用户的文件 find /root -nouser
-
按时间搜索
# 在根目录下查找 1 天前被访问的文件 find / -atime +1 # 在根目录下查找 1 天前当前修改文件属性的文件 find / -ctime 1 # 在根目录下查找 1 天内修改文件内容的文件 find / -mtime -1
-
按大小搜索(k小写,M大写)
# 在当前目录寻找文件大小等于 100k 的文件 find . -size 100k # 在当前目录寻找文件大小大于 100M 的文件 find . -size +100M # 在当前目录寻找文件大小小于 100M 的文件 find . -size -100M
-
综合应用
# 查找 / 目录下,大于 10KB 并且小于 20KB 的文件 # -a and 逻辑与,两个条件都满足 # -o or 逻辑或,两个条件满足一个就可以 # exec 对命令的结果进行操作 find / -size +10k -a -size -20k -exec ls -lh {} \;
-
grep:在文件当中匹配符合条件的字符串
# 在 / 下查找文件小于 10KB 并且内容包含 'a' 的文件 find / -size -10k | grep "a"
压缩与解压缩
zip 格式
压缩文件、文件夹
# 压缩 book.txt 为 book.zip
zip book.zip book.txt
# 压缩 book 文件夹为 book.zip
zip -r book.zip ./book/
# 解压缩 book.zip
unzip book.zip
gzip 格式
只能用来压缩文件,不能压缩目录,即便指定了目录,也只能压缩目录内的所有文件
# 压缩 a.txt,源文件会消失
gzip a.txt
# 压缩 a.txt,源文件不会消失
gzip -c a.txt
# 压缩目录下的所有子文件,但是不压缩目录
gzip -r xx
# 解压缩 a.txt.gz
gzip -d a.txt.gz
gunzip a.txt.gz
tar 格式
可打包文件、文件夹,只打包不压缩
-
tar -cvf 打包文件名 源文件
- -c 打包
- -v 显示过程
- -f 指定打包后的文件名
-
x 解打包
# 打包 /book/ 为 book.tar
tar -cvf book.tar /book/
# 解打包 book.tar
tar -xvf book.tar
tar.gz 格式
gzip 不能压缩文件夹,则先用 tar 打包,再用 gzip 压缩
# 打包 /book/ 为 book.tar,再压缩成 book.tar.gz
tar -zcvf book.tar.gz /book/
# 解压缩 book.tar.gz
tar -zxvf book.tar.gz
虚拟列表
上一篇