1. 为什么需要掌握Linux基础命令?
刚接触云服务器的朋友经常会遇到这样的困惑:明明租用了配置不错的云主机,登录后却对着黑乎乎的终端界面手足无措。上周就有位做跨境电商的客户找我,说他花了三千多租的8核16G服务器,连个文件都传不上去——因为他只会用Windows的图形界面操作。
Linux命令是云服务器的"普通话"。根据2023年CloudLinux的调查报告,全球92.3%的云服务商默认提供Linux系统镜像,而熟练使用命令行操作的管理员,其故障排查效率比纯图形界面用户高出47%。我自己管理着二十多台不同厂商的云服务器,从阿里云到AWS,从2核4G的测试机到64核的数据库集群,所有日常运维都靠这些基础命令完成。
2. 文件操作命令实战
2.1 目录导航与查看
第一次登录云服务器时,你就像进入了一个没有路标的迷宫。pwd命令能告诉你当前所在位置,比如输入后显示/home/ubuntu,表示你正在ubuntu用户的主目录。
ls命令是使用频率最高的命令之一。我习惯用ls -alh组合:
-a显示隐藏文件(Linux中以点开头的文件)-l以列表形式展示详细信息-h将文件大小转换为易读格式(如KB/MB)
bash复制ubuntu@cloud-server:~$ ls -alh
total 72K
drwxr-xr-x 7 ubuntu ubuntu 4.0K Jun 15 10:23 .
drwxr-xr-x 3 root root 4.0K May 28 14:12 ..
-rw------- 1 ubuntu ubuntu 12K Jun 15 11:42 .bash_history
-rw-r--r-- 1 ubuntu ubuntu 220 May 28 14:12 .bash_logout
2.2 文件操作四件套
-
复制文件:
cp source.txt backup/把当前目录下的source.txt复制到backup目录- 重要参数:
-r递归复制目录,-i覆盖前提示
- 重要参数:
-
移动/重命名:
mv oldname.txt newname.txt- 移动整个目录:
mv /tmp/data /home/ubuntu/
- 移动整个目录:
-
删除文件:
rm -i dangerous_file- 生产环境务必加上
-i交互确认 - 删除目录需要
-r参数
- 生产环境务必加上
-
创建文件:
touch newfile创建空文件- 更实用的方法是直接用
vim newfile创建并编辑
- 更实用的方法是直接用
警告:rm -rf / 是著名的"删库跑路"命令,会强制删除根目录所有文件。我团队曾经有实习生误操作导致整个测试环境瘫痪,现在我们在所有服务器上都配置了
alias rm='rm -i'。
3. 系统状态监控命令
3.1 资源查看三剑客
当网站突然变慢时,这三个命令能快速定位问题:
-
top- 动态进程监控- 按
1显示所有CPU核心详情 - 按
M按内存排序,P按CPU排序 - 退出按
q
- 按
-
free -h- 内存使用情况bash复制
total used free Mem: 3.7G 1.2G 2.3G Swap: 2.0G 0B 2.0G -
df -h- 磁盘空间检查- 重点关注
/根目录使用率 - 超过80%就需要清理或扩容
- 重点关注
3.2 网络诊断工具
有一次客户反馈API响应超时,我用这些命令10分钟就找到了问题:
ping baidu.com测试基础连通性telnet 目标IP 端口检查特定端口是否开放netstat -tulnp查看本机监听的所有端口traceroute baidu.com追踪网络路由路径
4. 文本处理技巧
4.1 查看文件内容
-
cat适合小文件:bash复制cat /etc/hosts -
less查看大文件(支持搜索):bash复制
less /var/log/nginx/access.log在less中:
/关键词向前搜索?关键词向后搜索q退出
4.2 日志分析实战
分析Nginx访问日志TOP 10 IP:
bash复制cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -10
这个管道命令组合:
awk '{print $1}'提取第一列(IP地址)sort排序uniq -c统计重复次数sort -nr按数字倒序head -10取前10条
5. 权限管理精要
5.1 用户与组管理
创建新用户并加入sudo组:
bash复制sudo adduser newuser
sudo usermod -aG sudo newuser
检查用户权限:
bash复制id username
5.2 文件权限详解
chmod修改权限时,我推荐数字表示法:
- 4=读(r)
- 2=写(w)
- 1=执行(x)
例如:
bash复制chmod 755 script.sh
表示:
- 所有者:rwx (7=4+2+1)
- 所属组:r-x (5=4+1)
- 其他用户:r-x (5=4+1)
6. 实用技巧合集
6.1 后台运行程序
让进程在退出SSH后继续运行:
bash复制nohup python3 app.py > output.log 2>&1 &
解释:
nohup忽略挂断信号> output.log重定向标准输出2>&1将错误输出合并到标准输出&放入后台
6.2 定时任务配置
每天凌晨3点备份数据库:
bash复制crontab -e
添加:
bash复制0 3 * * * /usr/bin/mysqldump -u root -p密码 数据库名 > /backups/db_$(date +\%Y\%m\%d).sql
6.3 命令历史优化
在~/.bashrc中添加:
bash复制export HISTSIZE=10000
export HISTFILESIZE=20000
export HISTTIMEFORMAT="%F %T "
然后执行source ~/.bashrc,之后所有命令都会记录时间戳。
7. 安全加固建议
-
禁用root远程登录:
bash复制sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config sudo systemctl restart sshd -
修改SSH默认端口:
bash复制sudo vim /etc/ssh/sshd_config找到
#Port 22改为Port 22222,然后重启服务 -
配置防火墙基础规则:
bash复制sudo ufw allow 22222/tcp sudo ufw enable
8. 问题排查指南
8.1 服务启动失败
检查服务状态:
bash复制systemctl status nginx
查看启动日志:
bash复制journalctl -u nginx --no-pager -n 50
8.2 磁盘空间异常
查找大文件:
bash复制sudo du -h --max-depth=1 / | sort -h
清理旧日志:
bash复制sudo journalctl --vacuum-time=7d
9. 效率提升工具
9.1 终端复用器tmux
安装:
bash复制sudo apt install tmux
基本用法:
tmux new -s session_name新建会话Ctrl+b d分离会话tmux attach -t session_name重新接入
9.2 文件传输技巧
从本地上传:
bash复制scp -P 22222 local_file user@server_ip:/remote/path
下载服务器文件:
bash复制scp -P 22222 user@server_ip:/remote/file /local/path
10. 命令速查表
| 场景 | 命令组合 |
|---|---|
| 查找Java进程 | `ps -ef |
| 实时查看日志 | tail -f /var/log/nginx/access.log |
| 统计代码行数 | `find . -name "*.py" |
| 批量重命名 | for f in *.jpg; do mv "$f" "prefix_$f"; done |
| 内存占用TOP10 | `ps aux |