在Linux系统中,部署命令是系统管理员和开发人员日常工作中不可或缺的工具,它们涵盖了从软件安装、服务管理到系统配置的方方面面,熟练掌握这些命令,能够显著提高工作效率,确保系统稳定运行,以下将从软件安装、服务管理、文件传输、进程管理、系统监控及安全配置六个维度,详细介绍常用的Linux部署命令及其使用场景。
软件安装与管理
Linux系统的软件安装方式因发行版而异,主要分为基于包管理器的安装和源码编译安装两种。
基于包管理器的安装
-
Debian/Ubuntu系统:使用
apt(Advanced Package Tool)系列命令。- 更新软件源列表:
sudo apt update - 升级已安装的包:
sudo apt upgrade - 安装软件包:
sudo apt install package_name(如sudo apt install nginx) - 卸载软件包:
sudo apt remove package_name - 搜索软件包:
apt search keyword
- 更新软件源列表:
-
CentOS/RHEL系统:使用
yum(Yellowdog Updater Modified)或dnf(Dandified Yum)命令(CentOS 7及以上版本推荐使用dnf)。- 更新软件源:
sudo yum update或sudo dnf update - 安装软件包:
sudo yum install package_name或sudo dnf install package_name - 卸载软件包:
sudo yum remove package_name - 查询软件包信息:
yum info package_name
- 更新软件源:
源码编译安装
当需要自定义软件功能或官方未提供预编译包时,可通过源码编译安装,步骤如下:
- 下载源码包:
wget https://example.com/source.tar.gz - 解压:
tar -zxvf source.tar.gz - 进入目录:
cd source_directory - 配置编译选项:
./configure --prefix=/usr/local/custom - 编译:
make - 安装:
sudo make install
服务管理
在Linux服务器中,服务(如Web服务器、数据库等)的启动、停止和重启是核心操作,不同系统版本的服务管理工具略有差异。
Systemctl(现代Linux发行版主流工具)
- 启动服务:
sudo systemctl start service_name(如sudo systemctl start nginx) - 停止服务:
sudo systemctl stop service_name - 重启服务:
sudo systemctl restart service_name - 设置开机自启:
sudo systemctl enable service_name - 禁用开机自启:
sudo systemctl disable service_name - 查看服务状态:
systemctl status service_name
Service(传统SysVinit工具)
对于较旧的系统(如CentOS 6),可使用service命令:
- 启动服务:
sudo service httpd start - 停止服务:
sudo service httpd stop - 重启服务:
sudo service httpd restart
文件传输与同步
在部署过程中,常需要将本地文件上传至服务器或同步远程目录,以下工具是常用选择。
SCP(Secure Copy)
基于SSH协议的安全文件传输命令,适合单次文件传输:
- 上传本地文件到远程服务器:
scp /local/path/file.txt user@remote_ip:/remote/path/ - 下载远程文件到本地:
scp user@remote_ip:/remote/path/file.txt /local/path/ - 传输整个目录:
scp -r /local/directory user@remote_ip:/remote/path/
Rsync(Remote Sync)
支持增量同步和压缩传输,适合大文件或目录的定期同步:
- 同步本地目录到远程服务器:
rsync -avz /local/directory/ user@remote_ip:/remote/directory/ - 同步远程目录到本地:
rsync -avz user@remote_ip:/remote/directory/ /local/directory/ - 参数说明:
-a(归档模式,保留权限)、-v(详细输出)、-z(压缩传输)
SFTP(SSH File Transfer Protocol)
交互式文件传输工具,支持类似FTP的命令操作:
- 连接远程服务器:
sftp user@remote_ip - 上传文件:
put local_file.txt - 下载文件:
get remote_file.txt - 退出:
exit
进程管理
在部署应用时,需要查看、终止或管理相关进程,确保服务正常运行。
Ps(Process Status)
查看当前运行的进程:
- 查看所有进程:
ps aux - 查看特定关键词的进程:
ps aux | grep nginx
Kill与Pkill
终止进程:
- 通过进程ID(PID)终止:
kill pid(如kill 1234) - 强制终止:
kill -9 pid - 通过进程名终止:
pkill nginx
Nohup
在后台运行进程,并忽略挂断信号,适合长时间运行的任务:
- 示例:
nohup python app.py > output.log 2>&1 &nohup:忽略挂断信号>:标准输出重定向到文件2>&1:错误输出重定向到标准输出&:后台运行
系统监控
实时监控系统资源使用情况,是排查性能瓶颈的关键。
Top
动态查看进程资源占用(CPU、内存):
- 按CPU使用率排序:
shift + P - 按内存使用率排序:
shift + M - 退出:
q
Htop
top的增强版,支持彩色显示、鼠标操作等,需提前安装:
- 安装(Ubuntu):
sudo apt install htop - 安装(CentOS):
sudo yum install htop
Free
查看内存使用情况:
- 显示详细信息:
free -h(-h以人类可读格式显示)
df
查看磁盘空间使用情况:
- 显示详细信息:
df -h
安全配置
部署过程中,需确保系统和服务安全,避免潜在漏洞。
防火墙配置
-
UFW(Ubuntu默认防火墙):
- 启用防火墙:
sudo ufw enable - 允许特定端口:
sudo ufw allow 80/tcp - 查看规则:
sudo ufw status
- 启用防火墙:
-
Firewalld(CentOS 7+默认防火墙):
- 启动防火墙:
sudo systemctl start firewalld - 允许端口:
sudo firewall-cmd --permanent --add-port=80/tcp - 重新加载规则:
sudo firewall-cmd --reload
- 启动防火墙:
SSH安全加固
- 修改默认SSH端口:编辑
/etc/ssh/sshd_config,修改Port 22为其他端口(如Port 2222),重启SSH服务:sudo systemctl restart sshd - 禁用root登录:编辑
sshd_config,设置PermitRootLogin no - 使用密钥认证:生成密钥对(
ssh-keygen),将公钥(~/.ssh/id_rsa.pub)上传至服务器~/.ssh/authorized_keys
定期更新系统
及时修复安全漏洞,定期更新系统软件包:
- Ubuntu:
sudo apt update && sudo apt upgrade - CentOS:
sudo yum update或sudo dnf update
掌握上述Linux部署命令,能够高效完成软件安装、服务管理、文件传输等任务,同时通过系统监控和安全配置确保服务器稳定运行,在实际操作中,建议结合具体场景灵活运用,并注意命令的参数细节,以避免误操作导致系统问题。















