当前位置: 首页 > news >正文

Linux---初始Linux及其基本指令

1. 认识Linux操作系统

1.1 什么是Linux?

  • Linux 是一种基于 Unix 设计思想的 , 自由且开放源代码的操作系统 , 其核心是由 Linus Torvalds 于 1991 年开发的 Linux 内核 , 通常与GNU项目提供的工具集(如编译器 , Shell 等)结合 , 形成完整可用的操作系统。
  • Linux 并非凭空诞生 , 而是源于计算机爱好者对“自由软件”的追求 , 其核心是 Linus Torvalds (林纳斯-托瓦兹)开发的操作系统内核 , 后与 GNU 项目的大量工具结合 , 形成了如今广泛使用的 Linux 操作系统生态。
  • 纵观Linux 的发展史 ,它 是“自由软件思想”与“技术创新”结合的典范:它始于一个学生的“个人学习项目” , 依托 GNU 项目的自由软件生态 , 凭借全球开发者的协作 , 从一个简陋的内核成长为支撑互联网、移动设备、云计算的核心技术。其核心魅力在于开放与协作——任何人都可参与其中 , 既是使用者 , 也能成为贡献者 , 这也是 Linux 历经 30 余年仍保持强大生命力的根本原因。

1.2 Linux的特点

  • 1. 开源免费:其源代码完全公开 , 任何人可自由查看 , 修改和传播 , 且无需支付许可费用 , 这是它与 Windows , macOS 等商业操作系统的核心区别。
  • 2. 多场景适配:它不仅是程序员常用的开发系统 , 更支撑着全球大部分服务器(如网站、云计算平台) , 嵌入式设备(如路由器、智能电视)和移动设备(Android 系统基于 Linux 内核)。
  • 3. 稳定且灵活:具有极高的稳定性和安全性 , 同时可根据需求灵活定制(小到嵌入式芯片 , 大到超级计算机都能运行) , 这使其在专业领域和企业级应用中占据重要地位。

1.3 学习Linux的意义

1. 构建底层技术认知,提升核心竞争力

  • Linux 是理解计算机系统底层逻辑(硬件管理、进程调度、内存机制、网络协议)的“最佳实践载体”。其开源特性允许用户直接查看、分析内核与系统代码 , 能深入掌握操作系统的工作原理 , 而这是闭源系统(如 Windows)无法提供的。这种底层认知是区分“普通使用者”与“技术深耕者”的关键 , 可大幅提升解决复杂技术问题的能力。

2. 适配主流技术生态,拓宽职业赛道
当前 IT 核心领域几乎被 Linux 主导 , 学习它是进入相关行业的“必备门槛”:

  • 服务器与云计算:全球超 90% 的服务器(如网站 , 电商后台) , 100% 的顶级超算 , 主流云平台(AWS、阿里云等)均基于 Linux 构建 , 运维、云计算工程师必须精通 Linux 操作与管理。
  • 开发与编程:后端开发(Java、Python、Go 等) , 嵌入式开发(智能设备、汽车电子) , 大数据与 AI(Hadoop、TensorFlow 等)的主流开发环境和部署平台均为 Linux , 掌握它能显著提升开发效率。
  • 网络与安全:网络设备(路由器、防火墙)的操作系统多基于 Linux 定制 , 网络安全领域的渗透测试 , 漏洞分析工具(如 Kali Linux 生态)也以 Linux 为基础。

3. 满足多样化场景需求,降低使用成本

  • 企业场景:Linux 稳定、安全、免费的特性 , 能帮助企业减少系统授权费用 , 同时保障服务器 7x24 小时稳定运行 , 降低运维成本与故障风险。
  • 个人场景:可用于老旧设备“焕新”(轻量版 Linux 对硬件要求低) , 搭建个人服务器(如家庭影音中心、文件存储) , 或通过开源软件实现办公、编程、设计等全流程免费使用 , 摆脱对商业软件的依赖。

2. 了解基本指令

