Linux常用命令

一、Linux 命令概述

1.1 Shell 解释器 ——Linux 命令的 "翻译官"

核心作用:用户无法直接操作内核(Kernel),Shell 作为中间层,接收命令→解析解释→传给内核→反馈结果。

openEuler 24.03 默认 Shell:Bash(Bourne-Again Shell),程序文件位于 /bin/bash。

命令提示符:root 用户为 #,普通用户为 $。

1.2 命令分类:内部命令 vs 外部命令

特性

内部命令(Built-in)

外部命令

存储形式

集成于 Shell 内部,无单独文件

独立的可执行程序文件

加载方式

随 Shell 启动加载到内存

执行时从硬盘加载到内存

执行效率

高(内存直接执行)

较高(需硬盘 IO)

对应文件

有,位于 /bin、/usr/bin、/sbin、/usr/sbin

查询方式

type 命令名(显示 builtin)

type 命令名(显示绝对路径)

示例

pwd、cd、echo、help、history

ls、cp、rm、mv、find

PATH 环境变量:外部命令的存储目录添加到 PATH 中(echo $PATH 查看),Shell 自动在 PATH 目录中搜索命令文件,因此无需输入绝对路径。

1.3 命令行通用格式

命令字 [选项] [参数]

命令字:唯一确定一条命令,区分大小写(ls 正确,LS/Ls 错误),错误会提示 command not found。

选项:调节命令功能

·短格式:单个字母,前缀 -,如 -l、-a、-h;可组合,如 -alh = -a -l -h

·长格式:多个字母 / 单词,前缀 --,如 --help、--all、--human-readable;不可组合

·部分命令二者功能相同,如 ls -a = ls --all

参数:命令的处理对象(文件名、目录路径等),可为 0 个、1 个或多个;含空格 / 特殊符号需用双引号 "" 或单引号 '' 括起。

1.4 命令行编辑实用技巧

快捷键

功能

Tab

命令 / 文件 / 目录名自动补全;按两次列出所有匹配项

\

强制换行,下一行 > 表示命令延续

Ctrl+U

删除光标前所有字符

Ctrl+K

删除光标后所有字符

Ctrl+L

清屏(替代 clear)

Ctrl+C

取消 / 终止当前命令

↑/↓

翻阅命令历史记录

1.5 获得命令帮助的三种方式

方式

适用对象

格式

特点

help

仅内部命令

help 内部命令名

调用 Shell 内置帮助文档

--help

外部命令

外部命令字 --help

最常用,精简帮助,含格式 / 选项 / 参数

man

所有命令 + 配置文件

man [章节号] 命令名

最完整权威,手册存于 /usr/share/man

man 手册常用章节:1(用户命令)、5(配置文件)、8(系统管理命令)。

man 交互操作:Page Up/Down 翻页、/关键词 查找、n/N 跳转下 / 上一个匹配、q 退出、r 刷新。

保存 man 手册为文本:

man ls | col -b > ls_help.txt

| 管道:前一个命令输出作为后一个命令输入

col -b:过滤格式控制字符

> 重定向输出:保存到文件(覆盖原有内容)

二、文件与目录管理核心命令

2.1 查看目录:pwd、cd、ls、du

(1)pwd —— 显示当前工作目录

类型:内部命令

功能:Print Working Directory,显示当前工作目录的绝对路径

格式:pwd(无选项无参数)

选项:

-L:默认,显示逻辑路径(符号链接路径)

-P:显示物理路径(忽略符号链接)

(2)cd —— 切换工作目录

类型:内部命令

功能:Change Directory

格式:cd [目标目录路径]

规则:省略路径时默认切换到当前用户家目录(root 为 /root,普通用户为 /home/用户名)

路径类型:

类型

起始目录

标识

优点

缺点

适用场景

绝对路径

根目录 /

以 / 开头

唯一准确,不受当前目录影响

路径较长

系统配置文件、命令程序

相对路径

当前工作目录

不以 / 开头

简短高效

随当前目录变化

日常操作的自定义文件、脚本

相对路径特殊形式:

符号

含义

示例

.

当前目录

./test.sh

..

上一级目录(父目录)

cd ..、cd ../..

~

当前用户家目录

cd ~、cd ~/tmp

~用户名

指定用户家目录

cd ~student

-

上一次的工作目录

cd -(两目录间快速切换)

(3)ls —— 列出目录内容

类型:外部命令

功能:List,列出指定目录中的子目录和文件

格式:ls [选项] [目录/文件名]

规则:省略路径时默认列出当前目录;以 . 开头的为隐藏文件,默认不显示

常用选项(重点掌握):

选项

长格式

核心功能

实用场景

-l

--format=long

长格式显示(权限、属主、属组、大小、修改时间)

查看完整属性,运维排查

-a

--all

显示所有内容,包括隐藏文件(. 和 ..)

查看系统隐藏配置文件

-A

--almost-all

显示所有,排除 . 和 ..

查看隐藏文件,避免干扰

-d

--directory

仅显示目录本身属性,不显示内容

