【Linux04】 Linux基础指令完结与Linux权限初识(一)
Linux基础指令完结与Linux权限初识 Doro在努力个人主页 个人专栏: 《MySQL数据库基础语法》《数据结构》⛺️严于律己宽以待人从命令行到操作系统内核一文打通Linux基础指令的任督二脉引言在Linux学习的道路上基础指令就像是武林高手的内功心法看似平淡无奇实则是后续一切高深技艺的根基。经过前面几节课的积累我们已经掌握了大约40多个常用指令但这仅仅是开始。今天这节课我们将完成基础指令部分的收官之作同时揭开Linux权限系统的神秘面纱理解操作系统内核与Shell外壳之间那层微妙的关系。本文将以课堂实录的形式结合大量实战案例和生动比喻带你深入理解tar打包压缩、SCP远程传输、Shell外壳原理以及Linux用户权限等核心概念。无论你是刚入门的新手还是希望系统梳理知识体系的老手相信都能从中有所收获。目录一、tar命令打包压缩的艺术二、file命令洞察文件本质三、SCP命令跨主机的文件传输四、BC命令命令行下的计算器五、系统信息查看uname的妙用六、效率倍增的快捷键七、关机命令与服务器哲学八、Shell外壳王婆说媒的故事九、Linux权限初识root与普通用户十、总结与展望一、tar命令打包压缩的艺术1.1 为什么需要tar在Linux系统中我们经常需要将多个文件或整个目录打包成一个文件方便传输或备份。想象一下你要搬家是把所有东西一股脑塞进箱子方便还是一件件搬运方便tar命令就是那个箱子它可以把分散的文件打包在一起再配合压缩算法让体积更小、传输更快。tar的名字来源于Tape Archive磁带归档虽然现在磁带已经很少见了但这个命令依然延续着它的使命——将文件归档打包。1.2 打包压缩的黄金公式经过反复演示总结出了一套黄金公式记住这个就够了# 打包压缩记住这个公式tar-czf 压缩包名.tgz 要打包的目录或文件# 解压解包一字之差tar-xzf 压缩包名.tgz这里的选项含义如下-ccreate创建新的压缩包-xextract解压解包和-c正好相反-z使用gzip算法进行压缩-f指定压缩包的文件名必须放在选项最后1.3 实战演示假设我们有一个项目目录lesson5里面包含代码文件和资源目录我们想把它打包压缩# 创建测试目录结构mkdir-p lesson5/src lesson5/docsechohello worldlesson5/hello.cechoREADME contentlesson5/README.md# 打包压缩黄金公式tar-czf lesson5.tgz lesson5# 查看生成的压缩包ls-lh lesson5.tgz解压时同样简单# 创建测试目录并解压mkdirtestcdtesttar-xzf../lesson5.tgz# 查看解压后的内容ls-la lesson5/1.4 显示打包/解压过程有时候我们想看看打包或解压的过程中都处理了哪些文件可以加上-v选项verbose详细模式# 带详细输出的打包tar-cvzf lesson5.tgz lesson5# 带详细输出的解压tar-xvzf lesson5.tgz输出会显示类似这样的内容lesson5/ lesson5/src/ lesson5/docs/ lesson5/hello.c lesson5/README.md不过要注意-v选项虽然方便查看进度但在处理大量文件时会刷屏。老师提到一个有趣的场景如果你解压一个需要一小时的超大压缩包加上-v会让输出疯狂滚动反而影响其他操作。这时候可以考虑静默解压或者把任务放到后台执行。1.5 解压到指定目录默认情况下tar会把文件解压到当前目录。如果想解压到指定位置可以使用-C选项# 解压到/home/user/backup目录tar-xzf lesson5.tgz -C /home/user/backup这个选项在实际工作中非常实用比如你想把压缩包解压到备份目录而不是当前工作目录。1.6 常见压缩格式总结Linux世界中存在多种压缩格式课堂上老师提到了几种常见的后缀名说明解压命令.tgz / .tar.gztargzip压缩tar -xzf.zipzip格式unzip.bz2bzip2压缩tar -xjf给一个重要的建议遇到不认识的压缩格式不要害怕直接把后缀贴出来搜索网上都有对应的解压方法。大部分情况下tar命令配合不同选项都能搞定。二、file命令洞察文件本质2.1 为什么需要file命令在Linux中文件的后缀名只是一个建议并没有强制约束力。你可以把一个文本文件命名为file.exe也可以把一个可执行程序命名为document.txt。那么如何知道一个文件的真实类型呢这就是file命令的用武之地。2.2 file命令实战# 创建一个空文件touchhello.c# 查看文件类型filehello.c# 输出: hello.c: empty# 创建一个目录mkdirmydirfilemydir# 输出: mydir: directory# 查看系统命令的文件类型file/usr/bin/ls# 输出: /usr/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV)从上面的输出可以看到file命令不仅能识别普通文件和目录还能告诉我们可执行程序的系统架构这里是x86-64位。2.3 一个重要的认知课堂上强调了一个重要观点Linux中85%以上的命令都是用C语言编写的二进制可执行程序。file命令可以帮助我们验证这一点# 查看常用命令的本质file/usr/bin/cpfile/usr/bin/mvfile/usr/bin/gcc这些命令本质上都是/usr/bin目录下的二进制文件当我们输入命令时系统实际上就是执行这些程序。三、SCP命令跨主机的文件传输3.1 从本地拷贝到远程拷贝前面的cp命令只能在本地文件系统中复制文件但在实际工作中我们经常需要把文件从一台Linux服务器传输到另一台。比如你有两台云服务器想把A服务器上的配置文件复制到B服务器怎么办SCPSecure Copy Protocol就是解决这个问题的利器。它基于SSH协议可以在两台Linux主机之间安全地传输文件。3.2 SCP基本语法scp源文件 用户名目标主机:目标路径3.3 实战演示假设我们有两台机器本地机器CentOS 7远程机器UbuntuIP地址为192.168.1.100用户名whb要把本地的lesson5.tgz复制到远程机器的/home/whb/目录scplesson5.tgz whb192.168.1.100:/home/whb/执行后会提示输入密码whb192.168.1.100s password:重要细节输入密码时终端不会回显任何字符连星号都没有这是为了安全考虑。你只管输入输完按回车即可。3.4 几个关键细节课堂上老师强调了几个容易踩坑的细节密码不回显输入密码时屏幕没有任何反馈这是正常现象不是卡住了。身份认证SCP需要目标机器的用户名和密码进行认证。就像你去朋友家送东西需要朋友给你钥匙密码才能进门。首次连接确认如果是第一次连接某台机器SCP会询问是否确认连接Are you sure you want to continue connecting (yes/no)?输入yes即可。指定端口如果远程SSH服务不是默认的22端口可以用-P选项指定scp-P2222lesson5.tgz whb192.168.1.100:/home/whb/3.5 SCP与cp的关系老师用一句话总结了二者的关系cp是本地拷贝SCP是远程拷贝。cp能干的SCP都能干只是SCP多了网络传输的能力。记住这一点以后遇到跨主机传输文件的场景就能想到SCP这个工具。四、BC命令命令行下的计算器4.1 为什么需要BC在Linux命令行中有时候我们需要做一些简单的数学计算。虽然可以用Python或者expr但BCBasic Calculator是更轻量、更专业的选择。4.2 BC的基本用法直接输入bc进入交互模式$bcbc1.07.1 Copyright1991-1994,1997,1998,2000,2004,2006,2008,2012-2017 Free Software Foundation, Inc. This isfreesoftware with ABSOLUTELY NO WARRANTY. For detailstypewarranty.11210*90900100*100/2/31666按CtrlD或输入quit退出。4.3 配合管道使用BC最强大的地方在于可以配合管道接收其他命令的输出作为输入# 计算1到100的和echo12345678910|bc# 输出: 55# 更复杂的计算echoscale2; 10/3|bc# 输出: 3.33scale2表示保留两位小数这在需要精确计算的场景非常有用。4.4 课堂小结老师说得很实在“Linux下有计算器知道就行了。真正需要复杂计算的时候我们可能会用Python或者其他工具。但BC作为一个轻量级的命令行计算器在某些场景下还是很方便的。”五、系统信息查看uname的妙用5.1 面试常问的系统信息在面试中面试官经常会问一些系统相关的问题“你的计算机体系结构是什么”“如何查看Linux内核版本”“怎么确定你的Linux发行版”这些问题都可以用uname命令来回答。5.2 uname常用选项# 查看内核版本uname-r# 输出: 3.10.0-1160.el7.x86_64# 查看所有信息uname-a# 输出: Linux localhost 3.10.0-1160.el7.x86_64 #1 SMP ... x86_64 GNU/Linux# 查看体系结构uname-m# 输出: x86_645.3 解读版本号以3.10.0-1160.el7.x86_64为例3主版本号10次版本号0修订号1160构建号el7Enterprise Linux 7表示CentOS/RHEL 7x86_6464位x86架构5.4 查看发行版信息如果想查看具体的Linux发行版如CentOS、Ubuntu等可以查看/etc/os-release文件cat/etc/os-release输出示例CentOS 7NAMECentOS Linux VERSION7 (Core) IDcentos ID_LIKErhel fedora VERSION_ID7 PRETTY_NAMECentOS Linux 7 (Core)5.5 体系结构的概念课堂上老师花了不少时间讲解体系结构这个概念。简单来说体系结构就是CPU的架构类型。x86Intel和AMD的32位处理器架构x86_64或amd6464位扩展版本现在最主流ARM移动设备常用架构手机、平板老师举了一个生动的例子“2020年之前世界上最牛的硬件公司是英特尔。你们学的计算机组成原理里的8086架构就是英特尔的经典产品。后来智能手机时代ARM架构崛起现在手机99%都是ARM处理器。”理解体系结构很重要因为不同架构的软件是不兼容的。32位程序可以在64位系统上运行但反过来不行。六、效率倍增的快捷键6.1 什么是热键热键Hotkey就是键盘快捷键。老师开玩笑说“去你们宿舍看一眼键盘我就知道你喜欢打什么游戏。WASD磨损严重的是FPS玩家QWER磨损的是LOL玩家。”在Linux命令行中掌握快捷键同样能大幅提升效率。6.2 必会的快捷键1. Ctrl C终止当前程序当程序卡住或运行异常时无脑按CtrlC即可终止。# 比如运行一个死循环$whiletrue;doechohaha;donehaha haha haha ^C# 按CtrlC终止2. Ctrl R历史命令搜索Linux会自动记录你输入过的命令默认最近1000条。当想不起某个命令时按CtrlR搜索# 按CtrlR然后输入关键字(reverse-i-search)tar:tar-czf lesson5.tgz lesson5继续按CtrlR会匹配更早的历史命令。3. Ctrl D退出登录在命令行中按CtrlD相当于输入exit会退出当前登录会话。4. Tab键命令补全这是提高效率的神器# 输入wh按两次Tab$ whTabTabwhatiswhereiswhichwhowhoami# 输入whoami的前几个字母按Tab自动补全$ whoTab$whoami老师透露“你们看我打字这么快其实很多时候就是按Tab补全的。输入长文件名时Tab能帮你省下大量时间。”6.3 历史命令的存储Linux默认保存最近1000条历史命令存储在内存中。可以通过history命令查看history|wc-l# 输出: 1000这个数量是可以配置的但老师建议“记住多少条不重要重要的是用。经常用的命令你一辈子都忘不掉不用的命令记了也没用。”七、关机命令与服务器哲学7.1 关机命令Linux下的关机命令主要有# 立即关机shutdown-h now# 立即重启shutdown-r now# 10分钟后关机并广播消息shutdown-h 10System will shutdown in 10 minutes# 取消关机计划shutdown-c7.2 服务器永不关机课堂上老师讲了一个重要的概念服务器通常是7×24小时运行的。“你们半夜三更刷抖音、逛淘宝为什么随时都能访问因为互联网公司的服务器几乎永不关机。一台服务器从采购回来上电开始直到报废中间可能只重启过几次。”这种设计理念叫做高可用性。对于生产环境的服务器随意关机是严重事故。所以关机命令一般需要root权限普通用户无法执行。7.3 云服务器如何开机有同学问了一个有趣的问题“有关机命令那有没有开机命令”老师的回答很精辟“开机命令没有。命令需要在操作系统上运行而操作系统需要先开机才能运行命令。这是一个先有鸡还是先有蛋的问题。”对于云服务器开机需要在云服务商的管理控制台操作网页上点击开机按钮或者通过物理电源按钮。这不是命令行能解决的问题。八、Shell外壳王婆说媒的故事8.1 从命令到内核的距离前面我们学了那么多命令但有没有想过当我们输入ls并回车后到底发生了什么要理解这个问题需要先了解Linux系统的层次结构。8.2 广义与狭义的操作系统课堂上老师区分了两个概念广义操作系统 操作系统内核 应用软件包括Windows系统、Office、浏览器、游戏等这是普通用户的认知狭义操作系统 操作系统内核Kernel只包括最核心的部分这是程序员需要深入理解的概念8.3 王婆说媒的故事为了解释Shell的作用老师讲了一个生动的故事故事开始在一个村子里小王是个程序员天天和电脑打交道不擅长和女生交流。到了适婚年龄他看上了隔壁的如花姑娘但不好意思直接表白。于是小王找来了村里的媒婆——王婆。小王对王婆说“我喜欢隔壁的如花您能帮我说说吗”王婆听完跑到如花家说“如花啊隔壁小王喜欢你他爹是村长他自己年薪几十万要不要考虑交往一下”如花想了想回复道“王婆对不起我不喜欢小王小时候他上课总说话太吵了。”王婆回来告诉小王“如花说她配不上你要不我给你介绍别人”故事分析在这个故事中小王 Linux用户你和我王婆 Shell外壳程序如花 操作系统内核说媒的过程 命令执行的过程为什么需要王婆Shell因为小王用户不擅长直接和如花内核打交道。Shell作为中间层负责接收用户的命令解析命令的含义将命令传递给内核执行把执行结果返回给用户8.4 Shell的第二个作用保护内核故事继续小王不死心过了几天又找王婆“王婆能不能再帮我去说说”王婆这次去如花家发现如花已经有了男朋友小帅两人正在吃饭。王婆连门都没进直接回来告诉小王“人家名花有主了你别去了。”这里体现了Shell的第二个重要作用——拦截非法请求保护操作系统内核。如果用户的命令会损害系统Shell可以直接拒绝而不需要麻烦内核。8.5 Shell的第三个作用创建子进程故事还没完小王又找到王婆“王婆我爹是村长您就再帮我去一次吧。”王婆心想“这小子怎么这么执着但我已经去过两次了再去万一被拒绝我王婆的面子往哪搁”于是王婆想了个办法——她成立了一家王婆婚介公司招了个实习生小张。王婆对小王说“我现在年纪大了嘴笨了让我徒弟小张帮你去说吧。”实习生小张去了如花家结果…如果成功了功劳算王婆的“我培养的人才”如果失败了责任推给小张“年轻人没经验”如果小张被打了王婆毫发无损这就是Shell的第三个作用——创建子进程来执行命令。Shell本身不会亲自执行命令而是创建子进程实习生去执行。这样即使命令执行出错导致进程崩溃Shell本身也不会受影响可以继续接收新的命令。8.6 Shell与bash的关系最后澄清一个概念Shell 外壳程序的统称所有命令行解释器的总称bash Shell的一种具体实现Bourne Again Shell就像汽车是一个统称而宝马、奔驰是具体的品牌。Linux中常见的Shell有bash最常用CentOS/Ubuntu默认sh原始的Bourne Shellzsh功能强大的新贵查看当前使用的Shellecho$SHELL# 输出: /bin/bash九、Linux权限初识root与普通用户9.1 两类用户Linux系统中的用户分为两大类root用户超级管理员系统中只有一个几乎不受权限约束类似于Windows的Administrator普通用户可以有多个权限受限只能操作自己的文件和目录9.2 权限不足的亲身体验# 切换到普通用户suwhb# 尝试往系统目录拷贝文件cphello.txt /usr/bin/# 报错: cp: cannot create regular file /usr/bin/hello.txt: Permission denied同样的操作用root用户就能成功用普通用户就会失败。这就是权限的力量。9.3 切换到root用户当普通用户需要执行高权限操作时可以临时切换到root用户# 切换到root需要输入root密码su-# 或者保留当前环境变量suroot输入密码后命令行提示符会从$变成#表示当前是root用户[whblocalhost ~]$su- Password:[rootlocalhost ~]#重要提醒输入密码时不会有任何回显直接输入后按回车即可。9.4 为什么需要权限控制权限控制是操作系统安全的核心机制。想象一下如果所有用户都能随意修改系统文件普通用户可以删除系统关键文件恶意程序可以破坏系统配置多用户环境下无法保护个人隐私权限系统就像一道防火墙确保每个用户只能做分内的事。9.5 实际工作中的建议“学习阶段建议先用root账号因为root不受权限限制不会因为权限问题卡壳。等掌握了基础知识再切换到普通用户学习权限管理。”十、总结与展望10.1 本节课的知识地图通过这节课我们完成了以下内容基础指令部分✅ tar命令打包压缩的黄金公式czf/xzf✅ file命令识别文件真实类型✅ SCP命令跨主机安全传输文件✅ BC命令命令行计算器✅ uname命令查看系统和内核信息✅ 快捷键CtrlC/R/D、Tab补全✅ shutdown命令关机和重启系统原理部分✅ Shell外壳用户与内核之间的桥梁✅ 进程创建子进程执行机制✅ 用户权限root与普通用户的区别10.2 学习方法论“如果一个知识被你忘记了说明这个知识不属于你你也不需要它。真正重要的知识你会天天用到一辈子都忘不掉。”所以不要死记硬背命令而是要在实际工作中多用。用得多了自然就记住了。10.3 后续学习路线基础指令部分到此告一段落。接下来我们将进入开发工具篇yum、vim、gcc/g、Makefile、gdb系统编程篇进程、线程、文件IO、网络编程项目实战用所学知识完成真实项目10.4 写在最后Linux学习是一个循序渐进的过程。前面的40多个基础指令就像是学武的基本功看似枯燥却是后续一切高级技巧的根基。当你熟练掌握了这些指令你会发现命令行操作比图形界面更高效、更强大。“命令行是程序员的母语。当你能流畅地使用命令行时你就真正入门了Linux。”希望这篇文章能帮助你巩固课堂所学在Linux学习的道路上更进一步。附录常用命令速查表命令用途常用示例tar打包压缩tar -czf file.tgz dir/tar解压解包tar -xzf file.tgzfile查看文件类型file filenamescp远程拷贝scp file userhost:/pathbc计算器echo 11 | bcuname系统信息uname -r,uname -ashutdown关机/重启shutdown -h nowsu切换用户su -history历史命令history | grep keyword

