目录结构
名称 作用
/boot 系统启动引导文件存放目录。内核文件(vmlinuxz)以及引导加载器(BootLoader)都存放在此目录下。
/bin 存放所有用户使用的基本命令,该目录不能独立分区,OS 在启动时会使用到该目录下的文件。
/sbin 存放管理类的基本命令,该目录不能独立分区,OS 在启动时会使用到该目录下的文件。
/lib 存放系统启动时程序依赖的基本共享库文件 以及内核模块文件(/lib/modules);还有一个目录叫/lib64 ,他是专用于x86_64 系统上的辅助共享库文件存放位置。
/etc 配置文件目录。
/home 普通用户的家目录。
/root 管理员用户的家目录。
/media 便携式移动设备挂载点。
/mnt 临时文件系统挂载点。
/dev 设备文件及特殊文件存储位置。
/opt 第三方引用程序的安装位置。
/srv 系统上运行的服务用到的数据。
/tmp 临时文件存储位置。
/usr universal shared, read-only data
bin:保证系统拥有完整功能而提供的应用程序
sbin:
lib:32位使用
lib64:只存在64位系统
include:c 程序的头文件
share:结构化独立的数据,例如:doc,man 等
local:第三方应用程序的安装位置
bin,sbin,lib,lib64,etc,share
/var variable data files
cache:应用程序缓存数据目录
lib:应用程序状态信息数据
local:专用于为/usr/local 下的应用程序存储可变数据
lock:锁文件
log:日志目录及文件
opt:专用于为/opt 下的应用程序存储可变数据
run:运行中的进程相关数据,通常用于存储进程pid 文件
spool:应用程序数据池
tmp:保存系统两次重启之间产生的临时数据
/proc 用于输出内核与进程信息相关的虚拟文件系统
/sys 用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux 相关的安全策略等信息的存储位置
应用程序的组成部分
二进制程序:/bin ,/sbin ,/usr/bin ,/usr/sbin ,/usr/local/bin , /usr/local/sbin
库文件:/lib ,/lib64 ,/usr/lib, /usr/lib64 ,/usr/local/lib ,/usr/local/lib64
配置文件:/etc ,/etc/DIRECTORY ,/usr/local/etc
帮助文件:/usr/share/man ,/usr/share/doc ,/usr/local/share/man ,/usr/local/share/doc
文件路径和相关命令
范例:
cd 切换到目标目录名
使用相对路径时,有两个符号有特殊含义:“.” 和 “..”
. :表示当前所在目录
.. :表示当前目录的上一级目录,即父目录
范例:
当前目录切换至父目录
[root@localhost etc]# pwd
/etc
[root@localhost etc]# cd ./../
[root@localhost /]# pwd
/
另外使用cd 命令切换时,可以使用 “-” 表示切换至当前目录之前所在的目录,所以使用 “-” 可以切换回去,原因是因为每次切换目录前,会先将当前目录的路径存放在变量 OLDPWD 中。
用 “~” 表示用户的家目录,~USERNAME 表示指定用户的家目录
范例:
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd /etc
1)切换至自己的家目录
[root@localhost etc]# cd ~
[root@localhost ~]# pwd
/root
2)回到切换前所在目录
[root@localhost ~]# cd -
/etc
各种文件类型
- 普通文件
d 目录文件
b 块设备block
c 字符设备character
l 符号链接文件link
p 管道文件pipe
s 套接字文件socket
1)普通文件 - 表示普通文件
范例
[root@localhost etc]# ls -l /etc/issue
-rw-r--r--. 1 root root 23 Nov 23 2018 /etc/issue
2)目录文件 d 表示目录文件
[root@localhost etc]# ls -l
drwxr-xr-x. 5 root root 231 Jun 29 17:10 vmware-tools
drwxr-xr-x. 2 root root 33 Jun 29 17:10 wpa_supplicant
drwxr-xr-x. 5 root root 57 Jun 29 17:09 X11
drwxr-xr-x. 4 root root 38 Jun 29 17:09 xdg
drwxr-xr-x. 2 root root 6 Apr 11 2018 xinetd.d
drwxr-xr-x. 6 root root 100 Jun 29 17:10 yum
3)链接文件 l 表示链接文件
[root@localhost etc]# ls -l
lrwxrwxrwx. 1 root root 14 Jun 29 17:09 system-release -> centos-release
4)管道文件 p 表示管道文件
管道文件有以下局限性
1)自己写的数据不能自己读
2)数据一旦被读后,便不在管道中存在,不可反复读取
3)管道采用半双工通信方式,即同一时间数据只能在一个方向上流动
由于管道文件是半双工模式,即同一时间只能一个方向传输数据,而后面介绍的套接字文件支持双全工,所以目前使用不多
常见通信方式有三种:单工,半双工,全双工
单工:即只能向一个方向传输信息,如传统的收音机
半双工:可以双向传输信息,但不能同时进行传输,只能轮流进行,如:对讲机
全双工:可以同时双向传输信息,如:手机
5)字符设备文件 c 表示字符设备文件
范例:
[root@localhost etc]# ls -l /dev/null /dev/zero /dev/tty*
crw-rw-rw- 1 root root 1, 3 Jun 29 17:33 /dev/null
crw-rw-rw- 1 root tty 5, 0 Jun 29 17:33 /dev/tty
crw--w---- 1 root tty 4, 0 Jun 29 17:33 /dev/tty0
crw--w---- 1 root tty 4, 1 Jun 29 17:33 /dev/tty1
crw--w---- 1 root tty 4, 10 Jun 29 17:33 /dev/tty10
crw--w---- 1 root tty 4, 11 Jun 29 17:33 /dev/tty11
crw--w---- 1 root tty 4, 12 Jun 29 17:33 /dev/tty12
crw--w---- 1 root tty 4, 13 Jun 29 17:33 /dev/tty13
crw--w---- 1 root tty 4, 14 Jun 29 17:33 /dev/tty14
6)块设备文件 b 表示块设备文件
范例:
[root@localhost etc]# ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 Jun 29 17:33 /dev/sda
brw-rw---- 1 root disk 8, 1 Jun 29 17:33 /dev/sda1
brw-rw---- 1 root disk 8, 2 Jun 29 17:33 /dev/sda2
brw-rw---- 1 root disk 8, 3 Jun 29 17:33 /dev/sda3
brw-rw---- 1 root disk 8, 4 Jun 29 17:33 /dev/sda4
brw-rw---- 1 root disk 8, 5 Jun 29 17:33 /dev/sda5
7)套接字文件 s 表示套接字文件
范例:
[root@localhost etc]# ls -l
树状查看目录 tree
选项:
-a 显示所有文件和目录
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合
-C 在文件和目录清单加上色彩,便于区分各种类型
-d 显示目录名称而非内容
-D 列出文件或目录的更改时间
-f 在每个文件或目录之前,显示完整的相对路径名称
-F 在执行文件,目录,Socket,符号链接,管道名称,各自加上“*”,“/”,“=”,“@”,“|” 号
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码
-i 不以阶梯状列出文件或目录名称
-I pattern i 的大写字母选项表示不显示符合pattern 的文件或目录名称
-l(小写的 L )如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录
-n 不在文件和目录清单上加色彩
-N 直接列出文件和目录名称,包括控制符
-p 列出权限标示
-P pattern 只显示符合 pattern 的文件或目录名称
-q 用“?” 号取代控制字符,列出文件和目录名称
-s 列出文件或目录大小
-t 用文件和目录的更改时间排序
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。
范例:
1)查看指定目录树的层级
[root@localhost etc]# tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── data
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
2)查看 / 目录下最大层级至二级目录的文件列表
[root@localhost etc]# tree -L 2 /
/
├── bin -> usr/bin
├── boot
│ ├── config-3.10.0-957.el7.x86_64
│ ├── efi
│ ├── grub
│ ├── grub2
│ ├── initramfs-0-rescue-d62b0ba7dcfc4b848244858d3f00df91.img
│ ├── initramfs-3.10.0-957.el7.x86_64.img
│ ├── symvers-3.10.0-957.el7.x86_64.gz
│ ├── System.map-3.10.0-957.el7.x86_64
│ ├── vmlinuz-0-rescue-d62b0ba7dcfc4b848244858d3f00df91
│ └── vmlinuz-3.10.0-957.el7.x86_64
├── data
├── dev
│ ├── agpgart
│ ├── autofs
│ ├── block
3)查看指定目录树中的子目录,不包含文件
[root@localhost etc]# tree -L 1 -d /etc
/etc
├── alternatives
├── audisp
├── audit
├── bash_completion.d
├── binfmt.d
├── chkconfig.d
├── cron.d
4)查看指定目录树中的子目录,不包含文件
[root@localhost etc]# tree -f -p -L 2 /etc/
/etc
├── [-rw-r--r--] /etc/adjtime
├── [-rw-r--r--] /etc/aliases
├── [-rw-r--r--] /etc/aliases.db
├── [drwxr-xr-x] /etc/alternatives
│ ├── [lrwxrwxrwx] /etc/alternatives/ld -> /usr/bin/ld.bfd
│ ├── [lrwxrwxrwx] /etc/alternatives/libnssckbi.so.x86_64 -> /usr/lib64/pkcs11/p11-kit-trust.so
│ ├── [lrwxrwxrwx] /etc/alternatives/mta -> /usr/sbin/sendmail.postfix
│ ├── [lrwxrwxrwx] /etc/alternatives/mta-aliasesman -> /usr/share/man/man5/aliases.postfi
创建目录
mkdir 命令格式
mkdir [-pv] [-m mode] directory ...
选项 说明
-m 指定创建文件的模式(权限),其作用类似 chmod 命令
-p 递归创建目录,默认创建目录所在父目录必须存在,如果父目录不存在,也希望自动创建父目录,可以使用此选项
-v 创建目录时会给出详细说明,并在创建目录时列出他们
范例:
1)创建目录
[root@localhost etc]# mkdir /data/mysql
2)创建目录及父目录
[root@localhost etc]# mkdir /data/dir1/dir2 -p
删除目录
语法格式:
rmdir [OPTION] ... DIRECTORY
选项 说明
-p,--parents 删除目录及其空父目录,比如: rmdir -p a/b/c 和 rmdir a/b/c a/b a 功能是相同的
-v,--verbose 输出每个目录的处理信息
查看文件列表
ls 语法格式
ls [OPTION]... [FILE]...
选项 说明
-A 显示除隐藏文件 “.” 和 “..” 以外的所有文件列表
-a 显示包括以 “.” 开始的所有文件,默认 “.” 开始的文件为隐藏文件会列出
-b 将文件中的不可输出的字符以反斜线 “ ” 加字符编码的方式输出
-C 多列显示输出结果,这是默认选项
-c 与“-lt” 选项连用时,按照文件状态时间排序输出目录内容,根据文件的索引节点中的ctime 字段排序,与 “-l” 选项连用时,则排序的一句是文件的状态改变时间
--color[=WHEN] 使用不同的颜色高亮显示不同类型的
-d 仅显示目录名,而不显示目录下的内容列表,显示符号链接文件本身,而不显示其所指向的目录列表
-F 在每个输出项后追加文件的类型标识符,具体含义:“*” 表示具有可执行权限的普通文件,“/” 表示目录,“@” 表示符号链接,“|” 表示命令管道FIFO, “=” 表示sockets 套接字。当文件为普通文件时,不输出任何标识符。
--full-time 列出完整的日期与时间
-i 显示文件索引节点号。一个索引节点代表一个文件
-l 以长格式显示目录下的内容列表,输出的信息从左到右依次包括文件名,文件类型,权限模式,硬连接数,所有者,组,文件大小和文件最后修改时间等
-I 与“-C” 选项功能相反,所有输出信息用单列格式输出,本输出为多列
-m 用 “.” 号区隔每个文件和目录的名称
-n 以用户识别码和群组识别码替代其名称
-R 递归处理,将指定目录下的所有文件及子目录一并处理
-r 以文件名反序排列并输出目录内容列表
-s 显示文件和目录的大小,以区块为单位
-t 用文件和目录的更改时间排序
文件的时间属性
atime: access time 记录最后一次的访问时间
mtime:modify time 记录最后一次文件数据部分的修改时间
ctime:change time 记录最后一次文件元数据的修改时间
查看文件属性信息
stat 格式:
stat [文件或目录]
file 命令语法
file [OPTION...] [FILE...]
选项 说明
-b 列出辨识结果时,不显示文件名称
-c 详细显示指令执行过程,便于排错或分析程序执行的情形
-f FILE 指定名称文件,其内容有一个或多个文件名称时,依序辨识这些文件类型
-L 直接显示符号连接所指向的文件的类别
-i 输出文件对应的MIME的类型
-v 显示版本信息
-z 尝试去解读压缩文件的内容
创建文件
touch 语法格式
touch [OPTION]...FILE...
选项 说明
-a 表示只更改访问时间atime
-c,--no-create 不新建任何文件
-m 只更改mtime 时间
-r, --reference=FILE 把指定文件时间设成和参考文件日期时间相同,而非当前时间
-t STAMP 使用指定的时间,格式为:[[CC]YY]MMDDhhmm[.ss]
--time=WORD 指定特定的时间,WORD为access 或atime ,相当于-a 选项,WORD为 modify 或 mtime ,相当于 -m 选项
--help 在线帮助
--version 显示版本信息
复制文件
格式:cp [OPTION]... [-T] SOURCE DEST
选项 说明
-a,--archive 此参数的效果和同时指定 “-dpR” 参数相同
-b 覆盖已存在的目标文件前先对之做备份
-f,--force 如果目标文件不能打开,先删除后在打开
-i,--interactive 覆盖文件之前先询问用户
-l,--link 对源文件建立硬链接,而非复制文件
-p,--preserve 保留原文件或目录的属性,包括所有者,所属组,权限与时间
-P,--no-dereference 复制软链接本身,而非复制软链接指向的源文件
-R,-r,--recursive 递归处理,将指定目录下的文件与子目录一并处理
-s,--symbolic-link 对源文件建立符号链接,而非复制文件
-u,--update 只会在源文件的修改时间(Modification Time)较目的文件更新时,或名称相对应的目的文件并不存在,才复制文件
-v,--verbose 显示执行过程
-x,--noe-file-system 复制的文件或目录存放的文件系统,必须与cp 指令执行时所处的文件系统相同,否则不复制,亦不处理位于其他分区的文件
--help 显示在线帮助
--version 显示版本
-S,--suffix=SUFFIX 指定备份文件的后缀,默认为 “~”
--backup[=CONTROL] 指定已存在目标文件的备份文件名的命名方式
源文件
一个文件
目标文件不存在:会先创建DEST文件,再将SRC文件中的内容复制到DEST中
目标文件存在且为文件:将SRC中的内容覆盖至DEST中,目标文件中的原始数据将会丢失,建议复制使用 -i 选项
目标存在且为目录:在该目录下创建于原文件同名的文件,并将SRC 文件中的内容复制到DEST中
源文件
多个文件
目标文件不存在:提示错误
目标文件存在且为文件:提示错误
目标存在且为目录:在该目录下分别创建与源文件同名的文件,并将SRC 文件中的内容依依复制到对应的DEST中
源文件
目录文件
目标文件不存在:创建指定DEST 同名目录,复制SRC 目录中有文件至DEST下
目标存在且为文件:提示错误
目标存在且为目录:在DEST 下创建与原目录同名的目录,并将SRC 中的内容复制到新目录中
移动及重命名文件
mv 格式:
mv [OPTION]...[-T] SOURCE DEST
mv [OPTION]...SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
选项 说明
-b 当文件存在时,覆盖前,为其创建一个备份
-r 直接覆盖不再提示
-i 交互式操作,覆盖前先行提示用户是否覆盖
-u 当源文件比目标文件新或者目标文件不存在时才执行
--strip-trailing-slashes 删除源文件中的斜杠 “/”
-S,--suffix=SUFFIX 为备份文件指定后缀,而不使用默认的后缀
-t,--tatget-directory=DIRECTORY 指定源文件要移动到目标目录
删除文件
rm [OPTION]...FILE...
选项 说明
-f 强制删除文件,即在删除文件时不提示确认,并自动忽略不存在的文件
-i 在删除每个文件之前请求确认
-d: 删除空目录文件,非空目录不能删除
-r,-R,--recursive 递归删除
-v,--verbose 显示详细过程
--no-preserve-root 删除“/” 时使用,此选项在CentOS5版本前默认值
--preserve-root 对“/” 不进行递归删除,此选项在CentOS6版本后为默认值
--help 显示帮助
--version 显示版本
硬链接与软链接
选项 说明
-b 覆盖以前先备份
-d,-F,--directory 允许超级用户制作目录的硬链接,因系统限制可能出错
-f,--force 强制执行
-i,--interactive 交互模式,文件存在则提示用户是否覆盖
-n,--no-dereferenc 吧符号链接视为一般目录
-s, --symbolic 软链接(符号链接)
-v,--verbose 显示详细的处理过程
-S,--suffix=SUFFIX 指定备份的文件后缀
--help 显示帮助信息
--version 显示版本信息
两者链接的区别:
1)本质
硬链接:本质是同一个文件起了多个名字
软链接:本质不是同一个文件
2)跨设备
硬链接:不支持
软链接:支持
3)iNode
硬链接:相同
软链接:不同
4)链接数
硬链接:创建新的硬链接,链接数会增加;删除硬链接,链接数会减少
软链接:创建或删除,链接数不会变化
5)文件夹
硬链接:不支持
软链接:支持
6)相对路径
硬链接:原始文件相对路径是相当于当前工作目录
软链接:原始文件的相对路径是相对于链接文件的相对路径
7)删除源文件
硬链接:只是链接数减一,但链接文件的访问不受影响
软链接:链接文件将无法访问
8)文件类型
硬链接:和源文件相同
软链接:链接文件和源文件无关