引言:为什么Ubuntu MATE用户需要学习终端命令?
Ubuntu MATE是一个基于Ubuntu的轻量级桌面环境,它以其简洁、高效和经典的操作体验深受许多用户的喜爱。虽然Ubuntu MATE提供了图形化的桌面环境(GUI),使得日常操作变得直观简单,但
终端(Terminal)
——也就是命令行界面(CLI),才是Linux系统的灵魂所在。
对于新手来说,终端可能看起来有些令人生畏,满屏的黑白文字似乎不如鼠标点击来得亲切。然而,掌握基础的终端命令将极大地提升你的工作效率,让你能够:
更精准地控制系统
:图形界面能做的,终端都能做,而且能做到图形界面做不到的深层操作。
自动化重复任务
:通过编写简单的脚本,一键完成复杂的文件处理或系统维护。
解决图形界面无法解决的问题
:当桌面环境崩溃或无法启动时,终端往往是唯一的救命稻草。
获取更丰富的软件资源
:通过包管理器,你可以轻松安装、更新和管理成千上万的软件包。
本指南专为Ubuntu MATE的新手设计,将从最基础的命令开始,逐步带你进入Linux命令行的精彩世界。无需担心,我们会用最通俗的语言和详尽的实例,让你轻松掌握这些系统操作技巧。
第一部分:终端基础——从零开始接触命令行
1.1 如何打开终端?
在Ubuntu MATE中,打开终端有多种方式,选择你最喜欢的一种即可:
快捷键
:这是最快的方式。按下
Ctrl + Alt + T
组合键,终端窗口会立即弹出。
应用程序菜单
:点击屏幕左下角的“应用程序”菜单(通常是一个MATE图标),在“系统工具”类别中找到“终端”(Terminal)。
右键菜单
:在桌面空白处或文件管理器窗口中,右键单击,通常会有一个“在终端中打开”的选项。
运行对话框
:按下
Alt + F2
,输入
mate-terminal
然后按回车。
1.2 终端界面初识
打开终端后,你会看到类似下面的提示符:
username@hostname:~$
这串字符被称为
提示符(Prompt)
,它告诉你很多重要信息:
username
:当前登录的用户名。
hostname
:你的计算机名。
~
:当前所在的目录。
~
代表你的家目录(Home Directory),相当于
/home/username
。
$
:表示你当前是以普通用户身份登录的。如果是
#
,则表示你是超级用户(root),拥有最高权限。
现在,你可以在
$
后面输入命令了。让我们从最简单的开始。
第二部分:文件和目录操作——Linux世界的“基本法”
在Linux中,一切皆文件。目录(文件夹)也是一种特殊的文件。学会如何操作它们是重中之重。
2.1
pwd
– 你现在在哪里?
命令
:
pwd
(Print Working Directory)
作用
:显示你当前所在的完整路径。
示例
:
$ pwd
/home/username
这告诉你,你现在正位于
/home/username
目录下。
2.2
ls
– 查看目录内容
命令
:
ls
(List)
作用
:列出当前目录下的文件和子目录。
常用选项
:
-l
:以长格式(详细信息)显示。
-a
:显示所有文件,包括以
.
开头的隐藏文件。
-h
:以人类可读的格式显示文件大小(如 KB, MB)。
示例
:
$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
$ ls -l
total 28
drwxr-xr-x 2 username username 4096 Dec 10 10:00 Desktop
drwxr-xr-x 2 username username 4096 Dec 10 10:05 Documents
drwxr-xr-x 2 username username 4096 Dec 10 10:10 Downloads
$ ls -la
drwxr-xr-x 2 username username 4096 Dec 10 10:00 .
drwxr-xr-x 4 username username 4096 Dec 10 09:50 ..
-rw-r–r– 1 username username 0 Dec 10 10:15 .hidden_file
drwxr-xr-x 2 username username 4096 Dec 10 10:00 Desktop
…
详细说明
:
ls -l
的输出中,每一行代表一个文件/目录。
第一列
drwxr-xr-x
是文件权限(
d
表示目录,
rwx
表示读、写、执行权限)。
第二列是硬链接数。
第三、四列是所有者和所属组。
第五列是文件大小。
最后几列是最后修改时间和文件名。
2.3
cd
– 切换目录
命令
:
cd
(Change Directory)
作用
:切换当前工作目录。
常用技巧
:
cd 目录路径
:进入指定目录。
cd ..
:返回上一级目录(注意有两个点)。
cd ~
或
cd
:直接回到家目录。
cd –
:返回上一个所在的目录(在两个目录间快速切换非常有用)。
示例
:
$ cd Documents # 进入Documents目录
$ pwd
/home/username/Documents
$ cd .. # 返回上一级,即家目录
$ pwd
/home/username
$ cd Downloads # 进入Downloads
$ cd ~ # 瞬间回到家目录
$ pwd
/home/username
$ cd – # 又回到了Downloads
/home/username/Downloads
2.4
mkdir
– 创建新目录
命令
:
mkdir
(Make Directory)
作用
:创建一个新的目录。
常用选项
:
-p
:递归创建目录,如果父目录不存在,会一并创建。
示例
:
$ mkdir my_project # 创建一个名为my_project的目录
$ mkdir -p code/python # 创建code目录,并在其下创建python目录
# 如果code不存在,这个命令会自动创建它
2.5
touch
– 创建空文件或更新文件时间
命令
:
touch
作用
:如果文件不存在,则创建一个空文件;如果文件存在,则更新其访问和修改时间。
示例
:
$ touch new_file.txt # 创建一个名为new_file.txt的空文件
$ ls -l new_file.txt
-rw-r–r– 1 username username 0 Dec 10 11:00 new_file.txt
2.6
cp
– 复制文件或目录
命令
:
cp
(Copy)
作用
:复制文件或目录。
常用选项
:
-r
:递归复制,用于复制目录及其包含的所有内容。
示例
:
# 复制文件
$ cp file1.txt file2.txt # 将file1.txt复制一份并命名为file2.txt
# 复制文件到指定目录
$ cp file1.txt Documents/
# 复制整个目录
$ cp -r my_project backup_project
2.7
mv
– 移动或重命名文件/目录
命令
:
mv
(Move)
作用
:
移动文件或目录到另一个位置。
重命名文件或目录。
示例
:
# 重命名
$ mv old_name.txt new_name.txt
# 移动文件
$ mv report.docx Documents/ # 将report.docx移动到Documents目录
# 移动并重命名
$ mv report.docx Documents/final_report.docx
# 移动目录
$ mv backup_project /tmp/ # 将整个目录移动到/tmp
2.8
rm
– 删除文件或目录
命令
:
rm
(Remove)
作用
:删除文件或目录。
这是一个危险的命令,因为删除后很难恢复!
常用选项
:
-f
:强制删除,不提示确认。
-r
:递归删除,用于删除目录及其所有内容。
示例
:
# 删除文件(会提示确认)
$ rm file2.txt
rm: remove regular empty file ‘file2.txt’? y
# 强制删除文件(不提示)
$ rm -f new_file.txt
# 删除目录(必须加-r)
$ rm -r my_project
# 强制删除目录(极其危险,请谨慎使用!)
$ rm -rf backup_project
安全提示
:在使用
rm -rf
时,请务必检查路径是否正确,特别是检查路径中是否有空格。一个经典的错误是
rm -rf / usr
(多了一个空格),这可能会导致系统灾难性的后果。新手建议在删除重要目录前,先用
ls
确认一下路径。
第三部分:文件查看与处理——不做“睁眼瞎”
创建了文件,我们还需要查看和处理它们的内容。
3.1
cat
– 连接并显示文件内容
命令
:
cat
(Concatenate)
作用
:将文件内容一次性打印到屏幕上。适合查看短文件。
示例
:
$ cat hello.txt
Hello, Ubuntu MATE!
This is a test file.
3.2
less
– 分页查看文件内容
命令
:
less
作用
:对于长文件,
cat
会一股脑儿地输出,导致你只能看到最后一屏。
less
允许你逐页或逐行地浏览文件。
常用操作
:
使用
Page Up
/
Page Down
或
空格
/
b
键上下翻页。
使用
↑
/
↓
键上下移动一行。
输入
/
然后输入关键词,可以向前搜索(例如
/search_term
)。
输入
q
退出。
示例
:
$ less /var/log/syslog
# (进入less界面,可以自由浏览,按q退出)
3.3
head
和
tail
– 查看文件的开头和结尾
命令
:
head
:默认显示文件的前10行。
tail
:默认显示文件的最后10行。
常用选项
:
-n N
:显示前/后 N 行。
示例
:
$ head -n 5 /var/log/syslog # 显示syslog的前5行
$ tail -n 20 /var/log/syslog # 显示syslog的最后20行
高级技巧
:
tail -f
(follow) 可以实时追踪一个文件的新增内容,这对于查看正在更新的日志文件非常有用。
# 打开一个新终端,执行这个命令
$ tail -f /var/log/syslog
# 你会看到,每当系统有新日志产生,这里就会实时显示出来
# 按 Ctrl+C 停止
3.4
grep
– 强大的文本搜索工具
命令
:
grep
作用
:在文件中搜索包含特定模式(字符串或正则表达式)的行。
常用选项
:
-i
:忽略大小写。
-r
:递归搜索目录中的所有文件。
-n
:显示匹配行的行号。
示例
:
# 在单个文件中搜索
$ grep “error” /var/log/syslog # 在syslog中搜索包含”error”的行
# 忽略大小写搜索
$ grep -i “warning” /var/log/syslog
# 显示行号
$ grep -in “failed” /var/log/auth.log
# 递归搜索整个目录
$ grep -r “192.168.1.100” /etc/
第四部分:权限管理——Linux安全的核心
Linux是一个多用户系统,权限管理至关重要。你可能在
ls -l
的输出中看到过类似
rwxr-xr-x
的字符,这就是权限的体现。
4.1 理解文件权限
一个文件的权限分为三个维度:
所有者 (User)
:通常是创建文件的用户。
所属组 (Group)
:文件所属的用户组。
其他用户 (Others)
:既不是所有者也不在所属组的用户。
每个维度都有三种基本权限:
r
(read):读取文件/列出目录内容的权限。
w
(write):修改文件/在目录中创建、删除文件的权限。
x
(execute):执行程序/进入目录的权限。
示例
:
-rwxr-xr–
–
:文件类型(
–
表示普通文件,
d
表示目录)。
rwx
:所有者的权限(可读、可写、可执行)。
r-x
:所属组的权限(可读、可执行,但不可写)。
r–
:其他用户的权限(只可读)。
4.2
chmod
– 修改文件权限
命令
:
chmod
(Change Mode)
作用
:改变文件或目录的权限。
数字表示法(推荐)
:
每种权限都有一个数字价值:
r
= 4
w
= 2
x
= 1
–
= 0
将每个维度的数字相加,得到一个三位数,分别对应所有者、所属组、其他用户。
示例
:
755
=
rwxr-xr-x
(所有者: 4+2+1=7, 组: 4+0+1=5, 其他: 4+0+1=5)
644
=
rw-r–r–
(所有者: 4+2+0=6, 组: 4+0+0=4, 其他: 4+0+0=4)
777
=
rwxrwxrwx
(所有人都拥有所有权限,非常不安全!)
示例
:
# 创建一个脚本文件
$ echo ‘echo “Hello, World!”‘ > my_script.sh
# 默认权限是644 (rw-r–r–),无法执行
$ ./my_script.sh
bash: ./my_script.sh: Permission denied
# 修改权限为755 (rwxr-xr-x)
$ chmod 755 my_script.sh
# 现在可以执行了
$ ./my_script.sh
Hello, World!
4.3
sudo
– 以超级用户权限执行命令
命令
:
sudo
(Superuser Do)
作用
:临时以 root(超级用户)权限执行一个命令。
在Ubuntu中,root账户默认是禁用的,系统通过
sudo
机制来授权管理员操作。当你需要执行修改系统文件、安装软件等需要高权限的操作时,就需要在命令前加上
sudo
。
示例
:
# 尝试修改一个系统配置文件(普通用户无权限)
$ echo “test” > /etc/test.conf
bash: /etc/test.conf: Permission denied
# 使用sudo
$ sudo echo “test” > /etc/test.conf
[sudo] password for username: # 在这里输入你的用户密码(不会显示)
# 成功!
注意
:
sudo
会要求你输入当前用户的密码,而不是root密码。输入时屏幕上不会有任何显示,这是正常的安全措施。
第五部分:软件包管理——Ubuntu MATE的“应用商店”
Ubuntu MATE使用
apt
(Advanced Package Tool) 作为其包管理器,这是Debian/Ubuntu系列发行版最强大的功能之一。
5.1
apt
基础命令
在使用
apt
之前,通常需要先更新软件源列表(即从服务器获取最新的软件包信息)。
常用命令
:
sudo apt update
:更新软件源列表。
sudo apt upgrade
:升级所有已安装的软件包。
sudo apt install 软件包名
:安装一个新软件包。
sudo apt remove 软件包名
:卸载一个软件包(保留配置文件)。
sudo apt purge 软件包名
:彻底卸载软件包及其所有配置文件。
apt search 关键词
:搜索软件包。
5.2 实战演练:安装和卸载软件
场景
:你想安装一个名为
htop
的交互式系统监控工具,然后卸载它。
步骤
:
# 1. 首先,更新软件源列表(好习惯,每次安装前都做一下)
$ sudo apt update
# (屏幕上会滚动很多下载软件源列表的信息)
# 2. 搜索 htop (可选)
$ apt search htop
# (会列出所有包含htop的软件包)
# 3. 安装 htop
$ sudo apt install htop
# (系统会提示你将要安装哪些包,占用多少空间,输入 y 确认)
# 4. 运行 htop
$ htop
# (一个漂亮的图形化进程监视器出现了!按 F10 退出)
# 5. 卸载 htop
$ sudo apt remove htop
# (系统会询问你是否继续,输入 y)
# 6. 彻底清除 htop 的配置文件
$ sudo apt purge htop
第六部分:进程管理——谁在占用我的系统资源?
进程就是正在运行的程序。学会管理它们,能让你更好地掌控系统。
6.1
ps
– 查看当前进程快照
命令
:
ps
(Process Status)
作用
:显示当前终端会话中的进程。
常用选项
:
aux
或
-ef
:显示系统中所有用户的全部进程信息。
示例
:
# 查看当前终端的进程
$ ps
PID TTY TIME CMD
1234 pts/0 00:00:00 bash
1235 pts/0 00:00:00 ps
# 查看所有进程(常用)
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 169284 11564 ? Ss Dec09 0:02 /sbin/init
…
username 1234 0.0 0.2 28500 15420 pts/0 Ss 10:00 0:00 -bash
…
6.2
top
和
htop
– 动态查看进程
ps
显示的是一个静态快照。
top
则提供了一个动态的、实时更新的视图。
$ top
在
top
界面中,你可以看到CPU、内存使用率最高的进程。按
q
退出。
如果你已经按照上一节安装了
htop
,那么
htop
是
top
的一个增强版,界面更友好,操作更直观(支持鼠标点击)。
$ htop
6.3
kill
– 结束进程
命令
:
kill
作用
:向进程发送一个信号,通常用来终止进程。
常用选项
:
-9
或
-SIGKILL
:强制杀死进程。
示例
:
# 假设一个名为 “my_frozen_app” 的程序卡死了
# 1. 首先找到它的PID
$ ps aux | grep my_frozen_app
# 或者在 htop 中按 F3 搜索
# 假设找到的PID是 5678
# 2. 尝试温和地终止它
$ kill 5678
# 3. 如果它不理会,就强制杀死
$ kill -9 5678
技巧
:
|
是管道符,它将前一个命令的输出作为后一个命令的输入。
ps aux | grep …
是查找进程的经典组合。
第七部分:查找文件——大海捞针的利器
当你忘记了文件存放的位置时,
find
和
locate
就是你的救星。
7.1
find
– 强大的实时查找
命令
:
find
作用
:在指定目录下查找文件。
常用语法
:
find [路径] [选项] [表达式]
示例
:
# 在家目录中查找所有 .txt 文件
$ find ~ -name “*.txt”
/home/username/Documents/report.txt
/home/username/Downloads/readme.txt
# 在整个系统中(从根目录 / 开始)查找名为 my_script.sh 的文件
# 这可能需要sudo权限来访问某些目录
$ sudo find / -name “my_script.sh”
# 查找大于100MB的文件
$ find / -type f -size +100M
7.2
locate
– 快速查找(基于数据库)
命令
:
locate
作用
:在一个预先构建好的数据库中查找文件,速度极快。
示例
:
$ locate my_script.sh
/home/username/my_script.sh
注意
:
locate
的速度快是因为它不搜索实时的文件系统,而是依赖一个数据库。如果最近创建的文件找不到,你需要先更新数据库:
$ sudo updatedb
第八部分:重定向和管道——组合技的威力
这是命令行真正展现其强大灵活性的地方。
8.1 重定向:
>
和
>>
>
:
覆盖
重定向。将命令的输出写入一个文件,如果文件已存在,则覆盖其内容。
>>
:
追加
重定向。将命令的输出追加到文件末尾,不覆盖原有内容。
示例
:
# 覆盖
$ echo “第一行” > log.txt
$ cat log.txt
第一行
$ echo “第二行” > log.txt
$ cat log.txt
第二行 # 第一行被覆盖了
# 追加
$ echo “第三行” >> log.txt
$ cat log.txt
第二行
第三行
8.2 管道:
|
命令
:
|
作用
:将前一个命令的输出,作为后一个命令的输入。
示例
:
# 场景:我想知道家目录下有多少个文件和目录
$ ls ~ | wc -l
25
# 场景:我想查看系统日志中所有包含 “error” 的行,并统计有多少个错误
$ grep -i “error” /var/log/syslog | wc -l
# 场景:我想查看内存使用情况,并找出占用最高的进程
$ ps aux | sort -k4 -nr | head -n 5
# 解释:
# ps aux: 列出所有进程
# sort -k4 -nr: 按第4列(%MEM)进行数值(n)逆序(r)排序
# head -n 5: 只显示前5行
结语:通往高手之路的起点
恭喜你!如果你认真阅读并实践了本指南中的所有命令,你已经成功迈出了Ubuntu MATE终端操作的第一步。你不再是一个只会点击图标的普通用户,而是一个能够直接与系统内核对话的“掌控者”。
请记住,学习命令行最好的方式就是
不断地使用它
。不要害怕犯错,Linux的权限系统和备份机制通常能保护你免受毁灭性的打击。从修改你的个人配置文件开始,尝试用命令行来管理你的下载目录,或者写一个简单的脚本来自动化你的日常备份工作。
终端的世界广阔而深邃,本指南只是为你打开了一扇门。未来,你还可以探索:
Shell脚本编程
:将一系列命令组合成一个可执行的脚本。
Vim或Nano文本编辑器
:在终端里高效地编辑文件。
系统服务管理 (
systemctl
)
:控制系统后台服务。
网络工具 (
ping
,
ssh
,
scp
)
:诊断网络和远程连接。
祝你在Ubuntu MATE和Linux的探索之旅中,玩得开心,学得愉快!