2026-01-23
最近更新:Linux基础教程 第18课:Linux云计算基础
2026-01-23
2026-01-23
2026-01-23
最近更新:Linux基础教程 第15课:Linux内核和驱动管理
2026-01-21
浏览量:26 次 发布时间:2026-01-18 14:31 作者:明扬工控商城 下载docx
2026-01-23
最近更新:Linux基础教程 第18课:Linux云计算基础
2026-01-23
2026-01-23
2026-01-23
最近更新:Linux基础教程 第15课:Linux内核和驱动管理
2026-01-21
好的,我们继续第六课。今天学习两个非常重要的主题:软件包管理和网络配置。
第一部分:软件包管理(APT)
1.1 什么是软件包?
软件包就是Linux的安装程序,像Windows的.exe文件,但更智能。它包含了程序文件、配置文件和依赖关系。
1.2 APT包管理器
Ubuntu使用APT(Advanced Package Tool)管理软件包。
bash
# 1. 首先更新软件包列表(必须经常做)
sudo apt update
# 解释:这不会更新软件,只是更新"有哪些软件可用"的列表
# 2. 升级已安装的软件包
sudo apt upgrade
# 3. 升级系统(包括内核)
sudo apt dist-upgrade
# 4. 安装软件
sudo apt install 软件名
sudo apt install vim # 安装vim编辑器
sudo apt install htop # 安装更好的进程查看器
# 5. 安装多个软件
sudo apt install vim git curl wget
1.3 搜索和查看软件包
bash
# 搜索软件包
apt search 关键词
apt search python3
apt search "web server"
# 查看软件包详细信息
apt show 软件名
apt show vim
# 查看软件包包含哪些文件
apt-file list 软件名
sudo apt install apt-file # 先安装这个工具
sudo apt-file update # 更新文件数据库
apt-file list vim
1.4 卸载软件包
bash
# 卸载软件(保留配置文件)
sudo apt remove 软件名
# 完全卸载(包括配置文件)
sudo apt purge 软件名
# 自动删除不需要的依赖包
sudo apt autoremove
# 清理下载的软件包缓存
sudo apt autoclean # 清理旧版本的缓存
sudo apt clean # 清理所有缓存
1.5 查看已安装的软件
bash
# 查看所有已安装的软件
apt list --installed
# 查看特定软件是否安装
apt list --installed | grep vim
# 查看软件安装状态
dpkg -l | grep vim
# 查看软件安装位置
dpkg -L 软件名
dpkg -L vim
1.6 修复依赖问题
bash
# 修复损坏的依赖关系
sudo apt --fix-broken install
# 修复安装问题
sudo dpkg --configure -a
1.7 练习:软件包管理实战
更新系统
bash
sudo apt update
sudo apt upgrade
安装一些常用工具
bash
sudo apt install vim htop git curl wget net-tools
搜索并安装一个有趣的软件
bash
apt search cowsay
sudo apt install cowsay
cowsay "Hello Linux!"
查看已安装的软件
bash
apt list --installed | tail -20
卸载不需要的软件
bash
sudo apt remove cowsay
sudo apt autoremove
第二部分:源码编译安装
有时需要从源码安装软件(当软件仓库没有或版本太旧时)。
2.1 基本编译步骤
bash
# 1. 安装编译工具
sudo apt install build-essential
# 2. 下载源码
wget http://example.com/software.tar.gz
# 3. 解压
tar -xzvf software.tar.gz
cd software/
# 4. 配置(检查依赖,生成Makefile)
./configure
# 5. 编译
make
# 6. 安装
sudo make install
# 7. 清理(可选)
make clean
2.2 实际例子:编译安装htop
bash
# 1. 安装依赖
sudo apt install libncurses5-dev libncursesw5-dev
# 2. 下载源码
wget https://github.com/htop-dev/htop/archive/refs/tags/3.0.0.tar.gz
# 3. 解压
tar -xzvf 3.0.0.tar.gz
cd htop-3.0.0/
# 4. 配置
./autogen.sh # 如果需要
./configure
# 5. 编译安装
make
sudo make install
第三部分:网络配置基础
3.1 查看网络信息
bash
# 查看IP地址(老命令)
ifconfig
# 查看IP地址(新命令)
ip addr show
ip a # 简写
# 查看路由表
route -n
ip route show
# 查看网络接口
ip link show
# 查看网络统计
netstat -i
ss -i
3.2 测试网络连接
bash
# 测试网络连通性
ping www.baidu.com
ping -c 4 8.8.8.8 # 只ping 4次
# 跟踪网络路径
traceroute www.baidu.com
tracepath www.baidu.com
# 测试端口连通性
telnet www.baidu.com 80
nc -zv www.baidu.com 80
# 查看DNS解析
nslookup www.baidu.com
dig www.baidu.com
host www.baidu.com
3.3 配置网络(临时)
bash
# 设置IP地址(临时,重启失效)
sudo ip addr add 192.168.1.100/24 dev eth0
# 启用/禁用网卡
sudo ip link set eth0 up
sudo ip link set eth0 down
# 添加路由
sudo ip route add default via 192.168.1.1
3.4 网络配置文件(永久生效)
Ubuntu使用Netplan管理网络(新版):
bash
# 查看网络配置文件
ls /etc/netplan/
# 编辑配置文件
sudo vim /etc/netplan/00-installer-config.yaml
典型配置内容:
yaml
network:
version: 2
ethernets:
eth0:
dhcp4: true # 使用DHCP自动获取IP
# 或者手动配置:
# addresses: [192.168.1.100/24]
# gateway4: 192.168.1.1
# nameservers:
# addresses: [8.8.8.8, 8.8.4.4]
应用配置:
bash
sudo netplan apply
sudo netplan --debug apply # 调试模式
3.5 防火墙配置(UFW)
Ubuntu使用UFW(简单防火墙):
bash
# 查看防火墙状态
sudo ufw status
# 启用防火墙
sudo ufw enable
# 禁用防火墙
sudo ufw disable
# 允许端口
sudo ufw allow 22 # 允许SSH
sudo ufw allow 80/tcp # 允许HTTP
sudo ufw allow 443/tcp # 允许HTTPS
# 允许特定IP
sudo ufw allow from 192.168.1.100
# 拒绝端口
sudo ufw deny 3306 # 拒绝MySQL端口
# 删除规则
sudo ufw delete allow 22
# 查看详细规则
sudo ufw status numbered
# 重置所有规则
sudo ufw reset
第四部分:SSH远程连接
4.1 SSH服务器配置
bash
# 安装SSH服务器
sudo apt install openssh-server
# 启动SSH服务
sudo systemctl start ssh
# 开机自启
sudo systemctl enable ssh
# 查看SSH状态
sudo systemctl status ssh
# 检查SSH监听端口
sudo ss -tlnp | grep :22
4.2 SSH客户端连接
bash
# 基本连接
ssh username@hostname
ssh ubuntu@192.168.1.100
# 指定端口
ssh -p 2222 username@hostname
# 使用密钥登录(无需密码)
ssh -i /path/to/key.pem username@hostname
# 执行远程命令
ssh username@hostname "ls -la"
# 传输文件
scp localfile.txt username@hostname:/remote/path/
scp username@hostname:/remote/file.txt local/path/
# 安全复制目录
scp -r localdir/ username@hostname:/remote/path/
4.3 SSH密钥认证
bash
# 1. 生成密钥对
ssh-keygen -t rsa -b 4096
# 默认保存在 ~/.ssh/id_rsa(私钥)和 id_rsa.pub(公钥)
# 2. 复制公钥到服务器
ssh-copy-id username@hostname
# 或手动复制:
cat ~/.ssh/id_rsa.pub | ssh username@hostname "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
# 3. 测试无密码登录
ssh username@hostname
第五部分:网络调试和故障排除
5.1 常见网络问题排查
bash
# 1. 检查网络连接
ping -c 4 8.8.8.8
ping -c 4 www.baidu.com
# 2. 检查DNS
nslookup www.baidu.com
cat /etc/resolv.conf
# 3. 检查路由
ip route show
traceroute www.baidu.com
# 4. 检查端口监听
sudo netstat -tlnp
sudo ss -tlnp
# 5. 检查防火墙
sudo ufw status
# 6. 查看网络接口
ip addr show
ip link show
5.2 网络信息收集
bash
# 查看所有网络连接
netstat -an
ss -a
# 查看TCP连接
netstat -at
ss -t
# 查看UDP连接
netstat -au
ss -u
# 查看正在监听的端口
netstat -lntup
ss -lntup
# 查看网络统计
netstat -s
ip -s link
# 查看ARP表
arp -a
ip neigh show
第六部分:练习和实战
练习1:软件包管理实战
更新系统并安装常用工具
bash
sudo apt update
sudo apt upgrade
sudo apt install net-tools dnsutils traceroute
安装并配置一个Web服务器
bash
sudo apt install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
curl http://localhost
查看nginx安装的文件
bash
dpkg -L nginx | head -20
练习2:网络配置实战
查看当前网络配置
bash
ip addr show
ip route show
cat /etc/resolv.conf
测试网络连接
bash
ping -c 4 8.8.8.8
traceroute 8.8.8.8
nslookup www.google.com
配置防火墙
bash
sudo ufw enable
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw status
练习3:SSH实战
在本机生成SSH密钥
bash
ssh-keygen -t rsa -b 4096
如果有多台机器,尝试SSH连接
bash
# 连接自己的本地SSH(回环测试)
ssh localhost
exit
# 或者连接虚拟机(如果知道IP)
ssh username@虚拟机IP
练习4:故障排查场景
模拟一个网络问题并解决:
临时禁用网络
bash
sudo ip link set eth0 down
尝试ping
bash
ping 8.8.8.8
诊断问题
bash
ip link show
恢复网络
bash
sudo ip link set eth0 up
ping 8.8.8.8
第七部分:今日命令总结
软件包管理命令 作用
sudo apt update 更新软件包列表
sudo apt upgrade 升级已安装的软件
sudo apt install 安装软件
apt search 搜索软件包
apt show 显示软件包信息
sudo apt remove 卸载软件
sudo apt purge 完全卸载软件
apt list --installed 查看已安装的软件
网络命令 作用
ip addr show 查看IP地址
ip route show 查看路由表
ping 测试网络连通性
traceroute 跟踪网络路径
nslookup DNS查询
netstat 查看网络连接
ss 查看socket统计
SSH命令 作用
ssh user@host SSH远程连接
scp file user@host:path 安全复制文件
ssh-keygen 生成SSH密钥
ssh-copy-id 复制公钥到远程主机
第八部分:注意事项
软件包管理
定期更新系统:sudo apt update && sudo apt upgrade
安装软件前先搜索:apt search 软件名
卸载不需要的软件:sudo apt autoremove
网络配置
修改网络配置前备份原文件
使用netplan apply测试配置
生产环境修改网络要谨慎
SSH安全
使用密钥认证代替密码
修改默认SSH端口(22)
禁用root用户SSH登录
防火墙
开启防火墙:sudo ufw enable
只开放必要的端口
测试防火墙规则后再应用到生产环境
今天的课程内容比较多,但都很实用。慢慢练习,不用着急。
有问题吗?完成了练习我们可以继续下一课:Shell脚本编程基础。
将本文的Word文档下载到电脑
推荐度: