Linux文件和目录管理


​ 了解并掌握Linux文件和目录是学号Linux操作系统的重要组成部分。对于熟悉Windows操作系统的开发者来说,大家往往习惯了盘符的概念和图形化界面鼠标拖拽操作,但是步入Linux的大门之后,一方面需要知道Linux的文件和数据都是以目录的形式存放的,其中有很多的目录包括home、usr、etc、bin等,都需要开发者在使用中加深记忆,另一方面则是终端命令的使用,需要学会用shell命令来代替图形化界面。

说明:文本基于DataWhale组队学习专栏任务总结

1. 理解Linux文件和目录管理的原理

在Linux中,目录以树状结构管理,且树状目录的根节点 / 为起始,所以也称为根目录。它是Linux文件系统的入口,每一个文件和目录都是从这里开始的。
在这里插入图片描述

  • bin:基本用户命令的二进制文件目录。对于外部命令而言的,包含了系统管理员和普通用户可以使用的命令的执行文件。
  • etc:配置文件目录。这个目录包含了所有程序所需要的配置文件,是用于控制程序操作的本地文件,也是静态不可变的。
  • boot:引导文件。该目录包含Linux系统启动过程中所需的所有内容。
  • dev目录:设备文件。dev 是 Device(设备)的缩写,这个目录下存放的是 Linux 的外部设备,比如USB接口、U盘、打印机等外部终端设备。在 Linux 中访问设备的方式与访问文件的方式是相同的。
  • proc:进程信息文件,包含了系统中进程的相关信息(ID、状态等)。
  • opt:可选择的文件,用于安装附加应用程序软件包。
  • lost+found:此目录通常为空,当系统非法关机后,这里就存放了一些文件。
  • var:变量文件。这个目录下可以找到内容可能增长的文件。
  • tmp:临时文件。包含系统和用户创建的临时文件(内存),当系统重新启动时,这个目录下的文件都将被删除(内存的存储介质决定的,断电易失)。
  • home:用户目录,所有用户都用home来存储个人文件。
  • usr:用户程序目录,包含了各种文件数据,比如二进制文件、库文件、文档和二级程序的源代码。
  • mnt:挂载目录。此目录主要是作为挂载点使用。通常包括系统引导后被挂载的文件系统的挂载点。
  • media:可移动媒体设备,用于挂载可移动设备的临时目录。

文件权限

以普通文件为例,使用 ls -l 命令,可以看到结果的第一列是 -rwxrwxrwx 的形式,其中第一个字符 “-” 表示这个文件为普通文件,它也可以是其他的字符,不同的字符代表不同类型的文件。其后的一串字符表明了该文件的权限。

-rwxrwxrwx  1 datawhale datawhale   3533567 520 13:14  文件名.pdf

1)r 表明该文件具有可读权限,若该位置为 “-” ,则表明文件不可读;

2)w 表明该文件具有写权限,若该位置为 “-” ,则表明文件不可写;

3)x 表明该文件具有可执行权限,若该位置为 “-” ,则表明文件不具有可执行权限;

4)第一个 rwx 表示该文件的所有者对该文件的权限;第二个 rwx 表示该文件所属组对该文件的权限;第三个 rwx 表示其他用户对该文件的权限。

对于目录来说,rwx的意思又不太一样了

r:查看目录下的文件列表

w:删除和创建目录下的文件

x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容

2. 掌握Linux文件和目录管理基本命令

对Linux服务器来讲,图形界面会占用更多的系统资源,而且会安装更多的服务、开放更多的端口,这对服务器的资源耗用,稳定性和安全性都有负面影响,所以用户与Linux系统交互的常用方式是通过命令完成的。

home目录是什么?Linux系统是纯字符界面,用户登录后,要有一个初始登录的位置,这个初始登录位置就称为用户的home,用户在自己的home目录中拥有完整权限。

  • 超级管理员的home目录:/root/
  • 普通用户的home目录:/home/用户名/

命令的基本格式:命令 [选项] [参数]

  1. 命令格式中的[ ]代表可选项,也就是有些命令可以不写选项或者参数,也能执行。

  2. 参数是命令的操作对象,一般是文件、目录、用户和进程等可以作为参数被命令操作。

  3. 命令的选项用于调整命令功能,而命令的参数是这个命令的操作对象。

  4. 命令之后不加选项和参数也能执行,只不过只能执行最基本的功能。

Linux 的命令按照来源方式分为两种:Shell 内置命令外部命令。所谓Shell内置命令,就是Shell自带的命令,这些命令是没有执行文件的;而外部命令就是由程序员单独开发的,是外来命令,所以会有命令的执行文件。Linux中的绝大多数命令是外部命令。

如何理解内置命令?

内置命令在Linux系统启动时就调入内存,是常驻内存的,所以执行效率高。而外部命令是系统的软件功能,用户需要时才从硬盘读入内存。

