🐧 Linux 常用命令汇总

📝 前言

Linux 命令很多,但真正高频使用的通常集中在关机重启、权限设置、文件目录管理、用户管理、磁盘操作与软件管理这些场景。与其一次性死记硬背所有命令,不如先把最常用、最容易碰到的那批掌握下来。

这篇文章整理成一份偏“速查 + 入门说明”的结构,适合:

  • 刚接触 Linux 的新手
  • 需要临时查命令的用户
  • 想建立基础命令体系的人

[!TIP]
建议把这篇文章先收藏,平时遇到命令不熟的时候回来查,比硬背更有效。


🔌 一、关机与重启命令

在服务器环境里,关机和重启都属于需要谨慎执行的操作。因为一旦执行,可能直接影响线上服务。

1. 常见命令

shutdown -h now
shutdown -r now
reboot
halt
poweroff

2. 这些命令分别是什么意思

  • shutdown -h now:立即关机
  • shutdown -r now:立即重启
  • reboot:重启系统
  • halt:停止系统
  • poweroff:关闭电源

3. 延时执行示例

shutdown -h +10
shutdown -r +10
shutdown -h 20:25

它们分别表示:

  • 10 分钟后关机
  • 10 分钟后重启
  • 当天 20:25 关机

4. 为什么常提到 sync

在一些资料中,你会看到先执行:

sync

它的作用是把内存中的数据同步到磁盘,避免还没写盘的数据丢失。

[!NOTE]
在现代系统里很多情况下内核会自行处理,但理解这个命令的意义仍然很有帮助。


🔐 二、文件权限与属主命令

Linux 权限体系是新手最容易卡住的地方。只要理解“属主、属组、其他人”这三层关系,很多命令就会清晰很多。

1. chgrp:修改文件所属组

chgrp [-R] 属组名 文件名

常见用法:

  • -R:递归修改目录及内部所有文件

2. chown:修改文件拥有者

chown [–R] 所有者 文件名
chown [-R] 所有者:属组名 文件名

示例:

chown root:root install.log

这表示把 install.log 的属主和属组都改回 root

3. chmod:修改权限

chmod [-R] xyz 文件或目录

Linux 的权限通常分成:

  • r:读,值为 4
  • w:写,值为 2
  • x:执行,值为 1

例如:

  • 777 = rwxrwxrwx
  • 754 = rwxr-xr--

示例:

chmod 777 .bashrc
chmod 754 test1

4. 符号写法

除了数字方式,也可以用符号写法:

chmod u=rwx,g=rx,o=r test1
chmod a-x test1

常见字母含义:

  • u:user
  • g:group
  • o:others
  • a:all

[!WARNING]
chmod 777 虽然看起来方便,但权限过大,生产环境通常不推荐随便使用。


📁 三、文件与目录管理

这一部分是日常使用最频繁的内容,建议优先掌握。

1. 常见目录命令速览

  • ls:列出文件
  • cd:切换目录
  • pwd:显示当前路径
  • mkdir:创建目录
  • rmdir:删除空目录
  • cp:复制文件或目录
  • rm:删除文件或目录
  • mv:移动文件或重命名

2. ls:列出目录内容

ls -al

常见参数:

  • -a:显示隐藏文件
  • -l:以详细列表形式显示
  • -d:只显示目录本身

3. cd:切换目录

cd /root/runoob/
cd ./runoob/
cd ~
cd ..

常见用法:

  • cd ~:回到家目录
  • cd ..:回到上一级目录

4. pwd:显示当前工作目录

pwd
pwd -P

其中 -P 会显示真实路径,而不是符号链接路径。

5. mkdir:创建目录

mkdir test
mkdir -p test1/test2/test3/test4
mkdir -m 711 test2

常见参数:

  • -p:递归创建多级目录
  • -m:创建时直接指定权限

6. rmdir:删除空目录

rmdir runoob/
rmdir -p test1/test2/test3/test4

[!NOTE]
rmdir 只能删除空目录,非空目录通常改用 rm -r

7. cp:复制文件或目录

cp ~/.bashrc /tmp/bashrc
cp -i ~/.bashrc /tmp/bashrc
cp -r dir1 dir2

常见参数:

  • -i:覆盖前询问
  • -r:递归复制目录
  • -p:保留文件属性

8. rm:删除文件或目录

rm -i bashrc
rm -rf testdir

常见参数:

  • -i:删除前询问
  • -f:强制删除
  • -r:递归删除目录

[!WARNING]
rm -rf 是 Linux 最危险的高频命令之一,路径一定要确认清楚再执行。

9. mv:移动文件或重命名

mv bashrc mvtest
mv mvtest mvtest2

它既可以:

  • 把文件移动到别的目录
  • 也可以直接给文件/目录改名

👤 四、用户与用户组管理

