Panchant's Blog!

Home
Blog
  • Archive
  • Cats.
  • Tags
Mine
  • Friends
About
Search
0

Linux 远程服务器操作基础笔记

Published on 4/21/2026
Updated on 4/21/2026
教程
Estimated reading 8.375 minutes
3536 words

Linux 远程服务器操作基础笔记

这篇文章主要记录我在 Linux 远程服务器上常用的基础操作,偏向“够用、能查、能排错”的日常工作流,而不是系统化的 Linux 教程。

后续在使用过程中遇到新的坑、新的命令组合、新的部署经验,我会继续往这里补充,把它维护成一份长期可查的个人笔记。

一、连接服务器

远程服务器最常见的入口是 ssh。

bash
ssh username@server_ip
ssh username@server_ip

如果服务器不是默认的 22 端口:

bash
ssh -p 2222 username@server_ip
ssh -p 2222 username@server_ip

如果使用指定私钥:

bash
ssh -i ~/.ssh/id_ed25519 username@server_ip
ssh -i ~/.ssh/id_ed25519 username@server_ip

常见习惯:

  • 优先使用密钥登录,而不是长期依赖密码
  • 首次连接时确认指纹,避免连到错误主机
  • 给常用服务器写 ~/.ssh/config,减少重复输入

示例:

text
Host myserver
  HostName 1.2.3.4
  User ubuntu
  Port 22
  IdentityFile ~/.ssh/id_ed25519
Host myserver
  HostName 1.2.3.4
  User ubuntu
  Port 22
  IdentityFile ~/.ssh/id_ed25519

之后可以直接:

bash
ssh myserver
ssh myserver

二、文件传输

1. scp

适合简单传文件。

本地上传到服务器:

bash
scp local_file username@server_ip:/path/to/remote/
scp local_file username@server_ip:/path/to/remote/

服务器下载到本地:

bash
scp username@server_ip:/path/to/remote/file ./
scp username@server_ip:/path/to/remote/file ./

传目录时加 -r:

bash
scp -r ./local_dir username@server_ip:/path/to/remote/
scp -r ./local_dir username@server_ip:/path/to/remote/

2. rsync

适合同步目录,比 scp 更稳,也更适合反复更新。

bash
rsync -avz ./local_dir/ username@server_ip:/path/to/remote/
rsync -avz ./local_dir/ username@server_ip:/path/to/remote/

常用理解:

  • -a 保留文件属性
  • -v 显示过程
  • -z 传输时压缩

如果网络不稳定或者目录较大,我通常优先考虑 rsync。

三、最常用的目录与文件操作

1. 看自己在哪

bash
pwd
ls
ls -lah
pwd
ls
ls -lah
  • pwd:当前路径
  • ls -lah:更适合看隐藏文件、权限、文件大小

2. 切换目录

bash
cd /path/to/dir
cd ~
cd ..
cd /path/to/dir
cd ~
cd ..

3. 创建、复制、移动、删除

bash
mkdir new_dir
mkdir -p a/b/c
cp file1 file2
cp -r dir1 dir2
mv old_name new_name
rm file
rm -r dir
mkdir new_dir
mkdir -p a/b/c
cp file1 file2
cp -r dir1 dir2
mv old_name new_name
rm file
rm -r dir

需要特别谨慎的命令:

bash
rm -rf some_dir
rm -rf some_dir

执行 rm -rf 前最好先 pwd、再 ls,确认自己位置没错。

4. 查看文件内容

bash
cat file.txt
less file.txt
head -n 20 file.txt
tail -n 20 file.txt
tail -f app.log
cat file.txt
less file.txt
head -n 20 file.txt
tail -n 20 file.txt
tail -f app.log
  • less 适合看长文件
  • tail -f 适合实时追踪日志

5. 查找内容

bash
grep "keyword" file.txt
grep -r "keyword" .
find . -name "*.log"
grep "keyword" file.txt
grep -r "keyword" .
find . -name "*.log"

如果系统装了 rg,一般比 grep 更快:

bash
rg "keyword"
rg "keyword"

四、权限与身份

1. 查看权限

bash
ls -l
ls -l

常见权限位需要大致看懂,例如:

  • r:读
  • w:写
  • x:执行

2. 修改权限

bash
chmod +x script.sh
chmod 644 file.txt
chmod 755 script.sh
chmod +x script.sh
chmod 644 file.txt
chmod 755 script.sh

3. 修改所有者

bash
chown user:user file.txt
chown -R user:user dir/
chown user:user file.txt
chown -R user:user dir/

4. 临时提权

bash
sudo command
sudo command

原则上:

  • 能不用 sudo 就不用
  • 不要长期直接用 root 做日常开发
  • 改系统配置前先确认影响范围

五、进程管理

1. 看进程

bash
ps aux
ps aux | grep python
top
ps aux
ps aux | grep python
top

如果系统有 htop,交互体验更好。

2. 杀进程

bash
kill PID
kill -9 PID
kill PID
kill -9 PID

一般先用普通 kill,只有进程确实不响应时再考虑 kill -9。

3. 后台运行任务

bash
nohup python app.py > app.log 2>&1 &
nohup python app.py > app.log 2>&1 &

解释:

  • nohup:退出终端后继续运行
  • > app.log:标准输出写入日志
  • 2>&1:错误输出也写入同一日志
  • &:放到后台

查看后台任务:

bash
jobs
jobs

不过更稳定的长期方案通常是 tmux 或 systemd,而不是只靠 nohup。

六、tmux 很重要

远程服务器上跑长任务时,tmux 非常有用。断网、关终端后,任务不会直接消失。

创建会话:

bash
tmux new -s train
tmux new -s train

分离会话:

bash
Ctrl+b d
Ctrl+b d

重新连接:

bash
tmux attach -t train
tmux attach -t train

查看已有会话:

bash
tmux ls
tmux ls

我的理解是:只要任务不是几秒钟结束,最好都放进 tmux。

七、磁盘、内存与系统状态

1. 看磁盘空间

bash
df -h
du -sh .
du -sh /path/to/dir
df -h
du -sh .
du -sh /path/to/dir
  • df -h:看整个磁盘分区使用情况
  • du -sh:看某个目录占了多大空间

2. 看内存

bash
free -h
free -h

3. 看机器基本信息

bash
uname -a
hostname
whoami
uname -a
hostname
whoami

八、网络相关命令

1. 测试连通性

bash
ping 8.8.8.8
curl https://example.com
wget https://example.com/file
ping 8.8.8.8
curl https://example.com
wget https://example.com/file

2. 看端口占用

bash
ss -tulpn
lsof -i :8000
ss -tulpn
lsof -i :8000

这类命令在排查“服务起了但访问不到”时很有用。

3. 检查防火墙或监听地址

常见问题不一定是程序没启动,也可能是:

  • 只监听了 127.0.0.1
  • 服务器防火墙没放行端口
  • 云平台安全组没开端口

所以看到“连接失败”时,不要只盯着代码本身。

九、服务管理与日志

如果服务由 systemd 管理,常见命令有:

bash
sudo systemctl status nginx
sudo systemctl restart nginx
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl enable nginx
sudo systemctl status nginx
sudo systemctl restart nginx
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl enable nginx

查看日志:

bash
journalctl -u nginx
journalctl -u nginx -n 100
journalctl -u nginx -f
journalctl -u nginx
journalctl -u nginx -n 100
journalctl -u nginx -f

我的习惯是:

  • 先看服务状态
  • 再看最近日志
  • 最后再去怀疑代码逻辑

十、开发环境相关

1. Git

bash
git status
git pull
git branch
git log --oneline -n 5
git status
git pull
git branch
git log --oneline -n 5

在服务器直接改代码时要格外小心,尤其是生产环境。

2. Python 虚拟环境

bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

退出虚拟环境:

bash
deactivate
deactivate

3. 环境变量

临时设置:

