Linux教程(二)文件与目录管理

一、基本概念

在 linux 中,不论是由本级还是远程登录系统,每个系统都必须有一个账号,并且对于不同的系统资源有不同的使用权限。

对文件/目录的权限包括

权限 英文 缩写 数字代号
read r 4
write w 2
执行 execute x 1
无权限 - 0

1.1 文件的拥有者(owner)

文件的拥有者也就是创建这个文件的用户,其他用户若需要访问需要 owner 授权,也可以转让给其他用户

1.2 文件所属组(group)

文件的拥有者所属的用户组,通过“组”来管理机制,文件可以多人共享。Linux 先把用户按照类别分组,然后给用户组分配相应的访问权限,一个用户可以属于多个组,一个组可以包含多个用户。

1.3 其他人(other)

不是 owner 又不在文件所属的组里面就是其他人。

1.4 超级用户 root

拥有对系统的完全控制权,和 windows 里面的 Administrator 一样。

默认情况下,Linux 的账号信息保存在 /etc/passwd ,密码保存在 /etc/shadow 文件,组名保存在 /etc/group 。

若在执行命令时提示没有权限,如 permission denied,在命令前面增加 sudo 以 root 来执行命令即可。

1.5 sudo

su 是 substitute user 的缩写,表示使用另一个用户的身份

sudo 命令用来以其他身份来执行命令,预设的身份为 root

二、文件的属性

Linux / Unix 很重要的一个设计原则是:一切都是文件。

终端输入 ls -al 可以看到当前目录下所有文件的信息,一共有七列

文件类型和权限,文件链接数/子目录个数,文件所有者,文件所属组,文件大小,最后修改时间,文件名

2.1 文件的类型和权限

文件类型

  • -:普通目录

  • d:目录

  • l:软连接,类似于 windows 里面的快捷方式

  • b:块设备,存取的时候可以使用缓存加速

  • c:字符设备,一次读取一个字符

  • p:管道,进程间通信的时候用到

  • s:套接字文件,网络相关的文件

接下来的 9 个字符中,以三个为一组,且均为 rwx 和 - 组合

  • 234 位:文件所有者 owner 对这个文件的权限

  • 567 位:文件所属组 group 对这个文件的权限

  • 890:不是 owner 也不在文件所属组的用户对这个文件的权限

对于文件来说:

  • r 代表可读 read

  • w 代表可写 write

  • x 代表可执行 execute

对目录来说:

  • r 能不能列出该目录中的内容

  • w 可不可以对该目录中的内容进行增加、删除、修改、重命名

  • x 该目录是不是可进入,也就是 cd

如果没有相应的权限,则相对的位置上字符会变成 -,为了使用方便,linux 表示权限的时候将 rwx 对应成数组,r 对应4,w对应2,x对应1。上面的9个字符按照所有者、所属组、其他人分成三组,每组的权限是三个数字之和。

如:example.desktop 的权限是 -rw-r--r- 对应成数字就是 644。

2.2 文件目录的管理

Linux 下文件和目录基础:

  • linux 根目录是 /,是整个 linux 文件系统的最上层目录,安装系统分区的时候可以定哪个分区挂载在这个目录上,分区通过挂载点 mount point 挂载到目录树中的。

  • linux 系统目录和目录之间的分隔符是 /

  • . 开头的文件或者目录是隐藏的,需要用 ls 的 -a 选项才可查看

  • *?><;&![] | \ ' " ` (){}+- 这些字符在 shell 中有特殊含义,再给文件命名的时候最好避免

  • 绝对路径:由根目录 / 开始写起的文件名或目录名称,例如 /home

  • 相对路径:相对于当前路径的文件名写法,如:./home、 ../home 等

  • 文件名或目录名最大长度为255个字符

  • 包含完整路径名的文件名最大长度为 4096 个字符

不同的 linux 发行版中限制是不一样的。

三、常用命令

3.1 查看目录内容

3.1.1 ls

常用选项:

-a:显示所有文件

-A:和 -a 基本一样,但是不包括 . 和 ..

-d:只列出目录本身的信息,而不列出目录中的内容

-f:直接列出结果,而不排序

-F:根据文件目录的信息,增加一些特殊的显示标记,如链接后会增加一个 @

-h:显示文件大小的时候不用字节显示

-i:显示该文件对应的 inode 编号

-l:显示文件目录的更多信息

-n:用 UID 和 GID 取代输出中的用户名和组名

-r:把排序的结果反向输出

-R:递归的列出子目录中的内容

-S:按照文件的大小排序

-t:按照文件的时间排序

--color-never:不用颜色显示文件目录

--color=always:总是用颜色来显示文件和目录

--color=auto:让系统自己判断是不是要把文件目录用颜色显示

--full-time:显示文件的完整时间

--time={atime, ctime}:用来选择显示哪个时间,可选 atime、ctime,默认使用 mtime

ls 通配符的使用

  • *:代表任意一个字符

  • ?:代表任意一个或多个字符

  • []:表示可以匹配字符组中的任意一个,如 [abc] 则表示匹配 a、b、c中的任意一个

  • [a-f]:匹配 a - f 范围内的任意一个

3.2 切换目录

3.2.1 cd

