文件与目录的操作
源文件md格式见网址:https://gitee.com/tqp1996/linux_-notebook/tree/master/
1. Linux中的一些思想
1.1 一切皆文件
在Linux中,不只是数据以文件的形式存在,而且Linux几乎把所有的资源,包括硬件设备都组织为文件的形式。比如硬盘以及硬盘中的每个分区都被视为一个文件。在Linux中,sda为硬盘,sda1为硬盘的第一个分区。
[root@localhost ~]# ls /dev/sda
/dev/sda
[root@localhost ~]# ls /dev/sda1
/dev/sda1
1.2 Linux整个系统由众多小程序组成
在Linux中很少有像Windows系统中那样动辄上GB的大型程序,整个Linux系统就是由众多单一功能的小程序组成的。每个小程序只负责实现某一项具体功能,我们之后要学习的绝大多数Linux命令,其实都各自对应着一个相应的小程序。如果要完成一项复杂任务,只需将相应的命令组合在一起使用即可。比如ls其实就是对应一个程序,如何查看ls程序文件在哪,如下:
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@localhost ~]#
1.3 尽量避免与用户交互
Linux主要用作服务器操作系统,其操作方式与我们平常在客户端上使用的Windows系统有很大区别。由于服务器管理员不可能全天候地守护在服务器旁边,而且一名管理员往往需要同时管理成百上千台服务器,因而在服务器上执行的操作最好是通过编写脚本程序来完成,从而使其自动化地完成某些功能。就是说避免使用一个命令还要管理员来输入参数
1.4 使用纯文本文件保存配置信息
无论Linux系统本身还是系统中的应用程序,它们的配置信息往往都是保存在一个纯文本的配置文件中。如果需要改动系统或是程序中的某项功能,只需编辑相应的配置文件即可。
2. 文件路径、根路径、家目录
2.1 文件路径
一般来说,每个文件(目录)都对应着唯一的路径,在window中路径格式为:
C:\Windows\System32\spp\store\2.0
而在Linux中文件路径格式为:
/etc/ssh/sshd_config
Linux目录的斜杠/和window不一样,其路径的起点为第一个斜杠/,用斜杠**“/”表示根目录**,根目录是Linux文件系统的起点,在根目录下按照用途划分为很多子目录。所以,Linux系统的目录结构是固定的,跟磁盘分区没有任何关系。按照FHS标准的典型目录结构如表所示:
这里要说明一下,在Windows中,一般根目录是C盘或D盘,而在Linux中,不论磁盘如何分区,其根目录就只有斜杠/一个,不存在其它的根目录;而且,在根目录下的子目录是固定的,子目录下的目录或者文件随着后期系统运行或者软件安装会增添新的。
[root@localhost ~]# ls /
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
2.2 Linux常见目录介绍
目录名 | 介绍 |
---|---|
/boot | 存放Linux系统启动所必需的文件,Kenel便存放在这个目录里。出于系统安全考虑,/boot目录通常被划分为独立的分区 |
/etc | 存放Linux系统和各种程序的配置文件,Linux中的很多操作和配置都是通过修改配置文件实现的。/etc目录的作用类似于Windows系统中的注册表 |
/dev | 存放Linux系统中的硬盘、光驱、鼠标等硬件设备 |
/bin | 存放Linux系统中最常用的基本命令,任何用户都有权限执行 |
/sbin | 存放Linux系统中基本的管理命令,只有管理员权限才可以执行 |
/usr | 软件默认安装位置,类似于Windows中的Program Files目录 |
/home | 普通用户的家目录(也成为主目录)。例如用户账号“Tu Qiuping”对应的家目录位于"/home/Tu Qiuping" |
/root | 超级用户root的家目录 |
/mnt | 一般是空的,用来临时挂载存储设备 |
/media | 用于系统自动挂载可移动存储设备 |
/tmp | 临时目录,用于存放系统或程序运行时产生的一些临时文件,可供所有用户执行写入操作 |
/var | 用于存放系统运行过程中经常变化的文件,例如/var/log用于存放日志文件,/var/spool/mail用于存放邮件等 |
/lib、/lib64 | 存放各种链接库文件 |
/proc | 存放进程文件 |
/run | 存放一些进程产生的临时文件,系统重启后会消失 |
/lost+found | 存放一些当系统意外崩溃或关机时产生的文件碎片 |
2.3 根目录与家目录
- 根目录:斜杠/ 即为根目录
- 家目录:除了管理员root的家目录为"/root",其他系统用户的家目录统一放在"/home"文件夹里面,例如用户Tu Qiuping的家目录为"/home/Tu Qiuping"。
2.4 绝对路径与相对路径
绝对路径指的是从根目录一级一级的往下直到目标目录的路径,比如用户Tu Qiuping的家目录为"/home/Tu Qiuping",所以在根目录时直接cd即可。
[root@localhost ~]# cd /home/tuqiuping
[root@localhost tuqiuping]#
这个时候"/home/tuqiuping"就是绝对路径,也就是说不管当前在什么目录下,只要cd+绝对路径就可以直接进入绝对路径对应的目录下。
相对路径指的是在当前目录下的子目录,就是从当前位置找,找当前位置的子目录或子文件。比如我们先进入"/home"目录:
[root@localhost tuqiuping]# cd ..
[root@localhost home]# cd tuqiuping
[root@localhost tuqiuping]#
可以看到,直接执行cd tuqiuping也可以进入,这个时候tuqiuping就是相对路径,它是相对于"/home"目录的路径。其中,命令cd … 表示返回当前目录的上一级目录
关于目录切换这里涉及到的一些命令:
-
cd: cd(change directory)即为改变目录。下面介绍cd命令的快捷用法:
操作 功能 cd 返回家目录 cd ~ 返回家目录 cd / 返回根目录 cd … 返回当前目录的上一级目录 cd - 在最近的两个目录之间进行切换 pwd 打印当前的目录(pwd=print work directory) su 用户账户名称 切换用户(su=switch user) |
| cd - | 在最近的两个目录之间进行切换 |
| pwd | 打印当前的目录(pwd=print work directory) |
| su 用户账户名称 | 切换用户(su=switch user) |