查看目录权限 / 属主

-h

--human-readable

人性化显示大小(KB/MB/GB),需配合 -l

直观查看文件大小

-R

--recursive

递归显示所有子目录内容

查看目录完整结构

--color

--color=auto

以颜色区分文件类型

快速识别文件类型

文件颜色标识(默认):

颜色

类型

深蓝色

目录

白色

普通文件

绿色

可执行文件(脚本、程序)

黄色

设备文件(硬盘、键盘等)

红色

压缩文件(.zip、.tar、.gz 等)

浅蓝色

符号链接文件(快捷方式)

常用组合:

ls -al —— 长格式列出所有内容(含隐藏)

ls -lh /boot —— 人性化长格式列出指定目录

ls -ld /boot —— 仅显示目录本身属性

ls -lh /etc/ns*.conf —— 通配符匹配(ns 开头、.conf 结尾)

命令别名 alias:

alias myls='ls -alh'   # 定义别名

unalias myls            # 取消别名

企业级建议:将常用别名添加到 ~/.bashrc 实现永久生效。

(4)du —— 统计磁盘空间占用

  • 类型:外部命令
  • 功能:Disk Usage,统计指定目录 / 文件所占磁盘空间大小
  • 格式:du [选项] [目录/文件名]
  • 规则:省略路径时默认统计当前目录;统计目录时默认递归统计所有子目录

常用选项

选项

长格式

核心功能

-a

--all

统计所有文件和目录(默认仅统计目录)

-h

--human-readable

人性化显示大小(KB/MB/GB)

-s

--summarize

仅统计总大小,不显示子项详情

常用组合:

du -sh /var/log/ —— 人性化统计目录总占用(最常用)

du -ah /boot/ —— 显示所有文件和子目录占用

du -ah . | sort -rh —— 统计当前目录所有文件大小并按大小排序