相关新闻

C语言 结构体

C语言 结构体

本文介绍了C语言中结构体的基本概念和使用方法。主要内容包括:1.结构体声明语法和成员访问方式;2.结构体内存对齐规则及其对空间利用的影响;3.通过示例展示了不同成员排列顺序对结构体大小的影响;4.结构体位段的使用方法及其与普通…

2026/7/3 3:26:40 阅读更多 →
大数据领域 HDFS 的数据一致性保障

大数据领域 HDFS 的数据一致性保障

大数据领域 HDFS 的数据一致性保障关键词:大数据、HDFS、数据一致性、副本机制、校验和、租约机制摘要:本文围绕大数据领域 HDFS 的数据一致性保障展开深入探讨。首先介绍了 HDFS 的背景信息,包括其目的、适用读者、文档结构和相关术语。接着…

2026/7/3 14:24:56 阅读更多 →
Java SpringBoot+Vue3+MyBatis 高校教师电子名片系统系统源码|前后端分离+MySQL数据库

Java SpringBoot+Vue3+MyBatis 高校教师电子名片系统系统源码|前后端分离+MySQL数据库

💡实话实说: 有自己的项目库存,不需要找别人拿货再加价,所以能给到超低价格。 摘要 随着信息技术的快速发展,高校教师的信息化管理需求日益增长。传统纸质名片存在易丢失、信息更新不及时等问题,无法满足现…

