关于部分linux常用指令的整理

一、系统与文件基础指令

指令说明常用示例
ls列出目录内容ls -la (显示隐藏文件和详情)
cd切换目录cd ~ (回到家目录)
pwd显示当前路径pwd
cp复制文件/目录cp -r dir1 dir2 (递归复制目录)
mv移动或重命名mv old.txt new.txt
rm删除文件/目录rm -rf dir/ (慎用,强制递归删除)
mkdir创建目录mkdir -p path/to/dir (递归创建)
touch创建空文件或更新时间戳touch file.txt
cat查看文件内容cat file.txt
less / more分页查看less large.log
head / tail查看开头/结尾tail -f app.log (实时追踪日志)
grep文本搜索grep -r "error" /var/log/
find查找文件find / -name "*.conf"
chmod修改权限chmod 755 script.sh
chown修改所有者chown user:group file
df磁盘空间df -h (人类可读格式)
du目录大小du -sh /var/log
ps查看进程ps aux
top / htop动态进程监控htop (需安装)
kill / killall终止进程kill -9 PID
tar打包压缩tar -czvf backup.tar.gz dir/
wget / curl下载文件curl -O http://example.com/file
systemctl服务管理systemctl restart nginx
journalctl查看系统日志journalctl -u nginx -f

二、Screen — 终端会话管理

Screen 可以让你在 SSH 断开后保持程序继续运行,或在单个终端中管理多个会话窗口。

基础操作

指令说明
screen -S name创建名为 name 的新会话
screen -ls列出所有会话
screen -r name恢复(detached)的会话
screen -d name远程分离(detach)某个会话
screen -d -r name强制分离并恢复会话
screen -X -S name quit强制关闭某个会话

会话内快捷键(先按 Ctrl+A,再按以下键)