一般来说一个用户登录到 linux 系统后,当前工作目录就是 home 目录。

  • cd :切换到当前用户的主目录(/home/用户目录)

  • cd ~ :切换到当前用户的主目录(/home/用户目录),~ 代表当前用户的主目录

  • cd . :保持当前目录不变,. 代表当前目录

  • cd .. :切换到上级目录,.. 代表上级目录

  • cd -: 在最近两次工作目录之间来回切换,- 代表上次所在的目录

相对路径:在输入路径时,最前面不是 / 或者 ~,表示相对当前目录所在的目录位置

绝对路径:在输入路径时,最前面是 / 或者 ~,则表示从根目录(或者家目录)开始的具体目录位置

3.3 创建和删除操作

3.3.1 touch

创建文件或修改文件,如果文件不存在,则创建一个空白文件,如果文件存在,则会更新文件的末次修改时间

3.3.2 rm

删除文件或目录

  • -f:强制删除,忽略不存在的文件,无需提示

  • -i:删除之前需要用户确认

  • -r:递归删除目录下的内容,删除文件夹时必须加此参数

  • -v:显示删除的过程

注:rm 命令也可以跟通配符,使用时一定要小心,因为文件删除后不能恢复

3.3.3 mkdir

创建一个新的目录

  • -p:递归创建目录,如果上层目录不存在,则一并创建

  • -m:用来设置这个目录的权限

注:新建目录的名称不能与当前目录中已有的目录或文件同名

3.3.4 rmdir

删除空目录rmdir 主要用来删除空目录,如果目录非空,就不可以删除。如果目录下面有空的子目录可以用 -p 选项把空的子目录一起删除。

  • -p:递归删除空目录

3.4 拷贝和移动文件

3.4.1 cp

作用:复制文件或目录

格式:cp 源文件 目标文件

选项:

  • -f:若目标文件已经存在则直接覆盖

  • -i:若目标文件已经存在,覆盖文件前询问是否覆盖

  • -r:递归复制,若给出的源文件是目录文件,则递归复制该目录下的所有子目录和文件,目标文件也必须是一个目录名

  • -l:将文件复制为硬链接

  • -s:将文件复制成软链接

  • -p:复制的时候不改变文件的属性

  • -u:更新,如果源文件比目标文件更新才复制,否则不复制

  • -v:显示复制的过程

  • -a:相当于 -pdr

3.4.2 mv

作用:移动、重命名文件或目录

格式:mv 源文件 目标文件

选项:

  • -i:若目标文件已存在,则覆盖文件前给出提示

  • -f:若目标文件已存在,则直接覆盖文件

  • -u:源文件比目标文件更新才进行移动caozuo

注:若源文件和目标文件目录一样,则可以对文件或目录重命名

3.4.3 tree

作用:以树状图列出文件目录结构

格式:tree [目录名]

选项:

  • -d:只显示目录

3.5 查看文件内容

3.5.1 cat

作用:查看文件内容、创建文件、文件合并、追加文件内容等功能;一次性显示所有的内容,适合查看内容较少的文本文件

格式:cat 文件名

选项:

  • -b:列出非空行行号

  • -n:列出所有行行号

  • -E:将换行符用 $ 显示出来

  • -T:将制表符用 ^| 显示

  • -v:列出一些看不出来的特殊字符

  • -A:相当于 -vET

linux 中还有一个 nl 的命令和 cat -b 效果相同

3.5.2 more

作用:分屏显示文件内容,每次只显示一页内容,适合查看内容较多的文本文件

格式:more 文件名

操作键:

  • 空格键:向下翻一页

  • Enter 键:向下翻一行

  • q:退出

  • /:查找指定的字符串,如 /word 表示查找 word 字符

3.5.3 grep

作用:强大的文本搜索工具,它允许对文本文件进行模式查找(模式查找又称为正则表达式)

格式:grep 搜索文本 文件名

选项:

  • -n:显示匹配行及行号

  • -v:显示不匹配的行及行号

  • -i:忽略大小写

常用的两种模式查找:

  • ^a:搜索以 a 开头的行

  • ke$:搜索以 ke 结尾的行

3.5.4 less

less 的功能比 more 更强大一些,more 不可以向前翻页,less 可以用 pageup 和 pagedown 向前、向后翻页查看文件

操作键

  • 空格键 space:向下翻一页

  • pagedown:向下翻一页

  • pageup:向上翻一页

  • /字符串:向下搜索字符串

  • ?字符串:向上搜索字符串

  • /:查找指定的字符串,如 /word 表示查找 word 字符

  • n:重复上一个搜索(与 / 或 ?有关)

  • N:反向重复上一个搜索(与 / 或 ?有关)

q:离开 less

3.6 其他

3.6.1 echo

echo 会在终端中显示参数指定的文字,通常和重定向联合使用

3.6.2 重定向 > 和 >>

Linux 允许将命令执行结果重定向到一个文件,重定向就是将显示在终端上的内容输出 / 追加到指定文件中

  • > :输出到指定文件,会覆盖文件原有的内容

  • >> :将内容追加到已有文件的末尾

3.6.3 管道 |

linux 允许将一个命令的输出通过管道作为另一个命令的输入

常用的管道命令:

  • more:分屏显示内容

  • grep:在命令执行结果的基础上查询指定的文本

posted @ 2020-10-05 14:11  芒果日记  阅读(273)  评论(0编辑  收藏  举报