Linux 基本指令的核心作用 , 是作为用户与操作系统内核交互的“桥梁” , 通过简洁的命令行输入 , 高效完成 文件管理、系统监控、权限控制、软件操作 等所有核心任务 , 无需依赖图形界面。

下面我们先来学习Linux的8个最基本的指令:

1. pwd指令 

pwd 是 Print Working Directory(打印工作目录)的缩写 , 是 Linux 中最基础、最常用的指令之一 , 核心作用是精准输出用户当前在系统文件目录树中所处的绝对路径 , 帮助用户明确自身操作位置 , 避免因目录切换导致的操作失误。

核心功能与本质:

  • 核心功能:告诉用户“现在正在哪个文件夹里”。
  • 本质:Linux 系统中 , 所有文件和目录都以“根目录( / )”为起点 , 形成一棵层级目录树。pwd 指令会从根目录开始 , 逐层列出当前目录的所有上级目录 , 最终拼接成完整的“绝对路径”并输出。

基本用法直接输入 pwd 并回车

上图是小编在腾讯云的 CentOS 系统(通过 Xshell 工具连接)中 , 以 root (系统超级管理员)身份执行了 pwd  指令 , 结果显示当前所在的目录是  /root

  • [root@VM-16-7-centos ~]# :这是命令行提示符 , 包含了关键信息:
  • root :表示当前登录的用户是系统超级管理员(拥有最高权限 , 可对系统做任意操作)。
  • VM-16-7-centos :是这台服务器(虚拟机)的主机名 , 用于标识机器。
  • ~ :是“家目录”的简写 , root 用户的家目录就是  /root , 所以这里的 ~ 等价于  /root 。
  • # :表示当前用户是超级管理员(如果是普通用户 , 提示符末尾是 $ )。
  • pwd :你输入的指令 , 作用是“打印当前工作目录的绝对路径”。
  • /root :pwd 指令的输出结果 , 说明你现在正处在 root 用户的家目录下。

 简单来说 , 这条操作就是“以管理员身份 , 查看当前所在的文件夹位置 , 结果显示在  /root  目录”。

2. whoami指令

whoami 也是 Linux 中的一个基础指令 , 作用是显示当前登录的用户名 , 能快速让你知道“现在是以哪个用户身份在操作系统”。

  • 如果你当前以  root (超级管理员)身份登录 , 执行  whoami ,终端会输出:root
  • 如果你当前以普通用户(比如用户名为 user1 )身份登录 , 执行  whoami , 终端会输出:user1

与 pwd 的区别:
pwd 是“显示当前所在的目录路径” (比如你在  /home/user1/Documents  目录下 , pwd 就输出这个路径);而 whoami 是“显示当前登录的用户是谁” , 二者一个关注“位置” , 一个关注“身份”。

3. mkdir指令

mkdir 是 make directory 的缩写 , 是 Linux 和类 Unix 系统中用于 创建目录(文件夹) 的核心命令。通过它 , 你可以在指定路径下生成空的目录 , 为文件分类存储 , 项目结构搭建等提供基础。

4. ls指令

ls 是 Linux 系统中用于列出目录内容的指令 , 英文全称为“list” 。通过该指令 , 用户能快速查看指定目录下包含的文件和子目录信息。 


第一条指令:mkdir dira 

这条指令的效果:在当前 root 工作目录下 , 新建一个名为  dira  的空目录。

第二条指令:ls 

你成功创建了  dira  目录 , 且通过  ls  验证了它的存在。


总结:
这两步操作的逻辑是:先通过  mkdir  新建目录  dira , 再通过  ls  确认目录是否创建成功——是“创建 + 验证”的典型流程

5. cd指令

cd 是 Linux 和类 Unix 系统中用于切换工作目录的指令 , 英文全称是“change directory” 。通过使用 cd  指令 , 用户能够在系统的不同目录之间进行切换 , 方便对不同位置的文件和目录进行操作

第一条指令:cd dira 
效果:将当前工作目录切换到  dira  目录中
第二条指令:pwd 
经过  cd dira  后,当前已经成功进入到  /root  目录下的  dira  子目录中

