Linux 系统及其操作
本章面向没有 Linux 使用经验的新成员。先完成 Ubuntu 22.04 安装,再逐步掌握终端、文件系统与权限等基础操作。
一. 安装 Ubuntu 22.04 系统
Section titled “一. 安装 Ubuntu 22.04 系统”提示:请慎重操作。 安装会修改硬盘分区,操作前记得备份重要数据。不同电脑的 BIOS 进入方式和界面可能不同,以开机画面的提示为准。
二. 终端与常用命令
Section titled “二. 终端与常用命令”终端是 Linux 最常用的操作入口。 与 Windows 的图形界面不同,终端通过输入命令让系统执行任务;学习开发和连接服务器时,很多操作都依赖终端。
2.1 打开终端
Section titled “2.1 打开终端”- 使用快捷键
Ctrl + Alt + T - 或在应用程序列表中搜索 Terminal
打开后你会看到一个终端窗口:

其中 user 是当前用户名,ubuntu 是主机名,~ 表示当前位于家目录,$ 表示当前是普通用户。如果提示符末尾是 #,表示当前是 root 用户,操作时需要更谨慎。
例如,上图中我的终端提示符是:
linkchen@linkchen-Legion-R7000P-APH8:~$其中:
linkchen是当前用户名linkchen-Legion-R7000P-APH8是主机名~表示当前位于家目录$表示当前是普通用户
2.2 什么是命令
Section titled “2.2 什么是命令”命令是你在终端里输入的一行文字,用来告诉系统“做什么”。终端收到命令后,由 shell(负责解释命令的程序)解析并执行,执行结果会显示在终端里。
一条命令通常由三部分组成:
命令 [选项] [参数]- 命令:要执行的操作名称,例如
ls表示列出文件。 - 选项:以
-开头的附加设置,用来改变命令行为,例如ls -l中的-l表示显示详细信息。 - 参数:命令操作的对象,例如
ls /home中的/home表示要列出的目录。
输入完命令后按回车键执行。命令、选项和参数之间用空格分隔;如果文件名包含空格,需要用引号括起来,例如 cd "My Documents"。
例如:
ls -lh /home/linkchen其中 ls 是命令,-lh 是选项(-l 显示详细信息,-h 用易读单位显示大小),/home/linkchen 是参数,表示要查看的目录。
下图就是在终端中运行这条命令的实际效果:

先不用记住所有命令,重要的是理解“命令 = 让系统做某件事 + 附加设置 + 操作对象”这个结构,后面遇到新命令时自然就能看懂。
2.3 常用命令
Section titled “2.3 常用命令”| 命令 | 作用 | 示例 |
|---|---|---|
pwd | 显示当前所在目录 | pwd |
ls | 列出目录内容 | ls -lh |
cd | 切换目录 | cd ~/Documents |
mkdir | 创建目录 | mkdir test |
touch | 创建空文件 | touch hello.txt |
cp | 复制文件或目录 | cp hello.txt backup.txt |
mv | 移动或重命名 | mv hello.txt notes.txt |
rm | 删除文件或目录 | rm notes.txt |
cat | 查看文件内容 | cat hello.txt |
clear | 清空终端屏幕 | clear |
使用注意:
rm删除的文件不会进入回收站,删除前要确认路径,尤其不要随意对重要目录使用。- 输入命令时按
Tab可以自动补全文件名,按两次Tab会列出候选内容。
提示: 建议手敲练习上述命令,不要直接复制粘贴,以熟悉操作。
三. 文件系统与目录结构
Section titled “三. 文件系统与目录结构”Linux 把硬盘上的数据组织成一棵“目录树”,从根目录 / 开始,一层层向下展开。文件和目录都有明确的路径,理解路径是使用 Linux 的基础。
3.1 文件系统是什么
Section titled “3.1 文件系统是什么”- Linux 中所有内容都以文件形式组织:普通文档是文件,目录是存放文件的“文件夹”,设备、配置等也以文件形式暴露出来。
- 目录树只有一个根:
/。所有目录和文件都挂在/下面。 - 你的家目录通常是
/home/你的用户名,简写为~。
3.2 常见的目录
Section titled “3.2 常见的目录”| 路径 | 作用 | 说明 |
|---|---|---|
/ | 根目录,整棵目录树的起点 | 不要随意在里面创建文件 |
/home | 存放各用户的家目录 | 普通用户的数据一般都在这里 |
/home/用户名(~) | 当前用户的家目录 | 练习文件放在这里最安全 |
/etc | 系统与软件的配置文件 | 一般需要 root 权限才能修改 |
/usr | 安装的软件、库和文档 | 由系统自动管理,一般不需要手动改 |
/var | 经常变化的数据,例如日志 | 需要查日志时可以到这里找 |
/tmp | 临时文件目录 | 重启后可能被清空,不要放重要文件 |
/opt | 存放第三方软件 | 手动安装的额外软件常放在这里 |
/bin、/usr/bin | 存放常用命令程序 | ls、cat 等命令就在这里 |
新手阶段只需要记住:自己写的东西放在家目录,系统文件不要乱动。
下图是在文件管理器中打开的根目录 /,可以看到 Linux 常见的顶层目录:

