说实话我第一次认真学Linux以前一直以为它就是某种“免费的Windows”。直到在一台旧笔记本上装好系统看到黑底白字的终端才发现自己完全想偏了。搞运维要用它管服务器做开发要在它上边部署应用后端面试也十有八九考几道命令。这篇是Linux基础系列的第一篇我把几个捡起来就能用的重点讲透Linux到底是什么、目录结构怎么记、高频文件命令怎么用、用户与权限怎么管最后聊包管理器和新手容易翻车的坑。适合零基础入门的朋友也适合准备运维、开发面试的人拿来做系统性查漏补缺。学Linux别抱着背命令大全的心态关键是理解设计思路命令只是思路的出口。1. 从零认识Linux它究竟是什么为什么值得学1.1 Linux不是“操作系统”而是内核这句话怎么理解很多人张口就说“我装了Linux系统”严格讲这句说法不太准确。Linux本身是一段叫kernel内核的代码它的工作很聚焦管理CPU调度、内存分配、磁盘读写、网络收发这些硬件资源。换句话说内核是操作系统的“心脏”但操作系统还包含壳。一个完整可用的系统至少得有shell就是你敲命令的那个解释器、系统库、各种命令工具、包管理器和桌面环境。我们平时安装的Ubuntu、CentOS、Debian、Fedora全都是“Linux内核”加上GNU工具链和其他开源软件拼出来的发行版distribution这才是完整的操作系统。这个区别在面试里经常被问到Linux和Windows本质上差异在哪如果只答“免费”“开源”“没有图形界面”多少有点单薄。更内核层面的差异是Linux采用类Unix的多用户、多任务设计天然以命令行和可组合的小工具为核心Windows虽然也支持命令行但它的根子在图形交互上。还有权限模型Linux的普通用户对系统关键目录几乎没有写权限这从设计上就把误操作和恶意破坏的风险压低了。理解到这个层次你再学命令就不会觉得是在背天书。1.2 常见发行版怎么选别被“版本多”吓到发行版多其实不是坏事是Linux生态健康的表现。新手第一次挑发行版往往直接蒙圈Ubuntu、Debian、CentOS、Rocky Linux、Fedora、Arch、Kali名字一堆不知道选哪个。我的建议很简单按你的目的来选Ubuntu / Linux Mint对新手最友好社区资料最多桌面环境完整适合熟悉Linux基础、日常使用或者搭Python开发环境。Debian稳定体积小适合做服务器也适合拿来长期折腾。CentOS / Rocky Linux / AlmaLinux企业服务器的主流选择很多公司生产环境用的就是这类系统学运维建议从这里入手。Fedora技术新、迭代快适合想在软件版本上保持领先的开发者。Arch Linux滚动更新配置灵活适合想深入了解系统原理的极客但对新手不太友好。Kali Linux面向安全测试的专用发行版适合对这个方向有明确学习目标的人不适合当作日常桌面系统。另外值得一提国内也有团队基于Linux内核构建了自己的桌面发行版例如统信UOS、麒麟等这些系统让Linux在办公和企业环境里更常见。你如果手头只有一台Windows电脑完全可以用虚拟机先装个Linux或者买一台便宜的云服务器练手。很多热词里提到“虚拟机安装linux蓝屏”“wsl needs updating”这些问题大多跟虚拟化软件版本、系统设置有关放到后面我会单独讲排查思路。还有的人第一次进Linux桌面发现打不了中文多半因为没有装输入法框架比如fcitx5或者ibus这也是新手群里的高频问题。这里还要多说一句嵌入式Linux同样不可忽视。小到路由器、机顶盒大到工业控制设备、车载系统大量硬件设备的底层跑的都是Linux内核。很多嵌入式岗位的招聘要求里都写着“熟悉Linux、了解设备树”这就是为什么学Linux远不只是一门命令课它实际上是理解现代计算设备的一把总钥匙。2. 先搞懂目录结构不然命令都白学2.1 从根目录出发认识那些关键目录Linux的一切都是文件目录也是文件。整个文件系统从根目录“/”开始像一棵倒挂的树。很多新手第一次在终端里敲“ls /”看到一堆英文目录名不知道谁是谁。我按自己的理解给你说几个核心目录帮你建立地图感/bin 和 /usr/bin存放系统启动和日常使用的命令程序比如ls、cp、bash都在里面。现在的发行版大多把/bin软链接到/usr/bin。/sbin 和 /usr/sbin系统管理命令通常只有root能执行比如fdisk、mount。/etc所有配置文件的集中地。改服务配置、改网络、改用户十有八九要来这里找。/home普通用户的家目录集合每个用户一个文件夹你的个人文件基本都放这里。/root超级管理员root用户的家目录普通用户进不去除非加sudo。/var不断变化的数据比如日志文件在/var/log缓存也在下面。/tmp临时文件目录程序运行经常往这里写临时数据重启后可能被清理。/usr应用程序和库文件的安装目录可以理解成Windows里的“Program Files”。/proc 和 /sys这两个比较特殊它们不是真实磁盘上的目录而是内核暴露出来的虚拟文件系统。你cat /proc/cpuinfo就能看到CPU信息这正体现了“一切皆文件”的思想。我用一句话总结这个结构/etc像物业的图纸和制度文件/var/log像事故台账/home像员工宿舍/tmp像寄存柜/usr像库房。脑子里有这张图别人说“看下nginx配了没”你第一反应一定是去/etc/nginx下找而不是乱翻。2.2 绝对路径与相对路径先学会认路再学跑很多人觉得路径问题不难但一实操就出岔子。绝对路径一定以根“/”开头比如“/etc/nginx/nginx.conf”相对路径不以“/”开头是相对你当前所在目录的描述比如“.”表示当前目录“..”表示上一级目录。举个例子你在/home/alice目录下想进入/home/alice/project/logs可以直接输入“cd /home/alice/project/logs”也可以“cd project/logs”效果一样后者就是相对路径。最关键的习惯是随时用“pwd”确认自己当前位置。我见过太多新手在错误目录里执行了rm把不该删的文件删了。还有几个非常省事的快捷路径cd ~回到当前用户家目录cd -回到上一次所在目录cd /直接到根目录。路径里的“~”在Linux里是一个特殊符号Shell会自动把它展开成当前用户的家目录这个机制顺带带出了环境变量和“PATH”的概念。PATH决定你敲命令时系统去哪找可执行文件如果你自己下载了一个软件并解压到某个bin目录要执行它要么写全路径要么把目录加进PATH这也是“linux系统安装”“linux安装python”类教程里经常出现的一步。3. 高频基础命令文件与目录操作实操3.1 目录操作四兄弟ls、cd、mkdir、rmdir先说说最常用的ls。裸敲ls只能看文件名ls -l看到详细信息ls -a连隐藏文件也显示出来隐藏文件其实就是名字以点开头的文件ls -h配合-l会把文件大小显示成K、M、G这样的可读格式ls -t按修改时间排序。这五个参数组合起来“ls -lht”就能按时间查看目录内容这在找刚刚生成的日志文件时特别好用。如果你看到一大堆参数不知道记哪个先记住ls -l、ls -a、ls -h、ls -t其他用到再查man。关于ls -l的输出这里有个容易被忽略但面试常考的小细节第一列有10个字符比如“drwxr-xr-x”第一个字符表示类型d是目录、-是普通文件、l是符号链接后面9个字符每3个一组分别代表属主权限、属组权限、其他用户权限。后面的字段依次是硬链接数、属主、属组、文件大小、最后修改时间、文件名。把这一列看懂了后面学chmod会轻松得多。mkdir用来建目录日常最实用的是“-p”参数mkdir -p a/b/c会一次性创建多级目录如果某级存在也不会报错。rmdir只能删除空目录稍微有点用的其实是“rmdir -p”逐级删除空目录但实用价值不高你平时删带内容的目录基本就是“rm -r”。我自己习惯建目录时直接写完整路径并用-p免得手动一层层创建的功夫。3.2 文件操作与链接cp、mv、rm、lncp复制文件cp -r复制整个目录。注意cp目录时不加-r会报错“omitting directory”这是新手最常见的报错之一。mv既是移动也是重命名比如“mv old.txt new.txt”就是改名它不需要额外的参数。rm删除文件rm -r删除目录rm -f强制删除不询问。网上老有人玩梗“rm -rf /”那是一个毁灭性的操作实际上现代系统对它也有保护机制但你千万别在练习机上乱试。更安全的习惯是用“rm -i”或者先用“ls”确认路径无误再执行删除。ln命令创建链接。硬链接多个文件名指向同一个数据块删掉一个其他还在相当于一个文件有多个名字任何改动都会同步。软链接符号链接ln -s相当于Windows里的快捷方式它本身是一个独立的小文件里面保存的是目标路径一旦原文件被删软链接就会失效。理解这两者区别面试经常考。日常使用中软链接大量用于替代拷贝比如把数据盘上的目录链接到服务期望的位置既不用搬动原文件也不占额外空间。我再补充一个通配符的知识它不是独立命令但和文件操作配合极好。比如“.log”匹配所有以.log结尾的文件“file?”匹配file后面跟一个任意字符的文件“file[0-9]”匹配file加数字。配合cp、rm时能一次处理一批文件。不过要小心通配符匹配的是当前目录下的文件名如果你要匹配隐藏文件得显式写“.”。3.3 文本查看与处理cat、less、tail、grepLinux运维里百分之八十的时间其实是在跟文本文件打交道看日志、改配置、查进程。cat适合看小文件但它会把几百行文件全屏刷过所以大文件更推荐less。less支持上下翻页、按/搜索关键词、按n跳下一个匹配看日志和配置时顺手得多。很多人习惯用cat结果文件一长屏幕被刷得乱七八糟反而更难受。tail专门看文件末尾最经典的是“tail -f 文件名”会持续跟踪文件新增内容实时查看日志的首选。很多人在新装服务后排查“为什么没反应”第一件事就是开一个终端执行“tail -f /var/log/syslog”再去触发操作立刻能看到报错。head看文件开头默认前10行。grep是文本搜索的利器。“grep 关键词 文件”能快速找出包含关键词的行加“-i”忽略大小写加“-r”递归搜索目录比如“grep -rn nginx /etc”去找哪个配置文件里提到了nginx加“-n”显示行号。grep配合管道“|”是Linux里最经典的组合比如“ps -ef | grep nginx”查找nginx进程“history | grep docker”查看历史命令里和docker有关的记录。管道的作用就是左边命令的输出作为右边命令的输入这个思想贯穿Linux的命令行设计理解它你才算真正摸到了Shell的门道。4. 用户与权限管理基础里的安全核心4.1 用户、组和权限模型为什么Linux默认更安全Linux天生就是多用户系统。一台服务器从早到晚可能有几十个用户身份的进程在跑你发的请求是一个用户身份数据库是一个用户身份定时任务又是另一个身份。每个用户都有独立的UID用户分组信息存在/etc/group。一个用户至少属于一个用户组GID组的作用就是批量化管理权限比如把一批人加到“developers”组然后给某个项目的目录设置组权限这群人就能协作读写不用逐个发钥匙。文件权限模型简单说每个人或进程访问一个文件时系统按“属主、属组、其他人”三种身份去判断有没有读r、写w、执行x权限。它的底层逻辑是“最小权限原则”默认情况下普通用户不能修改系统目录和别的用户文件。这跟Windows那种默认“管理员即一切”的习惯很不一样也因此Linux服务器相对更耐折腾因为它要求的不是事后打补丁而是骨子里的权限隔离。这里顺便回答一个高频面试题什么是rootroot是UID为0的超级管理员与其他用户一样拥有账户但系统给予root对所有资源的访问权。日常使用强烈不建议直接长期用root登录而是用普通用户加sudo。这也是“linux提权”这个词的语境某些攻击者拿到低权限账户后想方设法把自己提升到root。作为学习者你首先要学会的恰恰是压低自己日常操作的习惯这比学会提权更重要。4.2 用户管理实操useradd、passwd、usermod创建用户的命令是useradd。我在这里用“useradd -m -s /bin/bash alice”举例-m意思是同时创建家目录/home/alice-s指定登录Shell为bash。不加-m创建的用户没有家目录登录时会落到根目录这会让新手困惑“我的home怎么不见了”。创建后再用“passwd alice”设置密码密码输入时终端不会显示任何字符这不是坏了是安全设计。如果有策略配置了密码过期登录时会提示“You are required to change your password immediately”说明该改密码了直接执行passwd改掉就行。把用户加入某个组是usermod的活儿。“usermod -aG docker alice”把alice追加到docker组注意那个-aappend很关键不带它会把用户从其他组里全部移除属于比较容易踩的坑。想让新组立即生效最稳妥是注销重新登录或者执行“newgrp docker”。还有一种常见操作修改用户说明信息“usermod -c Alice Zhang alice”会让账户用途更清晰。su和sudo是权限切换的两种方式。su直接切换成另一个用户常用“su - alice”那个横杠表示同时加载目标用户的环境变量如果不加环境还是切换前的经常导致命令找不到。sudo是临时以某个身份执行单条命令普通用户要使用sudo前提是它的账户被加入sudoers名单通常是加入wheel组或sudo组。很多人新装完系统发现“alice is not in the sudoers file”就是因为安装系统时创建的那个用户默认在sudo组里而后来的useradd创建的用户并不在。这是一条重要经验。4.3 文件权限与chmod、chown看懂那9个字母前面说了ls -l第一列的9个权限字符现在说怎么改。chmod命令有两种写法我建议新手先掌握数字法。r4w2x1把属主、属组、其他人的权限各自相加就得到三位数字。比如“chmod 755 文件”表示属主rwx、属组r-x、其他人r-x。常用的组合有两个记忆点目录通常755普通文件644但如果一个脚本要执行就得加x否则会提示“Permission denied”。我自己有个口诀“家里随意外人只读。”给文件改属主属组要用chown。“chown alice:developers 文件”表示把文件属主改为alice属组改为developers如果只改属组可以用“chown :developers 文件”。有时候你明明有权限读自己的文件删除却失败原因多半是目录的写权限不在你手里。删除文件的权限取决于目录而不是文件本身的权限这个知识点特别反直觉但运维面试考过很多次。还有一个相关概念是umask它是默认权限的“减法器”。系统默认给文件666、给目录777然后减去umask就得到新建文件的默认权限。大多数系统umask是022所以文件默认644、目录默认755。如果想新文件不要被其他人读到可以把umask改成027一般放在.bashrc里。严格讲权限管理还有特殊权限位SetUID、SetGID、Sticky bit比如/tmp的粘滞位体现为drwxrwxrwt新手先知道存在这个机制就行后面再细讲。5. 软件安装三板斧包管理器入门5.1 apt、yum、dnf包管理器到底在干什么学Linux必然要安装软件而Linux下装软件最常见的途径是包管理器。包管理器解决的是“依赖地狱”问题你装A软件它需要B库B库又依赖C库手动搞会疯掉的。包管理器从软件源repository下载软件包、自动处理依赖、统一管理安装和卸载这相当于手机里自带的“应用商店”。不同发行族的包管理器不同Debian系Ubuntu、Debian、Mint用apt底层是dpkgRHEL系CentOS、Rocky、AlmaLinux、Fedora用yum或dnf底层是rpmArch系用pacman。先看你的系统是哪个分支再决定用哪个命令不然就会出现“command not found: apt”这不是系统坏了是用的命令不对。apt日常五板斧apt update更新软件源索引apt upgrade升级已安装软件apt install安装apt remove卸载apt search搜索。注意“update”和“upgrade”是两个动作很多新手装软件前不update导致“候选版本不存在”或者拉到一个很旧的索引。yum/dnf同理“yum install”“dnf install”。当你看到教程说“linux安装mysql”“linux安装docker”第一行八成就是类似“apt update apt install -y mysql-server”这个语法里“-y”表示自动确认省去一路问答。5.2 软件源与安装实战换源、缓存、报错排查给新手一个非常实际的操作建议装完系统第一时间换国内软件源。默认源可能在海外下载速度慢到怀疑人生。以Ubuntu为例常见做法是编辑/etc/apt/sources.list把官方源地址替换成清华或者阿里的镜像地址。改完之后一定要执行“apt update”刷新索引否则改了也没用。很多教程里的“linux镜像”“linux安装包下载失败”基本都能通过换源解决。我再列几个安装过程中高概率遇见的报错。一是“Unable to locate package”多是因为没做apt update或者包名拼错了先搜索正确的包名再装。二是“Permission denied”或“E: Could not open lock file /var/lib/dpkg/lock”说明你普通用户没权限或者有另一个apt进程占着锁加sudo杀掉或者等它结束。三是“依赖关系损坏”提示可以试“apt --fix-broken install”修复。四是包版本太旧想装新版本常见做法是添加官方仓库或者用docker容器来隔离比如“linux安装docker”这种需求装好docker后就能用容器体验新软件而再也不用担心污染宿主机。用包管理器安装Python同样的套路比如在Ubuntu里执行“apt install -y python3 python3-pip”装完后用“python3 -V”验证版本。如果系统自带的是Python 3.x但项目需要不同版本我建议直接用pyenv或conda管理多版本别去动系统Python否则可能把依赖系统的Python搞坏。6. 我踩过的坑与新手速查表6.1 新手最容易翻车的5个场景第一在错误目录下执行rm。解决方案是养成先“ls”再“rm”的习惯路径坚决用相对路径或完整路径不要盲目相信手速。第二sudo密码输对了却提示失败。大概率是密码根本没输入完输入sudo密码时屏幕不显示字符包括星号输完按回车就行还有一种情况是你当前用户根本不在sudo组。第三Windows下编辑过文件拿到Linux再执行报错“$\r command not found”这是换行符CRLF和LF不一致导致的用“sed -i s/\r$// 脚本.sh”或者dos2unix处理。第四下载的软件解压后怎么执行都提示“No such file or directory”其实文件在只是路径不对顺手用“pwd”和“which”排查。第五误以为自己改不了系统配置实际上只是忘了在命令前加sudo。6.2 新手应该怎么练才能在短时间建立手感这里我没有标准答案只说我带初中级同事时常用的路子。第一步在个人电脑上装虚拟机每天至少在里面待半小时强制用命令行做日常操作。第二步给自己布置有真实目标的练习比如“新建用户并限制家目录配额”“写一条命令找出今天修改过的所有.log文件”“在/tmp下建一个三层目录并复制文件”这些就是把知识点变成实战能力的加速器。第三步学会查man和help。记不清参数不用焦虑“man ls”比搜索引擎回答你的更权威。第四步把面试题当作自测比如“软链接和硬链接的区别”“chmod 754代表什么”“为什么普通用户不能在/root写文件”。这些题恰好能检验你是否真懂而不是背了命令大全。6.3 常用命令速查表我整理了一张高频命令表覆盖日常使用频率最高的场景适合打印出来贴在工位。场景命令说明看当前目录pwd打印工作目录列目录ls -lht以可读大小按时间排序切换目录cd /path配合~ -使用建目录mkdir -p a/b/c递归创建复制cp -r 源 目的目录必须加r移动/改名mv 源 目标同目录就是改名删除rm -rf 待删目录慎用先ls确认看文件末尾tail -f 文件实时跟踪日志搜索内容grep -rn 词 目录递归搜索查进程ps -efgrep nginx看端口ss -tlnp新手排查必会查磁盘df -h看大小使用率用户管理useradd -m -s /bin/bash 用户建用户权限修改chmod -R 755 目录R递归这张表不用一次性背完用到哪条查哪条慢慢地就会形成肌肉记忆。再分享一个我自己的小习惯每学一个命令我会专门建一个“~/lab”目录在里面用一条命令做连续演练比如“mkdir -p lab/logs cd lab/logs touch test.log ls -l”一次串四个命令既复习了目录操作、文件创建又把管道的思路练顺手了。下次再遇到“linux单步运行程序”这类相对进阶的需求你会发现无非就是把多个基础命令组合起来再加上条件判断而已。Linux的门槛看着高但拆开看都是一个个小积木关键是把最底下的几块摆稳。这篇是系列第一篇先把地基夯实下一篇我会接着聊文本处理三剑客、进程管理和Shell脚本入门包管理器部分也会挑几个企业里高频遇到的场景继续展开。
企业数字化 ERP 产品动态
相关推荐
H3C X500Z G2改Win7:B460平台驱动注入与核显适配完整指南 简介:对于需要将H3C Desk X500Z G2商用台式机改装为Windows 7系统的用户,这份驱动包集中提供了显卡、PCI总线、USB和网卡等关键硬件的驱动文件,适合IT运维人员、企业批量部署场景以及具备基础装机经验的个人用户下载备用。压缩包共包含69个文… · 2026/9/26 18:38:01
球球大作战卡顿排查实录:从手机到服务器的四层网络优化指南 1. 从一次“卡到想摔手机”的对局说起先说结论:球球大作战这类实时对战手游,网络问题从来不是单一原因造成的,它更像是一条链路上多个环节同时出问题的叠加结果。你看到的“卡顿”“瞬移”“吃不到球”“团战掉线”,背后可能是本地… · 2026/9/26 18:38:01
电力系统潮流计算:牛顿-拉夫逊法与P-Q分解法的MATLAB实现 潮流计算在电力系统里属于那种“看起来简单、写起来全是细节”的东西。很多教材把公式推导梳理得很漂亮,但一到 MATLAB 里自己动手,就会遇到雅可比矩阵符号搞混、迭代发散、P-Q 分解法在某个算例里死活不收的尴尬。我当初就是因为不满足于直接调工具箱&a… · 2026/9/26 18:37:53
Intel oneAPI 2024 HPC toolkit 离线静默安装:非交互式自定义组件配置指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 19:06:55
OBS VirtualCam配置失败的底层原因与系统级修复指南 1. 为什么“3分钟搞定”是个危险的幻觉——VirtualCam配置失败的真实原因拆解OBS VirtualCam这个功能,表面看就是点一下按钮、勾一个选项、选一个设备名,三分钟?我第一次信了。结果花了整整六小时——不是调试,是反复重装、查日志… · 2026/9/26 19:06:49
高效代码审查实战:告别形式主义,回归工程价值 1. 聊聊代码审查:它从来不只是“找茬”代码审查这件事,在软件开发圈子里算是个常青话题。隔一段时间就有人跳出来喊“代码审查没用,浪费时间”,过一阵子又有人分享“我们团队用代码审查挽救了项目质量”之类的经验贴。我在一线写代… · 2026/9/26 19:06:49
Boundary Scan Cell 深度拆解 BGA 封装把焊点藏在芯片肚子底下,针床测不到,飞线也够不着。IEEE 1149.1 的解法是在每个 I/O 引脚旁边塞一个微型扫描单元,串成链,靠 TDI/TDO 就能观测和驱动所有引脚。这个单元就是 Boundary Scan Cell,简称 BSC。很多… · 2026/9/26 19:06:43
2026年苹果专用磁吸充电宝选购指南,南孚传应成假期出游优选 国庆假期出行需求持续走高,随身电子设备的续航补给成为出行刚需,充电宝也成为旅途必备装备。不少消费者在选购时,希望产品既能适配苹果生态,同时兼容华为、荣耀等安卓设备,且符合民航、轨道交通携带规范。在容量取舍上… · 2026/9/26 19:06:43
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46