在服务器管理中,用户与权限是非常核心的部分。很多系统问题,最后都能追溯到“谁能访问、谁能执行、谁能写入”。

1. 添加用户:useradd

useradd 选项 用户名

例如:

useradd -d /home/sam -m sam

这个命令会创建用户 sam,并创建主目录 /home/sam

2. 删除用户:userdel

userdel -r sam

这里的 -r 表示连主目录一起删除。

3. 修改用户:usermod

usermod -s /bin/ksh -d /home/z -g developer sam

这个命令可以修改:

  • 登录 Shell
  • 主目录
  • 用户组

4. 修改密码:passwd

passwd sam
passwd -d sam
passwd -l sam

常见含义:

  • passwd sam:给用户设置密码
  • passwd -d sam:删除密码
  • passwd -l sam:锁定账号

5. 用户组管理命令

新建用户组

groupadd group1
groupadd -g 101 group2

删除用户组

groupdel group1

修改用户组

groupmod -g 102 group2
groupmod -g 10000 -n group3 group2

切换用户组

newgrp root

[!TIP]
当你遇到“明明有权限却访问不了”的情况,记得检查当前用户到底属于哪个组。


🧾 五、与用户相关的重要系统文件

Linux 中很多用户与权限信息,实际上都保存在系统文件里。

1. /etc/passwd

这个文件记录用户的基本信息。

格式如下:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

例如:

sam:x:200:50:Sam san:/home/sam:/bin/sh

2. /etc/shadow

这个文件存放加密后的密码信息,权限更严格,一般只有超级用户能读。

3. /etc/group

这个文件记录用户组信息。

格式如下:

组名:口令:组标识号:组内用户列表

理解这三个文件后,很多用户管理相关问题会更容易排查。


👥 六、批量创建用户

如果你只是偶尔加一个用户,用 useradd 就够了;但如果要一次创建几十个甚至几百个用户,就需要批量方式。

1. 准备用户文件

例如 user.txt

user001::600:100:user:/home/user001:/bin/bash
user002::601:100:user:/home/user002:/bin/bash
user003::602:100:user:/home/user003:/bin/bash

2. 批量导入用户

newusers < user.txt

3. 准备密码文件

例如 passwd.txt

user001:123456
user002:123456
user003:123456

4. 批量设置密码

chpasswd < passwd.txt

如果涉及 shadow 转换,也可能会配合:

pwunconv
pwconv

[!WARNING]
批量创建用户前,一定要仔细检查 UID、主目录和用户名是否冲突。


💽 七、磁盘管理常用命令

磁盘管理直接关系到系统容量、挂载、格式化与健康状态。

常见命令有:

  • df:查看磁盘整体使用情况
  • du:查看目录占用情况
  • fdisk:磁盘分区
  • mkfs:格式化文件系统
  • fsck:文件系统检查
  • mount / umount:挂载与卸载

1. df:查看磁盘空间

df -h

适合快速看:

  • 哪个分区快满了
  • 挂载情况是否正常

2. du:查看目录体积

du -sh /var/log
du -sh *

适合查“哪个目录最占空间”。

3. fdisk:磁盘分区

fdisk -l

用于查看当前系统磁盘与分区情况。

4. mkfs:格式化文件系统

mkfs -t ext3 /dev/hdc6

5. fsck:文件系统检查

fsck -C -f -t ext3 /dev/hdc6

6. mount:挂载分区

mount /dev/hdc6 /mnt/hdc6

7. umount:卸载分区

umount /dev/hdc6

[!WARNING]
格式化和分区命令有不可逆风险,执行前一定确认设备名是否正确。


✍️ 八、vi / vim 基础使用

在 Linux 世界里,vi / vim 是绕不过去的编辑器。

1. 什么是 vim

Vim 是从 vi 发展而来的文本编辑器,功能比传统 vi 更丰富,在服务器环境和开发场景中都非常常见。

2. 三种模式

Vim 最核心的是 3 种模式:

  • 命令模式
  • 输入模式
  • 底线命令模式

3. 高频操作

进入输入模式

i

保存退出

:wq

不保存强退

:q!

复制 / 删除当前行

yy
dd

撤销 / 重做

u
Ctrl + r

[!TIP]
新手最先记住 iEsc:wq:q! 这几个命令,就够应付大多数情况了。


📦 九、yum 包管理命令

在基于 RPM 的系统里,yum 是非常常见的软件包管理工具。

1. 常见用途

  • 安装软件
  • 更新软件
  • 搜索软件包
  • 删除软件
  • 清理缓存

2. 常见命令示例

yum install nginx
yum update
yum remove nginx
yum search php
yum clean all

3. 使用场景理解

  • 装软件:yum install
  • 升级系统或软件:yum update
  • 删除软件:yum remove
  • 搜索包名:yum search
  • 清缓存:yum clean all

📥 十、apt 命令汇总与使用教学

