1. Linux命令操作基础认知
作为从Windows转向Linux的开发人员,我花了整整三个月才适应命令行操作。现在回想起来,那些最基础的命令才是日常工作中使用频率最高的。不同于图形界面,命令行操作就像与计算机直接对话,需要掌握特定的"语法规则"。
Linux命令通常由三部分组成:命令本身、选项和参数。比如ls -l /home这个命令中,ls是列出目录内容的命令,-l是长格式显示的选项,/home则是要查看的目录参数。选项通常以-或--开头,前者是简写形式,后者是全称。
新手常见误区是把选项和参数顺序弄混。记住:命令→选项→参数这个基本顺序在大多数情况下都适用。
2. 文件与目录操作命令精要
2.1 基础导航命令
pwd命令是我每天使用不下50次的基础命令,它能显示当前工作目录的完整路径。刚接触Linux时,我经常在多层目录中迷失方向,这时pwd就是最好的定位工具。
cd命令用于切换目录,有几个特别实用的用法:
cd ~快速回到用户主目录cd -返回上一个工作目录cd ..向上移动一级目录
ls命令的常用组合:
ls -l # 长格式显示 ls -a # 显示隐藏文件 ls -lh # 人类可读的文件大小 ls -t # 按修改时间排序2.2 文件操作命令
cp命令复制文件时,我强烈建议始终使用-i选项,这样在覆盖文件时会提示确认:
cp -i source.txt destination/mv命令不仅可以移动文件,还是重命名文件的标准方式:
mv oldname.txt newname.txtrm命令删除文件时要格外小心,这是我曾经付出过惨痛教训的命令。建议新手:
- 先用
ls确认要删除的文件 - 使用
-i选项交互式删除 - 绝对不要轻易使用
-r递归删除选项
3. 文本处理与查看命令
3.1 基础文本查看
cat命令虽然简单,但在查看小文件时非常高效。我常用的几个技巧:
cat -n file.txt # 显示行号 cat file1.txt file2.txt > combined.txt # 合并文件less是查看大文件的最佳选择,支持搜索(/键)和上下滚动。我把它设为默认分页器:
export PAGER=less3.2 高级文本处理
grep是我认为最有价值的Linux命令之一。几个实用场景:
grep -r "keyword" /path # 递归搜索 grep -i "pattern" file # 忽略大小写 grep -v "exclude" file # 反向匹配awk和sed组合使用可以完成复杂的文本转换。比如提取日志中的特定列:
awk '{print $1,$4}' access.log | sed 's/:/ /'4. 系统监控与管理命令
4.1 进程管理
ps命令查看进程时,我最常用的组合是:
ps aux | grep process_nametop命令的增强版htop更直观,建议安装使用:
sudo apt install htop htop4.2 磁盘与内存
df命令查看磁盘空间时,加上-h选项更易读:
df -hfree命令查看内存使用情况:
free -m # 以MB为单位显示5. 网络相关命令
5.1 连接测试
ping命令测试网络连通性,我常用:
ping -c 4 example.com # 限制发送4个包telnet测试端口连通性(需先安装):
telnet example.com 805.2 网络调试
curl是我日常调试API的利器:
curl -v http://example.com/api # 详细输出 curl -o output.html http://example.com # 保存到文件netstat查看网络连接状态:
netstat -tuln # 显示监听中的端口6. 权限与用户管理
6.1 文件权限
chmod修改权限时,数字模式更精确:
chmod 755 script.sh # rwxr-xr-xchown改变文件所有者:
sudo chown user:group file.txt6.2 用户管理
passwd修改密码:
passwd # 修改当前用户密码 sudo passwd username # 修改其他用户密码7. 压缩与归档命令
tar是最常用的归档工具,我总结的常用组合:
tar -czvf archive.tar.gz /path # 创建压缩包 tar -xzvf archive.tar.gz # 解压zip和unzip处理zip格式文件:
zip -r archive.zip /path unzip archive.zip8. 实用技巧与组合命令
8.1 命令组合
管道(|)是Linux最强大的特性之一。比如统计当前目录文件数:
ls | wc -l查找并删除旧日志文件:
find /var/log -name "*.log" -mtime +30 -exec rm {} \;8.2 历史命令优化
history查看命令历史,配合!快速执行:
!123 # 执行历史记录中第123条命令 !! # 重复上一条命令设置历史命令时间戳:
export HISTTIMEFORMAT="%F %T "9. 环境变量与配置
查看环境变量:
printenv # 显示所有 echo $PATH # 查看特定变量添加PATH路径:
export PATH=$PATH:/new/path10. 软件包管理
10.1 APT (Debian/Ubuntu)
更新软件源:
sudo apt update安装软件:
sudo apt install package_name10.2 YUM (CentOS/RHEL)
搜索软件包:
yum search keyword安装软件:
sudo yum install package_name11. 定时任务管理
crontab设置定时任务:
crontab -e # 编辑当前用户的任务常用时间格式:
* * * * * command # 每分钟执行 0 3 * * * command # 每天3点执行12. 系统服务管理
systemctl管理系统服务:
sudo systemctl start service_name # 启动 sudo systemctl enable service_name # 设置开机启动13. 日志查看与分析
查看系统日志:
journalctl -xe # 查看详细系统日志跟踪日志文件:
tail -f /var/log/syslog # 实时查看14. 性能监控命令
vmstat查看系统资源使用:
vmstat 1 # 每秒刷新iostat监控磁盘I/O:
iostat -dx 115. SSH远程连接
基本SSH连接:
ssh username@hostname复制文件到远程主机:
scp file.txt username@hostname:/path16. 文本编辑器命令
nano简单编辑:
nano file.txtvim基本操作:
vim file.txt # 打开文件 i # 进入插入模式 ESC :wq # 保存退出17. 查找命令
find命令的强大用法:
find / -name "*.conf" # 全盘查找 find . -size +10M # 查找大于10M的文件locate快速查找(需先更新数据库):
sudo updatedb locate filename18. 文件比较命令
diff比较文件差异:
diff file1.txt file2.txtcmp逐字节比较:
cmp file1.bin file2.bin19. 终端多路复用
screen基础用法:
screen -S session_name # 新建会话 Ctrl+a d # 分离会话 screen -r session_name # 恢复会话20. 命令别名设置
创建永久别名:
echo 'alias ll="ls -alh"' >> ~/.bashrc source ~/.bashrc查看已定义别名:
alias