快捷键说明
Ctrl+A 然后 D分离当前会话(后台运行,不中断程序)
Ctrl+A 然后 C在当前会话中创建新窗口
Ctrl+A 然后 N切换到下一个窗口
Ctrl+A 然后 P切换到上一个窗口
Ctrl+A 然后 K关闭当前窗口(需确认)
Ctrl+A 然后 ?显示所有快捷键帮助
Ctrl+A 然后 [进入复制/滚动模式(按 Esc 退出)

实用示例

# 1. 创建一个后台运行任务
screen -S myjob
python train.py        # 在 screen 中运行长时间任务
Ctrl+A, D              # 分离会话,任务在后台继续运行

# 2. 稍后恢复查看进度
screen -r myjob

# 3. 开机自动启动 screen 会话(可写入 crontab @reboot)
@reboot screen -dmS server bash -c 'cd /app && ./start.sh'

三、Rsync — 高效文件同步

Rsync 是 Linux 下最强大的文件同步工具,支持增量传输、压缩、排除规则等。

基础语法

rsync [选项] 源 目标

常用选项

选项说明
-a归档模式(保留权限、时间戳、符号链接等,相当于 -rlptgoD
-v详细输出
-z传输时压缩
-P显示进度,且支持断点续传(等于 --partial --progress
--delete删除目标端有但源端没有的文件(保持严格一致)
--exclude排除特定文件/目录
-e指定远程 shell(如 ssh)
-n / --dry-run模拟运行,不实际执行,先查看会做什么
--progress显示传输进度

本地同步示例

# 基本同步(源目录内容复制到目标)
rsync -av /source/dir/ /backup/dir/

# 注意:末尾的斜杠很重要!
# /source/dir/  → 同步目录下的内容到目标
# /source/dir   → 同步整个目录到目标下(会创建 dir 子目录)

# 增量备份,删除目标端多余文件(镜像同步)
rsync -av --delete /source/dir/ /backup/dir/

# 排除特定文件
rsync -av --exclude='*.log' --exclude='temp/' /source/ /backup/

# 从文件读取排除规则
rsync -av --exclude-from='exclude.txt' /source/ /backup/

远程同步示例

# 推:本地 → 远程
rsync -avz -e ssh /local/path/ user@remote_host:/remote/path/

# 拉:远程 → 本地
rsync -avz -e ssh user@remote_host:/remote/path/ /local/path/

# 使用非默认 SSH 端口
rsync -avz -e "ssh -p 2222" /local/ user@host:/remote/

# 显示进度 + 断点续传(大文件传输推荐)
rsync -avzP /large-file.iso user@host:/remote/

重要提示

  • 先用 --dry-run 测试rsync -avn --delete /src/ /dest/
  • --delete 很危险,确保方向正确,否则会误删数据
  • 适合定期备份,可配合 cron 使用

四、SSH 密钥设置

SSH 密钥登录比密码更安全、更方便,免去每次输入密码的麻烦。

1. 生成密钥对

# 生成 ED25519 密钥(推荐,更安全、更短)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 或生成 RSA 密钥(兼容旧系统)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

执行后会提示:

  • 保存路径:默认 ~/.ssh/id_ed25519(直接回车)
  • 密码短语(passphrase):建议设置(也可留空实现无密码登录)

2. 将公钥复制到远程服务器

# 方法一:使用 ssh-copy-id(推荐,自动配置)
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote_host

# 方法二:手动复制(如果 ssh-copy-id 不可用)
cat ~/.ssh/id_ed25519.pub | ssh user@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

3. 配置 SSH 客户端(可选但推荐)

编辑 ~/.ssh/config

Host myserver
    HostName 192.168.1.100
    User admin
    Port 2222
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 60
    ServerAliveCountMax 3

之后可直接:ssh myserver

4. 服务器端安全加固(/etc/ssh/sshd_config)

# 编辑配置文件
sudo nano /etc/ssh/sshd_config

# 修改以下配置
PermitRootLogin no          # 禁止 root 登录
PasswordAuthentication no   # 禁用密码登录(仅密钥)
PubkeyAuthentication yes    # 启用密钥认证

# 重启 SSH 服务
sudo systemctl restart sshd   # Debian/Ubuntu
sudo systemctl restart sshd   # CentOS/RHEL (或 ssh)

⚠️ 警告:禁用密码登录前,务必确认密钥能正常登录,否则会被锁在服务器外!


五、SSH 传输文件

方式适用场景指令
scp简单单文件/目录传输scp file.txt user@host:/path/
rsync大文件、增量同步、断点续传rsync -avzP file user@host:/path/
sftp交互式文件管理sftp user@host

SCP 详细用法

# 本地 → 远程
scp file.txt user@remote:/home/user/
scp -r /local/dir/ user@remote:/remote/dir/      # 递归复制目录
scp -P 2222 file.txt user@remote:/path/          # 指定端口(注意是大写 P)

# 远程 → 本地
scp user@remote:/remote/file.txt /local/path/
scp -r user@remote:/remote/dir/ /local/path/

# 远程 → 远程(通过本地中转)
scp user1@host1:/file.txt user2@host2:/path/

SFTP 交互式用法

sftp user@remote_host

# 进入后常用命令:
sftp> ls                    # 列出远程目录
sftp> lls                   # 列出本地目录
sftp> cd /remote/path       # 切换远程目录
sftp> lcd /local/path       # 切换本地目录
sftp> get remote.txt        # 下载文件
sftp> get -r remote_dir/    # 下载目录
sftp> put local.txt         # 上传文件
sftp> put -r local_dir/     # 上传目录
sftp> bye / exit / quit     # 退出

六、快速对照表

需求推荐工具原因
后台运行程序防断连screen / tmux会话持久化
大文件/目录同步rsync增量、压缩、断点续传
简单单文件复制scp语法简单直接
交互式文件管理sftp类似 FTP 的操作体验
免密码登录服务器SSH 密钥安全且自动化友好

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