bash
export API_KEY=xxx
export API_KEY=xxx

写入 ~/.bashrc 或 ~/.zshrc 后可长期生效,但涉及密钥时要注意权限与泄露风险。

十一、常见排错思路

遇到问题时,我更希望自己按固定顺序排,而不是上来就乱试。

1. 先确认自己在哪台机器上

bash
hostname
pwd
whoami
hostname
pwd
whoami

有时候最离谱的问题不是命令错了,而是机器登错了。

2. 再确认服务是否真的在跑

bash
ps aux | grep service_name
ss -tulpn
ps aux | grep service_name
ss -tulpn

3. 再看日志

bash
tail -f app.log
journalctl -u service_name -f
tail -f app.log
journalctl -u service_name -f

4. 再看资源是否打满

bash
top
free -h
df -h
top
free -h
df -h

5. 最后再考虑权限、网络和配置

重点检查:

  • 配置文件路径是否正确
  • 端口是否开放
  • 文件权限是否足够
  • 环境变量是否生效
  • 依赖是否安装完整

十二、安全习惯

这些不是高深技巧,但非常有必要:

  • 优先使用 SSH 密钥登录
  • 不随意开放所有公网端口
  • 不把密码、私钥、Token 明文放进仓库
  • 重要操作前先备份配置文件
  • 不直接在生产环境做未经验证的实验
  • 使用 history、日志和脚本记录关键操作

我觉得“少犯低级错误”本身就是服务器使用能力的一部分。

十三、我会持续补充的内容

后续准备继续加入这些部分:

  • vim / nano 的基础编辑操作
  • conda、CUDA、PyTorch 远程环境配置
  • Nginx 反向代理与 HTTPS
  • Docker 基础使用
  • 定时任务 crontab
  • Jupyter Notebook 远程端口转发

结语

对于远程服务器操作,我目前的目标不是背下所有命令,而是建立一套稳定的工作习惯:

  • 先确认环境
  • 再执行命令
  • 先看日志
  • 谨慎改权限
  • 长任务放进 tmux

只要这几个基础动作逐渐熟练,很多服务器问题都不会再显得特别混乱。

Related Post
Comments
author-avatar
Panchant
A student, and a runner.
29
Arts.
12
Cats.
58
Tags
Customed
This is the custom content section
Anything can be placed here
TOC
  1. Linux 远程服务器操作基础笔记
  2. 一、连接服务器
  3. 二、文件传输
  4. 1. scp
  5. 2. rsync
  6. 三、最常用的目录与文件操作
  7. 1. 看自己在哪
  8. 2. 切换目录
  9. 3. 创建、复制、移动、删除
  10. 4. 查看文件内容
  11. 5. 查找内容
  12. 四、权限与身份
  13. 1. 查看权限
  14. 2. 修改权限
  15. 3. 修改所有者
  16. 4. 临时提权
  17. 五、进程管理
  18. 1. 看进程
  19. 2. 杀进程
  20. 3. 后台运行任务
  21. 六、tmux 很重要
  22. 七、磁盘、内存与系统状态
  23. 1. 看磁盘空间
  24. 2. 看内存
  25. 3. 看机器基本信息
  26. 八、网络相关命令
  27. 1. 测试连通性
  28. 2. 看端口占用
  29. 3. 检查防火墙或监听地址
  30. 九、服务管理与日志
  31. 十、开发环境相关
  32. 1. Git
  33. 2. Python 虚拟环境
  34. 3. 环境变量
  35. 十一、常见排错思路
  36. 1. 先确认自己在哪台机器上
  37. 2. 再确认服务是否真的在跑
  38. 3. 再看日志
  39. 4. 再看资源是否打满
  40. 5. 最后再考虑权限、网络和配置
  41. 十二、安全习惯
  42. 十三、我会持续补充的内容
  43. 结语
© 2025-2026 By Panchant
由 Astro v2.8.3 构建 | 主题 HsuBlog
Build with by Panchant
Search
Extended SearchHelloWorld
You can use a unix-like format: Extended Search