【Linux 系统篇(一)】入门基础指令详解(一)


大家好,欢迎来到 huangjin007_ 的博客
个人主页:huangjin007_
🔥 文章收录专栏:Linux 内功修炼手册(系统篇)
总会有一些坚持
能从冰封的土地里
培育出十万朵怒放的蔷薇


Linux 系统篇(一) ------ 基础指令详解(一)

文章目录

  • [Linux 系统篇(一) ------ 基础指令详解(一)](#Linux 系统篇(一) —— 基础指令详解(一))
    • [一、初识 Linux 命令行](#一、初识 Linux 命令行)
      • [1.1 界面模式的对比](#1.1 界面模式的对比)
    • 二、文件系统与目录结构
      • [2.1 一切皆文件](#2.1 一切皆文件)
      • [2.2 单根倒置树结构](#2.2 单根倒置树结构)
      • [2.3 相对路径与绝对路径](#2.3 相对路径与绝对路径)
    • 三、基础命令逐项击破
      • [3.1 `pwd` 指令](#3.1 pwd 指令)
      • [3.2 `ls` 指令](#3.2 ls 指令)
      • [3.3 `cd`指令](#3.3 cd指令)
      • [3.4 `touch` 指令](#3.4 touch 指令)
      • [3.5 `mkdir`指令](#3.5 mkdir指令)
      • [3.6 `rmdir` 与 `rm` 指令](#3.6 rmdirrm 指令)
        • [`rmdir` 指令](#rmdir 指令)
        • [`rm` 指令](#rm 指令)
      • [3.7 `cp`指令](#3.7 cp指令)
      • [3.8 `man` 指令](#3.8 man 指令)
    • 四、高效操作技巧
      • [4.1 Tab 键自动补全](#4.1 Tab 键自动补全)
      • [4.2 Ctrl + C 终止命令](#4.2 Ctrl + C 终止命令)
      • [4.3 历史命令的高效调用](#4.3 历史命令的高效调用)
      • [4.4 通配符与基本模式](#4.4 通配符与基本模式)
    • 结语:

一、初识 Linux 命令行

1.1 界面模式的对比

  我们熟悉的 Windows 系统,提供的是图形化用户界面,用鼠标双击、拖拽就能完成大部分操作,直观又友好。而 Linux 虽然现在也有很多漂亮的桌面环境,但它的灵魂一直留存在命令行界面里,服务器上的 Linux 更是几乎只有黑底白字的终端。


二、文件系统与目录结构

2.1 一切皆文件

  如果你只能记住 Linux 的一个设计理念,那一定是"一切皆文件 "。普通文本、图片、可执行程序是文件,这很好理解。但在 Linux 眼中,键盘、鼠标、硬盘、光驱这些硬件设备,也被抽象成文件,存放在 /dev 目录下。甚至系统的某些内核信息、进程状态,也可以通过各种特殊文件去读取和修改。

2.2 单根倒置树结构

  Linux 的文件系统是一棵倒置的树,树根就是根目录 /。所有的文件和目录都直接或间接地挂载在这个根下,没有 Windows 里 C 盘、D 盘的概念 ,所有的存储设备都是通过挂载到一个目录来作为树的一个分支。这种组织方式被称为文件系统层次结构标准,它规定了各个目录应该存放什么样的内容。

我们至少需要熟悉以下几个重要的子目录:

  • /bin:存放最基本的用户命令,比如 lscpcat 等,这些是系统启动和单用户模式都要用到的。
  • /dev:设备文件的大本营,前面说的一切皆文件在这里体现得淋漓尽致。
  • /home:普通用户的家目录所在地。每新建一个用户,系统通常会在 /home 下创建一个与用户名同名的文件夹作为他的私人空间。
  • /etc:系统配置文件集中地。比如修改网络、设置开机启动服务,往往就是改这里的某个文件。
  • /usr:系统软件资源的存放地,大量的用户级应用程序、库文件、文档都在这里。/usr/bin 放的就是更多的用户命令。
  • /root:超级用户(root)的家目录。这个目录比较特殊,不放在 /home 下,因为 root 的权限太大,需要单独保管。

2.3 相对路径与绝对路径

  既然文件系统是一棵树,想要找到一个文件,就必须描述清楚它在树上的哪个位置,这就是路径。路径存在的意义,就是为了唯一地定位一个文件。从树的根开始,沿着树枝一直走到某个节点,这条路线就是绝对路径;而如果从你当前站的位置出发,向前后左右走几步到达目标,那就是相对路径。

  • 绝对路径 :必须从根 / 开始写,比如 /home/alice/文档/笔记.txt。无论当前在哪个目录下,用绝对路径都能准确无误地找到这个文件,它具有唯一性。
  • 相对路径 :不是从 / 开始,而是参照当前工作目录 。比如你当前在 /home/alice 下,想去 文档 目录,直接 cd 文档 就行。相对路径的写法简洁,在终端里随手操作时非常方便。有两个特殊的符号需要牢牢记住:
    • . 代表当前目录。
    • .. 代表上一级目录。

  举个例子,你身处 /home/alice/文档,执行 cd .. 就回到 /home/alice,再执行 cd ../图片 就能去同级下的 图片 目录。这种跳跃对于穿梭目录很有用。

  还有一个和家目录 相关的快捷操作:cdcd ~ 会直接返回到当前用户的家目录~ 就是家目录的简写)。cd - 会跳转到上一次所在的目录,非常实用,它能让你在最近访问的两个目录之间来回切换,极大提升效率。


三、基础命令逐项击破

  在开始之前,需要先说明一个通用的命令行格式:

复制代码
命令名 [选项...] [参数...]

  选项用来调整命令的行为,通常以 - 加一个字母(如 -l)或者 -- 加完整单词(如 --all)的形式出现。参数则是命令要操作的对象,比如文件名、目录名等。方括号 [] 表示这部分可以省略。

3.1 pwd 指令

  如果你在目录树里一顿跳转,忽然忘记自己身在何处,pwd 就是你的指南针。

语法pwd

功能 :在屏幕上打印出你当前所在工作目录的绝对路径。它没有任何常用选项

  当不知道在哪里的时候,敲一下 pwd,立刻就能知道自己在文件系统里的精确位置。

3.2 ls 指令

  ls 可能是你使用频率最高的命令,它用来列出目录里的文件和子目录。如果给一个文件名,它就只显示那个文件的信息。

语法ls [选项] [目录或文件]

比如直接输入 ls,会列出当前目录下的内容(不包含隐藏文件)

ls 的强大之处在于它繁多的选项,下面我们逐一解析。

常用选项详解
  • -a :显示所有 文件,包括以 . 开头的隐藏文件。

  • -l :以长格式 展示文件的详细信息。这是最常用的选项之一,输出包含文件类型与权限、硬链接数、所有者、所属组、文件大小、最近修改时间、文件名。

  • -d :如果你用 ls -l 查看一个目录,它会列出这个目录里面 的文件。但有时候你只想看目录本身的属性(比如它的权限),而不是里面的内容,这时候就要加 -d

其余常用选项的速查表:

选项 功能说明 典型用法/备注
-h -l 搭配,将文件大小显示为易读的 K/M/G 格式 ls -lh
-i 在每个文件名前显示 inode 编号 ls -li,理解硬链接必备
-n 类似 -l,但所有者和所属组用数字 UID/GID 表示 脚本中更可靠
-F 文件名后附加类型标识(*/@ 等),快速分辨文件类型 ls -F
-k 以 KB 为单位显示文件大小(配合 -l 建议用 -h 代替
-s 输出文件占用的文件系统块大小 找大文件:`ls -s
-t 按修改时间从新到旧排序 ls -lt,最新文件排在最前
-r 反向排序 ls -ltr,最老文件排在最后,日志排查常用
-R 递归列出所有子目录的内容 大目录慎用,输出可能极多
-1 强制每行只显示一个文件 适合将输出送给其他命令处理

以上这些选项通常可以任意组合使用,例如:

3.3 cd指令

  有了 pwd 确定位置,ls 观察周围环境,下一步就是移动。cd(change directory)就是你在目录树中移动的命令。

语法cd [目录名]

功能:将当前工作目录切换到指定的目录下。

这里的目录名可以是绝对路径,也可以是相对路径。

  • cd /usr/local/bin → 直接用绝对路径跳过去。

  • cd 文档 → 相对路径,进入当前目录下的"文档"文件夹。

  • cd .. → 回到上一级目录。

  • cd ../.. → 回到上两级,连续点几下就可以快速返回到很高的层级。

  • cdcd ~ → 回到当前用户的家目录,无论你离家多远都能秒回。

  • cd - → 返回你刚刚离开的那个目录,实现两个目录间的来回跳转。这个技巧能节省很多输入路径的时间。

3.4 touch 指令

  touch 这个命令,直译是"触摸",它的主要用途有两个:一是创建一个原本不存在的空文件,二是更新已有文件的访问时间和修改时间。

语法touch [选项]... 文件...

功能:如果文件不存在,则创建一个新的空白普通文件;如果文件已存在,默认会将该文件的访问时间和修改时间更新为当前时间。

常用选项
  • -a:仅修改访问时间(access time)。
  • -m:仅修改修改时间(modification time),不修改访问时间。
  • -c--no-create:不创建任何文件。如果你只想更新时间,但又怕误操作创建了新文件,加 -c 很安全。
知识拓展:Linux 的文件类型认知

  当我们用 touch 创建文件时,默认创建的是普通文件。但 Linux 下的文件类型远不止这一种。这里我们先学习两种,以后再进行补充。

  • -普通文件 (regular file)。包括纯文本、二进制程序、压缩包、图片等,我们用 touch 建的就是这一类。
  • d目录文件(directory)。目录也是文件,是一种特殊文件,里面存放着该目录下文件名与 inode 的对应表。
更进一步:文件的时间

通过 stat 命令,我们可以查看到文件的三个时间戳。

  • Access Time(访问时间,atime) :文件内容最后一次被读取的时间。
  • Modify Time(修改时间,mtime) :文件内容最后一次被修改的时间。编辑保存文件时更新。
  • Change Time(改变时间,ctime) :文件属性(如权限、所有者)或内容最后一次被改变 的时间。注意,修改文件内容同时会引发 ctime 更新,但修改权限只会更新 ctime 而不影响 mtime。

3.5 mkdir指令

语法mkdir [选项] 目录名...

功能 :在当前或指定路径下创建一个新目录。

最常用的选项是:

  • -p :递归创建目录,可以一次性建立多级不存在的目录结构。比如你要创建 a/b/c,但 aa/b 都不存在,直接 mkdir a/b/c 会报错。加上 -p 后,系统会自动把中间缺失的父目录都补上。

3.6 rmdirrm 指令

  创建了目录和文件,总有要删除它们的时候。Linux 提供了 rmdirrm 两个命令,一个只删空目录,一个威力无穷,需要特别小心。

rmdir 指令

语法rmdir [-p] 目录名

功能 :删除一个空的目录。如果目录里还有东西,rmdir 会拒绝执行,以此来保护数据。

  选项 -p:当删除一个子目录后,如果它的父目录也因此变空了,则递归地把父目录也一并删掉。比如 rmdir -p a/b/c,假设 a/b/c 是空的,a/b 也是空的,那么 cba 都会被移除(前提是它们只有这一条路径)。

  由于限制严格,rmdir 安全但用得不多,真正的大杀器是 rm

rm 指令

语法rm [选项] 文件或目录...

功能 :删除文件或目录。它可以直接删除普通文件,也可以通过选项递归删除整个目录。

常用选项:

  • -f :强制删除,不提示任何确认信息,即使文件属性是只读的也会直接删掉。
  • -i :交互模式,在删除每个文件之前都会询问你是否确认。很多系统的 root 账户默认将 rm 别名为 rm -i,就是为了防止手误。
  • -r:递归删除,也就是删除目录以及其下所有文件和子目录。这是删除目录必须加的选项。

最危险的组合

  rm -rf / 或者 rm -rf *。前者会试图删除整个根目录下的一切,后者会清空当前目录的所有内容,而且不会问你"是否确定"。因此,在执行 rm 尤其是带 -rf 时,务必再三确认路径是否正确!

3.7 cp指令

语法cp [选项] 源文件或目录 目标文件或目录

功能:将源文件或目录复制到目标位置。它的行为规则如下:

  • 如果目标是一个目录,源文件会被放进该目录下,并保持原来的名字。

  • 如果同时指定了多个源文件,那么目标必须是一个已存在的目录,这些源文件都会被复制进去。

  • 如果目标是一个文件名(且不存在),则源文件会被复制并重命名成目标名字。

常用选项:

  • -r :递归复制。如果要复制的是整个目录,必须加上这个选项,否则 cp 会跳过目录。
  • -i :覆盖目标文件之前询问用户。如果你不想意外覆盖已有的重要文件,加上 -i 会安全一些。
  • -f:强制复制,即使目标文件已存在也直接覆盖,不做提示。
  • -p (小写):在复制时保留源文件的属性,如修改时间、所有者、权限等。不加 -p 的话,新文件的属主会变成复制者,时间戳也会更新。
  • -v:显示详细的复制过程,可以看到哪些文件被复制了,进度一目了然。

3.8 man 指令

  Linux 的命令那么多,选项又纷繁复杂,人脑不可能全记住。man(manual 的缩写)就是一个随身手册,当你不确定某个命令的用法时,随时可以查阅。

语法man [选项] 命令名

  例如 man ls 就会打开 ls 命令的详细帮助页面,在里面你可以用上下箭头翻阅,按 / 进行搜索,按 q 退出。

手册的章节(sections)

man 手册按内容类型分成了不同的章节,常见的有:

章节 内容
1 普通用户可用的命令
2 系统调用(内核提供给程序的接口)
3 库函数(C 语言标准库等)
4 特殊文件(/dev 下的设备文件等)
5 文件格式与配置文件语法
6 游戏相关的说明
7 杂项,包括一些全局变量、协议等
8 系统管理命令(通常只有 root 能用)

  很多时候,一个名字可能对应多个章节的条目。比如 printf,它既是一个 shell 命令(第 1 章),也是一个 C 标准库函数(第 3 章)。如果你直接 man printf,默认显示第 1 章的内容。如果你想查看 C 库函数版本的 printf,就需要指定章节:man 3 printf

常用选项
  • -k 关键字 :根据关键字搜索手册,相当于从所有手册的简短描述中查找你感兴趣的词。比如 man -k password 可以列出所有与 password 相关的命令和函数。
  • -a :显示所有匹配章节的手册。用 man -a printf,按 q 退出第一章后会继续显示第三章的内容,直到所有章节都浏览完毕。
  • num :直接指定章节号,如 man 2 open 就明确查看系统调用 open 的说明,里面有需要的头文件和参数类型,这对 C 语言编程尤其有用。

  除了 man,很多命令也支持 --help 选项(例如 ls --help)来输出简要帮助信息,虽然不如 man 详细,但胜在快速。两者结合使用,几乎可以解决所有命令用法问题。


四、高效操作技巧

4.1 Tab 键自动补全

  当你输入命令、文件路径或目录名时,只需键入前几个字母,然后按 Tab 键,系统会自动补全。如果有多个匹配项,按两下 Tab 会列出所有候选项。

4.2 Ctrl + C 终止命令

  当你发现一个命令执行时间太长、或者输错了不想再继续,按 Ctrl + C 就可以强行中断它。这是一个安全的"救命键",别和复制粘贴的 Ctrl+C 混淆(终端里的复制通常是 Ctrl+Shift+C)。

4.3 历史命令的高效调用

  • 上下箭头:按 ↑ 显示上一条历史命令,↓ 显示下一条,可以快速翻出刚才用过的指令。
  • Ctrl+R:反向搜索历史命令。按下后,输入模糊的关键字,终端会动态展示匹配的历史命令,找到后回车即可执行。

4.4 通配符与基本模式

  • * 匹配任意多个字符,rm *.txt 删除所有 .txt 文件。
  • [abc] 匹配方括号内任意一个字符,ls [abc]* 列出以 a、b 或 c 开头的文件。

结语:

  今天的内容到这里就结束了,希望你能有所收获~

干货整理到手抖,觉得有用的话,赏个三连回回血?__(:ᗤ」ㄥ)_ _

相关推荐
嵌入式小能手1 小时前
飞凌嵌入式ElfBoard-i2c与从设备通讯编程示例之i2c设备通信编程示例
linux
mounter6251 小时前
现代 Linux 内核中的数据持久化艺术:从回写(Writeback)到多样化写策略
linux·linux kernel·kernel·writeback·writethrough
会飞的小新1 小时前
《深入理解 DDR Memory Margin》系列之第一章:从 DDR 到 Memory Margin——为什么服务器需要进行内存裕量测试?
linux·服务器
治愈系贝壳1 小时前
ARM ---day1
linux·arm开发·学习
汤愈韬1 小时前
KYCA运维认证
运维·服务器·网络
晚风吹长发1 小时前
探索软件测试——用例篇
大数据·linux·服务器·压力测试·测试·测试方法
ZENERGY-众壹2 小时前
50MW分布式VPP接入实战:调度中心要求的1分钟频率如何不卡死API
运维·服务器·分布式·光伏运维
梦想的旅途22 小时前
企业微信API 实现企业微信消息的自动发送?
java·服务器·前端
CHANG_THE_WORLD2 小时前
Linux C 多线程 TCP 并发服务器:从 `accept()` 到资源管理深度剖析
linux·服务器·c语言