☰
Linux从零入门:基础命令与实战技巧全解析
2026/10/15 23:47:02 网站建设 项目流程

最近几年总有人问我,想从零开始学Linux,到底要先学什么、从哪里上手。说实话,Linux给人最大的门槛不是指令多,而是它整个思考方式跟你用惯的Windows或macOS不一样。很多教程一上来就铺一堆命令,背了几天就忘得干干净净。我自己带过不少新人,发现真正能留下来的人,都是先把"这台系统到底怎么运转的"想明白了,再去敲命令的。这篇指南我就按这个路子来:先带你把Linux的背景知识搭好,再手把手过一遍最核心的基础指令,每个命令我都会说清楚它是干什么的、为什么这么用、还有哪些坑我替你先踩了。不管你是学生、运维新人,还是想自己搭服务器的开发者,这篇文章都能让你从"听说过Linux"到"能上手操作"。

1. Linux背景知识:先搞清楚你面对的是个什么系统

1.1 内核、发行版与Shell的关系

很多新人第一次接触Linux时会被几个词搞晕:内核、发行版、Shell。我打个比方你就明白了。内核就好比汽车发动机,它负责驱动硬件、管理内存、调度进程,是最底层的核心。但是光有发动机你没法开,得配上方向盘、座椅、外壳,这就是发行版做的事——Linux发行版就是"内核+一堆软件+安装工具"打包好的整车。所以我们平时装的Ubuntu、CentOS,其实都不是Linux本身,而是"基于Linux内核的某个发行版"。

Shell则是你跟发动机之间的驾驶座和仪表盘。你通过Shell给内核传达指令,Shell解释执行,再把结果反馈给你。最常见的是Bash,还有Zsh、Fish这些。我经常看到有人问"Linux和Windows有什么区别",最本质的区别就在这:Linux的几乎所有操作都可以通过命令完成,而且Shell可以把多个命令组合起来,完成非常复杂的自动化任务。这一点是Windows命令提示符完全比不了的。

1.2 为什么服务器和开发者都偏爱Linux

你可能想问,现在主流的服务器操作系统里,Linux占了绝大多数份额,为什么?我总结下来有三个原因。

第一是稳定。一个配置好的Linux服务器,连续跑一年不重启是很正常的事。Windows你可能隔三差五就要更新重启,但Linux系统内核非常稳,只要你不瞎折腾,它可以像老黄牛一样一直干活。

第二是资源占用低。同样的硬件配置,Linux跑起来比Windows流畅得多。我有一台好多年前的旧笔记本,装Windows卡得不行,装了个轻量级Linux发行版之后居然能流畅看视频写代码。在服务器上这种差异会被放大,Linux能把有限的内存和CPU用在业务上,而不是被系统自身吃掉。

第三是权限和自动化。Linux从设计上就是多用户网络操作系统,权限划分非常清晰。再加上Shell脚本、cron定时任务这些利器,运维工作可以高度自动化。这也是为什么搞后端开发、运维、云计算的人,几乎绕不开Linux。

2. 环境准备:从零搭一个可练习的Linux环境

2.1 三种主流入门方案怎么选

既然要学,总得先有个能敲命令的地方。我强烈建议你避开"只看视频不实操"的误区,一定要亲手敲命令。目前入门有几种方案,我按推荐程度排一下。

  • 方案A:WSL(Windows Subsystem for Linux)。如果你用的是Windows,这是目前最推荐的入门方案。安装简单,不需要虚拟机那种资源开销,直接在Windows里打开一个Linux终端就能用。而且它跟Windows文件系统互通,方便编辑代码。具体安装方法就是管理员身份打开PowerShell,执行wsl --install,装完后默认是Ubuntu。

  • 方案B:虚拟机装完整Linux。用VMware Workstation或VirtualBox装一个Ubuntu桌面版。这个方案的好处是体验最完整,适合你想看看Linux图形界面长什么样的情况。缺点是占资源,4GB内存以下的电脑会有点吃力。

  • 方案C:云服务器。如果只是想练习命令,云服务器也很方便,还能顺便学远程连接。你花点小钱买一台最便宜的云主机,然后用SSH远程登录上去,就跟你以后真正管理生产服务器是一模一样的姿势。不过要注意选镜像的时候选Linux发行版,比如Ubuntu或CentOS就行。