使用场景:磁盘空间告警时,du -sh /* 快速统计根目录下各子目录总占用,定位过高目录。

2.2 创建目录和文件:mkdir、touch、ln

(1)mkdir —— 创建空目录

类型:外部命令

功能:Make Directory,创建一个或多个新空目录

格式:mkdir [选项] 目录名1 [目录名2 目录名3 ...]

选项:

-p:递归创建嵌套多层目录,上级目录不存在时自动创建(最常用)

规则:直接创建时上级目录必须已存在,否则提示 No such file or directory;可同时创建多个目录(空格分隔)

实操:

mkdir public_html                     # 创建单个目录

mkdir -p /multimedia/movie/cartoon   # 递归创建嵌套目录

mkdir dir1 dir2 dir3                  # 同时创建多个目录

ls -R /multimedia/                    # 验证嵌套结构

(2)touch —— 创建空文件 / 更新文件时间戳

类型:外部命令

功能:

1.文件不存在时:创建大小为 0 的空文件(支持批量)

2.文件已存在时:更新访问时间(atime)和修改时间(mtime)为当前时间,不改变内容

格式:touch 文件名1 [文件名2 文件名3 ...]

规则:可同时创建多个文件;文件名含空格 / 特殊符号需用双引号括起

(3)ln —— 创建链接文件

类型:外部命令

功能:Link,为文件或目录创建链接(相当于 Windows 快捷方式)

分类:硬链接(Hard Link)和软链接(Symbolic Link,符号链接)

硬链接 vs 软链接核心区别:

特性

硬链接

软链接(符号链接)

实现机制

为原文件创建新 inode 节点,指向同一物理数据块

创建特殊文件,存储原文件 / 目录的路径

原文件删除

硬链接仍可用,数据块不被删除

软链接失效,提示 No such file or directory

适用对象

仅普通文件,不能为目录创建

普通文件和目录均可

文件系统限制

必须与原文件在同一文件系统(同一分区)

可与原文件在不同文件系统

链接文件属性

与原文件完全相同(权限、大小)

与原文件不同,大小为原路径字符数

标识特征

无特殊标识,与普通文件一致

文件名后带 ->,颜色为浅蓝色

inode 说明:inode 是文件系统核心,存储文件属性(权限、属主、大小、时间等)和数据块指针,每个文件对应唯一 inode。硬链接本质是为同一数据块创建多个 inode 节点。

使用格式:

ln 源文件 硬链接文件名              # 创建硬链接(默认,无 -s)

ln -s 源文件/目录 软链接名/目标位置  # 创建软链接(必须带 -s,s=symbolic)

关键规则:

1.硬链接:源文件必须是普通文件,且在同一文件系统

2.软链接:源文件 / 目录路径建议用绝对路径,避免移动后失效

3.若目标位置是已存在目录,链接文件保存在该目录中,与源同名

2.3 复制、删除、移动:cp、rm、mv

(1)cp —— 复制文件 / 目录

类型:外部命令

功能:Copy,复制文件或目录

格式:cp [选项] 源文件/目录 目标文件/目录

常用选项:

-r:递归复制目录(复制目录必备)

-a:归档模式,保留文件所有属性和目录结构(数据迁移 / 完整备份必须使用)

-f:强制覆盖,不弹出确认

-i:覆盖前弹出确认提示

-v:显示复制过程

(2)rm —— 删除文件 / 目录

类型:外部命令

功能:Remove,删除指定文件或目录

格式:rm [选项] 文件/目录1 文件/目录2 ...

核心规则:

1.删除目录必须配合 -r 递归删除

2.无选项时删除文件会弹出确认,删除目录会直接报错

3.openEuler 中通过 rm 删除的文件无回收站机制,难以恢复

常用选项(重点掌握,谨慎使用):

选项

长格式

核心功能

注意事项

-f

--force

强制删除,不弹出确认

慎用!避免误删系统核心文件

-i

--interactive

删除前弹出确认,需输入 y/n

最安全,推荐日常使用

-r

--recursive

递归删除目录所有内容

删除目录必备选项

-rf

-

-r+-f 组合,强制递归删除

生产环境最常用但最危险,禁止用于根目录 /

禁止执行的致命命令:

rm -rf /      # 致命!删除根目录所有内容,系统彻底崩溃

rm -rf /*     # 致命!效果同上

安全操作建议:

1.日常删除优先使用 -i 选项

2.删除重要目录 / 文件前,先用 ls 确认路径,结合 pwd 确认当前目录

3.生产服务器可在 ~/.bashrc 中设置 alias rm='rm -i' 强制交互式删除

4.大量测试文件建议先创建到 /tmp/test(/tmp 会定期清理)

(3)mv —— 移动 / 重命名文件 / 目录

类型:外部命令

功能:Move,两个核心作用 —— 移动文件 / 目录到指定位置、为文件 / 目录重命名

格式:mv [选项] 源文件/目录1 源文件/目录2 ... 目标位置

核心规则:

1.重命名:源和目标在同一目录,且目标为新名称(非已存在目录)

2.移动:源和目标在不同目录,或目标为已存在目录

3.移动 / 重命名目录时,无需递归选项(区别于 cp/rm)

4.移动多个文件 / 目录时,目标位置必须是已存在的目录

选项:

-f:强制覆盖,不弹出确认

-i:覆盖前弹出确认(openEuler 中为默认行为)

同分区移动时仅修改 inode 记录,速度极快;跨分区移动会先复制再删除源文件,速度较慢。

实用技巧:

1.利用重命名功能快速修改文件后缀,如 mv file.txt file.log

2.目标目录不存在时,可结合 mkdir -p 先创建再移动:mkdir -p /root/newdir && mv file.txt /root/newdir/

2.4 查找目录和文件:which、find

(1)which —— 查找 Linux 命令程序的位置

类型:外部命令

功能:快速查找命令程序对应的可执行文件位置,搜索范围由 PATH 环境变量决定

格式:which [选项] 命令程序名1 命令程序名2 ...

选项:

-a:在 PATH 所有搜索路径中查找,显示所有匹配位置(默认找到第一个即停止)

核心规则:

1.仅能查找外部命令,内部命令无对应可执行文件,会提示 "未找到"

2.若命令存在别名,先显示别名信息,再显示实际命令路径

使用场景:

1.提示 command not found 时,用 which 检查命令是否在 PATH 中

2.系统存在多个版本同一命令时,用 which -a 查看所有版本路径

(2)find —— 高级精准查找文件 / 目录

类型:外部命令

功能:Linux 中功能最强大的查找命令,支持按文件名、大小、类型、属主、修改时间、权限等多维度精准查找,递归搜索

格式:find [查找范围] [查找条件表达式] [执行动作]

·查找范围:指定目录路径(可多个),如 /etc、/boot、.(当前目录),必选参数

·查找条件表达式:指定查找规则,核心参数,可单个或多个组合

·执行动作:查找后对结果执行的操作(打印、删除、复制),默认 -print,可选

核心查找条件(按使用频率排序):

条件

格式

说明

按名称

-name "文件名模式"

最常用,支持通配符 *(任意多字符)、?(单个字符),建议用双引号;-iname 忽略大小写

按类型

-type 类型字符

f= 普通文件、d= 目录、l= 软链接、b= 块设备(硬盘 / U 盘)、c= 字符设备(键盘 / 鼠标)

按大小

-size [+/-]大小值

+= 大于、-= 小于、无符号 = 等于;单位 k(小写,千字节)、M(大写,兆)、G(大写,吉)

按属主

-user 用户名/UID

查找属主为指定用户的所有文件 / 目录(root 的 UID 为 0,openEuler 新建用户 UID 从 1000 开始)

按修改时间

-mtime [+/-]天数

+n= 超过 n 天未修改、-n=n 天内修改过、无符号 = 正好 n 天前;拓展 -atime(访问时间)、-ctime(属性修改时间)

多条件组合 —— 逻辑运算符:

运算符

含义

说明

-a

与(and)

多个条件必须同时满足(默认逻辑,可省略)

-o

或(or)

多个条件满足其中一个即可

-not

非(not)

取反条件,查找不满足该条件的文件

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