总结:
这两行命令的逻辑是:先通过  cd  进入  dira  目录 , 再通过  pwd  验证当前所在的具体路径,是“切换目录 + 验证路径”的典型操作

6. touch指令

touch  是 Linux 和类 Unix 系统中一个常用的指令 , 主要用于创建空文件 , 同时也具备更新文件时间戳等功能。

第一条指令:touch code.c 
效果:在当前目录( dira 目录)下 , 创建一个空的  code.c  文件。
第二条指令:ls 
ls  是 Linux 中用于“列出当前目录内容”的指令。
经过  touch code.c  后 , code.c  文件已经成功在  dira  目录中创建 , 且通过  ls  验证了它的存在。

总结:
这两行命令的逻辑是:先通过  touch  创建空文件  code.c ,再通过  ls  确认文件是否创建成功,是“创建文件 + 验证文件”的典型操作

7. clear指令

在Linux和类Unix系统中 ,  clear 指令是一个简单且常用的指令 , 用于清空当前终端屏幕上显示的内容 , 它能帮助用户更清晰地查看后续的输出信息

8.rm指令

rm 是Linux和类Unix系统中用于删除文件或目录的指令 , 英文全称是“remove” 。使用 rm 指令可以高效地清理不再需要的文件和目录 , 但由于删除操作具有不可逆性 , 使用时需格外谨慎

  • 首先执行 rm code.c , 这是  remove (删除)指令 , 用于删除名为  code.c  的文件。系统提示“ rm: remove regular empty file 'code.c'? ” , 询问是否删除这个常规空文件 , 输入  y  确认删除
  • 接着执行 ls (list , 列出目录内容)指令 , 此时没有输出内容 , 说明  code.c  文件已被成功删除 , 当前目录( /root/dira , 可通过后续  pwd  指令得知)下没有其他可见文件。
  • 最后执行 pwd (print working directory , 打印当前工作目录)指令 , 输出  /root/dira , 表明当前所在的目录是  /root  下的  dira  目录。

3. 细化每条指令

在Linux和类Unix系统中 , 指令通常由命令名、选项和参数这三个部分组成 , 不过实际使用中 , 并非每次输入指令都要包含这三个部分。

1. 命令名

  • 定义命令名是指令的核心部分 , 它指定了要执行的具体操作 , 本质上是对应可执行程序的名称。比如 ls (list的缩写)指令对应用于列出目录内容的程序 , cd (change directory的缩写)指令对应用于切换工作目录的程序。
  • 特点:命令名是必须存在的 , 且输入时要准确无误 , 因为Linux系统对大小写敏感 , Ls 和 ls 被视为不同的命令 , 前者会因找不到对应程序而报错。

2. 选项

  • 定义选项用于调整命令的行为 , 对命令的功能进行扩展或修改。选项通常以短横线  -  或双短横线  --  开头 , 短横线后跟单个字符(如  -l  ) , 双短横线后一般跟完整的英文单词(如  --all )。 例如  ls -l  中的  -l , l  是选项字符 , 代表以长格式显示文件和目录的详细信息; ls --all 中的 --all , 表示显示所有文件 , 包括隐藏文件。
  • 特点选项是可选的 , 不添加选项时 , 命令会执行其默认功能。而且 , 多个短横线开头的单字符选项可以合并使用 , 比如 ls -al 等价于 ls -a -l , 分别表示同时使用显示所有文件( -a )和以长格式显示( -l )这两个功能。

3. 参数

  • 定义参数是命令操作的对象 , 比如文件、目录等。以  rm file.txt  为例 , file.txt  就是  rm  命令操作的参数 , 表示要删除的文件;cd /home/user  中 , /home/user  是  cd  命令的参数 , 表示要切换到的目标目录。
  • 特点参数有的时候是必须的 , 如  rm  指令必须要指定要删除的文件或目录;但有的命令也可以不需要参数 , 例如  clear  指令 , 执行时不需要额外指定操作对象就能清空终端屏幕。