3.3 绝对路径与相对路径
Section titled “3.3 绝对路径与相对路径”- 绝对路径:从
/开始写,例如/home/linkchen/Documents。 - 相对路径:从当前目录开始写,例如
Documents表示当前目录下的 Documents。 .表示当前目录,..表示上一级目录,~表示家目录。
例如:
cd /etc # 绝对路径,直接进入 /etccd .. # 回到上一级目录cd ~ # 回到家目录cd Documents # 相对路径,进入当前目录下的 Documents3.4 查看目录内容
Section titled “3.4 查看目录内容”| 命令 | 作用 |
|---|---|
pwd | 显示当前所在目录的绝对路径 |
ls | 列出当前目录内容 |
ls -l | 显示详细信息(权限、大小、修改时间等) |
ls -a | 显示包括隐藏文件在内的所有内容 |
ls -lh | 用易读单位显示文件大小 |
cd 路径 | 切换到指定目录 |
以 . 开头的文件是隐藏文件,例如 .bashrc,需要用 ls -a 才能看到。
下图是在终端中运行 pwd 和 ls -a 的实际效果:

3.5 目录的创建、复制与删除
Section titled “3.5 目录的创建、复制与删除”| 命令 | 作用 | 示例 |
|---|---|---|
mkdir 目录名 | 创建目录 | mkdir notes |
mkdir -p 路径 | 一次创建多级目录 | mkdir -p projects/robot |
cp -r 源 目标 | 复制目录(-r 表示递归复制) | cp -r notes notes-backup |
mv 源 目标 | 移动或重命名 | mv notes notes2 |
rmdir 目录名 | 删除空目录 | rmdir old |
rm -r 目录名 | 删除目录及其全部内容 | rm -r old |
注意:rm -r 会连同目录里的所有内容一起删除,而且不会进入回收站,使用前先确认路径。
四. 用户、权限与 sudo
Section titled “四. 用户、权限与 sudo”Linux 是多用户系统,文件和程序都有“属于谁、谁能读、谁能写、谁能执行”的权限。理解用户和权限,是安全使用 Linux 的基础。
4.1 用户
Section titled “4.1 用户”- Linux 上可以有多个用户,每个用户有独立的用户名、密码和家目录(
/home/用户名)。 root是系统管理员用户,拥有最高权限;普通用户不能随意修改系统文件。
4.2 查看文件权限
Section titled “4.2 查看文件权限”用 ls -l 查看文件详细信息,输出开头类似:
-rw-r--r-- 1 linkchen linkchen 1234 Aug 9 18:00 notes.txtdrwxr-xr-x 2 linkchen linkchen 4096 Aug 9 18:00 folder第一列的含义:
- 第 1 个字符表示类型:
-表示普通文件,d表示目录。 - 后面 9 个字符分成三组,分别表示“所有者(user)”“所属组(group)”“其他用户(others)”的权限。
r表示读,w表示写,x表示执行;-表示没有对应权限。
例如 -rw-r--r--:所有者可读可写,组和其他用户只能读;drwxr-xr-x 是目录,所有者可读可写可进入,组和其他用户可读可进入但不能写。
下图是在终端中查看一个测试目录权限的实际效果:

4.3 修改权限:chmod
Section titled “4.3 修改权限:chmod”chmod 用来修改文件或目录的权限。常用写法:
| 写法 | 含义 | 示例 |
|---|---|---|
chmod +x 文件 | 给所有用户增加执行权限 | chmod +x run.sh |
chmod u+w 文件 | 只给所有者增加写权限 | chmod u+w notes.txt |
chmod 755 文件 | 用数字设置权限 | chmod 755 script.sh |
数字写法中 r=4、w=2、x=1,三个数字分别对应所有者、组和其他用户。755 表示所有者拥有读、写、执行权限(4+2+1),组和其他用户拥有读、执行权限(4+1)。
下图是使用 chmod 修改权限前后的对比:

提示: 权限修改会影响其他人能否访问文件,修改前先确认文件路径和需要的权限。
4.4 用 sudo 临时获得管理员权限
Section titled “4.4 用 sudo 临时获得管理员权限”普通用户执行系统级命令时,可以在命令前加 sudo,临时以管理员身份运行:
sudo apt updatesudo会先要求输入当前用户的密码,验证通过后执行。- 只有被加入
sudo组的用户才可以使用sudo。 sudo只对当前这一条命令生效,不会把整个终端变成管理员。- 日常操作尽量使用普通用户,只在需要时使用
sudo,避免误操作影响系统。
4.5 常见命令
Section titled “4.5 常见命令”| 命令 | 作用 |
|---|---|
ls -l | 查看文件权限和详细信息 |
chmod | 修改文件或目录权限 |
sudo 命令 | 以管理员权限执行单条命令 |
提示: 遇到 “Permission denied” 时,先确认是不是权限或
sudo的问题,不要急着切换到 root 用户。
五. 软件包管理(apt)
Section titled “五. 软件包管理(apt)”apt 是 Ubuntu 中管理软件包的工具,负责从软件源下载、安装、更新和卸载软件,并自动处理依赖关系。
5.1 更新软件源与系统
Section titled “5.1 更新软件源与系统”安装软件前先刷新软件源索引:
sudo apt updateapt update 只是更新软件列表,不会安装软件。之后可以升级系统中已安装的软件:
sudo apt upgrade5.2 安装 Ubuntu 自带的软件
Section titled “5.2 安装 Ubuntu 自带的软件”Ubuntu 软件仓库里的软件可以直接用包名安装:
sudo apt install 软件包名例如安装 Git:
sudo apt install git查找软件包可以用:
apt search 关键词卸载软件:
sudo apt remove 软件包名5.3 安装浏览器下载的 .deb 文件
Section titled “5.3 安装浏览器下载的 .deb 文件”从官网下载的 .deb 安装包也可以用 apt 安装。先进入下载目录,再执行:
cd ~/下载sudo apt install ./软件名.deb需要注意:
- 路径前要写
./,apt 才会把文件当作本地安装包,而不是软件源里的包名。 - apt 会自动处理这个包依赖的其他软件;如果安装后提示依赖问题,可以用
sudo apt --fix-broken install修复。 - 下载前确认软件提供的是适合自己系统的版本:普通 Intel/AMD 电脑选 x86_64 版本,ARM 设备选对应的 arm64 版本。
- 只安装来自可信来源的
.deb文件,不要随意安装来源不明的软件。
提示:
sudo dpkg -i 软件名.deb也可以安装,但它不会自动处理依赖;新手优先使用sudo apt install ./软件名.deb。
5.4 常用命令
Section titled “5.4 常用命令”| 命令 | 作用 |
|---|---|
sudo apt update | 刷新软件源索引 |
sudo apt upgrade | 升级已安装的软件 |
sudo apt install 包名 | 安装软件 |
sudo apt remove 包名 | 卸载软件 |
sudo apt install ./软件名.deb | 安装本地 .deb 文件并处理依赖 |
六. Bash 脚本与 .bashrc
Section titled “六. Bash 脚本与 .bashrc”6.1 什么是 Bash 脚本
Section titled “6.1 什么是 Bash 脚本”前面介绍的命令都是一条一条输入、一条一条执行。Bash 脚本(Bash Script)就是把一组命令按顺序写进一个文件,由 Bash 一次执行。写脚本的目的是把“固定的操作步骤”保存下来,以后不用重复输入,也方便分享给其他人。
脚本本身是一个普通文本文件,通常以 .sh 结尾。文件开头写:
#!/bin/bash这一行叫 shebang,告诉系统这个文件要用 /bin/bash 来执行。以 # 开头的行是注释,不会被执行:
#!/bin/bash# 输出一条欢迎信息echo "Hello, quadruped!"echo 会在终端里输出文字。创建脚本时可以直接用 nano hello.sh 打开编辑器,把上面的内容写进去保存。
执行脚本有两种方式:
bash hello.sh或者先加上执行权限再运行:
chmod +x hello.sh./hello.sh./ 表示“当前目录下的文件”。第二种方式要求文件拥有执行权限,上一节学的 chmod +x 在这里就派上用场了。
6.2 变量与参数
Section titled “6.2 变量与参数”脚本里可以定义变量保存数据:
#!/bin/bashROBOT_NAME="wolf"echo "Hello, $ROBOT_NAME!"注意:等号两边不能有空格,ROBOT_NAME = "wolf" 会被解析成一条命令而不是变量赋值。引用变量时在变量名前加 $,写成 $ROBOT_NAME。
脚本还可以接收运行时传入的参数:
#!/bin/bashecho "脚本名:$0"echo "第 1 个参数:$1"echo "第 2 个参数:$2"echo "所有参数:$@"执行 ./robot.sh front leg 时,$0 是脚本名,$1 是 front,$2 是 leg。给脚本传参,可以让同一个脚本处理不同的任务,而不是每换一个目标就复制一份脚本。
在四足组的日常开发中,脚本常用来把安装依赖、编译、运行等固定步骤保存下来,也用来检查设备、批量处理日志或启动多个程序,避免每次重复输入一长串命令。
6.3 环境变量与 PATH
Section titled “6.3 环境变量与 PATH”脚本里定义的变量只在该脚本运行时存在。环境变量则是系统范围内保存的一组“键值对”,终端和程序都可以读取:
echo $PATHPATH 是其中最重要的一个:它保存了一串目录,shell 输入命令时会按顺序在这些目录里查找对应的程序。执行后会看到类似输出:
/home/linkchen/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:...以后想让自己写的脚本或工具直接以命令形式使用,可以把对应目录加进 PATH:
export PATH="$HOME/bin:$PATH"$HOME 是家目录。这样设置只在当前终端有效;想每次打开终端都自动生效,就需要写进 .bashrc。
6.4 .bashrc 的作用
Section titled “6.4 .bashrc 的作用”.bashrc 是位于家目录的一个隐藏文件,打开新终端时,Bash 会自动读取并执行它。可以把“每次打开终端都想自动生效的设置”放进去,例如给常用命令起别名、添加 PATH、设置环境变量。
常见用法:
| 内容 | 示例 | 作用 |
|---|---|---|
| 命令别名 | alias ll='ls -lh' | 之后输入 ll 就等于输入 ls -lh |
| 添加搜索路径 | export PATH="$HOME/bin:$PATH" | 让自定义工具可以直接作为命令使用 |
| 环境变量 | export ROS_DOMAIN_ID=1 | 设置 ROS 2 的通信域,避免多台机器相互干扰 |
| 自定义提示符 | export PS1='[\u@\h \W]\$ ' | 修改终端提示符的显示样式 |
其中 ROS 相关的设置会在之后学习 ROS 2 时经常遇到。
查看和编辑 .bashrc:
cat ~/.bashrc # 查看内容nano ~/.bashrc # 用 nano 编辑修改后不会立刻生效,需要让 Bash 重新读取一次:
source ~/.bashrc或者直接关闭终端再重新打开。
6.5 .bashrc 与 Bash 脚本的区别
Section titled “6.5 .bashrc 与 Bash 脚本的区别”- Bash 脚本:自己写的、手动执行的命令文件,例如
./hello.sh,什么时候运行由你决定。 - .bashrc:Bash 每次打开新终端时自动执行的“启动脚本”,用来配置环境,不需要手动运行。
两者本质都是命令文件,区别在于“谁在什么时候执行它”。以后看到“把它写进 .bashrc”这句话,意思是让这条设置每次打开终端都自动生效。
6.6 本节常用命令
Section titled “6.6 本节常用命令”| 命令 | 作用 |
|---|---|
bash 脚本.sh | 用 Bash 执行脚本 |
chmod +x 脚本.sh | 给脚本添加执行权限 |
./脚本.sh | 执行当前目录下的脚本 |
echo $PATH | 查看 PATH 环境变量 |
export 变量=值 | 设置环境变量(仅当前终端生效) |
cat ~/.bashrc | 查看 .bashrc 内容 |
source ~/.bashrc | 重新加载 .bashrc |
提示: 修改
.bashrc前可以先备份(cp ~/.bashrc ~/.bashrc.bak),写错时方便恢复。.bashrc只对当前用户生效,并且只在交互式终端启动时读取,不会在每次运行脚本时重新执行。