目录结构文件:就是在一个目录中存放子目录和文件,而在子目录中又会进一步最和文件此类推形成一个树形的文件结构,又被称为“目录树”。
在Linux系統中也沿用了这种文件结构,所有目录和文在都在根目录下,目录名为“/”。
FHS(文件系统层次标准)定义了在根目录下的主要目录以及每个目录应该存放什么文件。
下面进入根目录中,査看一下Linux安装后默认的目录,如下所示:
[root@localhost 桌面]# cd /
[root@localhost /]# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
FHS定义的目录结构
目录 | 目录的用途 |
/bin | 常见的用户指令 |
/boot | 内核和启动文件 |
/dev | 设备文件 |
/etc | 系统和服务的配置文件 |
/home | 系统默认的普通用户的家目录 |
/lib | 系统函数库目录 |
/lost+found | ext3文件系统需要的目录,用于磁盘检查 |
/mnt | 系统加载文件系统时常用的挂载点 |
/opt | 第三方软件安装目录 |
/proc | 虚拟文件系统 |
/root | root用户的家目录 |
/sbin | 存放系统管理命令 |
/tmp | 临时文件的存放目录 |
/usr | 存放与用户直接相关的文件和目录 |
/media | 系统用来挂载光驱等临时文件系统的挂载点 |
1.绝对路径和相对路径
1.1绝对路径:由根目录(/)开始写起的目录或文件
在 Linux下每个目录或文件都可以从根目录处开始寻找,比如: usr/local/src目录。这种从根目录开始的全路径被称为“绝对路径”,绝对路径一定是以“/”开头的。
1.2当前目录:pwd
想要确定当前所在的目录,可以使用以下pwd命令查看:
[root@localhost /]# pwd
/
[root@localhost /]# cd ~
[root@localhost ~]# pwd
/root
1.3特殊目录:(.)和(..)
在每个目录下,都会固定存在两个特殊目录,分别是一个点(.)和两个点(..)目录。
一个点(.)代表的是当前目录,两个点(..)代表的是当前目录的上层目录。在 Linux下,所有以点开始的文件都是“隐藏文件”,对于这类文件,只使用命令ls-1是看不到的,必须要使用ls -la才可以看到。
[root@localhost mnt]# ls
hgfs
[root@localhost mnt]#
[root@localhost mnt]# ls -la
总用量 4
drwxr-xr-x. 3 root root 17 8月 1 21:25 .
drwxr-xr-x. 17 root root 4096 8月 6 16:32 ..
drwxr-xr-x. 2 root root 6 8月 1 21:25 hgfs
1.4相对路径:相对于当前路径的写法
“相对路径”的关键在于当前在什么路径下。
假设当前目录在/usr/ocal下那么它的上层目录(/usr目录)可以用../表示,而/sr/ocal的下层目录(src)则可以用./src表示。看下面的例子:
[root@localhost ~]# cd /mnt #现在进入/mnt目录
[root@localhost mnt]# ls -la
总用量 4
drwxr-xr-x. 3 root root 17 8月 1 21:25 .
drwxr-xr-x. 17 root root 4096 8月 6 16:32 ..
drwxr-xr-x. 2 root root 6 8月 1 21:25 hgfs
[root@localhost mnt]# cd . #进入当前目录
[root@localhost mnt]# pwd
/mnt #看到我们还是再/mnt目录中
[root@localhost mnt]# cd .. #进入当前目录的上层目录
[root@localhost /]# pwd #显示当前目录
/
2.文件的相关操作
[root@localhost /]# cd /tmp
[root@localhost tmp]# touch test.txt
[root@localhost tmp]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 8月 6 18:27 test.txt
[root@localhost tmp]# touch test.txt
[root@localhost tmp]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 8月 6 18:28 test.txt
[root@localhost tmp]# rm test.txt
rm:是否删除普通空文件 "test.txt"?y
[root@localhost tmp]# ls
anaconda.log ssh-TjlIAOBPQdoQ VMwareDnD
hsperfdata_root storage.log vmware-root
ifcfg.log systemd-private-lxtgo4 yum.log
ks-script-3s0B7_ systemd-private-nIbExQ yum_save_tx.2021-08-05.15-20.lUucKz.yumtx
packaging.log systemd-private-tEOw9g
program.log vmware-config-45481.0
[root@localhost tmp]# touch test.txt
[root@localhost tmp]# ls
anaconda.log ssh-TjlIAOBPQdoQ vmware-config-45481.0
hsperfdata_root storage.log VMwareDnD
ifcfg.log systemd-private-lxtgo4 vmware-root
ks-script-3s0B7_ systemd-private-nIbExQ yum.log
packaging.log systemd-private-tEOw9g yum_save_tx.2021-08-05.15-20.lUucKz.yumtx
program.log test.txt
[root@localhost tmp]# ls /mnt
hgfs
[root@localhost tmp]# mv test.txt /mnt/
[root@localhost tmp]# ls /mnt
hgfs test.txt
[root@localhost tmp]# ls
anaconda.log ssh-TjlIAOBPQdoQ VMwareDnD
hsperfdata_root storage.log vmware-root
ifcfg.log systemd-private-lxtgo4 yum.log
ks-script-3s0B7_ systemd-private-nIbExQ yum_save_tx.2021-08-05.15-20.lUucKz.yumtx
packaging.log systemd-private-tEOw9g
program.log vmware-config-45481.0
[root@localhost tmp]# cd /mnt/
[root@localhost mnt]# ls
hgfs test.txt
[root@localhost mnt]# mv test.txt test.doc
[root@localhost mnt]# ls
hgfs test.doc
[root@localhost mnt]# mv test.doc /tmp/test.txt
[root@localhost mnt]# ls /tmp/
anaconda.log ssh-TjlIAOBPQdoQ vmware-config-45481.0
hsperfdata_root storage.log VMwareDnD
ifcfg.log systemd-private-lxtgo4 vmware-root
ks-script-3s0B7_ systemd-private-nIbExQ yum.log
packaging.log systemd-private-tEOw9g yum_save_tx.2021-08-05.15-20.lUucKz.yumtx
program.log test.txt
[root@localhost ~]# head anaconda-ks.cfg
#version=RHEL7
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
[root@localhost ~]# head -n anaconda-ks.cfg
head: anaconda-ks.cfg: 无效的号码%s
[root@localhost ~]# head -n anaconda-ks.cfg
head: anaconda-ks.cfg: 无效的号码%s
[root@localhost ~]# head anaconda-ks.cfg
#version=RHEL7
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
[root@localhost ~]# head -n 10 anaconda-ks.cfg
#version=RHEL7
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
[root@localhost ~]# tail -f anaconda-ks.cfg
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@multimedia
@print-client
@x11
%end
^Z
[1]+ 已停止 tail -f anaconda-ks.cfg
[root@localhost ~]# mkdir touch_dir1
[root@localhost ~]# touch touch_file1
[root@localhost ~]#
[root@localhost ~]# ll
总用量 8
-rw-------. 1 root root 1036 8月 2 02:33 anaconda-ks.cfg
-rw-r--r--. 1 root root 1087 8月 1 18:36 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 6 8月 6 21:16 touch_dir1
-rw-r--r--. 1 root root 0 8月 6 21:17 touch_file1
[root@localhost ~]# mkdir org_dir
[root@localhost ~]# mkdir bak_dir
[root@localhost ~]# cd org_dir/
[root@localhost org_dir]# touch a b c
[root@localhost org_dir]# cp * ../bak_dir/
[root@localhost org_dir]# touch time_stamp
[root@localhost org_dir]# ll
总用量 0
-rw-r--r--. 1 root root 0 8月 6 21:18 a
-rw-r--r--. 1 root root 0 8月 6 21:18 b
-rw-r--r--. 1 root root 0 8月 6 21:18 c
-rw-r--r--. 1 root root 0 8月 6 21:20 time_stamp
[root@localhost org_dir]# touch a
[root@localhost org_dir]# ll
总用量 0
-rw-r--r--. 1 root root 0 8月 6 21:20 a
-rw-r--r--. 1 root root 0 8月 6 21:18 b
-rw-r--r--. 1 root root 0 8月 6 21:18 c
-rw-r--r--. 1 root root 0 8月 6 21:20 time_stamp
[root@localhost org_dir]# cp a ../bak_dir/
cp:是否覆盖"../bak_dir/a"? yy