Linux系统初学(1)


一、文件系统的层次结构


对初学者来说,管理 Linux 系统中的文件和目录,是学习 Linux 至关重要的一步。

为了方便管理文件和目录,Linux 系统将它们组织成一个以根目录 / 开始的倒置的树状结构。Linux 中的目录,和 Windows 系统中的文件夹类似,不同之处在于,Linux 系统中的目录也被当做文件看待。

在 Linux 操作系统中,所有的文件和目录都被组织成以一个根节点 “/” 开始的倒置的树状结构,如图1所示。
在这里插入图片描述
其中,目录就相当于 Windows 中的文件夹,目录中存放的既可以是文件,也可以是其他的子目录,而文件中存储的是真正的信息

文件系统的最顶层是由根目录开始的,系统使用“/”来表示根目录,在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含(子)目录或文件。如此反复就可以构成一个庞大的文件系统。注意,目录名或文件名都是区分大小写的

完整的目录或文件路径是由一连串的目录名所组成的,其中每一个目录由“/”来分隔。如 a 的完整路径是 /home/a。

在文件系统中,有两个特殊的目录:

  • 一个是用户所在的工作目录,即当前目录,可用一个点“.”表示;
  • 另一个是当前目录的上一层目录,也叫父目录,用两个点“…”表示。

为了方便管理和维护,Linux 系统采用了文件系统层次标准,也称为 FHS 标准,它规定了根目录下各个目录应该存在哪些类型的文件(或子目录),比如说,在 /bin 和 /sbin 目录中存放的应该是可执行文件。

二、文件路径

指明一个文件存放的位置,有 2 种方法,分别是使用绝对路径和相对路径。

  • 绝对路径 : 绝对路径一定是由根目录 / 开始写起。例如,使用绝对路径的表示方式指明 bin 文件所在的位置,该路径应写为 /usr/bin。
  • 相对路径 : 和绝对路径不同,相对路径是从当前所在的工作目录开始写起的。使用相对路径表明某文件的存储位置时,经常会用到前面讲到的 2 个特殊目录,即当前目录(用 . 表示)和父目录(用 … 表示)。

三、文件(目录)命名规则

Linux 系统中,文件和目录的命名规则如下:

除了字符“/”之外,所有的字符都可以使用,但是要注意,在目录名或文件名中,使用某些特殊字符并不是明智之举。(例如,在命名时应避免使用<、>、?、* 和非打印字符等。如果一个文件名中包含了特殊字符,例如空格,那么在访问这个文件时就需要使用引号将文件名括起来。)目录名或文件名的长度不能超过 255 个字符。

目录名或文件名是区分大小写的。(如 ABC、abc、Abc 和 ABc ,是互不相同的目录名或文件名,但使用字符大小写来区分不同的文件或目录,也是不明智的。)

与 Windows 操作系统不同,文件的扩展名对 Linux 操作系统没有特殊的含义,换句话说,Linux 系统并不以文件的扩展名开分区文件类型。(例如,dog.exe 只是一个文件,其扩展名 .exe 并不代表此文件就一定是可执行文件。 )

需要注意的是,在 Linux 系统中,硬件设备也是文件,也有各自的文件名称。Linux 系统内核中的 udev 设备管理器会自动对硬件设备的名称进行规范,目的是让用户通过设备文件的名称,就可以大致猜测处设备的属性以及相关信息。

四、几种常见的文件操作命令

1. 进入目录

cd 目的目录 //进入指定目录

用法:
cd … //进入父目录
cd …/… //进入当前父目录的父目录
cd //进入用户主目录
cd - //进入上个状态的目录

2. 创建、删除目录

mkdir 目录

mkdir -p f1/f2 //创建多级目录
rmdir //删除空目录
rmdir -p //递归删除空目录
rm -rf //递归删除非空目录

3. ls命令

当 ls 命令不使用任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根据文件的具体类型给文件名配色(蓝色显示目录,黑色显示一般文件)。除此之外,如果想使用 ls 命令显示更多内容,就需要使用表 1 相应的选项。
在这里插入图片描述

4. touch命令

touch 命令不仅可以用来创建文件(当指定操作文件不存在时,该命令会在当前位置建立一个空文件),此命令更重要的功能是修改文件的时间参数(但当文件存在时,会修改此文件的时间参数)。

