Linux命令行操作基础与实用技巧
1. Linux命令基础概述作为Linux系统的核心组成部分命令行操作是每个系统管理员和开发人员必须掌握的技能。不同于图形界面命令行提供了更高效、更灵活的系统操作方式。根据2023年Stack Overflow开发者调查超过60%的专业开发人员日常工作中会使用Linux命令行。Linux命令通常由三部分组成命令本身、选项通常以-或--开头和参数。例如在ls -l /home命令中ls是命令名称-l是选项长格式显示/home是参数指定查看的目录2. 文件与目录操作命令2.1 ls命令详解ls命令用于列出目录内容是使用频率最高的命令之一。其基本语法为ls [选项] [目录名]常用选项组合示例# 按修改时间倒序显示详细信息适合查看最新文件 ls -lhtr # 显示所有文件包括隐藏文件并按大小排序 ls -aSh实际经验在包含大量文件的目录中使用ls -l | more可以分页查看避免输出刷屏。对于超过1万个文件的目录建议使用find命令替代ls以获得更好性能。2.2 cd命令使用技巧cd命令用于切换工作目录支持多种特殊符号cd ~ # 切换到用户主目录 cd - # 返回上一个工作目录 cd .. # 进入上级目录路径补全技巧输入目录名前几个字母后按Tab键可自动补全连续按两次Tab会显示所有匹配项。2.3 文件操作三剑客cp命令文件复制cp -a source dest # 归档模式复制保留所有属性 cp -r dir1 dir2 # 递归复制目录mv命令移动/重命名mv oldname newname # 重命名 mv file1 dir/ # 移动文件rm命令删除文件rm -i *.log # 交互式删除 rm -rf directory # 强制删除目录危险警告rm -rf /会删除系统所有文件建议在~/.bashrc中添加alias rmrm -i设置默认交互模式。3. 文件查看与处理命令3.1 cat与taccat命令不仅用于查看文件还可用于创建和合并文件cat newfile.txt EOF 这是新文件的第一行 这是第二行 EOF # 合并多个文件 cat file1 file2 combinedtac是cat的反向输出适合查看日志文件的最后部分。3.2 more与less比较功能moreless回看不支持支持搜索基本支持高级支持大文件加载全部加载按需加载跳转仅支持向前支持任意跳转推荐优先使用less特别是查看大文件时less N file # 从第N行开始查看 less /pattern file # 搜索模式开始3.3 head与tail日志分析实时监控日志文件变化tail -f /var/log/syslog # 实时显示新增内容 tail -n 100 -f app.log # 显示最后100行并实时更新提取文件特定部分# 获取文件的第11-20行 head -20 file | tail -104. 系统管理命令4.1 进程管理ps命令常用组合ps aux # 显示所有进程 ps -ef --forest # 树形显示进程关系top交互命令M按内存使用排序P按CPU使用排序1显示所有CPU核心状态k终止指定PID的进程kill信号说明kill -9 PID # SIGKILL强制终止 kill -15 PID # SIGTERM优雅终止默认 pkill -f pattern # 按模式终止进程4.2 系统监控free命令查看内存使用free -h # 人性化显示 watch -n 1 free -h # 每秒刷新df和du组合分析磁盘空间df -h # 查看文件系统使用情况 du -sh /var/log/* # 查看目录大小 du -h --max-depth1 / # 查看根目录下各文件夹大小5. 文本处理三巨头5.1 grep文本搜索grep支持多种匹配模式grep -i error log.txt # 忽略大小写 grep -v debug log.txt # 反向匹配 grep -E err|warn log.txt # 扩展正则 grep -C 3 exception log.txt # 显示匹配行前后3行5.2 awk数据处理基本用法示例awk {print $1} access.log # 打印第一列 awk -F: {print $1} /etc/passwd # 指定冒号分隔符 awk $3 1000 {print $0} data.txt # 条件过滤5.3 sed流编辑器常见操作sed s/old/new/g file # 全局替换 sed -i.bak 1d file # 删除首行并备份原文件 sed -n 10,20p file # 打印10-20行6. 权限与用户管理6.1 chmod权限控制权限数字表示法chmod 755 script.sh # rwxr-xr-x chmod ux file # 给属主添加执行权限特殊权限说明SUID(4)执行时以文件属主身份运行SGID(2)在目录中创建的文件继承组Sticky(1)只有文件属主能删除6.2 chown改变归属递归修改目录所有者chown -R user:group /path/to/dir7. 压缩与打包7.1 tar归档命令常用压缩组合tar -czvf backup.tar.gz dir/ # 创建gzip压缩包 tar -xzvf backup.tar.gz # 解压gzip包 tar -cjvf backup.tar.bz2 dir/ # 创建bzip2压缩包排除特定文件tar --exclude*.log -czvf backup.tar.gz dir/8. 网络相关命令8.1 curl与wgetcurl -o file.html http://example.com # 下载文件 curl -I http://example.com # 仅显示头部信息 wget -c http://example.com/file.iso # 断点续传8.2 netstat与ss查看网络连接netstat -tulnp # 查看监听端口 ss -plnt # 更高效的替代方案9. 实用技巧与最佳实践命令组合# 统计当前目录下文件数量 ls -l | grep ^- | wc -l # 查找并删除7天前的日志 find /var/log -name *.log -mtime 7 -exec rm {} \;历史命令优化!$ # 上条命令的最后一个参数 !:1-3 # 上条命令的第1到3个参数 ^old^new # 替换上条命令中的字符串性能分析time command # 测量命令执行时间 strace -c command # 系统调用分析10. 环境配置建议在~/.bashrc中添加实用别名alias llls -alF alias grepgrep --colorauto alias dfdf -h设置默认安全选项umask 0027 # 新建文件默认权限644目录755 set -o noclobber # 防止重定向覆盖文件使用screen/tmux保持会话tmux new -s session_name # 新建会话 tmux attach -t session_name # 恢复会话掌握这些基础命令后可以组合使用它们来完成复杂的系统管理任务。建议在日常使用中逐步熟悉这些命令的各种选项并建立自己的常用命令手册。对于更高级的需求可以进一步学习shell脚本编程将这些命令组合成自动化脚本。