linux系统的目录结构;绝对路径与相对路径;系统目录的一些作用 # day19
一、linux系统的目录结构
window系统————————文件夹
linux系统————————目录
根目录:顶级目录
window系统:多根结构(系统默认文件分割符为\)
C:
D:
linux系统:单根结构(系统默认文件分割符为/)
/
二、绝对路径与相对路径
从根开始写的路径就是绝对路径,否者就是相对路径
三、系统目录的一些作用
# 1、命令相关目录
lrwxrwxrwx. 1 root root 7 Jul 11 2019 bin -> usr/bin # 普通用户使用的命令如ls、date
lrwxrwxrwx. 1 root root 8 Jul 11 2019 sbin -> usr/sbin # 管理员使用的命令
#2、启动目录
dr-xr-xr-x. 5 root root 4096 Feb 11 19:06 boot # 存放的启动相关的文件,例如kernel,grub(引导装载程序)
#3、系统文件目录
drwxr-xr-x. 13 root root 4096 Jul 11 2019 usr # 系统文件,相当于C:\Windows
lrwxrwxrwx. 1 root root 7 Jul 11 2019 lib -> usr/lib # 库文件Glibc
lrwxrwxrwx. 1 root root 9 Jul 11 2019 lib64 -> usr/lib64 # 库文件Glibc
#4、用户家目录
drwxr-xr-x. 5 root root 4096 Feb 24 16:42 home # 普通用户家目录
dr-xr-x---. 11 root root 4096 Jul 8 17:03 root # root用户的HOME
#5、配置文件目录
drwxr-xr-x. 79 root root 4096 Jul 8 17:04 etc # 配置文件,很重要,系统级服务配置文件都在这里
"""
/etc/sysconfig/network-script/ifcfg-*,网络配置文件
/etc/hostname,系统主机名配置文件
/etc/resolv.conf,dns客户端配置文件
/etc/hosts,本地域名解析配置文件
/etc/fstab 系统挂载目录 开机自启动挂载列表
/etc/passwd 系统用户文件
"""
•
#6、设备目录文件
drwxr-xr-x 19 root root 2960 Feb 15 17:22 dev # 设备文件,/dev/sda /dev/sr0
"""
/dev/cdrom 和/dev/sr0,系统光盘镜像设备
/dev/null,黑洞设备,只进不出。类似于垃圾回收站
/dev/random,生成随机数的设备
/dev/zero,能源源不断地产生数据,类似于取款机,随时随地取钱
/dev/pts/0,虚拟的Bash Shell终端,提供给远程用户使用 0代表第一个终端 1代表第2个终端
以此类推
/dev/stderr,错误输出
/dev/stdin,标准输入
/dev/stdout,标准输出
"""
•
#7、虚拟文件系统:类似于小汽车的仪表板,能够看到汽车是否有故障,或者是否缺油了。
dr-xr-xr-x 89 root root 0 Feb 15 17:22 proc # 虚拟的文件系统,反映出来的是内核,进程信息或实时状态
"""
反映系统当前进程的实时状态
/proc/meminfo:内存信息
/proc/cpuinfo:cpu信息
"""
#8、可变的目录与临时目录
drwxr-xr-x. 19 root root 4096 Jul 11 2019 var #存放的是一些变化文件,比如数据库,日志,邮件....
"""
/tmp,系统临时目录(类似于公共厕所),系统会定时删除该目录下长时间没有访问的文件。
/var,存放一些变化文件,如下
mysql: /var/lib/mysql
vsftpd: /var/ftp
mail: /var/spool/mail
cron: /var/spool/cron
log: /var/log 系统日志文件存放目录
/var/log/messages系统日志
/var/log/secure系统登录日志
/var/tmp 临时文件(主要是程序产生的临时文件)
•
"""
•
•
# 9、设备(主要指存储设备)挂载目录
drwxr-xr-x. 2 root root 4096 Apr 11 2018 media # 移动设备默认的挂载点
drwxr-xr-x. 2 root root 4096 Apr 11 2018 mnt # 手工挂载设备的挂载点
drwxr-xr-x. 2 root root 4096 Apr 11 2018 opt # 早期第三方厂商的软件存放的目录.
drwxrwxrwt. 10 root root 4096 Jul 9 15:16 tmp # 临时存放文件,类似于回收站,超过十天自动删除
#10、其他的一些重要目录
drwx------. 2 root root 16384 Jul 11 2019 lost+found # 孤儿文件
这个目录是使用标准的ext2/ext3档案系统格式才会产生的一个目录,目的在于当档案系统发生错误时, 将一些遗失的片段放置到这个目录下。这个目录通常会在分割槽的最顶层存在, 例如你加装一颗硬盘于/disk中,那在这个系统下就会自动产生一个这样的目录『/disk/lost+found
lost+found这个目录一般情况下是空的,当系统非法关机后,如果你丢失了一些文件,在这里能找回来用来存放fsck过程中部分修复的文件的
lost+found:几乎每个被格式化过的Linux分区都会有,意外后找回的文件一般在这里面。
这个目录是储存发生意外后丢失的文件的。只有root用户才能打开
•
drwxrwxr-x 6 root root 4096 Feb 23 19:24 application
drwxr-xr-x 25 root root 660 Jul 8 17:00 run # 存放程序运行后所产生的pid文件
drwxr-xr-x. 2 root root 4096 Apr 11 2018 srv # 物理设备产生的一些文件
dr-xr-xr-x 13 root root 0 Feb 16 01:22 sys # 硬件设备的驱动程序信息
•
•三 绝对路径与相对路径
绝对路径: 从/开头的路径 /home ~alice 相对路径: 相对于当前目录开始. 链接到当前目录 .. 链接到上一级目录 ~ 当前用户的家目录
# 1、绝对路径示例
touch /home/alice/file1
touch ~alice/file2
•
# 2、相对路径示例
touch ../file3
touch file4
touch abc/file5
四 文件管理
4.1 文件管理之:基本命令
#1、查看当前所在的目录
[root@localhost ~]# pwd
/root
•
#2、切换目录
cd 绝对路径 如:cd /home/alice cd ~alice
cd 相对路径 如:cd home/alice cd ..
cd - # 返回上次目录
cd # 直接回家,等同于cd ~
cd . #保持当前目录不变
cd .. #切换到当前目录的上一级目录
•
#3、查看目录树:需要先安装tree命令,执行yum install tree -y
tree -a 目录 # 显示所有文件,包括隐藏文件
tree -d 目录 # 只显示子目录
tree -L 1 目录 # -L 遍历目录的最大层数,-L后应该是大于0的正整数
tree -F 目录 # -F 在条目后加上文件类型的指示符号,例如会在显示出的目录后面加上左斜杠/
•
[root@localhost ~]# tree /a
/a
├── b
│ ├── 1.txt
│ ├── 2.txt
│ └── 3.txt
├── bb
│ ├── a.txt
│ ├── b.txt
│ └── c.txt
└── bbbb
•
了解一下tree命令其他选项
-a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I 不显示符合范本样式的文件或目录名称。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。
•
#4、浏览
ls # 默认浏览当前目录
ls -l 目录 # 浏览目录下的子目录子文件名的详细信息
ls -al 目录 # 浏览的结果中包含隐藏文件
ls -dl 目录 # 查看目录
•
[root@localhost ~]# ll a.txt
-rw-r--r--. 1 root root 0 12月 15 14:02 a.txt
•
# 各部分解析如下
-rw-r--r--. 权限,后面的点代表是否在selinux开启的情况下(enforcing或者permissive都属于开启)
创建的文件
•
1 硬链接个数
root 属主
root 属组
0 文件大小,单位字节
12月 15 14:02 文件修改时间
a.txt 文件名字
•
# 权限的第一个为代表文件类型
格式 说明
- 普通文件(文本, 二进制, 压缩包, 图片, 日志等)
d 目录文件
b 设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2
c 设备文件(字符设备)打印机,终端 /dev/tty1, /dev/zero
s 套接字文件, 进程间通信(socket)
p 管道文件
l 链接文件
•
注意: Linux文件扩展名不代表任何含义, 仅仅是为了运维人员便于识别###4.2 文件管理之:创建/复制/移动/删除创建#1、=============创建文件:touch
touch file1.txt //无则创建,有则修改时间
touch /home/file10.txt
touch file{1..20}
touch Ego{n,N}.txt //等价touch Egon.txt EgoN.txt
touch -t 2011111111 2018.rmvb
修改文件时间 语法:
-t STAMP
use [[CC]YY]MMDDhhmm[.ss] instead of current time
了解文件的三个时间参数:https://www.cnblogs.com/linhaifeng/articles/13324247.html
•
#2、=============创建目录:mkdir
mkdir dir1
mkdir /home/dir2 /home/dir3
mkdir /home/{dir4,dir5}
mkdir -v /home/{dir6,dir7} # 显示提示信息
mkdir: 已创建目录 “/home/dir6”
mkdir: 已创建目录 “/home/dir7”
mkdir -p /home/dir8/111/222 //包括其父母的创建
复制
#1、=============复制:cp
cp 源 目标
•
cp -v install.log /home/dir1 #-v 将文件install.log复制到/home/dir1(用于文件与文件之间的复制粘贴)
cp -v install.log /home/dir1/aaa.txt
cp -r /etc /home/dir1 #-r 将文件夹/etc复制到/home/dir1(用于文件夹与文件夹之间的复制粘贴)
cp install.log /home/dir2
cp anaconda-ks.cfg !$
cp anaconda-ks.cfg /home/dir2
cp -r /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/passwd /etc/grub.conf /etc/hosts .
cp -a #将源文件内容以外的信息尽可能的拷贝到目标文件
