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系统打下基础。
最后 , 感谢大家的观看!