lesson47:Linux常用软件使用指南:远程连接、远程拷贝、Vim与Nginx
目录
一、远程连接工具:SSH的深度应用
1. SSH协议与基础配置
2. 密钥登录与安全加固
3. 高级功能:端口转发与跳板机
二、远程拷贝工具:SCP与Rsync实战
1. SCP:基于SSH的文件传输
2. Rsync:高效增量同步工具
三、Vim文本编辑器:从入门到精通
1. Vim模式与基础操作
2. 高级配置与插件
四、Nginx服务器:高性能Web服务配置
1. Nginx安装与基础架构
2. 虚拟主机与反向代理配置
3. 性能优化与安全加固
五、综合实战案例
一、远程连接工具:SSH的深度应用
1. SSH协议与基础配置
SSH(Secure Shell)是Linux系统远程管理的核心工具,通过加密通道实现安全登录。默认端口为22,常见服务端软件为OpenSSH
,客户端可使用ssh
命令或图形化工具(如Xshell、Putty)。
- 安装服务端:
# Ubuntu/Debian sudo apt install openssh-server # CentOS/RHEL sudo yum install openssh-server sudo systemctl enable --now sshd # 启动并设置开机自启
- 基础登录命令:
ssh 用户名@IP地址 # 如:ssh root@192.168.1.100 ssh -p 端口号 用户名@IP # 非默认端口登录,如:ssh -p 2222 user@example.com
2. 密钥登录与安全加固
- 生成密钥对:
ssh-keygen -t ed25519 # 推荐使用ed25519算法,也可选择rsa # 生成后公钥位于~/.ssh/id_ed25519.pub,私钥位于~/.ssh/id_ed25519
- 免密登录配置:
将公钥复制到目标服务器:ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@IP # 自动添加到~/.ssh/authorized_keys
- 安全优化:
编辑/etc/ssh/sshd_config
禁用密码登录:
重启服务生效:PasswordAuthentication no # 关闭密码登录 PermitRootLogin no # 禁止root直接登录 Port 2222 # 修改默认端口
sudo systemctl restart sshd
。
3. 高级功能:端口转发与跳板机
- 本地端口转发(访问远程服务):
ssh -L 本地端口:目标IP:目标端口 跳板机用户@跳板机IP # 示例:通过跳板机访问内网MySQL ssh -L 3306:192.168.1.5:3306 user@jump.server.com
- 远程端口转发(暴露本地服务到公网):
ssh -R 远程端口:本地IP:本地端口 公网服务器用户@公网IP
二、远程拷贝工具:SCP与Rsync实战
1. SCP:基于SSH的文件传输
SCP(Secure Copy)通过SSH协议传输文件,语法简洁,适合小文件或单文件传输。
- 本地到远程:
scp 本地文件路径 远程用户@IP:远程路径 scp -r 本地目录 远程用户@IP:远程目录 # 递归传输目录
- 远程到本地:
scp 远程用户@IP:远程文件路径 本地路径
- 指定端口与限速:
scp -P 2222 -l 1024 file.txt user@IP:/tmp # -l 限制带宽(KB/s)
2. Rsync:高效增量同步工具
Rsync支持增量传输和断点续传,适合大文件或目录同步,常用参数:
-a
:归档模式(递归+保留权限)-v
:显示详细过程-z
:压缩传输--delete
:删除目标端多余文件(需谨慎使用)
示例:
# 本地目录同步到远程
rsync -avz /local/dir/ user@IP:/remote/dir/
# 远程目录同步到本地(排除log文件)
rsync -avz --exclude "*.log" user@IP:/remote/dir/ /local/dir/
# 后台同步大文件(配合--progress显示进度)
nohup rsync -avz --progress largefile.iso user@IP:/data/ &
三、Vim文本编辑器:从入门到精通
1. Vim模式与基础操作
Vim有三种核心模式:
- 普通模式(默认):用于导航和命令输入,按
Esc
进入 - 插入模式:编辑文本,按
i
(前插)、a
(后插)、o
(换行插)进入 - 命令模式:执行保存、退出等操作,按
:
进入
常用命令:
操作 | 命令示例 | 说明 |
---|---|---|
保存退出 | :wq 或 ZZ | 保存并退出 |
强制退出不保存 | :q! | 放弃修改退出 |
查找文本 | /keyword + n (下一个) | 从当前位置向下搜索 |
替换文本 | :%s/old/new/g | 全局替换old为new |
复制粘贴 | yy (复制行)+ p (粘贴) | 单行复制,3yy 复制3行 |
2. 高级配置与插件
- 自定义配置文件(
~/.vimrc
):set number " 显示行号 set tabstop=4 " Tab键宽度 set shiftwidth=4 " 缩进宽度 set autoindent " 自动缩进 set cursorline " 高亮当前行
- 必装插件推荐:
- NERDTree:文件浏览器,通过
vim-plug
安装:Plug 'preservim/nerdtree' " ~/.vimrc中添加 :PlugInstall " 命令模式执行安装
- YouCompleteMe:代码补全工具,需编译安装。
- NERDTree:文件浏览器,通过
四、Nginx服务器:高性能Web服务配置
1. Nginx安装与基础架构
Nginx以轻量、高并发著称,采用事件驱动模型,支持反向代理、负载均衡等功能。
- 安装方式:
# Ubuntu/Debian sudo apt install nginx # 源码编译(自定义模块) wget http://nginx.org/download/nginx-1.25.2.tar.gz tar -zxvf nginx-1.25.2.tar.gz cd nginx-1.25.2 ./configure --prefix=/usr/local/nginx --with-http_ssl_module make && sudo make install
- 核心目录:
- 配置文件:
/etc/nginx/nginx.conf
(主配置)、/etc/nginx/conf.d/
(虚拟主机配置) - 网站根目录:默认
/var/www/html
- 配置文件:
2. 虚拟主机与反向代理配置
- 基于域名的虚拟主机:
在/etc/nginx/conf.d/
下创建example.conf
:server { listen 80; server_name example.com www.example.com; # 绑定域名root /var/www/example; # 网站根目录 index index.html index.php; # 默认主页location / { try_files $uri $uri/ =404; # 尝试访问文件或目录,不存在返回404 } }
- 反向代理配置(代理后端Node.js服务):
server { listen 80; server_name api.example.com;location / { proxy_pass http://127.0.0.1:3000; # 代理到本地3000端口 proxy_set_header Host $host; # 传递请求头 proxy_set_header X-Real-IP $remote_addr; } }
3. 性能优化与安全加固
- 启用Gzip压缩:
在nginx.conf
的http
块添加:gzip on; gzip_types text/plain text/css application/json application/javascript; gzip_comp_level 5; # 压缩级别1-9(越高越耗CPU)
- 限制请求速率:
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; # 限制单IP每秒10请求 server { location / { limit_req zone=one burst=20 nodelay; # 突发允许20个请求 } }
五、综合实战案例
场景:通过SSH远程管理服务器,使用Rsync同步网站代码,用Vim修改Nginx配置实现HTTPS部署。
- 远程登录服务器:
ssh -i ~/.ssh/server_key.pem admin@server-ip
- 同步本地代码到服务器:
rsync -avz --delete /local/web/ admin@server-ip:/var/www/website/
- 修改Nginx配置启用HTTPS(需提前申请SSL证书):
配置内容:vim /etc/nginx/conf.d/ssl.conf
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/ssl/certs/example.crt; ssl_certificate_key /etc/ssl/private/example.key; # 其他SSL参数(如协议、加密套件) }
- 验证配置并重启Nginx:
nginx -t # 检查配置语法 sudo systemctl restart nginx
结语:本文涵盖Linux远程管理、文件操作、文本编辑与Web服务的核心技能,掌握这些工具能显著提升工作效率。实际应用中需结合具体场景灵活调整参数,同时注重安全性(如最小权限原则、定期备份)。