Linux 命令是用户与 Linux 系统交互的核心工具,通过命令行(Shell)向系统发送指令,实现对文件、进程、硬件、网络等各种资源的管理和控制。
Linux 基本命令
Linux 命令通常格式为:命令 [选项] [参数](选项以 - 开头,可选;参数是操作对象,如文件名)。
Linux 命令的选项可以组合使用,这也是提高操作效率的常用方式,核心分「短选项组合」和「长短选项搭配」两种情况:
比如 ls 命令,-l 是查看详细信息,-a 是显示隐藏文件,单独用是 ls -l 或 ls -a,组合起来直接写 ls -la(短选项可连写,不用加空格);再比如 rm 命令,-r 是删除目录,-f 是强制删除,组合成 rm -rf 就能快速删除目录及内容(注意谨慎使用)。
如果是「长选项」(以 -- 开头),比如 rm --recursive --force,效果和 rm -rf 一样,长选项也能和短选项搭配,比如 ls -l --all,本质都是对选项功能的叠加。
以下是最常用的基础命令:
1. 文件 / 目录操作命令
1. ls
全名 :list(列出) 功能:列出指定目录中的文件 / 子目录(默认显示当前目录)。
最常见选项:
-l:long(长格式)------ 显示文件详细信息(权限、所有者、大小、修改时间等)。-a:all(全部)------ 显示所有文件,包括隐藏文件(文件名以.开头的文件,如.bashrc)。-h:human-readable(人类可读)------ 配合-l使用,文件大小以 K/M/G 等单位显示(而非字节)。
2. cd
全名 :change directory(切换目录)功能:切换到指定目录(路径)。
常用 "符号选项"(cd 无传统 "- 选项",但有特殊符号表示目标目录):
~:表示当前用户的主目录(如/home/book)。例:cd ~→ 切换到自己的主目录。..:表示 "上一级目录"。例:cd ..→ 从当前目录切换到其父目录(如从/home/book到/home)。.:表示 "当前目录"(一般省略,如cd ./test等价于cd test)。
3. pwd
全名 :print working directory(打印工作目录)功能 :显示当前所在目录的绝对路径(从根目录 / 开始的完整路径)。无选项
4. mkdir
全名 :make directory(创建目录)功能:创建新的空目录。
最常见选项:
-p:parents(父目录)------ 递归创建多级目录(若父目录不存在则自动创建)。例:mkdir -p a/b/c → 一次性创建 a 目录,以及其下的 b 目录,再其下的 c 目录(无需手动先创建 a 和 b)。
5. rm
全名 :remove(删除)功能:删除文件或目录(危险操作,需谨慎)。
最常见选项:
-r:recursive(递归)------ 删除目录及其下所有内容(默认 rm 只能删文件,不能删目录)。例:rm -r test → 删除 test 目录及其中所有文件 / 子目录。
-f:force(强制)------ 强制删除,不提示确认(即使文件是只读的)。例:rm -f file.txt → 直接删除 file.txt,不弹出 "是否删除" 的提示。
组合 -rf :强制递归删除(最常用但最危险,慎用!)。例:rm -rf test → 强制删除 test 目录及所有内容,无任何提示。
6. cp
全名 :copy(复制)功能:复制文件或目录到指定位置。
最常见选项:
-r:recursive(递归)------ 复制目录及其下所有内容(默认 cp 只能复制文件,不能复制目录)。例:cp -r dir1 /home/book → 将 dir1 目录及其中所有内容复制到 /home/book 下。
-i:interactive(交互)------ 若目标位置已存在同名文件,会提示是否覆盖(避免误删)。例:cp -i file.txt /tmp → 若 /tmp 已有 file.txt,会提示 "是否覆盖?"。
7. mv
全名 :move(移动)功能:移动文件 / 目录到新位置,或给文件 / 目录重命名(本质是 "移动到同一目录下并改名")。
最常见选项:
-i:interactive(交互)------ 若目标位置存在同名文件,提示是否覆盖(防止误操作)。例:mv -i old.txt /tmp → 若 /tmp 已有 old.txt,会提示确认。
重命名用法 :当源和目标在同一目录时,就是重命名。例:mv old.txt new.txt → 将 old.txt 改名为 new.txt(同一目录下)。
8. touch
作用:创建空文件(若文件已存在,会更新其 "最后修改时间",不会删除内容)。
用法:touch 文件名
示例:
touch note.txt # 在当前目录创建空文件 note.txt
touch /home/book/docs/plan.md # 在指定目录创建空文件 plan.md
touch a.txt b.txt c.txt # 一次性创建多个空文件(a.txt、b.txt、c.txt)
2. 文件内容查看命令
1. cat
全名 :concatenate(连接、拼接)
核心功能:读取文件内容并打印到终端,默认一次性输出所有内容(适合短文件,长文件会刷屏)。
最常用选项:
-n:number(编号)------ 显示内容时给所有行加上行号(包括空行)。
例:cat -n /etc/hosts → 查看 hosts 文件并显示每行的行号。
-b:number-nonblank(非空行编号)------ 只给非空行加行号(空行不编号)。
例:cat -b notes.txt → 查看笔记文件,仅有效内容行带编号。
2. more
全名 :more(更多)
核心功能 :分页显示长文件内容(适合内容超过一屏的文件),只能向下翻页。
常用操作(无传统 "- 选项",靠按键交互):
- 按 空格键:向下翻一屏;
- 按 Enter 键:向下翻一行;
- 按 q 键:退出查看。
例:more /var/log/dmesg → 分页查看系统启动日志(内容较长,逐屏浏览)。
3. less
全名 :less(更少,取自 "less is more" 的设计理念)
核心功能 :比 more 更灵活的分页工具,支持上下翻页、搜索,适合复杂浏览长文件。
高频交互操作:
- 按 ↑/↓ 方向键:上下翻一行;
- 按 空格键:向下翻一屏;
- 按 b 键:向上翻一屏;
- 按 / 关键词 :向下搜索 "关键词"(如
/error搜索包含 error 的行); - 按 n 键:跳转到下一个匹配的关键词;
- 按 N 键:跳转到上一个匹配的关键词;
- 按 q 键:退出查看。
例:less /var/log/syslog → 分页查看系统日志,可搜索 "warning" 定位警告信息。
4. head
全名 :head(头部)
核心功能 :显示文件的开头部分内容(默认前 10 行)。
最常用选项:
-n 数字:number(行数)------ 指定显示前 N 行(-n可省略,直接写数字,如head -5等价于head 5)。
例 1:head -3 /etc/passwd → 显示用户配置文件的前 3 行(查看前几个用户)。
例 2:head 6 README.md → 显示 README 的前 6 行(快速了解文件开头)。
5. tail
全名 :tail(尾部)
核心功能 :显示文件的结尾部分内容(默认后 10 行),尤其适合监控动态更新的文件(如日志)。
最常用选项:
-n 数字:指定显示后 N 行(同head,-n可省略)。
例:tail -4 /var/log/auth.log → 显示认证日志的最后 4 行(查看最近的登录记录)。
-f:follow(跟随)------ 实时跟踪文件新增内容(文件更新时自动显示新行,按Ctrl+C退出)。
例:tail -f /var/log/nginx/access.log → 实时监控 Nginx 的访问日志(用户请求时会实时输出新记录)。
总结:如何选?
- 短文件(1-2 屏)→
cat(快速全览); - 长文件(需翻页)→
less(功能最全,优先用); - 只看开头 / 结尾几行 →
head/tail; - 实时监控日志 →
tail -f(核心场景)。
这些命令是查看配置文件、日志的必备工具,记住 -n(指定行数)和 less 的搜索功能,基本能覆盖大部分场景~
3. 系统信息命令
1. uname
全名 :unix name(Unix 名称)
核心功能:显示当前系统的内核及硬件架构相关信息。
最常用选项:
-a:all(全部)------ 显示完整系统信息(最常用),输出包含:内核名称 主机名 内核版本 内核编译时间 硬件架构 操作系统
例:uname -a → 输出如 Linux ubuntu 5.4.0-91-generic 2023-10-01 x86_64 GNU/Linux(分别对应:内核是 Linux,主机名 ubuntu,内核版本 5.4.0-91,x86_64 架构,系统是 GNU/Linux)
2. df
全名 :disk free(磁盘空闲)
核心功能:查看系统磁盘分区的空间使用情况(总容量、已用、可用、挂载点)。
最常用选项:
-
-h:human-readable(人类可读)------ 以 K、M、G 为单位显示(默认是字节,不直观)。例:df -h→ 输出示例:Filesystem Size Used Avail Use% Mounted on /dev/sda1 20G 8G 12G 40% / /dev/sdb1 100G 30G 70G 30% /data(含义:
/dev/sda1分区总大小 20G,已用 8G,挂载在根目录/)
3. du
全名 :disk usage(磁盘使用)
核心功能 :查看单个文件或目录的磁盘占用大小(与 df 不同:df 看分区整体,du 看具体文件 / 目录)。
最常用选项:
-s:summary(汇总)------ 只显示目录的总大小(不列出子目录细节)。-h:human-readable(人类可读)------ 以 K、M、G 为单位显示。- 组合
-sh:显示目录总大小(最常用)。例:du -sh /home/book→ 输出5.2G /home/book(表示book用户主目录总占用 5.2G)。
4. top / htop
全名 :top 取自 "table of processes"(进程表格);htop 是 top 的增强版(无特定全名,强调 "更人性化")。
核心功能:实时监控系统进程的资源占用(CPU、内存、运行状态等),动态刷新。
最常用操作(无传统 "- 选项",靠交互按键):
- top (基础工具,系统自带):
- 按
q:退出监控; - 按
P(大写):按 CPU 占用率排序(默认,快速找最耗 CPU 的进程); - 按
M(大写):按内存占用率排序; - 按
k:输入进程 ID(PID)后按回车,可杀死指定进程(需谨慎)。
- 按
- htop (增强版,需安装:
sudo apt install htop):- 优势:支持鼠标操作、颜色区分进程状态、更直观的界面;
- 操作类似
top,但可直接用方向键选中进程,按F9选择信号杀死进程。
5. ps
全名 :process status(进程状态)
核心功能 :查看系统当前运行的进程快照(某一时刻的静态状态,非实时刷新,与 top 互补)。
最常用选项组合:
-
a:all(所有用户的进程,包括其他用户); -
u:user-oriented(显示用户相关信息,如用户名、CPU / 内存占用率); -
x:包括无终端(tty)的进程(如后台服务)。 -
组合
ps aux:显示系统所有进程的详细快照(最常用)。例:ps aux | grep ssh→ 用管道(|)结合grep筛选与ssh相关的进程,输出包含:plaintext
root 1234 0.0 0.1 12345 6789 ? Ss 09:00 0:00 /usr/sbin/sshd(含义:
root用户运行的sshd进程,PID 是 1234,CPU 占用 0.0%)
总结场景:
- 查系统版本 / 架构 →
uname -a; - 查磁盘分区空间 →
df -h; - 查文件夹大小 →
du -sh 目录路径; - 实时监控耗资源进程 →
top或htop; - 查某一时刻的进程快照 →
ps aux | grep 关键词。
4. 用户与权限管理命令
useradd/userdel:创建 / 删除用户(需 root 权限);
例:sudo useradd newuser(创建 newuser 用户)。
passwd:修改用户密码;
例:passwd newuser(修改 newuser 的密码)。
su/sudo:切换用户 / 临时获取 root 权限(su -切换到 root,sudo 命令以 root 权限执行命令);
例:sudo rm /tmp/file(以 root 权限删除 /tmp/file)。
chmod:修改文件 / 目录权限(权限分读r(4)、写w(2)、执行x(1),格式:chmod [用户/组/其他]±=权限 文件名);
例:chmod u+x script.sh(给文件所有者添加执行权限);chmod 755 file(所有者可读可写可执行,组和其他用户可读可执行)。
chown:修改文件 / 目录的所有者(需 root 权限);
例:sudo chown book:book file.txt(将 file.txt 的所有者和所属组改为 book)。
5. 网络相关命令
ping:测试网络连通性(ping -c 4 baidu.com发送 4 个数据包);
例:ping baidu.com(测试与百度服务器的连通性)。
ifconfig/ip:查看 / 配置网络接口(ifconfig较老,ip addr更推荐);
例:ip addr(显示所有网卡的 IP 地址等信息)。
netstat/ss:查看网络连接(netstat -tuln显示监听的 TCP/UDP 端口);
例:ss -tuln(查看当前系统监听的端口)。
6.查找命令
1.which:
专门用于查找系统中可执行命令 所在路径的工具,它会在环境变量 PATH(存储命令搜索路径的变量)中搜索指定命令的位置。
核心功能:告诉你 "某个命令(如 ls、gcc)实际存放在硬盘的哪个目录"。
语法:which 命令名
示例:
which ls # 查找ls命令的位置,输出:/bin/ls
which gcc # 查找gcc编译器的位置,输出:/usr/bin/gcc
which python3 # 查找python3的位置,输出:/usr/bin/python3
特点:
- 只找可执行命令(二进制文件或脚本),不找普通文件 / 目录;
- 只在
PATH变量定义的目录(如/bin、/usr/bin)中搜索;
2.find
find 是 Linux 中最灵活的文件查找工具,可根据路径、文件名、大小、修改时间、权限等多种条件,在指定目录(及子目录)中搜索文件或目录。
核心功能:
- 从指定目录开始,递归查找符合条件的文件 / 目录(支持复杂筛选)。
基本语法:
find [查找起始路径] [筛选条件] [操作]
常用筛选条件(高频):
| 条件 | 含义 | 示例 |
|---|---|---|
-name "文件名" |
按文件名匹配(支持通配符) | find /home -name "*.txt" → 在 /home 下找所有 .txt 文件 |
-type f/d |
按类型筛选:f 是文件,d 是目录 |
find /etc -type d -name "conf*" → 在 /etc 下找以 conf 开头的目录 |
-size +N/-N |
按大小筛选:+N 大于 N,-N 小于 N(单位:k/K、m/M、g/G) |
find /var -size +100M → 在 /var 下找大于 100M 的文件 |
-mtime +N/-N |
按修改时间筛选:+N 早于 N 天前,-N 晚于 N 天内 |
find ~ -mtime -3 → 在当前用户主目录下找 3 天内修改过的文件 |
实用示例:
-
在当前目录(
.)及子目录中,查找所有.sh后缀的脚本文件:find . -name "*.sh" -
在
/tmp目录中,查找 1 小时内修改过的普通文件(非目录):find /tmp -type f -mmin -60 # -mmin 按分钟,-60 表示60分钟内 -
查找
/usr/local下权限为755的目录:find /usr/local -type d -perm 755
3.通配符
通配符是一类特殊字符,用于模糊匹配文件名或路径 ,在 ls、find、cp 等涉及文件操作的命令中频繁使用,核心作用是 "批量匹配符合规则的文件"。
常用通配符及含义:
| 通配符 | 含义 | 示例 |
|---|---|---|
* |
匹配任意个字符(包括 0 个) | *.txt → 匹配所有以 .txt 结尾的文件(如 a.txt、file123.txt) |
? |
匹配单个字符 | file?.log → 匹配 file1.log、filea.log(文件名中 "?" 位置是 1 个任意字符) |
[abc] |
匹配括号内的任意一个字符 | [1-3].txt → 匹配 1.txt、2.txt、3.txt(- 表示范围) |
[!abc] 或 [^abc] |
匹配不在括号内的字符 | [!a-z].txt → 匹配不以小写字母开头的 .txt 文件(如 1.txt、A.txt) |
通配符在命令中的使用:
-
结合
ls批量查看文件:ls *.py # 列出当前目录所有 .py 后缀的文件 ls doc_?.pdf # 列出 doc_1.pdf、doc_x.pdf 等(文件名中间有1个任意字符) -
结合
find查找文件(注意:find中用-name时,通配符通常需要用引号包裹,避免被 Shell 提前解析):find /data -name "report_[0-9]*.csv" # 查找 /data 下以 report_数字 开头的 .csv 文件 -
结合
cp批量复制文件:cp /home/book/photo_*.jpg ./images/ # 把 /home/book 下所有 photo_ 开头的 .jpg 复制到当前 images 目录
4.grep
- 全名 :
Global Regular Expression Print(全局正则表达式打印) - 核心功能 :在文件或输入文本中,搜索匹配指定模式(字符串或正则表达式)的行,并输出这些行。
最常用选项:
| 选项 | 功能 | 示例 |
|---|---|---|
-i |
忽略大小写(匹配时不区分大写和小写) | grep -i "error" log.txt → 查找 log.txt 中包含 "error" 或 "ERROR" 的行 |
-n |
显示匹配行的行号 | grep -n "warning" app.log → 输出包含 "warning" 的行及其行号(如 5: WARNING: low memory) |
-r |
递归搜索目录下的所有文件 | grep -r "config" /etc → 在 /etc 目录及子目录中,查找所有包含 "config" 的文件及内容 |
-v |
反向匹配(输出不包含模式的行) | grep -v "debug" run.log → 输出 run.log 中所有不包含 "debug" 的行 |
5. wc
- 全名 :
Word Count(单词计数) - 核心功能 :统计文本的行数、单词数、字节数(默认输出这三个数值)。
最常用选项:
| 选项 | 功能 | 示例 |
|---|---|---|
-l(小写 L) |
只统计行数 | wc -l file.txt → 输出 file.txt 的总行数(如 156 表示 156 行) |
-w |
只统计单词数(以空格 / 标点分隔的字符串) | wc -w poem.txt → 输出 poem.txt 中的单词总数 |
-c |
只统计字节数(包含所有字符,包括换行符) | wc -c data.bin → 输出二进制文件 data.bin 的大小(字节) |
6.管道符(|)
- 核心作用 :将前一个命令的输出 ,直接作为后一个命令的输入,实现 "命令串联",让简单命令组合成强大的功能。
- 形象理解:像 "管道" 一样传递数据,前一个命令的 "输出" 是后一个命令的 "输入"。