我个人建议Windows用户从WSL起步,Mac用户直接把终端打开,大多数命令都是通用的。等你想深入系统管理了,再用虚拟机或云服务器。

2.2 登录方式与Shell提示符之谜

环境装好后,你会在屏幕上看到一个等待输入的地方,就是Shell提示符,通常长这样:

root@ubuntu:~#

或者:

user@linux:~$

这个提示符不是乱写的。root是当前用户名,ubuntu是主机名,~表示你现在在哪个目录,~是当前用户的家目录的简写。最后的#或$是身份标志:#是管理员root权限,\$是普通用户。很多人一开始分不清,看到#以为只是装饰,其实它代表着你现在拥有最高权限,敲命令时真的要小心,rm -rf /这种事故往往就是root身份下敲出来的。

新手最需要养成的习惯就是:先弄清楚自己是谁、在哪、能干吗,再去敲命令。用whoami查看当前用户,用pwd查看当前绝对路径。这两个命令我是建议每天都至少要敲几遍的,它们能让你时刻保持"在线感"。

3. 必会的基础指令:从文件目录操作到查看帮助

3.1 目录切换与文件查看:pwd、ls、cd

文件系统是Linux里最基础也是最重要的概念。所有东西都是文件,这句话你需要慢慢体会。先记住一个核心思路:Linux的目录结构是从根目录/开始,像一棵倒挂的树。跟我们Windows里的C盘D盘完全不一样。想知道自己当前在哪,用pwd(print working directory):

pwd

它会输出类似/home/user这样的绝对路径。然后就是ls,这个命令你可能会用一辈子:

ls ls -l ls -a
  • ls:列出当前目录的文件和文件夹。
  • ls -l:按长格式列出,显示权限、属主、大小、修改时间。这是我最频繁用的,几乎每天都要敲。
  • ls -a:显示隐藏文件。Linux里以点开头的文件是隐藏文件,比如.bashrc、.ssh,平时不显示。

切换目录用cd,这个和Windows里也差不多:

cd /etc # 绝对路径切换 cd .. # 回到上级目录 cd ~ # 回到当前用户的家目录 cd - # 回到上一次所在目录

这里特别说一下cd -,很多人不知道。它可以在两个目录之间来回跳,比如你经常需要在/var/log和/etc之间切换,这个快捷方式能省很多时间。

3.2 文件操作:touch、mkdir、cp、mv、rm

接下来是管理文件。touch用来创建空文件,mkdir创建目录:

touch test.txt mkdir myproject mkdir -p a/b/c # 嵌套创建目录,-p 会自动创建中间目录

创建完之后要复制和移动。cp是拷贝,mv是移动或重命名:

cp test.txt /tmp/test_backup.txt mv test.txt /tmp/ mv oldname.txt newname.txt # 重命名

mv不光能移动文件,还能改名,这点在Shell里很常用。比如你要给配置文件做备份,很多人会敲mv nginx.conf nginx.conf.bak,用这种方式快速留底。

删除是很多人翻车的地方。rm命令:

rm file.txt rm -r directory # 递归删除目录 rm -f file.txt # 强制删除,不询问 rm -rf directory # 递归强制删除,极度危险

这里必须单独拎出来讲。rm -rf是传说中的"删库跑路"命令,尤其是rm -rf /,简直是灾难。我在生产服务器上见过一次有人误操作,整个系统文件被清空,完全没法恢复。所以对rm -rf要保持敬畏,最好用mv到临时目录代替删除,确认没问题后再做处理。