2026/7/3 14:24:57 阅读更多 →

最新新闻

遗传算法工程化实战:参数设计、算子重构与防早熟策略

遗传算法工程化实战:参数设计、算子重构与防早熟策略

1. 项目概述:为什么“遗传算法第二讲”比第一讲更值得细读“遗传算法”这个词,刚听时容易让人联想到生物课上染色体配对、孟德尔豌豆实验,甚至误以为是生物信息学专属工具。但实际在工业界——从物流路径优化到芯片布线,从金融风控…

2026/7/4 17:43:07 阅读更多 →
多智能体系统安全控制与责任分配技术解析

多智能体系统安全控制与责任分配技术解析

1. 多智能体系统安全责任分配的核心挑战 在机器人集群、无人机编队等典型多智能体系统中,安全责任分配面临三个维度的核心挑战: 1.1 安全性与自主性的矛盾 传统集中式控制虽然能保证全局安全,但要求所有智能体公开完整状态信息&#xff0c…

2026/7/4 17:41:06 阅读更多 →
深度解析开源抖音下载器:3大技术优势与实战部署指南

深度解析开源抖音下载器:3大技术优势与实战部署指南

深度解析开源抖音下载器:3大技术优势与实战部署指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support…

2026/7/4 17:41:06 阅读更多 →
操作系统级缓存:超越Redis的系统性能优化底层原理与实践

操作系统级缓存:超越Redis的系统性能优化底层原理与实践

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 大家好,我是专注于技术实战分享的博主。在追求极致性能的路上,我们常常将目光投向 Redis 这类明星缓存中间件…

2026/7/4 17:39:05 阅读更多 →
揭秘evbunpack:高效破解Enigma Virtual Box打包文件的专业工具

揭秘evbunpack:高效破解Enigma Virtual Box打包文件的专业工具

揭秘evbunpack:高效破解Enigma Virtual Box打包文件的专业工具 【免费下载链接】evbunpack Enigma Virtual Box Unpacker / 解包、脱壳工具 项目地址: https://gitcode.com/gh_mirrors/ev/evbunpack 当你在逆向工程或软件分析工作中遇到Enigma Virtual Box打…

2026/7/4 17:37:04 阅读更多 →
跨平台开发实战:从操作系统差异看远程控制软件适配挑战

跨平台开发实战:从操作系统差异看远程控制软件适配挑战

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 你是不是也经常遇到这样的困惑:手头一台Windows笔记本办公,家里一台Mac Mini当服务器,还有一台L…

2026/7/4 17:35:03 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