Linux操作系统

Shell基础概念

Shell 是 Linux 中用户与内核的交互接口(特殊程序),作用是解释用户指令并传递给内核,最终由内核驱动硬件工作。

交互流程:用户(输入命令 / 操作应用)→ Shell(解释指令)→ 内核(调度硬件)→ 硬件(执行操作)

img

内部命令 vs 外部命令

Shell 命令分为两类,核心区别在于加载时机和执行效率,执行优先级:别名 > 内部命令 > hash 缓存 > 外部命令。

对比维度 内部命令 外部命令
加载时机 系统启动时载入内存(常驻内存) 用户调用时从硬盘读入内存
执行效率 高(无新进程创建) 较低(需创建新进程)
存储位置 内置在 Shell 中(无独立文件) 存于 $PATH 路径下(有独立文件)
典型命令 cd、echo、help ls、useradd、ping

命令行辅助操作

操作 功能描述
Tab 键 自动补齐命令 / 路径(按两次显示所有候选)
反斜杠 \ 强制换行(命令过长时拆分)
Ctrl+A 光标跳至行首
Ctrl+E 光标跳至行尾
Ctrl+U 清空光标至行首内容
Ctrl+K 清空光标至行尾内容
Ctrl+L 清屏(等同于 clear 命令)
Ctrl+C 取消当前命令编辑(终止正在执行的前台进程)

一、命令行提示符解析

[root@localhost ~]# 是 Linux 终端的核心标识,各部分含义直接反映当前操作环境:

符号 / 内容 含义说明 补充信息
root 当前登录用户名 root 是 Linux 最高权限用户(管理员),可执行所有系统操作;普通用户显示用户名(如 user
@ 连接符 无实际功能,仅分隔 “用户名” 与 “主机名”
localhost 当前主机名 可通过 hostname 命令查看 / 修改,用于网络环境中标识主机
~ 当前工作目录 代表当前用户的家目录:- root 用户家目录:/root - 普通用户家目录:/home/用户名(如 user 的家目录是 /home/user
# 权限标识 # 表示管理员(root)权限;$ 表示普通用户权限,普通用户无系统级操作权限(如删系统文件)

二、Linux 命令基础格式

完整格式:命令字 [选项] [参数]

命令字:指令的核心(如 ls 查看、cd 切换目录),决定指令基本功能;

选项:附加功能,分短选项(单横杠 -,如 -l)和长选项(双横杠 --,如 --help);

参数:指令的处理对象(如文件、目录路径),可省略(如 pwd 无需参数)。

示例解析ls -l /opt/

命令字:ls(查看目录内容);

选项:-l(长格式显示,含权限、大小等细节);

参数:/opt/(指定查看的目录路径)。

核心管理命令

1. 查看当前路径:pwd

功能:显示当前工作目录的绝对路径(从根目录 / 开始的完整路径);

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

示例:[root@localhost ~]# pwd → 输出 (/root)

2. 切换工作目录:cd

功能:切换当前工作目录;

格式:cd [目标路径]

常用路径标识:

标识 含义 示例
.. 上一级目录(父目录) cd ..(从 /root 切到 /
. 当前目录(无切换效果) cd .(仍在当前目录)
- 上次所在目录 cd -(从 /opt 切回之前的 /root
~ 回到家目录(可省略) cd ~ 或直接 cd(无论在哪都切回家目录)

示例:

绝对路径切换:cd /opt(从任意目录切到 /opt);

相对路径切换:cd ../home(从 /opt 切到 /home)。

3. 查看目录内容:ls

功能:列出目录下的文件 / 目录列表;

格式:ls [选项] [目录路径]

核心选项:

选项 功能 示例
-l 长格式显示(含权限、所有者、大小、修改时间) ls -l /opt(显示 /opt 下文件的详细信息)
-a 显示所有文件(含隐藏文件,以 . 开头) ls -a ~(显示家目录下的隐藏文件,如 .bashrc
-h 友好显示文件大小(如 100M 而非字节) ls -lh /opt(搭配 -l 更易读)

注意:默认不显示隐藏文件,ls 后不跟路径则查看当前目录。

4. 创建普通文件:touch

功能:创建空文件(若文件已存在,仅更新文件的 “修改时间”);

格式:touch [文件1] [文件2] ...(支持一次创建多个);

示例:

创建单个文件:touch 1.txt

创建多个文件:touch 2.txt 3.log

5. 创建目录:mkdir

功能:创建目录(文件夹);

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

核心选项:-p(递归创建多级目录,父目录不存在时自动创建);

示例:

创建单个目录:mkdir test

创建多级目录:mkdir -p /a/b/c(无需先创建 /a/a/b)。

6. 复制文件 / 目录:cp

功能:复制文件或目录到指定位置;

格式:cp [选项] 源文件/目录 目标路径/新文件名

核心说明:

若目标路径仅指定目录(无新文件名),则复制后文件名不变;

复制目录需加 -r(递归复制目录内所有内容);

常用选项:-i(覆盖前提醒,避免误删);

示例:

复制文件到目录(文件名不变):cp 1.txt /opt(将 1.txt 复制到 /opt,仍叫 1.txt);

复制文件并改名:cp 1.txt /opt/2.txt(复制到 /opt 并改名为 2.txt);

复制目录:cp -r test /opt(将 test 目录复制到 /opt)。

7. 输出内容到文件:echo

功能:输出字符串,常搭配重定向写入文件;

格式:echo "内容" [重定向符号] 文件名

重定向符号区别:

符号 功能 示例
> 覆盖写入(文件存在则清空原有内容) echo "hello" > 1.txt(1.txt 原有内容被覆盖)
>> 追加写入(文件存在则在末尾加内容) echo "this is a example" >> 1.txt(内容追加到 1.txt 末尾)

8. 查看文件内容:cat

功能:查看普通文本文件的内容(不可查看目录,否则报错);

格式:cat [选项] 文件名

常用选项:-n(显示行号,方便定位内容);

示例:

查看文件:cat 1.txt

显示行号查看:cat -n 1.txt

注意:若文件过大,cat 会一次性输出所有内容,建议用 lessmore 分页查看。

四、路径基础(绝对路径 vs 相对路径)

1. 核心区别

类型 定义 标识 示例
绝对路径 从根目录 / 开始的完整路径,唯一确定文件位置 / 开头 /root/1.txt/opt/test
相对路径 当前目录开始的路径,依赖当前位置 ... 或文件名开头 ../1.txt(当前目录的父目录下的 1.txt)、test/2.txt(当前目录下的 test 目录内)

2. 根目录 / 下常见子目录用途

/bin:存放系统基础命令(如 lscd),所有用户可执行;

/etc:存放系统配置文件(如网络、用户配置);

/home:普通用户的家目录(每个普通用户占一个子目录);

/opt:存放第三方软件或自定义目录(如手动安装的程序);

/root:root 用户的家目录;

/tmp:临时文件目录(重启后内容清空)。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