3.3 查看文件内容:cat、less、head、tail

文件建好了,总得看内容。入门阶段至少要学会四个命令。

  • cat:直接全量输出文件内容。适合小文件。
  • less:分页查看大文件。按空格翻页,按Q退出。
  • head:默认看文件前10行。
  • tail:默认看文件后10行,tail -f可以实时跟踪文件输出,看日志神器。

我强烈建议你把less练熟。日志文件动不动几百兆,用cat会直接把你的终端刷爆,但less是按需加载,非常流畅。

常用的组合是:

head -20 nginx.conf tail -f /var/log/system.log

tail -f会一直盯着文件,新写入的内容实时打印出来,排查问题时我通常开着好几个终端,分别盯不同的日志。

4. 权限模型:为什么Linux的权限设计值得认真学

4.1 用户、用户组与三种权限

Linux是多用户系统,权限是它的安全基石。每个文件都有三个维度的权限:所属用户(u)、所属组(g)、其他人(o)。每种身份有读(r=4)、写(w=2)、执行(x=1)三种权限。你可能见过ls -l输出的第一列是drwxr-xr-x,这一串字符其实就表达了所有权限信息。

我来拆解一下drwxr-xr-x:第一个字符d代表这是个目录;后面三位rwx是属主权限,可读可写可执行;中间三位r-x是组权限,可读可执行但不能写;最后三位r-x是其他用户的权限。如果是文件,第一个字符通常是-。

权限用数字表示时,r=4、w=2、x=1,所以rwx是7,r-x是5,r--是4。比如设置某个文件属主拥有全部权限,组和其他人只有读和执行权限,就是755。设置一个私钥文件为600,代表属主可读写,其他人完全不可访问,这个习惯在SSH配置中非常重要。

4.2 chmod、chown、sudo的使用心得

修改权限用chmod,修改属主用chown,这两个命令是系统管理的日常。

chmod 755 script.sh chmod +x script.sh # 给所有身份加上执行权限 chown user:group file.txt

新手最容易犯的错是不加思考就给脚本赋777权限,也就是所有人可读可写可执行。这在公网服务器上等于裸奔。正确姿势是给最小够用的权限,比如要执行一个脚本,755就够。如果是敏感配置文件,600甚至400都行。

再来说sudo。普通用户很多系统操作没权限,sudo可以让你以root身份执行某一条命令:

sudo apt update sudo vim /etc/nginx/nginx.conf

sudo的原则是"最小化使用"。我见过有人为了省事,一直用root登录操作服务器,结果一次误删文件把整个项目搞挂了。建议你平时用普通用户操作,需要管理员权限时再用sudo,至少多一道确认,能少犯很多错。

5. 文本处理与信息查找:真正提高效率的实用指令

5.1 grep、find、which,让你不再大海捞针

服务器上的文件动不动上千,靠肉眼去找不现实。grep是用来在文件内容里搜索关键词的:

grep "error" /var/log/service.log grep -i "warning" app.log # 忽略大小写 grep -r "配置项" /etc/nginx/ # 递归搜索目录下所有文件

grep还能跟其他命令配合使用,比如你在一个进程列表里找到特定进程:

ps aux | grep java

这里的竖线|叫管道,把左边命令的输出作为右边命令的输入。管道是Shell最优雅的设计之一,你可以像搭积木一样把命令串起来。我工作中的很多操作都是这种组合。

find是找文件的:

find /var/log -name "*.log" find /home -size +100M find . -mtime -7 # 找最近7天修改过的文件

which则是查看某个命令在哪个路径。比如你敲python,系统到底用的哪个版本的Python,which python一看便知。

5.2 管道组合与重定向:动手把命令串联起来

重定向是另一个核心概念。>是输出覆盖写到文件,>>是追加写到文件,2>是把错误输出重定向。比如:

echo "hello" > test.txt cat /etc/passwd > user_list.txt tail -f service.log >> all.log

这种能力在写脚本和记录日志时特别重要。我举个例子,你想把系统里所有普通用户名都保存到一个文件,可以用:

awk -F: '$3>=1000{print $1}' /etc/passwd > users.txt

这里简单解释一下:/etc/passwd文件每行是一个用户记录,用冒号分隔,第三个字段是用户ID。普通用户的UID一般从1000开始,所以这段命令就是提取出这些用户名。awk是很强大的文本处理工具,入门阶段你可以先记住这个模式,后面再慢慢深入。

5.3 启动一个服务,观察系统状态

除了文本处理,系统状态查看也是Linux入门必修课。

  • ps:查看当前进程。ps -ef或ps aux都能看全部进程。
  • top:动态显示系统资源占用,按CPU或内存排序,看哪个进程吃资源。
  • df -h:查看磁盘剩余空间,-h是以人类可读的方式显示,比如G、M。
  • free -m:查看内存使用情况,单位是兆字节。
  • uname -a:查看内核版本。

实操时,最常遇到的场景就是"服务器卡了,看看谁占用了CPU",这时候top是首选。按P按CPU排序,按M按内存排序,找出大块头进程后按q退出,再决定杀不杀。杀掉进程用kill:

kill -9 PID

5.4 用管道组合完成日常小任务

我建议每个新手都刻意练习组合命令,这是从"会敲命令"到"会用Linux"的分水岭。比如:

ps aux | grep nginx | grep -v grep

这条命令会把所有包含nginx的进程找出来,同时用grep -v grep排除掉命令行里本身包含grep的那个进程。我第一次看到这个技巧时觉得特别巧妙,它解决了一个经典问题:你搜索grep,结果把自己也搜进去了。再比如:

netstat -tlnp | grep :80

查看哪个进程占用了80端口。这种管道思维练得越多,你对Linux的感觉就越好。

6. 系统软件包管理:装软件不再靠下载安装包

6.1 apt与yum的异同

Linux发行版都有软件包管理工具。Debian系(如Ubuntu)用apt,Red Hat系(如CentOS)用yum或dnf。它们的作用是从软件仓库下载、安装、更新、卸载软件包。

Ubuntu上用apt的典型流程:

sudo apt update # 更新软件源索引 sudo apt install nginx # 安装nginx sudo apt remove nginx # 卸载 sudo apt upgrade # 升级所有可升级的软件

注意第一行很重要,几乎每次安装之前都要先apt update,更新一下软件列表,否则系统不知道有哪些新版本可以装。

CentOS上用yum:

sudo yum install nginx sudo yum remove nginx

两者逻辑一样,就是命令不同。这个操作方式比Windows下载安装包再下一步下一步要高效得多,而且依赖关系会被自动解决。比如你装A软件,A依赖B,包管理器会自动把B一起装上,这在Windows世界几乎是不可想象的。

6.2 软件包的查询与版本管理

装完软件后,要确认装了什么版本,可以用:

nginx -v apt list --installed | grep nginx dpkg -l | grep nginx

如果你自己手动下载了一个.deb或.rpm包,Ubuntu可以sudo dpkg -i xxx.deb装,CentOS可以sudo rpm -ivh xxx.rpm装。这种方式偶尔会碰到依赖问题,此时往往需要手动解决依赖,所以我建议优先用自带包管理器,实在没有的再考虑源码编译或官方二进制包。

7. 常见问题与排查技巧实录

7.1 command not found、Permission denied怎么办

新手最容易碰到的错误就是command not found。原因不外乎几种:命令拼错;软件没安装;命令确实存在但不在环境变量PATH里。排查思路很简单,先拼写检查,然后which 命令名看看能不能找到,找不到就用包管理器装,装完了还找不到就可能是路径问题,需要把路径加到~/.bashrc的PATH里。

