Linux命令行操作指南:从基础到高级技巧

Linux命令行操作指南:从基础到高级技巧
1. Linux命令基础概述Linux作为开源操作系统的代表其命令行界面CLI是系统管理员和开发人员的核心工具集。与图形界面相比命令行提供了更高效、更灵活的系统操作方式。根据2023年Stack Overflow开发者调查76%的专业开发者日常工作中会使用Linux命令行工具。终端Terminal是用户与Linux系统交互的接口通过Shell解释器如Bash、Zsh执行命令。每个命令本质上是一个可执行程序存储在/bin、/sbin、/usr/bin等目录中。当用户在终端输入命令时Shell会按照PATH环境变量定义的路径搜索对应的可执行文件。重要提示Linux命令区分大小写且大多数命令都有丰富的参数选项。使用--help参数可以快速查看命令的基本用法例如ls --help。2. 文件系统操作命令2.1 目录导航与查看pwdPrint Working Directory显示当前所在目录的绝对路径。这是定位自身位置的基础命令特别是在复杂的目录结构中$ pwd /home/user/projectsls命令列出目录内容是最常用的命令之一。其核心参数包括-l长格式显示包含权限、所有者、大小等信息-a显示隐藏文件以.开头的文件-h人类可读的文件大小如K、M单位-t按修改时间排序$ ls -lah total 32K drwxr-xr-x 5 user user 4.0K Jul 15 10:23 . drwxr-xr-x 18 user user 4.0K Jul 10 14:12 .. -rw-r--r-- 1 user user 220 Jul 10 14:12 .bash_logout -rw-r--r-- 1 user user 3.7K Jul 10 14:12 .bashrc2.2 文件操作命令cp命令用于复制文件或目录关键参数-r递归复制目录-i覆盖前提示确认-v显示详细操作过程$ cp -riv source_dir/ dest_dir/mv命令兼具移动和重命名功能。与cp不同它不创建副本而是直接修改文件位置$ mv old_name.txt new_name.txt # 重命名 $ mv file.txt /target/dir/ # 移动文件rm删除文件需谨慎使用特别注意-r递归删除目录-f强制删除不提示危险组合rm -rf /绝对不要尝试3. 文本处理三剑客3.1 grep文本搜索grep是强大的文本搜索工具支持正则表达式。常用模式-i忽略大小写-v反向匹配显示不包含模式的行-n显示行号-r递归目录搜索$ grep -rin error /var/log/3.2 sed流编辑器sed用于非交互式文本编辑典型场景替换文本sed s/old/new/g file.txt删除行sed 5d file.txt删除第5行批量重命名ls *.txt | sed s/\(.*\)\.txt/mv \1.md/ | sh3.3 awk数据处理awk是完整的编程语言特别适合表格数据处理。基本结构$ awk BEGIN {FS:} {print $1, $6} /etc/passwd这会以冒号为分隔符输出系统用户及其家目录。4. 系统监控与管理4.1 进程管理ps显示进程信息常用组合ps aux显示所有用户的所有进程ps -ef完整格式列表top实时监控系统资源按CPU使用率排序。改进版htop提供更友好的交互界面。kill终止进程重要信号SIGTERM(15)正常终止默认SIGKILL(9)强制终止SIGHUP(1)重启进程4.2 磁盘与内存df显示磁盘空间使用情况-h参数人性化显示$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 15G 33G 32% /free查看内存使用-m以MB为单位$ free -m total used free shared buff/cache available Mem: 7982 1523 4096 123 2362 6038 Swap: 2048 0 20485. 网络工具集5.1 连接测试ping检查网络连通性-c指定次数$ ping -c 4 example.comtraceroute显示数据包路径$ traceroute example.com5.2 网络配置ifconfig或现代系统中的ip addr查看网络接口$ ip addr show eth0netstat显示网络状态常用组合$ netstat -tulnp # 查看监听端口6. 权限与用户管理6.1 文件权限chmod修改权限支持数字和符号模式$ chmod 755 script.sh # rwxr-xr-x $ chmod ux,g-w,or file.txtchown改变文件所有者$ chown user:group file.txt6.2 用户账户useradd创建用户passwd设置密码$ sudo useradd -m -s /bin/bash newuser $ sudo passwd newusersu切换用户sudo以超级用户权限执行命令。7. 实用技巧与高级用法7.1 命令组合管道|将前一个命令的输出作为后一个命令的输入$ cat access.log | grep 404 | awk {print $7} | sort | uniq -c | sort -nr7.2 后台执行使命令在后台运行nohup保持长期运行$ nohup python3 server.py server.log 21 7.3 定时任务crontab管理定时任务编辑当前用户的cron表$ crontab -e # 每天3点备份 0 3 * * * /usr/bin/backup.sh8. 常见问题排查8.1 命令找不到检查命令是否存在及PATH设置$ which command_name $ echo $PATH8.2 权限不足使用sudo或检查文件权限$ ls -l /path/to/file $ sudo chmod x script.sh8.3 磁盘空间不足查找大文件$ du -h --max-depth1 / | sort -h9. 学习资源推荐官方文档man command如man lsTLDR项目简化的命令示例tldr commandLinux Documentation ProjectBash脚本编程指南掌握Linux命令需要持续实践。建议每天学习2-3个新命令并在实际工作中应用。遇到问题时善用--help和man手册是快速成长的秘诀。