【无标题】
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) |
取反条件,查找不满足该条件的文件 |
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)