重要提示:
-
打开终端: 在 Ubuntu 上,按
Ctrl + Alt + T
是最快打开终端窗口的方式。你也可以在应用程序菜单里搜索"Terminal"或"终端"。 -
命令结构: 通常命令格式是
命令 [选项] [参数]
。- 命令: 你要执行的操作(如
ls
,cd
)。 - 选项 (Options): 通常以
-
(短选项,如-l
) 或--
(长选项,如--help
) 开头,用于修改命令的行为(如显示更多信息、按特定方式排序)。 - 参数 (Arguments): 命令作用的对象(如文件名、目录名)。
- 命令: 你要执行的操作(如
-
空格: 命令、选项、参数之间必须用空格分隔。
-
大小写敏感: Linux 命令和文件名是区分大小写 的!
File.txt
和file.txt
被认为是两个不同的文件。 -
执行命令: 输入完命令后,按
Enter
键执行它。 -
提示符:
username@computername:~$
是常见的提示符。~
波浪号代表你的家目录 (/home/你的用户名
),是你登录后默认所在的位置,也是你个人文件的存储地。$
表示你当前是普通用户。如果是#
,则表示你是超级用户 (root
),拥有最高权限,操作要非常小心!
-
命令历史: 按键盘的
↑
(上箭头) 和↓
(下箭头) 键可以浏览之前输入过的命令,按Enter
可以再次执行。按history
命令可以查看所有历史记录。 -
自动补全: 输入命令、文件名或目录名的前几个字母后,按
Tab
键,系统会自动补全。如果按一次没反应,可能是存在多个匹配项,再按一次Tab
会显示所有匹配项。强烈建议多用Tab
键! 它能节省时间并减少拼写错误。 -
中断命令: 如果一个命令运行时间太长或你想停止它,按
Ctrl + C
。 -
清除屏幕: 输入
clear
或按Ctrl + L
可以清空当前终端屏幕,让界面更清爽。
一、 导航与查看 (Navigation & Looking Around)
-
pwd
(Print Working Directory) - 显示当前目录-
功能: 告诉你你现在"站"在文件系统的哪个文件夹里。
-
用法:
pwd
-
示例:
text
rubyuser@ubuntu:~$ pwd /home/user
-
-
ls
(List) - 列出目录内容-
功能: 查看当前目录下有哪些文件和子文件夹。
-
常用选项:
-l
: 使用长格式列出详细信息(权限、所有者、大小、修改时间)。-a
: 显示所有文件,包括隐藏文件(以.
开头的文件,如.bashrc
)。-h
: 与-l
一起用,以人类可读的格式显示文件大小(如 K, M, G)。--color
: 通常默认开启,用不同颜色区分文件类型(目录、普通文件、可执行文件等)。
-
用法:
ls [选项] [目录名]
(如果不指定目录名,默认查看当前目录) -
示例:
text
rubyuser@ubuntu:~$ ls # 列出当前目录内容 (简单列表) user@ubuntu:~$ ls -l # 列出详细信息 user@ubuntu:~$ ls -la # 列出所有文件(包括隐藏文件)的详细信息 user@ubuntu:~$ ls -lh /etc # 以人类可读大小列出 /etc 目录的详细信息
-
-
cd
(Change Directory) - 切换目录-
功能: 从一个文件夹"走进"另一个文件夹。
-
特殊符号:
.
:代表当前目录(很少单独用cd .
,但在其他命令中很有用)。..
:代表当前目录的上一级目录(父目录)。~
:代表你的家目录 (/home/你的用户名
)。-
:代表上一次你所在的目录(在两个目录间来回切换很方便)。
-
用法:
cd [目录路径]
-
示例:
text
rubyuser@ubuntu:~$ cd Documents # 进入当前目录下的 Documents 子目录 user@ubuntu:~/Documents$ cd .. # 返回上一级目录 (即家目录 ~) user@ubuntu:~$ cd /usr/bin # 直接切换到绝对路径 /usr/bin 目录 user@ubuntu:/usr/bin$ cd ~ # 直接回到家目录 user@ubuntu:~$ cd - # 切换回上一次所在的目录 (比如 /usr/bin)
-
-
cat
(Concatenate) - 查看文件内容-
功能: 在终端里一次性显示 整个文件的内容。适合查看短小的文本文件(如配置文件、日志片段、脚本代码)。如果文件很长,内容会快速滚过屏幕,你可能只能看到最后一部分。
-
用法:
cat [文件名]
-
示例:
text
rubyuser@ubuntu:~$ cat hello.txt # 显示 hello.txt 文件的所有内容
-
查看长文件的替代命令:
less
(推荐) 或more
。它们允许你分页浏览,按空格
翻页,按q
退出。
-
-
less
- 分页查看文件内容-
功能: 逐屏(分页)查看文件内容,非常适合浏览长文件 。比
more
功能更强(支持向前向后翻)。 -
用法:
less [文件名]
-
常用操作 (在
less
查看界面中):空格
/Page Down
: 向下翻一页。b
/Page Up
: 向上翻一页。↑
/↓
: 向上/向下移动一行。/关键词
: 在文件中向下 搜索关键词(如/error
找 error),按n
找下一个匹配项,按N
找上一个。?关键词
: 在文件中向上搜索关键词。q
: 退出less
。
-
示例:
text
rubyuser@ubuntu:~$ less /var/log/syslog # 分页查看系统日志文件
-
二、 文件与目录操作 (File & Directory Operations)
-
mkdir
(Make Directory) - 创建新目录-
功能: 新建一个文件夹(目录)。
-
常用选项:
-p
: 递归创建目录。如果需要创建的目录的父目录不存在,会一并创建。例如要创建project/code/src
,但project/code
不存在,用-p
就能一次性创建整个路径。
-
用法:
mkdir [选项] 目录名
-
示例:
text
rubyuser@ubuntu:~$ mkdir new_folder # 在当前目录创建名为 new_folder 的目录 user@ubuntu:~$ mkdir -p project/docs # 创建 project 目录,并在其中创建 docs 目录 (如果 project 不存在也会创建)
-
-
touch
- 创建空文件或更新文件时间戳-
功能:
- 如果文件不存在 ,创建一个新的空文件。
- 如果文件已存在,更新该文件的"最后修改时间"为当前时间(文件内容不变)。
-
用法:
touch 文件名
-
示例:
text
rubyuser@ubuntu:~$ touch new_file.txt # 创建一个名为 new_file.txt 的空文本文件 user@ubuntu:~$ touch existing_file # 更新 existing_file 的时间戳
-
-
cp
(Copy) - 复制文件或目录-
功能: 复制文件或目录到另一个位置。
-
常用选项:
-r
或-R
(Recursive): 必须 在复制目录时使用,表示递归复制目录及其所有内容(子目录和文件)。-i
(Interactive): 如果目标位置存在同名文件,在覆盖前询问确认 。强烈建议新手加上-i
或养成习惯,避免意外覆盖!-v
(Verbose): 显示复制过程的详细信息(复制了什么文件)。
-
用法:
cp [选项] 源文件或目录 目标文件或目录
-
示例:
text
rubyuser@ubuntu:~$ cp file1.txt file1_backup.txt # 复制 file1.txt 到当前目录,命名为 file1_backup.txt user@ubuntu:~$ cp -i important.doc ~/Documents/ # 复制 important.doc 到家目录下的 Documents 目录 (覆盖前询问) user@ubuntu:~$ cp -rv my_project/ backups/ # 递归复制整个 my_project 目录到 backups 目录 (显示详细信息)
-
-
mv
(Move) - 移动或重命名文件/目录-
功能:
- 移动: 将文件或目录从一个位置移动到另一个位置。
- 重命名: 如果在同一个目录 下操作,效果就是重命名。
-
常用选项:
-i
(Interactive): 如果目标位置存在同名文件,在覆盖前询问确认 。同样强烈建议新手使用!-v
(Verbose): 显示移动过程的详细信息。
-
用法:
mv [选项] 源文件或目录 目标文件或目录
-
示例:
text
rubyuser@ubuntu:~$ mv oldname.txt newname.txt # 重命名:将 oldname.txt 改名为 newname.txt (在同一目录下) user@ubuntu:~$ mv report.pdf ~/Documents/ # 移动:将 report.pdf 移动到 Documents 目录 user@ubuntu:~$ mv -i data/ /media/usbdrive/ # 移动 data 目录到 U 盘挂载点 (覆盖前询问)
-
-
rm
(Remove) - 删除文件或目录-
功能: 永久删除 文件或目录。Linux 命令行删除的文件通常无法从回收站恢复!请极其谨慎!
-
常用选项:
-r
或-R
(Recursive): 必须 在删除目录 时使用,表示递归删除目录及其所有内容(子目录和文件)。非常危险!-f
(Force): 强制删除,不提示确认。极其危险!慎用!-i
(Interactive): 删除前询问确认 。强烈建议新手始终加上-i
或至少用于-r
操作!
-
用法:
rm [选项] 文件或目录...
(可以一次删除多个) -
示例:
text
rubyuser@ubuntu:~$ rm -i unwanted_file.txt # 删除 unwanted_file.txt (删除前询问确认) user@ubuntu:~$ rm *.tmp # 删除当前目录下所有以 .tmp 结尾的文件 (* 是通配符) user@ubuntu:~$ rm -ri old_directory # 递归删除 old_directory 目录及其所有内容 (删除每个文件/目录前都询问确认)
-
警告:
rm -rf /
或rm -rf *
在错误的位置执行会导致灾难性后果(删除所有文件或系统文件)! 执行rm -r
前务必用pwd
确认当前目录是否正确!
-
-
file
- 查看文件类型-
功能: 告诉你一个文件是什么类型的(文本文件?图片?可执行程序?目录?)。
-
用法:
file 文件名
-
示例:
text
rubyuser@ubuntu:~$ file picture.jpg picture.jpg: JPEG image data, ... # 识别为 JPEG 图片 user@ubuntu:~$ file myscript.sh myscript.sh: Bourne-Again shell script, ... # 识别为 Bash 脚本 user@ubuntu:~$ file somefile somefile: ASCII text # 识别为普通文本文件
-
三、 系统信息与进程管理 (System Info & Processes)
-
uname
- 显示系统信息-
功能: 显示关于操作系统和硬件的基本信息。
-
常用选项:
-a
(All): 显示所有信息(最常用)。-s
(Kernel name): 显示内核名称(如 Linux)。-r
(Kernel release): 显示内核版本号。-m
(Machine): 显示硬件架构(如 x86_64)。
-
用法:
uname [选项]
-
示例:
text
rubyuser@ubuntu:~$ uname -a Linux ubuntu 5.15.0-86-generic #96-Ubuntu SMP ... x86_64 GNU/Linux
-
-
df
(Disk Free) - 显示磁盘空间使用情况-
功能: 查看文件系统(硬盘分区)的总空间、已用空间、剩余空间和挂载点。
-
常用选项:
-h
(Human-readable): 以人类可读的单位显示大小(G, M)。
-
用法:
df [选项]
-
示例:
text
rubyuser@ubuntu:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 20G 10G 9.0G 53% / tmpfs 1.9G 0 1.9G 0% /dev/shm ... ... ... ... ... ...
-
-
du
(Disk Usage) - 估算文件/目录占用的磁盘空间-
功能: 查看指定文件或目录(及其子目录)占用了多少磁盘空间。
-
常用选项:
-h
(Human-readable): 以人类可读的单位显示大小。-s
(Summarize): 只显示总计大小,不显示每个子目录的详情。--max-depth=N
: 显示深入到第 N 级子目录的汇总。
-
用法:
du [选项] [文件或目录...]
(默认显示当前目录所有内容的大小) -
示例:
text
rubyuser@ubuntu:~$ du -sh Documents/ # 显示 Documents 目录的总大小 1.5G Documents/ user@ubuntu:~$ du -h --max-depth=1 /var/log # 显示 /var/log 下第一级子目录的大小
-
-
top
/htop
- 动态查看系统进程和资源占用-
功能: 实时显示系统中运行的进程、CPU 使用率、内存使用情况、负载等系统状态。
htop
是top
的增强版(颜色更丰富,操作更方便,通常需要额外安装:sudo apt install htop
)。 -
用法: 直接输入
top
或htop
-
常用操作 (在
top
/htop
界面中):q
: 退出。k
(top) /F9
(htop): 终止选中的进程 (kill)。需要输入进程 ID (PID)。M
: 按内存使用量排序。P
: 按 CPU 使用率排序。u
: 只显示某个用户的进程。F
(htop): 选择排序字段。/
(htop): 搜索进程。
-
示例:
text
rubyuser@ubuntu:~$ top # 启动 top user@ubuntu:~$ htop # 启动 htop (如果已安装)
-
-
ps
(Process Status) - 查看当前进程快照-
功能: 显示当前时刻系统运行的进程信息。默认只显示当前用户在当前终端启动的进程。
-
常用选项:
aux
(组合选项最常用): 显示所有用户的所有进程详细信息。-ef
: 另一种显示所有进程的格式。-u username
: 显示指定用户的进程。
-
用法:
ps [选项]
-
示例:
text
rubyuser@ubuntu:~$ ps # 查看当前终端会话的进程 user@ubuntu:~$ ps aux # 查看系统所有进程的详细信息 (最常用) user@ubuntu:~$ ps -u bob # 查看用户 bob 的进程
-
-
kill
/killall
- 终止进程-
功能: 向运行中的进程发送信号,通常用于终止进程。需要知道进程的 ID (PID) 或名称。
-
常用信号:
15
(SIGTERM): 默认信号,请求进程正常终止(让它自己清理后退出)。9
(SIGKILL): 强制终止 信号。进程会被立即杀死,没有机会清理。仅在进程不响应15
时使用。
-
用法:
kill [信号] PID
(通过进程 ID 杀进程)killall [信号] 进程名
(通过进程名称杀所有同名进程) 使用要谨慎!
-
示例:
text
rubyuser@ubuntu:~$ kill 1234 # 向 PID 为 1234 的进程发送 SIGTERM (15),请求其终止 user@ubuntu:~$ kill -9 5678 # 强制杀死 PID 为 5678 的进程 user@ubuntu:~$ killall -9 firefox # 强制杀死所有名为 firefox 的进程 (小心!)
-
如何找 PID? 通常先用
ps aux | grep 进程名
或pgrep 进程名
查找。
-
四、 网络相关 (Networking)
-
ping
- 测试网络连通性-
功能: 向指定的网络主机(如 IP 地址或域名)发送 ICMP 回显请求包,测试你的电脑是否能到达该主机以及网络延迟。按
Ctrl+C
停止。 -
用法:
ping [选项] 目标主机
-
示例:
text
rubyuser@ubuntu:~$ ping google.com # 测试是否能连接到 google.com user@ubuntu:~$ ping 8.8.8.8 # 测试是否能连接到 Google 的 DNS 服务器
-
-
ifconfig
(旧) /ip addr
(新) - 查看和配置网络接口-
功能: 显示和配置网络接口(网卡)的信息,如 IP 地址、MAC 地址、状态等。
-
说明:
ifconfig
是比较老的命令,在最新的 Ubuntu 中可能默认没有安装(但通常可以安装net-tools
包获得)。推荐使用更新的ip
命令。 -
用法:
- 查看所有接口信息:
ifconfig
或ip addr
(或ip a
) - 查看特定接口:
ifconfig eth0
或ip addr show eth0
- 查看所有接口信息:
-
示例:
text
rubyuser@ubuntu:~$ ip addr # 使用 ip 命令查看所有网络接口信息 user@ubuntu:~$ ifconfig # 使用 ifconfig 查看 (如果已安装)
-
-
wget
- 从网络下载文件-
功能: 在命令行中直接从互联网下载文件(支持 HTTP, HTTPS, FTP)。
-
常用选项:
-O 文件名
: 指定下载后保存的文件名。-c
: 继续中断的下载(断点续传)。
-
用法:
wget [选项] [URL]
-
示例:
text
rubyuser@ubuntu:~$ wget https://example.com/largefile.zip # 下载文件到当前目录 user@ubuntu:~$ wget -O ubuntu.iso https://.../ubuntu-22.04.iso # 下载并命名为 ubuntu.iso
-
五、 权限管理 (Permissions - 稍微进阶,但很重要)
-
chmod
(Change Mode) - 修改文件/目录权限-
功能: 改变文件或目录的访问权限(读 r、写 w、执行 x)。Linux 权限系统是核心安全机制之一。
-
理解权限: 权限分为三组:用户 (u) (文件所有者)、组 (g) 、其他 (o) (其他人)。每组有 r, w, x 三种权限。
-
数字模式 (常用): 用三位八进制数表示权限 (如
755
,644
)。-
r (读) = 4
-
w (写) = 2
-
x (执行) = 1
-
无权限 = 0
-
每组权限是三个值的和:
7
(4+2+1) = rwx6
(4+2+0) = rw-5
(4+0+1) = r-x4
(4+0+0) = r--0
(0+0+0) = ---
-
-
符号模式: 使用
u/g/o/a
(用户/组/其他/所有) 和+/-/=
(添加/移除/设置) 以及r/w/x
。 -
用法:
- 数字模式:
chmod [选项] 数字权限 文件或目录
- 符号模式:
chmod [选项] [ugoa...][[+-=][rwx...]...] 文件或目录
- 数字模式:
-
示例:
text
ruby# 数字模式: user@ubuntu:~$ chmod 755 my_script.sh # 设置 my_script.sh: 用户(rwx), 组(r-x), 其他(r-x) (常用给可执行脚本) user@ubuntu:~$ chmod 644 config.txt # 设置 config.txt: 用户(rw-), 组(r--), 其他(r--) (常用给配置文件) # 符号模式: user@ubuntu:~$ chmod u+x my_script.sh # 给用户 (u) 添加 (+) 执行 (x) 权限 user@ubuntu:~$ chmod go-rw secret.txt # 移除组 (g) 和其他人 (o) 的读写 (rw) 权限
-
-
sudo
(SuperUser DO) - 以超级用户权限执行命令-
功能: 允许被授权的普通用户临时以超级用户 (
root
) 的身份执行命令。执行需要管理员权限的操作时必须使用(如安装软件、修改系统文件)。 -
重要: 使用
sudo
时要格外小心,错误的命令可能导致系统损坏!只有在你理解命令含义时才使用。 -
用法:
sudo [命令]
-
示例:
text
rubyuser@ubuntu:~$ sudo apt update # 以 root 权限更新软件包列表 user@ubuntu:~$ sudo nano /etc/fstab # 以 root 权限编辑系统文件 fstab
-
注意: 第一次使用
sudo
或在长时间未使用后使用,系统会要求输入当前用户的登录密码(输入时密码不会显示星号,这是正常的)。
-
-
passwd
- 修改用户密码-
功能: 修改当前登录用户的密码。
-
用法:
passwd
-
示例:
text
yamluser@ubuntu:~$ passwd Changing password for user. (current) UNIX password: # 输入当前密码 Enter new UNIX password: # 输入新密码 Retype new UNIX password: # 再次输入新密码确认 passwd: password updated successfully
-
修改其他用户密码 (需要sudo):
sudo passwd username
-
六、 软件包管理 (Package Management - Ubuntu 核心)
-
apt
(Advanced Package Tool) - 软件包管理工具-
功能: Ubuntu/Debian 系统上最重要的命令之一!用于安装、更新、升级、删除软件包。
-
常用子命令:
sudo apt update
: 刷新软件包索引 。从配置的软件源(仓库)下载最新的软件包列表信息。在安装或升级软件包之前 ,强烈建议先运行此命令。它不会升级已安装的软件。sudo apt upgrade
: 升级所有可升级的软件包 。根据apt update
获取的信息,将系统中已安装的软件包升级到仓库中的最新版本。通常会要求确认。sudo apt install 软件包名
: 安装指定的软件包(以及它依赖的其他包)。sudo apt remove 软件包名
: 卸载 指定的软件包,但保留其配置文件。sudo apt purge 软件包名
: 完全卸载 指定的软件包,同时删除其配置文件。sudo apt autoremove
: 自动删除不再需要的依赖包。在卸载软件后运行,可以清理掉那些为了满足依赖关系而自动安装、但现在没有任何其他软件依赖的包。apt search 关键词
: 搜索 软件包仓库中名称或描述包含关键词的软件包(不需要sudo
)。apt show 软件包名
: 显示 指定软件包的详细信息(版本、描述、依赖等,不需要sudo
)。apt list --upgradable
: 列出所有可升级的软件包(在apt update
后使用,不需要sudo
)。
-
用法:
sudo apt [子命令] [选项] [软件包名]
-
示例:
text
rubyuser@ubuntu:~$ sudo apt update # 更新软件包列表 user@ubuntu:~$ sudo apt upgrade # 升级所有可升级软件 user@ubuntu:~$ sudo apt install htop vlc # 安装 htop 和 vlc 软件 user@ubuntu:~$ sudo apt remove --purge oldapp # 完全卸载 oldapp 并删除配置 user@ubuntu:~$ sudo apt autoremove # 清理不需要的依赖包 user@ubuntu:~$ apt search "web browser" # 搜索包含 "web browser" 的软件包
-
七、 获取帮助 (Getting Help)
-
man
(Manual) - 查看命令手册-
功能: 查看 Linux 命令、函数、配置文件等的官方详细手册。这是学习命令最权威、最全面的方式!
-
用法:
man [手册页名称]
(手册页名称通常是命令名) -
在
man
页面中的操作:空格
/Page Down
: 向下翻页。b
/Page Up
: 向上翻页。/关键词
: 在手册页中向下 搜索关键词(如/option
找 option),按n
找下一个匹配项,按N
找上一个。q
: 退出man
。
-
示例:
text
rubyuser@ubuntu:~$ man ls # 查看 ls 命令的详细手册 user@ubuntu:~$ man apt # 查看 apt 的手册 user@ubuntu:~$ man chmod # 查看 chmod 的手册
-
-
命令名 --help
或命令名 -h
- 查看命令简要帮助-
功能: 快速查看命令支持的选项和基本用法摘要。比
man
更简洁,适合快速查阅。 -
用法:
命令名 --help
或命令名 -h
-
示例:
text
rubyuser@ubuntu:~$ ls --help user@ubuntu:~$ cp -h
-