初学 Linux 必知必会的 X 个知识点

news2024/11/25 0:38:01

文章目录

  • 一、Linux 系统与 Windows 系统的差别
  • 二、Linux 命令行初识
    • 1. 终端界面
    • 2. 路径的含义
    • 3. 命令结构说明
    • 4. 常见的 Linux 命令
      • 4-1. 文件和目录操作
      • 4-2. 网络相关命令
    • 5. 使用命令行时的小技巧
      • 5-1. 使用 `TAB` 键补全
      • 5-2. 巧用通配符 `*`
      • 5-3. 命令行历史功能
  • 三、文件的详细信息
  • 四、Linux 系统根目录各文件夹的含义

对于刚开始接触嵌入式 Linux 的小伙伴来说,Linux 操作系统的强大和复杂性可能会让人感到有些望而却步。然而,掌握一些基本的知识点和常用命令,可以大大提高学习和使用 Linux 的效率,使你更快地适应这个广泛应用于嵌入式系统的操作平台。

本文将结合我个人学习 Linux 系统编程和驱动开发时的个人心得,介绍学习嵌入式 Linux 时必知必会的 X 个知识点,帮助刚刚接触 Linux 系统的萌新小伙伴,快速熟悉 Linux 系统。

一、Linux 系统与 Windows 系统的差别

大多数小伙伴在接触 Linux 系统之前,在 PC 端用过的操作系统基本都是 Windows 系统。根据市调机构 Statcounter 公布的最新统计报告,使用 Windous 系统的 PC 端占全球所有 PC 端的 72.81%,而使用 Linux 系统作为自己电脑操作系统的只有 4.05%。

在这里插入图片描述

可见,Linux 系统市占率也说明了大部分人的时候是接触不到 Linux 系统的(其实也有,主要体现在移动端的 Android 系统,不过与 Linux 还是有些区别)。当然,这并不会影响我们学习 Linux 系统,我们可以通过类比 Windows 系统的办法来学习 Linux 系统。

那么 Linux 系统与 Windows 系统到底有什么差别呢?

讨论 Linux 系统与 Windows 系统之间的主要差别,可以从多个角度来分析,包括设计理念、架构、用户界面等方面。当然,这些对于还没正式学习 Linux 系统开发的萌新来说都不是最重要的。

以嵌入式领域最常见的 Ubuntu 系统为例,从我个人初学 Linux 的角度来看,最大的不同在于目录(这里说的目录,其实是指文件夹)。对于 Windows 系统来说,打开 “我的电脑” 或 “此电脑”,看到的不同盘符。而 Linux 系统没有盘符的概念,以树状结构表示文件夹与文件。

在这里插入图片描述

[!NOTE]

如果你用过 Android 手机,你会发现 Ubuntu 系统的界面跟 Android 系统出奇的相似,主要这两个操作系统的内核都是 Linux 内核,在 Android 系统的手机也没有分盘符的情况。

在 Windows 系统下,文件或文件夹的路径从盘符开始,比如:“C:\XXX\XXX\hello.txt”,这是在 C 盘的 XXX 目录下,有 XXX 子目录,而 XXX 中有 hello.txt 这个文件。从路径就可以知道,文件在哪个分区。

在 Linux 系统下,文件或文件夹的路径从根目录开始,比如:“/XXX/XXX/hello.txt”(注意斜杠的方向,Windows 系统用的正斜杠(\),Linux 用的是反斜杠(/)),这表示在根目录下有 XXX 子目录,而 XXX 下又有 XXX 目录,XXX 中有 hello.txt 文件。从路径上是无法得知文件在磁盘的哪个分区。

主要对于普通用户来说,使用 Linux 系统是不需要关心分区、盘符等问题的,我们只需要知道哪个目录存放什么就可以了。

另一个差别就是,学习 Linux 系统编程基本不用图形界面,用的全是命令行终端。这对于使用惯图形界面的 Windows 用户来说,需要一定时间适应。

一般情况下,Linux 同一版本的发行版都会有 Desktop 和 Server 两个版本。Server 版本是没有图形界面的,相较于带有图形界面的 Desktop 版本而言,Server 版本系统安装包都小非常多。Server 版本主要用在服务器或者一些不需要显示器的嵌入式设备上,没有图形界面的操作系统,就只能纯靠命令行的方式操作了。而 Desktop 版本的系统,不仅有图形界面,还保留了命令行的操作方式。

那么,Linux 系统的开发者为什么偏爱命令行,而不使用图形界面呢?