我们之前先大概的讲了一下这8个指令的基本功能 , 使对Linux的基本指令有了清晰的认知 , 现在小编将结合每一条指令的选项细化每一条指令。

1. ls指令

首先对于ls指令来说:

 选项1 : -l   (ls -l):

作用:以长格式显示文件和目录的详细信息 , 包括文件类型与权限、硬链接数、所有者、所属组、文件大小、修改时间以及文件名。

第一条指令:pwd 

  • 输出  /root/dira ,说明:当前所在的目录是  /root  下的  dira  子目录。

第二条指令:ls -l 

  •  -l  是  ls  的选项 , 代表“以长格式显示(包含权限、所有者、大小、修改时间等详细信息)”。
  • 输出 total 0 , 说明当前  dira  目录下没有任何文件或目录( total 0  表示目录内所有文件的总大小为 0 , 因为空目录里没有内容)。

第三条指令:cd /root 

  • cd  是 change directory 的缩写 , 作用是“切换工作目录”。
  • 效果:将当前工作目录从  dira  切换到  /root  目录。

 第四条指令:ls -l 

  • total 4 :表示当前目录下所有文件/目录的总大小(以块为单位)为 4。
  • drwxr-xr-x 2 root root 4096 Sep 2 15:27 dira :
  • d :表示这是一个目录(directory)。
  • rwxr-xr-x :是目录的权限(所有者可读、可写、可执行;组用户和其他用户可读、可执行)。
  • 2 :是硬链接数。
  • root root :分别是目录的所有者和所属组。
  • 4096 :是目录的大小(字节)。
  • Sep 2 15:27 :是目录的最后修改时间。
  • dira :是目录名。
选项2 : -a  (ls -a)

选项 -a 表示显示所有文件和目录 , 包括隐藏文件和目录(文件名以 . 开头的文件和目录就是隐藏的)。但它只显示文件和目录的名称 , 不会显示文件大小、权限、所有者、修改时间等其他详细信息 。比如在当前目录下有隐藏文件  .test  和普通文件  file.txt , 执行  ls -a  后,就会同时列出 .test  和  file.txt 。

选项3 : -a -l / -l -a / -al
  •  ls -a -l :
  •  -a  同样是显示所有文件和目录 , 包括隐藏的;-l  选项表示以长格式显示文件和目录的详细信息。
  • 它除了列出文件名外,还会显示文件类型与权限(如 -rw-r--r--  表示普通文件的读写权限情况) , 硬链接数、所有者、所属组、文件大小、最后修改时间等信息。

列出了当前目录(root 用户)下的所有文件和目录 , 包括像 .bash_history 、.cache 等隐藏文件 , 以及 dira  这样的普通目录 , 每一行都详细展示了对应文件或目录的权限、所属用户和组、大小、修改时间等信息。还有一些目录(目录在 Linux 里也以特殊文件形式存在):.cache 、 .config 、dira 、.notseeme 、.pip 、.ssh  , 以及表示当前目录的 .  和上级目录的 ..

2. cd指令

选项1 : ~ (cd ~)

~ : 代表用户的家目录。比如普通用户 test , 执行 cd ~ , 就会切换到 /home/test ;而对于  root  用户 , 执行 cd ~  会切换到  /root  目录。如果直接执行 cd , 不跟任何参数 , 默认效果和  cd ~  一样 , 也是进入用户的家目录。

选项2 : - (cd -)

- : 切换到上一次所在的目录,并显示上一次目录的路径。

首先执行  cd - , 切换到上一次所在的目录(这里是  /root )
接着执行  cd dira , 进入  dira  目录 , 再用  pwd  确认当前在  /root/dira  目录
之后又执行  cd -  , 切换回上一次的  /root  目录 , 再次执行  cd -  , 则切换回  /root/dira  目录 , 体现了  cd -  在两个最近访问目录间来回切换的功能。

选项3 : ..  (cd ..)