在这里插入图片描述

  • ls:显示目录下的内容

    1. -a:显示目录下包括隐藏文件在内的所有文件名,即--all

      注:在Linux中以 “.” 开头的文件是隐藏文件,只有通过 “-a” 选项才能查看。

    2. -l:显示文件的详细信息,即--long

      注:显示的信息包括权限、引用计数、所有者、所属组、大小(字节)、文件修改时间、文件名

    3. -d:查看某个目录的详细信息,比如:ls -ld /root/

    4. -h:按照人们习惯的单位显示文件的大小,比如:ls -lh 显示的文件以千字节KB为单位

    5. -i:每个文件都有一个被称为inode的隐藏属性,可以看成系统搜索这个文件的ID,而 “-i” 选项就是用来查看文件的 i 节点号的。从理论上来说,每个文件的inode号都是不一样的。

    6. -t:依照文件最后的修改时间顺序列出文件

  • cd:切换到所在目录,是Shell内置命令

    用法:cd 命令切换目录只需在命令后加目录名称即可,比如:cd /usr/local/src/

    1. ~ :代表用户的home目录
    2. . :代表当前目录,cd .这个命令不会有目录的改变,只是说明 . 代表当前目录
    3. .. :代表当前目录的上一级目录

    注:cd ~ 命令可以快速回到用户的home目录,cd命令直接按回车键也是快速切换到home目录。

  • pwd:查看当前所在目录的路径

  • mkdir:创建空目录

    用法:mkdir [选项] 目录名

    注:我们在建立目录的时候使用的是相对路径,所以这个目录被建立到当前路径下。

    李华同学想建立一个保存电影的目录,执行命令mkdir lh/movie/jp/videos 时报错,这是因为这4个目录都是不存在的,mkdir默认只能在已存在的目录中建立新目录。而如果需要建立一系列的新目录,则需要加入-p选项,递归建立才可以。即:mkdir -p lh/movie/jp/videos

  • rmdir:删除空目录

    用法:rmdir [选项] 目录名

    删除一个名为Test的空目录:rmdir Test

    rmdir命令的作用十分有限,因为只能删除空目录,所以一旦目录中有内容,就会报错。

    递归删除空目录:rmdir -p lh/movie/jp/videos

    说明:这个命令不太常用,无论删除的是文件还是目录,都会使用rm命令。

  • tree:以树形结构显示目录下的文件

    tree命令非常简单,用法也比较单一,就是显示目录树。比如:tree /etc/ 就是将目录 etc 下的文件以树状结构显示出来。


其实计算机的基本操作大多数可以归纳为“增删改查”,文件操作也不例外。只是修改文件数据需要使用文件编辑器,比如常用的Vim编辑器。

文件/文件夹的:创建、删除、移动、剪切、重命名、复制

  • 在某一目录或者路径下创建文件:touch 文件名
    注:如何创建隐藏文件 touch .test02.txt在文件前加上”.”即可

  • 创建文件夹(或目录):mkdir(Make directory)

  • 移除某一目录下的文件:rm (remove的缩写)但不能移除目录。rm 文件名 比如要删除文件100.txt ,则命令是 rm 100.txt

  • 如何移除目录:rm -d 文件夹(或目录)
    在这里插入图片描述
    在这里插入图片描述

可见rm -d dir只能删除空目录,而rm -r dir可以强制性的删除一个目录(不管是非为空).

  • 移动文件到某一目录:mv 文件名 目录名/路径(move的缩写)

    mv 100.txt hubu

这里可以是相对路径,也可以是绝对路径,相当于Windows里面的剪切操作

注:移动不仅仅可以将文件移动到指定的路径或者文件夹下,而且还可以移动文件。
在这里插入图片描述

  • 复制文件到某一目录下:cp(copy的简写)

-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

mv 101.odt . 将101.odt移动到当前的目录下,此时会说重名错误

mv 101.odt ./111.odt

将当前目录下的101.odt文件移动到当前路径,并且进行改名为111.odt.

cp 127.odt ./128.odt

将当前目录下的127.odt文件复制到当前路径,并且进行改名为128.odt,以免出现重名错误.

​ 上面学习了文件路径如何切换、如何显示出某一文件下或者路径下文件的命令之后,又深入完成了一个文件、目录的创建、删除、复制、移动等过程的学习,下面再进一步对创建出来的文件进行文本内容命令的学习。

  • 查看文件内容:cat 文件名

cat -b xx.txt 显示行号,去除空行的行号

cat -n xx.txt 显示行号,包含空行的行号

more xx.txt分页显示文件内容 下一页(空格) 上一页(b) 下一行(Enter)

more命令,一页一页的分屏显示文件的内容。按【q】键可以退出more命令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 搜索文件内容:grep

grep 关键字 文件名 比如:grep Linux 110.txt

在这里插入图片描述

grep -n 定位内容 文件 # 抓取包含关键词内容的行号

比如:grep -n Linux lxl.txt
在这里插入图片描述

→ 反向搜索:grep -v 定位内容 文件 # 去掉包含内容的行,显示其他所有内容

在这里插入图片描述

忽略大小写搜索:grep -i 定位内容 文件

在这里插入图片描述

注:有时候“定位内容”需要使用双引号括起来。上面的参数可以同时使用,比如”-n”标识行号,”-v”表示搜索反向等。
在这里插入图片描述

grep -v “#” lxl.txt

这行命令就输出在文件lxl.txt中,不包括”#”的行和行号。

grep -v ^”#” lxl.txt

grep “#”$ lxl.txt ^x开头的行 x$以x结尾的行

在这里插入图片描述

  • 文件信息的编辑操作 echo 内容

echo xxx > xxx.txt 写入(覆盖)

echo xxx >> xxx.txt 追加(末尾)

在这里插入图片描述

在这里插入图片描述

有关写入文本的编辑操作中,可以把某些命令的输出结果作为输入,加到某些指定的文件中。

在这里插入图片描述
ls > xx.txt ls >> xx.txt ls -lh > xx.txt

注:”>”表示写入(覆盖);”>>”表示在文件末尾(追加)同样可以用的操作,比如:cat file1 > file2 cat file1 >> file2

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值