一、Ubuntu简介
(1)什么是 Ubuntu?
-
Linux 发行版: Ubuntu 是基于 Linux 内核的一个操作系统发行版。Linux 内核是操作系统的核心,负责管理硬件资源。发行版则在此基础上集成了各种软件、工具、桌面环境和应用程序,构成了一个完整、可用的操作系统。
-
面向桌面和服务器: Ubuntu 不仅适用于个人电脑(桌面版),也广泛应用于服务器领域(服务器版)。它的灵活性使其能够满足从个人用户到大型企业级应用的需求。
-
由 Canonical 公司支持: Ubuntu 由英国的 Canonical有限公司创建和维护。Canonical 提供商业支持、咨询服务,并积极贡献于 Ubuntu 的开发。
(2)Ubuntu 的主要版本和特点
Ubuntu 有两种发布周期:
-
LTS (Long Term Support) 版本: 长期支持版本。这些版本提供长达五年的免费安全更新和技术支持(桌面版和服务器版)。LTS 版本通常更稳定,适合生产环境和对稳定性要求高的用户。每两年发布一次(偶数年份的4月)。
- 例如: Ubuntu 20.04 LTS (Focal Fossa), Ubuntu 22.04 LTS (Jammy Jellyfish)。
-
非 LTS 版本 (Standard Release): 标准版本。这些版本每六个月发布一次(4月和10月),提供九个月的支持。它们包含了最新的软件和功能,适合喜欢尝试新特性或开发的用户。
- 例如: Ubuntu 23.10 (Mantic Minotaur)。
Ubuntu 的主要特点:
-
用户友好: 尽管是 Linux,Ubuntu 致力于提供一个直观易用的用户界面,降低了 Linux 的学习门槛。
-
GNOME 桌面环境: 默认的 Ubuntu 桌面环境是 GNOME,它提供了一个现代、简洁且功能丰富的图形用户界面。
-
包管理 (APT): Ubuntu 使用 Advanced Package Tool (APT) 系统来管理软件。这使得安装、更新和卸载软件变得非常方便。
-
广泛的软件库: Ubuntu 拥有庞大的官方软件仓库,包含数以万计的免费开源软件,基本可以满足用户的各种需求。
-
强大的社区支持: Ubuntu 拥有一个庞大而活跃的全球社区。用户可以通过论坛、邮件列表、问答网站等渠道获得帮助和支持。
-
安全性: Linux 本身以及 Ubuntu 都以其良好的安全性著称。Ubuntu 定期发布安全更新,并且有一个优秀的权限管理系统。
-
开源免费: Ubuntu 是完全免费的,并且其源代码是开放的,任何人都可以查看、修改和分发。
-
可定制性: 作为 Linux 发行版,Ubuntu 提供了高度的可定制性,用户可以根据自己的需求调整系统的方方面面。
-
硬件兼容性: Ubuntu 对各种硬件的支持越来越好,能够运行在各种不同类型的计算机上。
-
开发友好: Ubuntu 是许多开发者首选的操作系统,因为它提供了强大的开发工具和环境,并且与 Docker、Kubernetes 等现代开发技术紧密集成。
二、基本导航和文件/目录操作
-
pwd(Print Working Directory): 显示当前所在的目录路径。bashpwd -
ls(List): 列出当前目录下的文件和子目录。bashls ls -l ls -a ls -h ls -lh-
ls: 列出基本信息。 -
ls -l: 列出详细信息(权限、所有者、大小、修改日期等)。 -
ls -a: 列出所有文件,包括隐藏文件(以.开头的文件)。 -
ls -h: 以人类可读的格式显示文件大小(例如:KB, MB, GB)。 -
ls -lh: 结合了-l和-h的功能。
-
-
cd(Change Directory): 切换目录。bashcd directory-name cd .. cd ~ cd - cd /-
cd
<目录名>: 进入指定目录。 -
cd ..: 返回上一级目录。 -
cd ~: 返回家目录。 -
cd -: 返回上次所在的目录。 -
cd /: 进入根目录。
-
-
mkdir(Make Directory): 创建新目录。bashmkdir new-directory-name # 创建目录 mkdir -p parent-directory/subdirectory # 创建多级目录-
mkdir <目录名>: 在当前目录下创建新目录。
-
mkdir -p
<父目录>/<子目录>: 递归创建目录,如果父目录不存在也会一并创建。
-
-
rmdir(Remove Directory): 删除空目录。bashrmdir- rmdir
<目录名>
- rmdir
-
touch: 创建空文件或更新文件的时间戳。bashtouch empty-file- touch <文件名>
-
cp(Copy): 复制文件或目录。bashcp source-file target-location # 复制文件 cp -r source-directory target-location # 复制文件夹-
cp <源文件> <目标位置>: 复制文件。 -
cp -r <源目录> <目标位置>: 递归复制目录及其内容。
-
-
mv(Move): 移动文件或目录,或重命名文件/目录。bashmv source-file target-location # 移动文件 mv source-directory target-location # 移动文件夹 mv old-file-name new-file-name # 重命名文件 mv old-directory-name new directory-name # 重命名文件夹-
mv <源文件> <目标位置>: 移动文件。 -
mv <旧文件名> <新文件名>: 重命名文件。 -
mv <源目录> <目标位置>: 移动目录。 -
mv <旧目录名> <新目录名>: 重命名目录。
-
-
rm(Remove): 删除文件或目录。-
rm <文件名>: 删除文件。 -
rm -r <目录名>: 递归删除目录及其内容(谨慎使用!)。 -
rm -f <文件名>: 强制删除文件,不提示确认。 -
rm -rf <目录名>: 强制递归删除目录及其内容(超级谨慎使用!)。
-
-
cat(Concatenate): 显示文件内容,或合并多个文件。-
cat <文件名>: 显示文件内容。 -
cat <文件1> <文件2> > <新文件>: 将文件1和文件2合并到新文件。
-
-
less: 分页查看文件内容,比cat更适合查看大文件。-
less <文件名> -
在
less中:-
Space或f: 向下翻一页。 -
b: 向上翻一页。 -
Down Arrow: 向下滚动一行。 -
Up Arrow: 向上滚动一行。 -
g: 跳到文件开头。 -
G: 跳到文件末尾。 -
/搜索词: 搜索。 -
n: 下一个匹配项。 -
N: 上一个匹配项。 -
q: 退出。
-
-
-
head: 显示文件的开头部分(默认显示前10行)。-
head <文件名> -
head -n <行数> <文件名>: 显示指定行数的开头。
-
-
tail: 显示文件的结尾部分(默认显示后10行)。-
tail <文件名> -
tail -n <行数> <文件名>: 显示指定行数的结尾。 -
tail -f <文件名>: 实时跟踪文件末尾的新增内容,常用于查看日志文件。
-
三、系统信息和进程管理
-
uname: 显示系统信息。uname -a: 显示所有信息(内核名称、主机名、内核版本、操作系统等)。
-
top: 实时显示系统中运行的进程、CPU使用率、内存使用率等信息。-
在
top中:-
q: 退出。 -
k: 杀掉进程(需要输入PID)。 -
M: 按内存排序。 -
P: 按CPU排序。
-
-
-
htop:top的增强版,功能更丰富,界面更友好(可能需要安装:sudo apt install htop)。 -
ps(Process Status): 显示当前运行的进程。-
ps aux: 显示所有用户的进程,包含详细信息。 -
ps -ef: 类似ps aux,显示进程的父进程ID等。
-
-
kill: 终止进程。-
kill <PID>: 发送终止信号(SIGTERM),目标进程有机会清理后退出。 -
kill -9 <PID>: 发送强制终止信号(SIGKILL),强制终止进程。
-
-
df(Disk Free): 显示磁盘空间使用情况。df -h: 以人类可读的格式显示。
-
du(Disk Usage): 显示文件和目录的磁盘空间使用情况。-
du -sh <目录名>: 显示指定目录的总大小,-s表示汇总,-h表示人类可读。 -
du -h --max-depth=1: 显示当前目录下各级子目录的大小。
-
四、软件安装和管理
-
apt(Advanced Package Tool): Ubuntu 的包管理器。-
sudo apt update: 更新软件包列表,获取最新的软件包版本信息。 -
sudo apt upgrade: 升级所有已安装的软件包到最新版本。 -
sudo apt install <软件包名>: 安装软件包。 -
sudo apt remove <软件包名>: 卸载软件包(保留配置文件)。 -
sudo apt purge <软件包名>: 卸载软件包(并删除配置文件)。 -
sudo apt autoremove: 移除不再需要的依赖包。 -
apt search <关键词>: 搜索软件包。 -
apt show <软件包名>: 显示软件包的详细信息。
-
-
dpkg: 低级别的包管理工具,apt是基于dpkg的。一般情况下使用apt即可。
五、权限管理
-
chmod(Change Mode): 改变文件或目录的权限。-
数字模式:
-
rwx: 读(4), 写(2), 执行(1) -
chmod 755 <文件名>: 文件所有者拥有读写执行权限 (4+2+1=7),组用户和其他用户拥有读写执行权限 (4+0+1=5)。 -
chmod 644 <文件名>: 文件所有者拥有读写权限 (4+2=6),组用户和其他用户拥有读权限 (4+0+0=4)。
-
-
符号模式:
-
u: 所有者 (user) -
g: 组用户 (group) -
o: 其他用户 (others) -
a: 所有用户 (all - ugo) -
+: 添加权限 -
-: 移除权限 -
=: 设置权限 -
chmod u+x <文件名>: 给文件所有者添加执行权限。 -
chmod go-w <文件名>: 移除组用户和其他用户的写权限。 -
chmod a=r <文件名>: 设置所有用户都只有读权限。
-
-
-
chown(Change Owner): 改变文件或目录的所有者。-
sudo chown <新所有者> <文件名>: 改变文件所有者。 -
sudo chown <新所有者>:<新用户组> <文件名>: 同时改变所有者和用户组。
-
-
chgrp(Change Group): 改变文件或目录的用户组。sudo chgrp <新用户组> <文件名>
六、网络相关
-
ping: 测试与目标主机之间的连通性。ping <IP地址或域名>
-
ip addr: 显示网络接口的IP地址和状态(ifconfig已被逐渐取代)。ip addr show
-
ssh(Secure Shell): 安全地远程登录到另一台计算机。-
ssh <用户名>@<IP地址或域名> -
ssh -p <端口号> <用户名>@<IP地址或域名>: 指定SSH端口。
-
-
scp(Secure Copy): 安全地在本地和远程计算机之间复制文件。-
scp <本地文件> <远程用户名>@<远程IP>:<远程路径>: 从本地复制到远程。 -
scp <远程用户名>@<远程IP>:<远程文件> <本地路径>: 从远程复制到本地。 -
scp -r <本地目录> <远程用户名>@<远程IP>:<远程路径>: 递归复制目录。
-
-
wget: 从网络下载文件。wget <URL>
-
curl: 用于传输数据,常用于与Web服务器交互,提供比wget更多样的功能。curl <URL>
七、用户和权限
-
sudo(Superuser Do): 以超级用户(root)权限执行命令。-
sudo <命令> -
第一次使用
sudo时,系统会要求输入当前用户的密码。
-
-
su(Switch User): 切换用户。-
su <用户名>: 切换到指定用户。 -
su -: 切换到 root 用户(更彻底的切换,加载root用户的环境变量)。 -
exit: 退出当前用户会话。
-
-
passwd: 修改用户密码。-
passwd: 修改当前用户的密码。 -
sudo passwd <用户名>: 修改指定用户的密码。
-
-
whoami: 显示当前登录的用户名。
八、文本编辑
-
nano: 一个简单易用的文本编辑器。-
nano <文件名> -
在
nano中:-
Ctrl + O(Write Out): 保存文件。 -
Ctrl + X(Exit): 退出。 -
Ctrl + G(Get Help): 查看帮助。
-
-
-
vim: 功能强大但学习曲线较陡峭的文本编辑器。-
vim <文件名> -
Vim 有多种模式(命令模式、插入模式、可视模式等),初学者可能需要一些时间来熟悉。
-
命令模式下按
i进入插入模式。 -
插入模式下按
Esc返回命令模式。 -
命令模式下输入
:wq保存并退出。 -
命令模式下输入
:q!强制退出不保存。
-
-
九、其他常用命令
-
man(Manual): 查看命令的帮助手册。-
man <命令名> -
例如:
man ls
-
-
echo: 显示文本或变量的值。-
echo "Hello World" -
echo $PATH
-
-
grep: 在文件中搜索匹配的模式。-
grep "关键字" <文件名>: 在指定文件里搜索包含 "关键字" 的行。 -
grep -r "关键字" <目录名>: 在指定目录下递归搜索。 -
ls -l | grep "权限": 结合管道符使用。
-
-
history: 显示命令历史记录。-
history: 显示所有命令历史。 -
!N: 执行第 N 条历史命令。 -
!!: 执行上一条命令。
-
-
clear: 清屏。 -
shutdown: 关机或重启。-
sudo shutdown -h now: 立即关机。 -
sudo reboot: 立即重启。
-