刚拿到一台全新的Linux服务器时,面对空白的环境和陌生的命令行界面,很多开发者都会感到无从下手。作为一名长期与Linux服务器打交道的运维工程师,我整理了一套完整的服务器环境配置流程和常用指令手册,涵盖从基础配置到开发环境搭建的全过程。这些内容都是我多年实战经验的结晶,尤其适合刚接触Linux服务器的开发者快速上手。
在开始任何配置前,首先要了解你的服务器基本信息。执行以下命令查看系统架构:
bash复制uname -m
这个命令会返回系统的处理器架构,常见的有x86_64(64位Intel/AMD)、aarch64(ARM架构)等。知道架构很重要,因为后续软件安装包都需要选择对应架构的版本。
注意:如果返回的是i386或i686,说明是32位系统,这在现代服务器上已经很少见了,建议升级到64位系统以获得更好的性能和兼容性。
查看系统发行版和版本号:
bash复制cat /etc/os-release
这会显示详细的系统信息,包括发行版名称(如Ubuntu、CentOS)、版本号等。不同发行版的包管理工具和软件源配置方式可能不同,所以这一步很关键。
安全是服务器管理的首要考虑因素。使用SSH密钥对登录比密码登录更安全。首先检查是否已有SSH密钥:
bash复制ls ~/.ssh
如果没有密钥(通常是没有id_rsa或id_ed25519文件),使用以下命令生成ED25519算法的密钥(比传统的RSA更安全):
bash复制ssh-keygen -t ed25519 -C "your_email@example.com"
生成过程中会提示输入密钥保存路径和密码,直接回车使用默认值即可。生成后查看公钥内容:
bash复制cat ~/.ssh/id_ed25519.pub
输出的内容类似这样:
code复制ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... your_email@example.com
这就是你的公钥,需要将其添加到目标服务器的~/.ssh/authorized_keys文件中。
在目标服务器上执行以下命令准备SSH环境:
bash复制mkdir -p ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
将你的公钥粘贴到authorized_keys文件中,每个密钥占一行。保存后设置正确权限:
bash复制chmod 600 ~/.ssh/authorized_keys
重要提示:权限设置不正确会导致SSH密钥认证失败。700是目录权限,600是文件权限。
对于开发者来说,使用VSCode进行远程开发非常方便。配置步骤如下:
code复制Host myserver
HostName 1.2.3.4
User ubuntu
Port 22
IdentityFile ~/.ssh/id_ed25519
保存后就可以通过VSCode直接连接服务器进行开发了。
Python开发离不开虚拟环境管理。Miniconda是Anaconda的轻量版,推荐使用:
bash复制cd ~
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
安装过程中按照提示操作,通常一路回车即可。安装完成后需要重新加载bash配置:
bash复制source ~/.bashrc
验证安装:
bash复制conda --version
配置conda使用国内镜像加速:
bash复制conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
创建新环境:
bash复制conda create -n myenv python=3.9
conda activate myenv
Docker是现代应用部署的标准工具。不同Linux发行版安装方式略有不同:
Ubuntu/Debian:
bash复制sudo apt-get update
sudo apt-get install docker.io
sudo systemctl enable --now docker
CentOS/RHEL:
bash复制sudo yum install docker
sudo systemctl enable --now docker
验证安装:
bash复制sudo docker run hello-world
常用Docker命令:
bash复制# 查看运行中的容器
docker ps
# 查看所有容器
docker ps -a
# 启动/停止容器
docker start/stop container_name
# 进入容器shell
docker exec -it container_name /bin/bash
# 构建镜像
docker build -t image_name .
提示:普通用户执行docker命令需要加入docker用户组:
bash复制sudo usermod -aG docker $USER需要重新登录生效
对于Python开发者,PyCharm是强大的IDE。Linux版下载后解压即可:
bash复制tar -xzf pycharm-*.tar.gz
cd pycharm-*/bin
./pycharm.sh
第一次运行会进行初始化配置。建议创建桌面快捷方式:
bash复制ln -s /path/to/pycharm/bin/pycharm.sh ~/Desktop/pycharm
不同Linux发行版使用不同的包管理工具:
Ubuntu/Debian:
bash复制sudo apt update
sudo apt install package_name
CentOS/RHEL:
bash复制sudo yum update
sudo yum install package_name
手动安装软件包:
.deb包(Ubuntu/Debian):
bash复制sudo dpkg -i package.deb
sudo apt-get install -f # 修复依赖
.rpm包(CentOS/RHEL):
bash复制sudo rpm -ivh package.rpm
基础开发工具链:
bash复制# Ubuntu/Debian
sudo apt install build-essential git curl wget htop
# CentOS/RHEL
sudo yum groupinstall "Development Tools"
sudo yum install git curl wget htop
网络工具:
bash复制sudo apt install net-tools # ifconfig等
sudo apt install traceroute
| 快捷键 | 功能描述 |
|---|---|
| Ctrl + Shift + C | 复制选中文本 |
| Ctrl + Shift + V | 粘贴文本 |
| Ctrl + A | 移动到行首 |
| Ctrl + E | 移动到行尾 |
| Ctrl + U | 删除到行首 |
| Ctrl + K | 删除到行尾 |
| Ctrl + R | 搜索历史命令 |
| Ctrl + L | 清屏 |
Tmux是终端多路复用器,可以保持长时间运行的会话:
bash复制# 新建会话
tmux new -s session_name
# 分离会话(保持程序运行)
Ctrl+B 然后按 D
# 重新连接会话
tmux attach -t session_name
# 列出所有会话
tmux ls
# 关闭会话
tmux kill-session -t session_name
高级技巧:可以在~/.tmux.conf中添加配置自定义Tmux行为。例如设置更合理的前缀键、启用鼠标支持等。
bash复制# 查看文件内容
cat file.txt # 显示全部内容
less file.txt # 分页查看
head -n 10 file.txt # 查看前10行
tail -f file.txt # 实时查看日志
# 查找文件
find /path -name "*.py" # 按名称查找
locate filename # 使用数据库快速查找
# 文件权限管理
chmod 755 file.sh # 设置权限
chown user:group file # 修改所有者
# 压缩解压
tar -czvf archive.tar.gz /path # 创建压缩包
tar -xzvf archive.tar.gz # 解压
bash复制top # 实时系统监控
htop # 增强版top(需安装)
df -h # 磁盘空间
free -h # 内存使用
uptime # 系统运行时间
ps aux | grep python # 查找特定进程
问题1:Permission denied (publickey)
问题2:Connection refused
sudo systemctl status sshsudo ufw status (Ubuntu)问题:conda命令未找到
安装后需要重新加载shell配置:
bash复制source ~/.bashrc
或者手动添加conda到PATH:
bash复制export PATH=~/miniconda3/bin:$PATH
问题:创建环境慢
更换国内镜像源:
bash复制conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
问题:Got permission denied while trying to connect to the Docker daemon
将当前用户加入docker组:
bash复制sudo usermod -aG docker $USER
需要重新登录使更改生效。
bash复制sudo apt update && sudo apt upgrade -y # Ubuntu/Debian
sudo yum update -y # CentOS/RHEL
code复制PermitRootLogin no
然后重启SSH服务:
bash复制sudo systemctl restart sshd
使用SSH密钥认证:如前面所述,比密码认证更安全
配置防火墙:
Ubuntu使用ufw:
bash复制sudo ufw enable
sudo ufw allow 22/tcp # 允许SSH
sudo ufw allow 80/tcp # 允许HTTP
CentOS使用firewalld:
bash复制sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
在多年的Linux服务器管理实践中,我总结了以下几点经验:
文档记录:对每台服务器的配置变更做好记录。可以使用简单的文本文件或专门的配置管理工具。
版本控制:将重要的配置文件(如nginx配置、应用部署脚本)纳入版本控制(Git)。
监控报警:即使是小型项目,也建议设置基本的系统监控(如使用Prometheus+Grafana)。
自动化脚本:对于重复性任务,编写shell脚本自动化处理,可以节省大量时间。
测试环境:重要变更先在测试环境验证,再应用到生产环境。
资源监控:使用工具如Glances或Netdata实时监控系统资源,及时发现潜在问题。
最后,Linux服务器的管理是一个需要不断学习和实践的过程。遇到问题时,善用man命令查看手册页,或者使用--help参数查看命令帮助。大多数常见问题都能通过搜索引擎找到解决方案,但要注意甄别信息的时效性和适用性。