并不是因为有些设备和服务器没有图形界面,才使 Linux 系统的开发者才不得不使用命令行(虽然这也是原因之一,但不是最主要的),而是命令行有其独特的优点,主要集中在效率、精确和灵活性上。

首先是效率和速度,命令行操作往往比图形界面更快,因为命令行不需要加载额外的图形界面组件,消耗更少的系统资源。对于批量处理任务和脚本编写,命令行提供了强大的自动化能力,可以高效地完成大量重复工作。如果是通过 SSH 等协议进行远程管理时,即使设备有图形界面,开发者依然会使用命令行操作,图形界面太消耗系统资源了。

其次是精确控制,命令行允许用户对系统进行非常细致的控制,可以执行复杂的操作,如文件系统管理、进程监控、网络配置等。图形界面通常提供的是更通用的用户界面,而命令行可以调用底层系统功能,实现更深入的系统管理。

最后是可移植性和灵活性,命令行工具通常具有更好的跨平台兼容性,可以在不同类型的系统上运行。命令行程序的输出可以很容易地被其他程序读取和解析,方便数据处理和脚本编写。

另外,对于系统管理员和技术人员来说,掌握命令行是基本技能之一,它可以帮助他们更好地理解系统内部运作。学习命令行可以提高解决问题的能力,因为很多系统日志和错误信息都是文本形式,通过命令行阅读和分析更加直接。

二、Linux 命令行初识

第一次接触命令行,一定会有很多东西不知道是什么意思,下面将以 Ubuntu22.04 为例,说明命令行界面、各种路径的含义和常用的命令。

1. 终端界面

进入 Linux 系统后,可以通过按组合快捷键 Ctrl + Alt + t 打开终端。

[!NOTE]

打开终端的方法还有很多,可以用鼠标点击界面的左下角的 Show Applications,找到并点击 Terminal 打开终端。不过,摆脱鼠标是学习 Linux 的第一步,还是推荐使用快捷键。

打开后的终端如下图:

在这里插入图片描述

[!NOTE]

普通用户和 root 用户有什么区别呢?

普通用户和 root 用户在权限级别、安全性、系统操作和系统管理方面存在显著区别。普通用户拥有有限的权限,有助于保护系统的安全性,而 root 用户拥有最高权限,可以进行任何系统级操作,但需谨慎使用,以避免误操作导致的严重后果。理解这些区别有助于在 Linux 系统中合理分配和使用权限,确保系统的稳定和安全。

2. 路径的含义

相信很多萌新第一次听到什么绝对路径、相对路径、家目录等新名词都不知是什么意思,下面就盘点几个常见的路径含义:

  1. 绝对路径(Absolute Path):绝对路径是从根目录(/)开始,指向一个文件或目录的完整路径。它始终以根目录符号/开头。例如:/home/user/documents/file.txt,这个路径指向 root 目录下的 home 目录中的 user 目录,再到 documents 目录,最后到 file.txt 文件。

  2. 相对路径(Relative Path):相对路径是从当前工作目录开始,指向一个文件或目录的路径。它不以/开头,而是根据当前所在的目录进行导航。例如:如果当前工作目录是 /home/user,那么 ./documents/file.txt 是相对路径,其中的 . 就是当前目录的意思,指向 /home/user/,整个路径指向 /home/user/documents/file.txt

  3. ~(Tilde):波浪号 ~ 表示当前用户的主目录。例如:~/documents 表示/home/username/documents,其中 username 是当前登录用户的用户名。

  4. /(Slash):斜杠/有两种主要用法:

    • 作为根目录:/ 表示文件系统的根目录,是所有目录的起点。
    • 作为目录分隔符:在路径中用来分隔不同的目录和文件名。

    例如:/home/user/documents 中的除第一个 / 表示根目录之外,后面每一个 / 都用于分隔不同的目录。

  5. .(Dot):前面解释相对路径的时候提到过,一个点 . 表示当前目录。例如:./script.sh 表示当前目录中的 script.sh 文件。. 常用于运行当前目录下的可执行文件或脚本。

  6. ..(Double Dot):两个点 .. 表示上一级目录。例如:../script.sh 表示执行当前目录的上一级目录中的 script.sh 脚本文件。

以更具体的例子说明一下,假设当前工作目录是/home/user

  • 绝对路径/etc/passwd指向根目录下的etc目录中的passwd文件。
  • 相对路径documents/report.txt指向/home/user/documents/report.txt
  • ~~/documents指向/home/user/documents
  • //var/log指向根目录下的var目录中的log目录。
  • ../script.sh指向当前目录/home/user中的script.sh文件。
  • ..../admin指向上一级目录/home中的admin目录。

通过理解这些基本概念,可以更有效地在 Linux 文件系统中导航和操作文件与目录。

3. 命令结构说明

初学 Linux 时,掌握一些常用命令可以更有效地使用和管理系统。在学习 Linux 命令之前,需要了解一下 Linux 命令有哪些部分组成,如下图:

在这里插入图片描述

关于 Linux 命令行的说明有如下几点:

  1. Linux 命令行通常有三部分组成,分别是命令选项参数,三者之间用空格(两两之间的空格没有数量限制)隔开,其中每条命令行的命令通常只有一个,选项和参数可以有多个,多个选项和参数也需要用空格隔开;
  2. 上图中的选项和参数被 [] 包裹,表示这两项不是必需的,如果命令中的选项或者参数被 <> 包裹,则表示必须加上某个选项或某个参数;
  3. 选项前要加上 -,参数不需要;
  4. 输入完整的命令行后,按下回车 Enter 执行命令。

4. 常见的 Linux 命令

4-1. 文件和目录操作

  1. ls - 列出目录内容

    ls
    ls [directory]
    

    ls 命令全称为 list,如下图所示,执行 ls 命令可以列出当前所在目录的文件夹和文件(仅显示可见文件夹和文件,隐藏文件夹和文件不显示),也可以在 ls 命令后加上其他文件夹,将列出该文件夹里的子文件夹和文件。

    在这里插入图片描述

    如果要显示更加详细的信息,可以加上 -l 选项:

    在这里插入图片描述

    如果要显示所有文件夹和文件(包含隐藏文件夹和文件),可以加上 -a 选项:

    在这里插入图片描述

    选项之间也可以组合使用,例如我现在要查看 C_Pro 文件夹的全部文件夹和文件,并且要详细信息,则命令有两种写法,如下:

    ls -a -l C_Pro
    ls -al C_Pro
    

    如下图所示,为两条命令的执行效果,效果完全一致:

    在这里插入图片描述

  2. cd - 改变目录

    cd /path/to/directory  # 切换到指定目录
    cd ~                   # 切换到当前用户的主目录
    cd ..                  # 切换到上一级目录
    

    cd 命令取自 change directory 的首字母,意思是改变目录,在 Linux 命令行中,主要用于切换到其他的目录去。 例如,当前处在主目录上,要进入该目录下的 C_Pro 文件夹,可以执行 cd C_Pro

    在这里插入图片描述

    回到上一级目录可以执行 cd ..,当然,由于 C_Pro 的上一级目录是主目录,也可以单独执行 cd

    在这里插入图片描述

    [!NOTE]

    在任意路径下,直接执行 cd 命令(不带参数),都是直接回到主目录。此外,在任意路径下进入主目录还可以执行 cd ~cd /home/<username>。前面提过,~ 表示主目录,而 /home/<username> 则是以绝对路径的方式进入主目录,其中 <username> 是当前的用户名。

    cd 命令是可以一次性跨过多个目录进入目标目录的。例如,当前处于 C_Pro 目录下,假设要切换到根目录的 tmp,除了执行 cd /tmp,还可以执行 cd ../../../tmp,如下图:

    在这里插入图片描述

    [!NOTE]

    连续三个 .. 都是相对的上一级目录,第一个 .. 表示 C_Pro 上一级,也就是主目录;第二个 .. 是主目录的上一级,即 /home 目录;第三个 ../home 的上一级,即根目录;然后在根目录下找到 tmp 并进入。

  3. pwd - 显示当前工作目录

    pwd
    

    pwd 命令是取自 print working directory 的首字母,用于显示出当前的路径,路径以绝对路径的方式显示。

    在这里插入图片描述

  4. mkdir - 创建目录(创建文件夹)

    mkdir <directory_name>
    mkdir -p /path/to/directory  # 递归创建目录
    

    mkdir 命令全称为 make directory,即创建目录。例如,在当前目录下创建一个 temp 文件夹:

    在这里插入图片描述

    如果创建一个文件夹的同时,再该文件夹里再创建一个子文件夹,则需要加上 -p 选项。例如,创建 abc 文件夹的同时,再 abc 文件夹里还要创建 123 文件夹,则可以执行 mkdir -p abc/123

    在这里插入图片描述

  5. rmdir - 删除空目录

    rmdir directory_name
    

    rmdir 命令全称为 remove directory,即删除目录,但只能删除空目录。例如,前面创建一个 temp 文件夹,该文件夹目前为空文件夹,则可以执行 rmdir temp 删除:

    在这里插入图片描述

    同理,前面递归创建 abc/123/ 文件夹时,加上 -p 选项,删除文件夹及其子文件夹也可以加上这个选项(所有子文件夹都不能有文件):

    在这里插入图片描述

  6. rm - 删除文件或目录

    rm file_name
    rm -r directory_name  # 递归删除目录及其内容
    rm -f file_name       # 强制删除文件
    

    rm 命令全称为 remove,用于删除文件或者目录。例如,删除当前文件夹下的 123.txt 文件:

    在这里插入图片描述

    前面提到的 rmdir 命令,只能删除空文件夹,如果文件夹里其他文件,则是无法删除的。如果要删除整个文件夹(包含里面所有的子文件夹和文件),可以用 rm 命令加上 -r 选项,来进行递归删除:

    在这里插入图片描述

    [!CAUTION]

    rm 命令加上 -rf 选项,经常被人们拿到网上玩梗,经常被人们调侃成跑路神器,也有人拿去逗刚刚学习 Linxu 的新手。尤其是 rm -rf / 是一个危险且具有破坏性的命令,如果你在 Linux 终端执行了 rm -rf / 或者 rm -rf /* 命令,且刚好是 root 用户,则会删除 Linux 根目录下的所有文件,直接导致系统瘫痪,新手不要轻易尝试。

  7. cp - 复制文件或目录

    cp source_file destination_file
    cp -r source_directory destination_directory  # 递归复制目录
    

    cp 命令全称为 copy,用于复制文件或者目录。例如,将当前文件夹下的 color.sh 文件复制到 C_Pro 文件夹中:

    在这里插入图片描述

    使用 cp 命令复制文件时,还可以对复制后的文件进行重命名。例如,我们在写一个贪食蛇小游戏的项目,现在需要在原来的程序上添加一些其他功能,但又不想破坏之前写过的程序,就可以在复制的时候重命名文件。比如,源文件为 snake.c,执行 cp snake.c snake2.c 后,可以得到与 snake.c 内容一样的 snake2.c 文件(前期没学过 git 进行版本控制,新手都是这样玩的):

    在这里插入图片描述

    此外,cp 命令还可以复制文件夹,只需要加上 -r 选项即可。例如,把当前路径的 snake 文件夹在复制一个作为备份,并把备份命名为 snake_bak

    在这里插入图片描述

  8. mv - 移动或重命名文件或目录

    mv old_name new_name
    mv /path/to/source /path/to/destination
    

    mv 命令全称 move,作用是移动文件或文件夹,相当于 Windows 系统中的剪切操作。与剪切不同的是,mv 还可以进行重命名操作。例如,把当前目录下的 baidu 重命名为 a.out

    在这里插入图片描述

    mv 命令还可以移动文件夹。例如,把 snake 文件夹移动到上一级目录的 CPP_Pro 里:

    在这里插入图片描述

  9. touch - 创建文件

    touch <filenanme>
    

    touch 命令本意是 “触碰” 或 “接触”,新手初学时可能也不太明白,创建文件为什么要用 touch 这个单词。其实,touch 命令有两个作用:一是用于修改文件或目录的时间属性,包括存取时间和更改时间;二是建立一个新的文件。前者的前提是文件已经存在,否则作用就是后者。作为新手,只要知道该命令用于创建文件即可。

    例如,在当前目录创建一个名为 a.c 的文件:

    在这里插入图片描述

    如果对已经存在的文件,进行 touch 命令,则是修改时间属性,例如:

    在这里插入图片描述

4-2. 网络相关命令

  1. ping - 测试网络连通性

    ping www.baidu.com
    ping 192.168.0.1
    

    ping 命令一般用于测试网络的连通性,也可以测试同一局域网下,哪些 IP 是否在线。

    在这里插入图片描述

  2. ifconfig - 显示或配置网络接口(现代系统中推荐使用 ip 命令)

    ifconfig
    

    ifconfig 命令不是 Linux 自带的命令,需要通过安装网络工具才可以使用。如果没用安装工具,系统也会提示,如下:

    在这里插入图片描述

    按提示输入对应的命令进行安装即可。

    在这里插入图片描述

    再次输入 ifconfig

    在这里插入图片描述

  3. ip - 显示或配置网络接口

    ip addr show
    ip link show
    

    如果不安装网络工具,也可以查看 IP 地址,执行 ip addr show 即可:

    在这里插入图片描述

5. 使用命令行时的小技巧

5-1. 使用 TAB 键补全

刚刚接触 Linux 系统时,很多新手觉得打命令行很浪费时间,尤其是遇到命令或者文件名很长的时候,要打完全部很麻烦,而且也很容易出错。其实,Linux 系统是自带命令和文件名补全功能的,很多时候是不需要输入完整的命令或者文件名,靠自动补全功能就可以很高效地完成命令的执行了。在 Linux 系统中,使用 TAB 键进行补全是一个非常方便且强大的功能,可以显著提高命令行操作的效率。以下是关于 TAB 键补全的一些详细说明和使用示例:

  1. 文件和目录补全

    当你输入部分文件或目录名称后,按 TAB 键可以自动补全。如果存在多个匹配项,按 TAB 键两次会列出所有可能的补全选项。

    cd /ho<TAB>
    # 自动补全为:
    cd /home/
    

    如果 /home/ 目录下有多个子目录,比如 user1user2,输入 /home/u<TAB> 后会补全至 /home/user ,再次按 TAB 会列出 /home/user1/home/user2

  2. 命令补全

    当你输入部分命令名称后,按 TAB 键可以自动补全。如果存在多个匹配的命令,按 TAB 键两次会列出所有可能的命令。

    sudo apt-g<TAB>
    # 自动补全为:
    sudo apt-get
    

5-2. 巧用通配符 *

在 Linux 命令行中,通配符 *(星号)是一个非常好用的工具,它可以匹配多个字符。巧用通配符可以显著简化文件操作、查找和管理任务。

例如,当前目录为 C_Pro 文件夹,里面混杂着很多文件类型的文件,而现在只需要显示以 .c 结尾的文件时,可以执行:

ls *.c

效果如下图,最终只会显示扩展名为 .c 的文件。

在这里插入图片描述

同样在这个文件夹下,如果我要搜出文件名里带有字母 b 的文件,可以执行下面的命令:

ls *b*

执行结果如下:

在这里插入图片描述

通配符在删除文件名相似的文件时,也非常好用,如下图所示,删除除了 1.c 之外的所有缓存文件。

在这里插入图片描述

关于通配符还有很多用法,这里不一一展示,后面有机会再总结一篇与通配符用法相关的博客。

5-3. 命令行历史功能

除了用 TAB 键补全命令可以提高效率,在 Linux 命令行中,使用命令历史功能也可以极大地提高效率。其中,最基本的操作就是上下键,上箭头键 ( 可以显示之前执行的命令,下箭头键 (:显示之后的命令,通常在使用上箭头键浏览历史记录后使用。翻找历史命令后,可以按回车执行命令。

此外,用双感叹号 !! 也可以再执行一次上一个命令:

在这里插入图片描述

篇幅问题,还有其他使用命令历史功能这里暂时不讲。

三、文件的详细信息

前面提过,执行 ls -l 命令会显示目录内容的详细列表,每行一个文件或目录,并包含多个字段。那么,这些信息到底是什么意思呢?

以下图为例,该命令列出的详细信息大致可分为八个组成部分,下面一一解释这八个部分的具体意思。

在这里插入图片描述

  1. total 行(首行)

    total 表示目录中所有文件和子目录的大小总和。在文件系统中,文件和目录的大小是以块(block)为单位来表示的。一个块通常是 1KB,但也可能是其他大小(如 4KB),这取决于文件系统的配置。

    上图的系统为 Ubuntu22.04 ,其默认使用的文件系统通常是 ext4。在较新的 Linux 发行版和安装过程中,为了优化性能和磁盘空间的利用,ext4 文件系统的默认块大小通常是 4KB(即 4096 字节)。因此,total 68 的含义就是该文件夹占了 68 个块,每个块 4KB,即整个文件夹大小为 68 * 4KB = 272KB。

    不过,我们只能说这个文件占了 68 个块,不能精确地说它占了 272 字节,因为文件系统在存储文件时,会分配一个或多个块给每个文件。

    例如,一个文件大小为 5678 字节,如果一个块大小为 1024 字节,那么这个文件会占用:

    ceil(5678 / 1024) = ceil(5.55) = 6块
    
  2. 文件类型和权限(第 1 列)

    由于文件较多,我只列出其中一部分的第 1 列信息:

    -rw-rw-r--
    drwxrwxr-x
    -rw-rw-r--
    -rwxrwxr-x
    

    可以发现,每行的第 1 列信息都是有 10 个字符,可以分成两部分:第 1 个字符和后面的 9 个字符。

    第 1 个字符表示文件类型:

    • -:普通文件
    • d:目录
    • l:符号链接
    • c:字符设备文件
    • b:块设备文件
    • p:管道文件
    • s:套接字文件

    后面的 9 个字符表示文件权限,每 3 个字符一组,分别表示所有者其他用户的权限:

    • r:读权限

    • w:写权限

    • x:执行权限

    • -:无权限

    • 示例:

      drwxr-xr-x
      
      • d:目录
      • rwx:所有者拥有可读、可写、可执行三个权限
      • r-x:同组的用户拥有可读和可执行的权限,不可写
      • r-x:其他用户拥有可读和可执行的权限,不可写
  3. 硬链接数(第 2 列)

    表示文件或目录的硬链接数量。对于目录,这个数字包括它本身、它的父目录(…)和它包含的每个子目录的父目录(…)。

    对于初学者来说,可以暂时不用在于这个信息。

  4. 所有者(第 3 列)

    表示文件或目录的所有者,即用户名称(user)。以上图中的 grayson 为例,即 grayson 是这个文件或目录的用户。

  5. (第 4 列)

    表示文件或目录所属的组,即组名称(group)。以上图中的 grayson 为例,即 grayson 是这个文件或目录的用户所在的组。

  6. 文件大小(第 5 列)

    表示文件的大小,以字节(B)为单位。对于目录,表示目录内容的大小。

  7. 最后修改时间(第 6 到第 8 列)

    表示文件或目录的最后修改时间,包括月份、日期和时间。年份会显示在较旧的文件中。

  8. 文件名(第 9 列)

    这个没什么好说的,就是文件或目录的名称。

通过理解这些字段的含义,可以更好地管理和操作 Linux 文件系统,也对后续学习 Linux 系统编程更有帮助。

四、Linux 系统根目录各文件夹的含义

在 Linux 系统中,根目录(/)是整个文件系统的起点,也是所有文件和目录的根节点。无论使用的是哪个 Linux 的发行版,根目录下的文件夹结构基本都是相似的,每个文件夹都有其特定的用途和功能。了解这些文件夹的含义和作用,不仅有助于我们更好地使用 Linux 系统,还可以帮助我们解决各种系统问题。

如下图所示,为 Ubuntu22.04 的根目录:

在这里插入图片描述

除开一些 Ubuntu 系统特定的根目录,下面说明一下所有 Linux 发行版共有的根目录文件夹:

  1. /bin

    存放基本用户命令的二进制文件(binaries),这些命令在单用户模式下也可用。例如:lscpmv 等。

  2. /boot

    存放启动引导程序和内核镜像文件。例如:vmlinuz(内核文件)、initrd(初始RAM磁盘文件)等。

  3. /dev

    包含设备文件,这些文件代表系统中的硬件设备。例如:/dev/sda(硬盘设备)、/dev/tty(终端设备)等。

  4. /etc

    存放系统的全局配置文件和子目录。例如:/etc/passwd(用户信息)、/etc/fstab(文件系统表)等。

  5. /home

    用户的主目录,用户的个人文件和配置文件通常存放在此。

  6. /lib

    存放基本系统程序的共享库文件和内核模块。例如:libc.sold-linux.so 等。

  7. /media

    挂载可移动介质的目录,例如:CD-ROM、USB 驱动器等。系统通常会在此目录下创建子目录以挂载这些设备。

  8. /mnt

    临时挂载文件系统的目录。管理员可以在此目录下创建子目录以临时挂载文件系统。

  9. /opt

    用于安装附加的应用程序包。通常用于存放第三方软件或附加软件包。

  10. /proc

    虚拟文件系统,包含内核和进程的信息。例如:/proc/cpuinfo(CPU信息)、/proc/meminfo(内存信息)等。

  11. /root

    超级用户(root用户)的主目录。与普通用户的主目录类似,但具有更高的权限。

  12. /run

    存放系统启动后生成的临时文件和运行时信息。例如:进程ID文件、守护进程的套接字等。

  13. /sbin

    存放系统管理员使用的基本系统管理命令。例如:ifconfigrebootshutdown 等。

  14. /srv

    存放系统提供的服务数据。例如:Web 服务器的数据文件、FTP 服务器的数据文件等。

  15. /sys

    虚拟文件系统,存放设备和内核相关的信息。用于访问系统硬件和内核信息。

  16. /tmp

    存放临时文件,系统重启后该目录中的文件可能会被删除。

  17. /usr

    全称为 Unix Software Resource(不少人一开始误会为 user 的缩写,包括我),存放用户级应用程序和文件。包含多个子目录,例如:

    • /usr/bin:常用用户命令的二进制文件。
    • /usr/sbin:系统管理员使用的二进制文件。
    • /usr/lib:共享库文件。
    • /usr/share:共享数据文件。
    • /usr/local:本地安装的软件和文件。
  18. /var

    存放可变数据文件,例如日志文件、邮件存储、缓存文件等。例如:

    • /var/log:系统日志文件。
    • /var/mail:用户邮件。
    • /var/cache:应用程序缓存文件。

通过理解这些目录的含义,可以更好地管理和操作 Linux 系统,提高系统维护和故障排除的效率。当然对于新手来说,不管是学习 Linux 系统编程,还是 Linux驱动开发都有很大的帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1939132.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码:前端与数据库交互的登陆界面

<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>登录</title> </head> <body>…

flutter 充电气泡

前言&#xff1a; 之前一直看到 有手机充电的时候 有气泡从Type-C 的位置冒泡上来 慢慢上移&#xff0c; 然后和上面的圆圈 会和&#xff0c;感觉还是挺好看的。今天试了下用 Flutter 实现了一版本。大致效果如下&#xff0c;而且气泡 和 气泡直接还可以粘黏 实现原理&#xff…

U盘数据误删如何恢复?

问&#xff1a;U盘数据误删如何恢复&#xff1f; 答&#xff1a; 1.若出现U盘中的文件被误删后第一步&#xff1a;不进行任何写入操作&#xff08;向U盘中复制或移动文件&#xff09;&#xff0c; 接着直接拔掉U盘。 2.在电脑上下载数据恢复软件&#xff0c;给大家推荐一个数据…

stm32学习:(寄存器2)GPIO总体说明

目录 GPIO的主要特点 GPIO的8种工作模式 GPIO电路结构 GPIO输出模式 输出流程 复用输出模式 GPIO输入模式 输入流程 模拟输入流程 GPIO相关的7个寄存器 GPIOx_CRL GPIOx_CRH GPIOx_IDR GPIOx_ODR GPIOx_BSRR GPIOx_BRR GPIOx_LCKR 实例 三个灯流水灯 main.…

0305-0308TTL逻辑门电路

逻辑门电路-逻辑描述中的问题 3.5TTL逻辑门电路3.5.1BJT的开关特性BJT的开关时间 3.5.2TTL反相器的基本电路1.电路组成2.TTL反相器的工作原理 3.5.3改进型TTL门电路-抗饱和TTL门电路1.抗饱和TTL门电路2.其他TTL门电路 3.7逻辑描述中的几个问题3.7.1正负逻辑问题3.7.2 基本逻辑门…

VirtualBox安装增强功能时报错:未能加载虚拟光盘VBoxGuestAdditions.iso 到虚拟电脑

VirtualBox安装增强功能时报错&#xff1a;未能加载虚拟光盘VBoxGuestAdditions.iso 到虚拟电脑 选中一个虚拟机 进入设置点击存储 再点击光盘样子的加号进入后就可以选择 添加 选中双击就好&#xff0c;我已经添加过了 所以我的会在上面 选中一个虚拟机 进入设置 点击存储 再点…

基于单片机的智能窗帘系统设计

【 摘 要 】 随着物联网技术的发展,智能家居越来越受到业界的关注,针对目前市场上智能窗帘的弊端,设计了一款基于单片机的智能窗帘 。 普遍窗帘需要手工进行控制,遥控窗帘通常需要远程控制,智能窗帘与之相比,可以实现自主控制。 系统前端探测器采用光敏传感器,对光线进行…

小程序中视频课程下载工具使用教程,一键下载小程序中的视频课程!

前言&#xff1a; 现代随着知识付费时代的发展&#xff0c;我们很多视频课程或需要学习的资料是保存在小程序当中的&#xff0c;但是现在很多小程序它是禁止让我们下载我们所观看到的视频课程的&#xff0c;这就给我们带来了很多不方便。今天我就教大家如何一键下载小程序中的…

python实现图像对比度增强算法

python实现直方图均衡化、自适应直方图均衡化、连接组件标记算法 1.直方图均衡化算法详解算法步骤公式Python 实现详细解释优缺点 2.自适应直方图均衡化算法详解算法步骤公式Python 实现详细解释优缺点 3.连接组件标记算法详解算法步骤8连通与4连通公式Python 实现详细解释优缺…

Qt 使用Installer Framework制作安装包

Qt 使用Installer Framework制作安装包 引言一、下载安装 Qt Installer Framework二、简单使用2.1 创建目录结构 (文件夹结构)2.2 制作程序压缩包2.3 制作程序安装包 引言 Qt Installer Framework (安装程序框架)是一个强大的工具集&#xff0c;用于创建自定义的在线和离线安装…

DP-适配器模式代码重新理解

package com.designpatterns.adapter;/*** 定义鸭子接口*/ public interface Duck {/*** 定义鸭子呱呱叫(quack)*/public void quack();public void fly(); }package com.designpatterns.adapter;/*** 实现一个绿头鸭*/ public class MallarDuck implements Duck{Overridepubl…

德国汉堡大学、清华大学联合英国布里斯托机器人实验室的研究工作分享:基于视觉遥操作的多指机械手灵巧操作

德国汉堡大学&#xff08;张建伟院士团队&#xff09;、清华大学&#xff08;孙富春教授和方斌&#xff09;联合英国布里斯托机器人实验室等单位在基于视觉信息遥操作的多指机械手灵巧操作研究方面取得进展。该工作得到了德国科学基金会&#xff08;DFG&#xff09;与中国国家自…

C++合作开发项目:美术馆1.0

快乐星空MakerZINCFFO 合作入口&#xff1a;CM工作室 效果图&#xff1a; 代码&#xff1a; &#xff08;还有几个音乐&#xff01;&#xff09; main.cpp #include <bits/stdc.h> #include <windows.h> #include <conio.h> #include <time.h> #in…

E16.【C语言】练习:输入一个正的整数,逆序打印这个整数的每一位

输入一个正的整数&#xff0c;逆序打印这个整数的每一位 输入&#xff1a;123 输出&#xff1a;321 步骤&#xff1a;1.取出整数的每一位 2.倒序打印 分析&#xff1a;123%103-->123/1012(3被去除了)-->12%102-->12/101(2被去除了)-->1%101(取出最后一位)->…

Michael.W基于Foundry精读Openzeppelin第66期——ProxyAdmin.sol

Michael.W基于Foundry精读Openzeppelin第66期——ProxyAdmin.sol 0. 版本0.1 ProxyAdmin.sol 1. 目标合约2. 代码精读2.1 getProxyImplementation(ITransparentUpgradeableProxy proxy)2.2 getProxyAdmin(ITransparentUpgradeableProxy proxy) && changeProxyAdmin(ITr…

【计算机网络】0 课程主要内容(自顶向下方法,中科大郑烇、杨坚)(待)

1 教学目标 掌握计算机网络 基本概念 工作原理 常用技术 为将来学习、应用和研究计算机网络打下坚实基础 2 课程主要内容 1 计算机网络和互联网2 应用层3 传输层4 网络层&#xff1a;数据平面5 网络层&#xff1a;控制平面6 数据链路层和局域网7 网络安全8 无线和移动网络9 多…

C2W1.LAB.Vocabulary Creation+Candidates from String Edits

理论课&#xff1a;C2W1.Auto-correct 文章目录 Vocabulary CreationImports and DataPreprocessingCreate Vocabulary法1.集合法法2.词典加词频法Visualization Ungraded Exercise Candidates from String EditsImports and DataSplitsDelete Edit Ungraded Exercise 理论课&…

Linux_实现线程池

目录 1、线程池的实现逻辑 2、创建多线程 3、对线程池分配任务 3.1 任务类 3.2 发送与接收任务 结语 前言&#xff1a; 在Linux下实现一个线程池&#xff0c;线程池就是创建多个线程&#xff0c;然后对这些线程进行管理&#xff0c;并且可以发放任务给到线程池…

【springboot】中使用--WebMvcConfigurer

WebMvcConfigurer 一、页面跳转控制器step1:创建视图&#xff0c;resources/templates/index.htmlstep2:创建SpringMVC配置类step3:测试功能 二、数据格式化step1:创建 DeviceInfo 数据类step2&#xff1a;自定义 Formatterstep3: 登记自定义的 DeviceFormatterstep4: 新建 Con…

杭州外贸网站建设 最好用wordpress模板来搭建

防护服wordpress外贸网站模板 消防服、防尘服、隔热服、防化服、防静电服、电焊服wordpress外贸网站模板。 https://www.jianzhanpress.com/?p4116 工业品wordpress外贸网站模板 机械及行业设备、五金工具、安全防护、包装、钢铁、纺织皮革等工业品wordpress外贸网站模板。…