Permission denied就更常见了。比如你想执行一个脚本,报这个错,大概率是文件没有执行权限。用ls -l看看权限,再用chmod +x加执行权限。如果是在系统目录里写文件,比如直接往/etc下写配置,那就要前面加sudo提权。

7.2 磁盘空间满了的几个排查命令

服务器告警里最常见的就是磁盘满。排查顺序是:先用df -h看哪个分区满了,再用du -sh *看当前目录下谁吃得最多。我遇到过最隐蔽的情况是日志文件被进程占用,明明删掉了但空间还是没释放,这时候要重启那个进程或用ls -l /proc/PID/fd找到被打开的文件。新手阶段能掌握df -h和du -sh就已经能解决90%的问题了。

7.3 忘记密码、终端卡死这些救急操作

如果你忘记了自己的登录密码,重启到GRUB菜单里进入单用户模式重置,这是比较进阶的操作。但你只是日常练习,我可以教你一个更稳妥的思路:在虚拟机里用系统启动盘重置,或者用救援模式。记住是"重置"不是找回,密码本来就不可逆。

终端卡死也是一个高频事故。比如误按了Ctrl+S,终端就锁住了,输入什么都不回显。这时候按Ctrl+Q解锁。还有进程狂刷日志刷屏,按Ctrl+C中断当前命令。如果窗口完全卡死,按Ctrl+D退出登录,最后实在没招再开一个新会话。

7.4 新手常犯的几个操作失误

我观察过很多入门者,有几种失误简直是一模一样的。

第一种是在root下乱用rm -rf,前面说过,不再重复。第二种是分不清绝对路径和相对路径,配置nginx的时候明明人在/etc/nginx/下面,还写/etc/nginx/开头的绝对路径,结果出了bug半天查不出来。第三种是编辑配置文件前不做备份,改坏了没法回滚。我自己的习惯是每次改配置前先cp file file.bak,改完确认没问题再把备份删掉。这个习惯在关键服务器上救了我不止一次。

7.5 快速速查表

目的命令说明
查看当前目录pwd显示绝对路径
列出文件ls -l长格式并显示权限
切换目录cd /path用绝对路径最稳妥
创建目录mkdir -p a/b递归创建
创建空文件touch file如果文件存在则更新时间戳
查看文件less file大文件首选
复制/移动cp -r src dst/mv src dst复制目录记得-r
删除rm -r file慎用-rf
搜内容grep 关键词 文件常用管道组合
找文件find 路径 -name 条件可按大小、时间条件
查看进程ps aux/toptop是动态的
查磁盘df -h人类可读格式
查内存free -m以MB为单位
权限修改chmod 755 file数字权限位
属主修改chown user:group file注意要管理员权限
安装软件sudo apt install xxxUbuntu/Debian系
帮助文档man 命令学会看手册才是真入门

8. 写在最后:我的一些实操体会

看到这里,你应该已经有了一个清晰的轮廓:Linux不是什么神秘的魔法,它只是一套设计哲学跟Windows不同的系统。很多东西你第一次接触觉得别扭,但用久了就会发现,它能让你用手指直接控制系统的每一块肌肉。我自己当初入门的时候,没少在vim编辑器里出不来、没少被权限报错气到,但现在回头看,恰恰是那些"按Enter之前多想想"的时刻,培养了我对系统的敬畏和条理。

最后分享一个我到现在还在用的小技巧:把值得记的命令片段放到一个笔记里,不是那种抄网上的大而全手册,而是你自己真实敲过、真实报过错、真实解决过的。比如某次你花了一小时解决了一个端口占用问题,就把排查过程和命令记下来。过一个月再翻出来看,你会发现自己已经能秒懂很多东西了。别指望一天记完所有指令,Linux的强悍之处不在于指令多,而在于你想要做什么时,总能找到合适的方法把它做出来。你只需要一点点耐心和好奇心,把最基础的这几十个命令练熟,后面的路自然就越走越宽了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询