1. Linux 的不同发行版安装和使用
常见 Linux 发行版
-
Ubuntu
- Ubuntu 是最为流行的桌面和服务器发行版之一,基于 Debian,易于使用和上手。
- 安装方式:
- 下载 ISO 镜像(Ubuntu官网)。
- 使用工具(如Rufus、balenaEtcher)将镜像写入 USB 启动盘。
- 通过 BIOS 设置 USB 启动,按照引导进行安装。
- 图形化安装界面,用户只需按提示选择语言、安装位置、配置网络等,即可完成安装。
-
CentOS / Rocky Linux / AlmaLinux
- 这几款系统基于 RHEL (Red Hat Enterprise Linux),主要面向服务器运维和企业应用。
- 安装方式:
- 下载 ISO 镜像(CentOS官网,Rocky Linux,AlmaLinux)。
- 与 Ubuntu 类似,使用 USB 启动盘或虚拟机进行安装。
- 主要采用命令行安装,部分支持图形化界面,用户需要自行配置网络、磁盘分区等。
-
Debian
- Debian 是一个稳定、自由的社区维护的发行版,适合服务器和桌面使用。
- 安装方式:
- 下载 ISO 镜像(Debian官网)。
- Debian 提供不同的安装模式,包括图形化和命令行模式。
-
Arch Linux
- Arch Linux 是一个极简、滚动更新的发行版,适合高级用户。
- 安装方式:
- 下载 ISO 镜像(Arch Linux官网)。
- 安装时需要大量手动配置,用户需通过命令行完成磁盘分区、文件系统创建、引导加载程序的安装等。
2. Linux 基本语法和示例
Linux 的命令大多数都遵循以下基本结构:
command [选项] [参数]
其中:
command
是你执行的命令。[选项]
是改变命令行为的开关,可以有多个选项。[参数]
是命令的目标对象,例如文件、目录、服务等。
文件与目录操作
# 切换目录
cd /home/user # 进入指定目录
cd .. # 返回上一级目录
# 显示当前目录内容
ls # 列出当前目录中的文件和文件夹
ls -l # 列出详细信息(如权限、大小、修改时间等)
ls -a # 列出所有文件,包括隐藏文件(以.开头的文件)
# 创建与删除文件/目录
mkdir my_folder # 创建一个目录
touch myfile.txt # 创建一个空文件
rm myfile.txt # 删除文件
rm -r my_folder # 递归删除文件夹及其内容
文件权限与所有权
# 修改文件权限
chmod 755 myfile.sh # 改变文件的权限,rwx 表示读、写、执行权限
# 修改文件所有权
chown user:group file.txt # 将文件的所有权更改为指定用户和组
# 查看文件权限
ls -l # 在详细列表中查看文件权限
文件内容查看与编辑
# 查看文件内容
cat file.txt # 一次性输出整个文件的内容
less file.txt # 分页查看文件内容
head -n 10 file.txt # 查看文件前10行
tail -n 10 file.txt # 查看文件后10行
# 编辑文件
nano file.txt # 使用 nano 编辑文件
vi file.txt # 使用 vi 编辑文件
压缩与解压
# 打包为 tar.gz 文件
tar -czvf archive.tar.gz /path/to/directory
# 解压 tar.gz 文件
tar -xzvf archive.tar.gz
网络配置与管理
# 查看网络接口信息
ifconfig # 显示网络接口详细信息
ip addr show # 另一种方式查看网络接口信息
# 查看当前系统的路由表
route -n
# 配置 IP 地址(临时)
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
# 测试网络连通性
ping google.com # 测试是否能连接到外部网络
ping 192.168.1.1 # 测试与内网设备的连接
3. 运维常用的命令示例
用户与权限管理
# 添加新用户
useradd newuser # 添加用户
passwd newuser # 设置用户密码
usermod -aG sudo newuser # 将用户添加到 sudoers 列表中
# 删除用户
userdel newuser # 删除用户
# 查看当前用户
whoami # 显示当前用户名
服务管理(systemctl)
# 启动、停止、重启服务
systemctl start nginx # 启动 Nginx 服务
systemctl stop nginx # 停止 Nginx 服务
systemctl restart nginx # 重启 Nginx 服务
# 查看服务状态
systemctl status nginx # 查看 Nginx 服务状态
# 开机自动启动
systemctl enable nginx # 设置 Nginx 开机启动
systemctl disable nginx # 禁用 Nginx 开机启动
进程与系统资源管理
# 查看系统资源使用情况
top # 实时查看系统性能(CPU、内存、进程)
htop # 更高级的资源监控工具,需要先安装
# 查找并杀掉进程
ps aux # 显示所有运行中的进程
kill -9 <PID> # 强制终止进程,<PID>为进程号
# 系统资源统计
df -h # 显示磁盘空间使用情况
du -sh /directory # 计算目录占用的空间大小
free -m # 显示内存使用情况
系统日志查看
# 查看系统日志
tail -f /var/log/syslog # 实时查看系统日志
journalctl -xe # 查看系统服务的详细日志
# 查看某个服务的日志
journalctl -u nginx # 查看 Nginx 服务日志
软件包管理
不同 Linux 发行版使用不同的软件包管理工具:
- Ubuntu / Debian(APT)
sudo apt update # 更新软件包索引
sudo apt upgrade # 升级已安装的软件包
sudo apt install nginx # 安装 Nginx 软件
sudo apt remove nginx # 卸载 Nginx 软件
- CentOS / RedHat(YUM / DNF)
sudo yum update # 更新软件包索引
sudo yum install nginx # 安装 Nginx 软件
sudo yum remove nginx # 卸载 Nginx 软件
4. 总结
Linux 的安装和使用根据不同的发行版有所不同,但基础操作和命令行语法非常一致。在 Linux 运维中,掌握文件和目录管理、用户权限管理、网络配置、服务管理、进程管理、日志查看和软件包管理等基础命令至关重要。这些命令是日常系统维护和故障排查的关键。
在 PC 虚拟机和服务器上安装 CentOS 7 并进行基础配置包括环境配置、网络设置和防火墙配置,以下是详细步骤。
1. PC 虚拟机上安装 CentOS 7
我们可以使用虚拟化软件如 VMware Workstation、VirtualBox 或 Hyper-V 来创建虚拟机,安装 CentOS 7。
步骤 1:下载 CentOS 7 镜像
- 下载 CentOS 7 的 ISO 文件:
- 下载链接:CentOS 官网
- 选择 Minimal ISO 或 DVD ISO 版本。如果只是基础安装,Minimal ISO 足够。
步骤 2:创建虚拟机
- 打开虚拟机管理软件(例如 VirtualBox、VMware Workstation)。
- 创建新的虚拟机:
- 选择“创建新虚拟机”。
- 选择操作系统类型:选择 Linux -> CentOS 64-bit。
- 分配资源:
- 内存:推荐至少 2GB 内存(2048MB)。
- 硬盘:建议至少 20GB 的虚拟磁盘空间。
- 选择安装介质:选择之前下载的 CentOS 7 ISO 文件作为虚拟机的安装介质。
- 完成虚拟机创建并启动。
步骤 3:安装 CentOS 7
- 启动虚拟机后,进入 CentOS 7 的安装界面,选择 “Install CentOS 7”。
- 选择语言:根据需要选择语言(默认英语)。
- 磁盘分区:选择自动分区或手动分区,通常自动分区即可满足需要。
- 网络配置:如果需要,打开“网络和主机名”设置界面启用网卡。
- 开始安装:
- 设定 root 密码和创建用户。
- 等待系统安装完成。
步骤 4:安装完成
- 安装完成后,重启虚拟机并移除 ISO 镜像。
2. 服务器安装 CentOS 7
服务器安装 CentOS 7 的过程与在虚拟机中的步骤类似,唯一的区别在于硬件配置和部署环境。
- 下载 CentOS 7 ISO 并创建启动 USB 驱动器。
- 插入 USB 启动盘,进入服务器 BIOS,设置从 USB 启动。
- 按照与虚拟机安装类似的步骤安装 CentOS 7。
3. 环境配置
更新系统
无论是在虚拟机还是服务器,安装完后第一步是更新系统,确保所有软件包和安全补丁都是最新的。
sudo yum update -y
安装常用软件包
安装常用的工具和软件包:
# 安装 wget 和 net-tools(用于网络配置查看)
sudo yum install wget net-tools -y
# 安装 vim 编辑器
sudo yum install vim -y
# 安装 epel-release 库
sudo yum install epel-release -y
配置网络
CentOS 7 使用 NetworkManager
管理网络,可以通过 nmtui
工具进行简单配置。
- 使用
nmtui
配置网络:
nmtui
- 进入后选择 Edit a connection,然后选择网卡配置。
- 配置静态 IP 地址、网关、DNS 服务器等网络参数。
- 保存后重启网络服务:
sudo systemctl restart network
- 使用
ifconfig
或ip addr
命令确认网络配置:
ifconfig
或
ip addr show
手动配置静态 IP 地址
也可以通过编辑网卡配置文件手动配置网络:
sudo vim /etc/sysconfig/network-scripts/ifcfg-<network-interface-name>
例如:
BOOTPROTO=none
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
保存并重启网络服务:
sudo systemctl restart network
4. 基础配置
设置主机名
更改主机名:
hostnamectl set-hostname <new-hostname>
例如:
hostnamectl set-hostname server1.example.com
重启生效:
reboot
配置防火墙
CentOS 7 使用 firewalld 管理防火墙规则。下面是一些基础的防火墙操作。
- 启动防火墙并启用开机自启动:
sudo systemctl start firewalld
sudo systemctl enable firewalld
- 查看防火墙状态:
sudo firewall-cmd --state
- 查看当前防火墙规则:
sudo firewall-cmd --list-all
- 允许特定服务或端口:
- 允许 HTTP(80端口):
sudo firewall-cmd --permanent --add-service=http
- 允许 HTTPS(443端口):
sudo firewall-cmd --permanent --add-service=https
- 允许自定义端口(例如 8080):
sudo firewall-cmd --permanent --add-port=8080/tcp
- 重载防火墙以应用更改:
sudo firewall-cmd --reload
- 删除规则:
- 移除 HTTP 服务:
sudo firewall-cmd --permanent --remove-service=http
sudo firewall-cmd --reload
配置 SSH(远程登录)
服务器通常通过 SSH 进行远程管理。CentOS 7 默认安装了 SSH 服务,但可以进行一些基本配置。
- 检查 SSH 服务是否正在运行:
sudo systemctl status sshd
- 启动 SSH 服务并设置开机启动:
sudo systemctl start sshd
sudo systemctl enable sshd
- 修改 SSH 端口(可选)
出于安全考虑,可以修改 SSH 服务的默认端口号(22)。
- 编辑 SSH 配置文件:
sudo vim /etc/ssh/sshd_config
- 修改以下行:
#Port 22
将端口改为你想使用的端口(例如 2222)。保存文件后,重启 SSH 服务:
sudo systemctl restart sshd
- 允许新的 SSH 端口通过防火墙(如果你修改了端口号):
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
5. 总结
- PC 虚拟机:使用虚拟化软件如 VirtualBox、VMware 在个人电脑上安装 CentOS 7,适用于学习和测试。
- 服务器安装:服务器上的安装通常通过物理机或云服务器完成,注重资源和安全配置。
- 环境配置:更新系统、安装常用工具和包。
- 网络配置:可以通过
nmtui
或手动配置静态 IP 地址,确保服务器能够访问网络。 - 基础防火墙配置:使用 firewalld 管理开放和限制服务和端口。
- SSH 配置:确保远程访问可用,考虑修改 SSH 端口来提高安全性。
通过这些配置,你的 CentOS 7 系统将具备基本的运行环境,并能够满足日常的运维需求。
VirtualBox和 Vagrant 是两种常用于虚拟化环境管理的工具,它们可以协同工作,以便用户轻松创建、管理和配置虚拟机。
- VirtualBox 是一款开源的虚拟化软件,用于在计算机上创建和运行虚拟机,可以模拟多种操作系统。
- Vagrant 是一个虚拟化环境管理工具,它提供了一个简单的命令行界面来配置和管理虚拟机,主要是与 VirtualBox 一起使用。
下面我会介绍 VirtualBox 和 Vagrant 的安装、配置和基本使用方法。
1. 安装 VirtualBox 和 Vagrant
步骤 1:安装 VirtualBox
-
下载 VirtualBox:
- 访问 VirtualBox 官方网站,选择对应操作系统版本(Windows、macOS 或 Linux)的安装包并下载。
-
安装 VirtualBox:
- 双击下载的安装文件并按照提示完成安装。安装完成后,你可以通过 VirtualBox 的图形界面来管理虚拟机。
步骤 2:安装 Vagrant
-
下载 Vagrant:
- 访问 Vagrant 官方网站,下载适用于你操作系统的安装包。
-
安装 Vagrant:
- 与 VirtualBox 类似,运行安装包并按提示安装。
-
验证安装:
- 打开终端(Windows 用户可以使用 PowerShell 或命令提示符),运行以下命令以确保 Vagrant 已正确安装:
vagrant --version
2. Vagrant 和 VirtualBox 的基本使用
步骤 1:创建一个 Vagrant 项目
-
创建一个新的项目目录:
mkdir vagrant-test cd vagrant-test
-
初始化一个新的 Vagrant 配置文件:
vagrant init
这将会在当前目录下创建一个
Vagrantfile
,用于定义虚拟机的配置。
步骤 2:编辑 Vagrantfile
- 打开
Vagrantfile
文件,你会看到一个基本的配置模板,包含了各种配置选项。 - 修改
Vagrantfile
文件,选择你想要使用的虚拟机镜像(也称为 “box”)。例如,我们可以使用 Ubuntu 20.04 的镜像:Vagrant.configure("2") do |config| config.vm.box = "ubuntu/focal64" end
Vagrant 通过远程镜像仓库(如 Vagrant Cloud)下载这些镜像。
步骤 3:启动虚拟机
-
启动并创建虚拟机:
vagrant up
Vagrant 将会自动下载你在
Vagrantfile
中定义的 box,并通过 VirtualBox 创建并启动虚拟机。 -
检查虚拟机的状态:
vagrant status
步骤 4:连接到虚拟机
- 使用 SSH 连接到启动的虚拟机:
vagrant ssh
你现在已经进入了虚拟机的命令行,能够与虚拟机交互,就像操作物理机一样。
步骤 5:暂停、重启或销毁虚拟机
-
暂停虚拟机(保存当前状态,稍后可以恢复):
vagrant suspend
-
重启虚拟机:
vagrant reload
-
销毁虚拟机(删除虚拟机):
vagrant destroy
3. Vagrant 的高级配置
共享文件夹
你可以将主机与虚拟机之间的文件夹同步,使得两者可以轻松共享数据。编辑 Vagrantfile
,添加如下配置:
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/focal64"
config.vm.synced_folder "./data", "/vagrant_data"
end
./data
是主机上的文件夹路径,/vagrant_data
是虚拟机中的路径。- 当虚拟机启动时,这两个文件夹将自动同步。
网络配置
-
端口转发:将主机的某个端口映射到虚拟机中的端口。例如,将主机的 8080 端口映射到虚拟机的 80 端口:
Vagrant.configure("2") do |config| config.vm.box = "ubuntu/focal64" config.vm.network "forwarded_port", guest: 80, host: 8080 end
-
私有网络:虚拟机与主机在同一个私有网络中,可以通过 IP 地址直接访问虚拟机。
Vagrant.configure("2") do |config| config.vm.box = "ubuntu/focal64" config.vm.network "private_network", ip: "192.168.33.10" end
-
公共网络:虚拟机将使用主机的网络接口,获得与主机相同网络的 IP 地址(可能是 DHCP 分配的)。
Vagrant.configure("2") do |config| config.vm.box = "ubuntu/focal64" config.vm.network "public_network" end
多虚拟机配置
你可以在 Vagrantfile
中定义多个虚拟机。如下配置了两个虚拟机:
Vagrant.configure("2") do |config|
config.vm.define "web" do |web|
web.vm.box = "ubuntu/focal64"
web.vm.network "private_network", ip: "192.168.33.10"
end
config.vm.define "db" do |db|
db.vm.box = "ubuntu/focal64"
db.vm.network "private_network", ip: "192.168.33.11"
end
end
- 启动所有虚拟机:
vagrant up
4. Vagrant 的插件
Vagrant 通过插件扩展功能,你可以安装不同的插件来增强 Vagrant 的功能。例如,安装 Vagrant 的 vbguest
插件来自动更新 VirtualBox 客户端增强功能:
vagrant plugin install vagrant-vbguest
5. 总结
- VirtualBox 是虚拟化软件,提供了在物理机上创建和运行虚拟机的能力。
- Vagrant 是一个虚拟机管理工具,主要与 VirtualBox 配合使用,它简化了虚拟机的创建、配置和管理。
- 通过 Vagrant,你可以快速设置多个虚拟机、共享文件夹、网络配置,甚至可以用代码版本控制虚拟机配置。
Vagrant 对于开发环境的快速构建特别有用,尤其适合团队协作和项目的开发、测试阶段。