..  :代表上级目录。假设你当前在  /home/user/documents/subdir  目录 , 执行  cd..  , 就会切换到  /home/user/documents  目录;如果想继续向上切换一级 , 再执行一次  cd..  , 就会进入到 /home/user 目录。

在Linux中 , Linux的目录结构是树状结构:

多叉树中非叶子节点一般是目录,叶子节点一般是正常的文件或者空目录

怎么找一个文件呢?

方式一:绝对路径

  • 从/开始,只有一种路径,是不会失效的

方式二:相对路径

  • 取决于你所处的当前目录,相对路径可以有多种,容易失效,仅限于当前路径

绝对路径为什么只有一种,而且不容易失效?

  • 因为从根节点到叶子节点只有一条路,每一个节点都有只有一个父亲

基本上,所有的操作系统文件管理,都采用的是树状结构 , 一般绝对路径,我们在配置文件中使用的最多,因为无论配置文件在哪里都是有效的,随便拷贝,绝对路径是不会失效的 , cd 绝对路径或者相对路径我们就可以操作文件或者目录之间的切换了,就相当于我们在windows系统下找文件那样,可以进去,然后也可以退出找其他文件,可以自由切换

为何通过路径能标识唯一的一个文件呢?

  • 多叉树中路径具有唯一性,因为每一个节点只有一个父亲,退回去的路径只有一个

3. mkdir指令

选项1 : -p (mkdir -p)

 -p :可以递归创建目录。如果要创建的目录路径中存在不存在的父目录 , -p 选项会自动创建这些父目录。比如执行 mkdir -p /home/user/dir1/dir2 , 如果 /home/user  目录存在 , 但 /home/user/dir1  和 /home/user/dir1/dir2  都不存在,该命令会先创建 /home/user/dir1 , 再去创建/home/user/dir1/dir2 。

4. tree指令

在Linux系统中 , tree 命令是一个用于以树状结构展示目录结构的工具 , 能直观呈现文件和目录的层级关系 , 方便用户快速了解文件系统布局。

首先用  tree dira  查看  dira  目录 , 显示其为空(0 个目录、0 个文件)。
接着用  mkdir  命令创建  dirb  和  dirc  目录 , 再用  tree /root  查看  /root  目录结构 , 此时能看到  dira 、 dirb 、 dirc  三个目录(3 个目录、0 个文件)。
然后通过  cd dirc  进入  dirc  目录 , 用  touch code.c  创建  code.c  文件 , 最后再次用  tree /root  查看 , 显示  /root  下有 3 个目录、1 个文件( dirc  里的  code.c ) , 清晰呈现了目录和文件的创建及结构变化过程。

5. stat指令

在 Linux 系统中, stat  命令用于显示文件或文件系统的详细状态信息,包括文件的大小、权限、所有者、修改时间、inode 等诸多元数据。

  • Access:进入时间
  • Modify:文件内容修改时间
  • Change:文件改变时间(改文件的属性)

6. rm指令

选项1 : -i (rm -i)

-i  或  --interactive :交互式删除 , 在删除文件或目录之前 , 会逐一询问用户是否确认删除。比如执行  rm -i file1 file2  , 系统会先提示  rm: remove regular file 'file1'? , 输入  y  并回车才会删除 file1 , 接着提示是否删除  file2 。

选项2 : -f  (rm -f)

-f  或  --force :强制删除 , 不询问用户确认。在删除只读文件 ,目录等情况时 , 不会弹出询问提示。例如 , 要删除一个名为  test.txt  的只读文件 , 执行 rm -f test.txt , 系统不会提示权限不足或询问是否真的要删除 , 直接删除文件。但使用这个选项要特别小心 , 因为误删文件后恢复起来比较麻烦。

选项3 : -r  (rm -r)

-r  或  --recursive :递归删除目录及其内容。当要删除一个目录 , 且目录中包含子目录和文件时 , 必须使用这个选项。例如执行  rm -r dir1 , 会删除  dir1  目录以及它下面的所有子目录和文件。若不添加  -r , 直接执行  rm dir1 , 系统会提示  rm: cannot remove 'dir1': Is a directory  , 因为  rm  默认只能删除文件,不能删除目录。

rm -f  和  rm -i  本身默认仅能删除文件 , 无法直接删除文件夹(目录)。

两者的核心区别在于交互方式,与删除对象的“文件/文件夹”属性无关:

  • rm -f :强制删除文件,不弹出确认提示,即使文件是只读的也会直接删除。
  • rm -i :交互式删除文件,删除前会逐一询问是否确认,需输入  y  才会执行删除。 

若要删除文件夹 , 必须搭配  -r , 例如:

  • rm -rf 文件夹名 :强制递归删除整个文件夹及其内部所有文件/子文件夹 , 无确认提示(风险极高,需谨慎)。
  • -rm -ri 文件夹名 :交互式递归删除文件夹 , 删除每个文件/子文件夹前都会询问确认。
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件

4. 总结:

本文介绍了Linux操作系统的基础知识和常用指令。Linux是一种开源免费的操作系统,具有多场景适配、稳定灵活的特点,广泛应用于服务器、嵌入式设备和移动设备。文章详细讲解了8个基础Linux指令的功能和用法:pwd查看当前路径、whoami显示当前用户、mkdir创建目录、ls列出目录内容、cd切换目录、touch创建文件、clear清屏以及rm删除文件/目录。同时深入解析了这些指令的常用选项,如ls的-l(长格式显示)、-a(显示隐藏文件)选项,mkdir的-p(递归创建)选项等。通过学习这些内容,可以掌握Linux的基本操作,为后续深入使用Linux系统打下基础。

最后 , 感谢大家的观看!

http://www.dtcms.com/a/363426.html

相关文章:

  • 02-Media-2-ai_rtsp.py 人脸识别加网络画面RTSP推流演示
  • 【51单片机】【protues仿真】基于51单片机脉搏体温检测仪系统
  • JavaScript》》JS》》ES6》》 数组 自定义属性
  • HTTP发展历程
  • RPC和HTTP的区别?
  • HttpHeadersFilter
  • GPT-Realtime 弹幕TTS API 低延迟集成教程
  • 网络原理——HTTP/HTTPS
  • 【MySQL体系结构详解:一条SQL查询的旅程】
  • 分布式中防止重复消费
  • 计算机视觉与深度学习 | 视觉里程计技术全解析:定义、原理、与SLAM的关系及应用场景
  • STM32之SPI详解
  • Linux《进程信号(上)》
  • mit6.031 2023spring 软件构造 笔记 Specification
  • 【XR硬件系列】Apple Vision Pro 完全解读:苹果为我们定义了怎样的 “空间计算” 未来?
  • springboot项目使用websocket功能,使用了nginx反向代理后连接失败问题解决
  • 集采与反腐双重压力下,医药销售的破局之道:从资源依赖到价值重构
  • DASK shuffle任务图分析
  • 阅读Linux 4.0内核RMAP机制的代码,画出父子进程之间VMA、AVC、anon_vma和page等数据结构之间的关系图。
  • 解密llama.cpp CUDA后端:512 token大模型批处理的异步流水线架构
  • 【llama.cpp】qwen2_vl_surgery.py详解
  • 应用层:HTTP/HTTPS协议
  • 2025年- H109-Lc1493. 删掉一个元素以后全为 1 的最长子数组(双指针)--Java版
  • 软件测试小结(1)
  • 【完整源码+数据集+部署教程】粘土石实例分割系统源码和数据集:改进yolo11-LVMB
  • MVP架构深层剖析-从六大设计原则的实现角度到用依赖注入深度解耦
  • 安全芯片助力游戏设备防抄板
  • 「Windows自动化之王:PowerShell极简美学」​
  • 微信小程序 navigateTo 栈超过多层后会失效
  • 【开题答辩全过程】以 基于微信小程序的体育场馆预约管理系统为例,包含答辩的问题和答案