Linux 系统中,每个文件主要拥有 3 个时间参数,分别是文件的访问时间、数据修改时间以及状态修改时间

  • 访问时间(Access Time,简称 atime):只要文件的内容被读取,访问时间就会更新。例如,使用 cat 命令可以查看文件的内容,此时文件的访问时间就会发生改变。
  • 数据修改时间(Modify Time,简称 mtime):当文件的内容数据发生改变,此文件的数据修改时间就会跟着相应改变。
  • 状态修改时间(Change Time,简称 ctime):当文件的状态发生变化,就会相应改变这个时间。比如说,如果文件的权限或者属性发生改变,此时间就会相应改变。

touch 命令的基本格式如下:
[root@localhost ~]# touch [选项] 文件名

选项:
-a:只修改文件的访问时间;
-c:仅修改文件的时间参数(3 个时间参数都改变),如果文件不存在,则不建立新文件。
-d:后面可以跟欲修订的日期,而不用当前的日期,即把文件的 atime 和 mtime 时间改为指定的时间。
-m:只修改文件的数据修改时间。
-t:命令后面可以跟欲修订的时间,而不用目前的时间,时间书写格式为 YYMMDDhhmm。

5. cp命令

cp 命令,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能。

cp 命令的基本格式如下:
[root@localhost ~]# cp [选项] 源文件 目标文件

选项:
-a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍;
-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
-i:询问,如果目标文件已经存在,则会询问是否覆盖;
-l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
-s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
-r:递归复制,用于复制目录;
-u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用。

需要注意的是,源文件可以有多个,但这种情况下,目标文件必须是目录才可以。

6. rm命令

rm 是的删除命令,它可以永久性地删除文件系统中指定的文件或目录。在使用 rm 命令删除文件或目录时,系统不会产生任何提示信息。
此命令的基本格式为:
[root@localhost ~]# rm[选项] 文件或目录

选项:
-f:强制删除(force),和 -i 选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录。
-i:和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录。
-r:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件。

注意,rm 命令是一个具有破坏性的命令,因为 rm 命令会永久性地删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用 rm 命令将其删除,将无法恢复,因此,尤其在使用 rm 命令删除目录时,要十分谨慎。

7. mv命令

mv 命令(move 的缩写),既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名

该命令的基本格式如下:
[root@localhost ~]# mv 【选项】 源文件 目标文件

选项:
-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;
-i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项);
-n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;
-v:显示文件或目录的移动过程;
-u:若目标文件已经存在,但两者相比,源文件更新,则会对目标文件进行升级;

需要注意的是,同 rm 命令类似,mv 命令也是一个具有破坏性的命令,如果使用不当,很可能给系统带来灾难性的后果。

8. 查找文件及其内容

find 路径 文件属性
find / -name 文件名
find / -user
find / -group
find / -size n

grep查找文本文件内容
grep 参数 搜索字符串 文件名
grep ‘Linux is’ file.c

file查询文件类型
file file.c

9. 压缩、打包文件

gzip f1 //压缩后缀名为 .gz
gzip -d f1.gz //解压
gzip -r d1 //递归压缩d1目录下所有文件
gzip -c file > file.gz //保留原来文件
zip f1.zip f1 //压缩后缀名为 .zip
gunzip f1.gz //解压
gunzip -r d1 //递归解压d1目录下所有的压缩文件
unzip a.zip //解压
unzip -j d1.zip //递归d1.zip压缩文件,并且递归解压
tar cvf a.tar a //打包文件a
tar tvf a.tar //查看文件内容
tar xvf a.tar //解压
tar rvf a.tar file.c //将file.c文件添加到a.tar包中

10. 修改文件

(1)修改文件所有者和组别 chown

(使用chown命令必须拥有root权限)

  • chown -R root a //递归处理,将目录a下所有文件和子目录的权限修改为root
  • chown .root a //将目录a的所有组修改为root
  • chown zmx.root //将目录a的所有者修改为zmx,所有组修改为root

(2)修改文件组所有权 chgrp

  • chgrp -R root a //递归处理,将目录a下所有文件和子目录的所有组修改为root
  • chgrp workgroup file //将file的所属用户组修改为workgroup

(3)修改文件的访问权限 chmod

语法格式有两种:符号标记格式、八进制数格式
u:所有者 g:所有组 o:其他用户

chmod u=rw,g=r,o= f1 d1 //修改f1和d1的访问权限
chmod u=rwx,go= f2 //所有组和其他用户没有任何权限
chmod g+w f1 //对f1的所有组添加写入权限
chmod o-x f1 //对f1的其他用户取消执行权限
r- - -4
w- - -2
x- - -1
chmod 777 f1 //f1的拥有者、所有组、其他用户拥有所有的访问权限

以上内容都是从网络上搜集资料后整理的,若有侵权请联系我删除。
小萌新刚开始学习linux,以后随着学习会补充哒~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值