如果你使用的是 Debian、Ubuntu、Linux Mint 等发行版,那么最常接触的软件包管理工具通常不是 yum,而是 apt。它主要负责软件包索引更新、软件安装、升级、卸载和依赖管理。

1. 先理解 apt 是做什么的

你可以把 apt 理解成“系统应用商店的命令行版本”,它能帮你:

  • 从软件源获取软件包信息
  • 安装或卸载软件
  • 自动处理依赖关系
  • 更新系统中的软件版本
  • 清理不再需要的软件缓存

[!NOTE]
在较新的 Debian / Ubuntu 系统中,日常操作一般直接用 apt 即可;而脚本场景中也常见 apt-get

2. 最常用的 apt 命令速查

apt update
apt upgrade
apt install nginx
apt remove nginx
apt purge nginx
apt autoremove
apt search nginx
apt show nginx
apt list --upgradable
apt clean

3. 这些命令分别是什么意思

  • apt update:更新软件源索引
  • apt upgrade:升级已安装的软件
  • apt install nginx:安装指定软件
  • apt remove nginx:卸载软件,但通常保留配置文件
  • apt purge nginx:彻底卸载软件及其配置文件
  • apt autoremove:删除不再需要的依赖包
  • apt search nginx:搜索软件包
  • apt show nginx:查看软件包详情
  • apt list --upgradable:查看可升级的软件
  • apt clean:清理已下载的软件缓存

4. 新手最常见的正确使用顺序

如果你准备在 Ubuntu 服务器上安装一个软件,最常见流程通常是:

第一步:更新软件源索引

sudo apt update

这一步不是升级软件,而是先让系统知道“现在仓库里有哪些可用包、最新版本是多少”。

第二步:安装软件

sudo apt install nginx

系统会自动解析并安装依赖。

第三步:确认软件是否安装成功

nginx -v

或者查看软件包信息:

apt show nginx

[!TIP]
很多人一上来直接 apt install,虽然有时也能装,但更推荐先执行 apt update,这样更稳妥。


5. 升级系统时怎么用

如果你只是想更新软件列表:

sudo apt update

如果你要把已安装的软件升级到仓库里的新版本:

sudo apt upgrade

如果想先看有哪些包可升级:

apt list --upgradable

[!WARNING]
在生产服务器上执行升级前,建议先确认是否会影响运行中的业务服务,尤其是 Nginx、MySQL、Docker 一类关键组件。


6. 删除软件时要注意什么

普通卸载:

sudo apt remove nginx

彻底卸载并删除配置:

sudo apt purge nginx

清理无用依赖:

sudo apt autoremove

这 3 个命令常常配合使用。例如:

sudo apt remove nginx
sudo apt autoremove

如果你想删得更干净:

sudo apt purge nginx
sudo apt autoremove

7. 搜索与查看软件包信息

当你不确定包名时,可以先搜索:

apt search php
apt search docker

如果你已经知道包名,想看详细信息:

apt show php
apt show docker.io

你通常能看到:

  • 软件版本
  • 依赖信息
  • 软件说明
  • 仓库来源

8. 缓存清理与系统整理

安装软件后,系统会保留下载缓存。常见清理命令:

sudo apt clean
sudo apt autoremove

它们的作用分别是:

  • apt clean:清空本地下载的软件包缓存
  • apt autoremove:清除已不再需要的依赖包

如果服务器磁盘比较紧张,这两个命令会很实用。


9. aptapt-get 有什么区别

很多旧教程里会写:

apt-get update
apt-get install nginx

而现在常见写法是:

apt update
apt install nginx

简单理解:

  • apt:更适合人工在终端里直接使用,输出更友好
  • apt-get:更传统,也常见于脚本和老教程

对于新手来说,日常记住 apt 就够用了。


10. apt 使用示例:在 Ubuntu 上安装 Nginx

下面给你一个完整示例:

sudo apt update
sudo apt install nginx
nginx -v
systemctl status nginx

如果后续不想用了,可以这样卸载:

sudo apt remove nginx
sudo apt autoremove

如果你要彻底清理:

sudo apt purge nginx
sudo apt autoremove

这个流程基本能覆盖大多数新手的实际使用场景。


📌 总结

Linux 命令学习最怕的不是多,而是没有主线。你可以先按下面这条顺序掌握:

  1. 文件和目录操作
  2. 权限和属主修改
  3. 用户与用户组管理
  4. 磁盘与挂载管理
  5. Vim 基本编辑
  6. 软件包安装与更新

把这些高频内容先掌握之后,你再接触服务管理、网络排查、Shell 脚本时会轻松很多。


💬 讨论

欢迎在评论区交流:

  1. 你目前最常用的 Linux 命令是哪几个?
  2. 你更想继续看服务器运维命令,还是日常桌面命令整理?
  3. 如果你愿意,我也可以继续帮你整理一版“Linux 新手必背 30 条命令”的精简版。