1. Linux指令基础从终端操作开始第一次接触Linux终端的新手常会被黑底白字的界面吓到但掌握几个基础指令就能快速上手。打开终端CtrlAltT你会看到类似userhostname:~$的提示符这里的~代表当前用户的家目录。提示Linux指令区分大小写ls和LS是完全不同的命令最基础的pwdPrint Working Directory能显示当前所在路径。我刚接触Linux时曾多次在层层目录中迷路这个命令就像GPS定位。而lsList会列出当前目录内容加上-l参数可以查看详细信息$ ls -l total 24 drwxr-xr-x 2 user user 4096 Jun 10 10:00 Documents -rw-r--r-- 1 user user 1234 Jun 9 15:30 notes.txt第一列的d表示目录-表示文件后面的rwx是权限标识。新手常犯的错误是试图直接打开目录文件其实需要用cdChange Directory进入目录$ cd Documents $ pwd /home/user/Documents要返回上一级目录可以使用cd ..。有次我误操作删除了重要文件就是因为没注意当前目录位置这个教训让我养成了操作前先用pwd确认位置的习惯。2. 文件操作核心指令详解2.1 文件创建与编辑touch命令不仅能创建空文件还能更新文件时间戳。有次调试脚本时我就是用touch强制触发重新编译$ touch script.sh # 创建新文件 $ touch -c script.sh # 仅更新时间戳文件存在时mkdir创建目录时加上-p参数可以自动创建父目录。这在搭建项目目录结构时特别有用$ mkdir -p project/{src,test,doc} # 一次性创建多级目录2.2 文件复制与移动cp命令的-r参数是递归复制目录的关键。我曾因为忘记加这个参数导致目录复制失败$ cp file.txt backup/ # 复制文件 $ cp -r dir/ backup/ # 复制目录必须加-rmv命令既用于移动也用于重命名。有个技巧移动多个文件时可以使用通配符$ mv *.jpg images/ # 移动所有jpg文件2.3 文件删除的注意事项rm是危险的命令特别是配合-rf参数时。建议新手先使用-i交互模式$ rm -i file.txt # 删除前确认生产环境中我会先用ls确认要删除的文件再执行rm。有同事曾误删数据库就是因为直接运行了rm -rf /data/*而没检查路径。3. 文本处理与查看指令3.1 查看文件内容cat适合查看小文件大文件建议用less可上下翻页$ cat config.ini $ less large_log.txt # 按q退出head和tail分别查看文件首尾调试日志时我常用$ tail -n 20 error.log # 查看最后20行 $ tail -f realtime.log # 实时追踪日志更新3.2 文本搜索与过滤grep是文本搜索神器配合正则表达式更强大$ grep error system.log # 搜索包含error的行 $ grep -r function src/ # 递归搜索目录awk适合处理结构化文本比如提取日志中的特定列$ awk {print $1,$4} access.log # 打印第1和第4列3.3 文本编辑与处理sed可以进行流式文本编辑我常用它批量替换配置$ sed s/old/new/g file.txt # 全局替换对于CSV文件cut按列切割特别方便$ cut -d, -f1,3 data.csv # 按逗号分隔取第1,3列4. 系统监控与管理指令4.1 进程管理ps查看进程信息aux参数显示最详细$ ps aux | grep nginx # 查找nginx进程top是动态进程监控工具按q退出。我发现系统卡顿时会先看top的%CPU和%MEM列。kill终止进程时要先确认PID$ kill -9 1234 # 强制终止PID为1234的进程4.2 磁盘与内存df显示磁盘空间-h参数以易读格式显示$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 15G 33G 32% /free查看内存使用情况$ free -h total used free Mem: 7.7G 3.2G 4.5G Swap: 2.0G 512M 1.5G4.3 网络相关ifconfig或ip addr查看网络接口$ ip addr show eth0ping测试网络连通性$ ping -c 4 google.com # 发送4个测试包netstat查看网络连接新系统用ss$ ss -tulnp # 查看所有监听端口5. 权限与用户管理5.1 文件权限chmod修改权限我常用数字模式$ chmod 755 script.sh # owner:rwx, group:r-x, others:r-xchown改变文件所有者$ chown user:group file.txt5.2 用户管理sudo以root权限执行命令配置在/etc/sudoers中$ sudo apt updatepasswd修改密码$ passwd # 修改当前用户密码 $ sudo passwd username # root修改其他用户密码6. 软件包管理6.1 apt/dpkgDebian系更新软件源列表$ sudo apt update安装软件包$ sudo apt install nginx6.2 yum/rpmRedHat系搜索软件包$ yum search python3安装软件$ sudo yum install httpd7. 实用技巧与组合命令管道|将前一个命令的输出作为后一个命令的输入$ ps aux | grep python | wc -l # 统计python进程数量重定向和$ echo log entry log.txt # 追加内容 $ ls filelist.txt # 覆盖写入后台运行命令$ long_running_command # 后台运行 $ nohup command # 退出终端仍运行8. 进阶命令与应用场景8.1 查找文件find的强大搜索能力$ find /home -name *.jpg -size 1M # 查找大于1MB的jpglocate基于数据库快速查找$ sudo updatedb # 先更新数据库 $ locate nginx.conf8.2 压缩与解压tar打包与压缩$ tar -czvf archive.tar.gz dir/ # 创建gzip压缩包 $ tar -xzvf archive.tar.gz # 解压8.3 系统信息查看内核版本$ uname -r 5.4.0-42-generic查看系统发行版$ cat /etc/os-release9. 常见问题排查命令查看系统日志$ journalctl -xe # 查看系统日志 $ dmesg | grep error # 查看内核日志检查服务状态$ systemctl status nginx测试端口连通性$ nc -zv 127.0.0.1 8010. 我的命令行效率技巧历史命令按CtrlR搜索历史命令!!重复上条命令别名设置在~/.bashrc中添加alias llls -alF alias grepgrep --colorautoTab补全输入部分命令/文件名后按Tab自动补全命令替换$ vi $(find . -name config.ini)定时任务使用crontab -e设置定时任务我习惯将常用命令保存在~/.bash_aliases中并在新系统部署时首先配置这个文件。对于复杂操作建议写成脚本而非依赖历史命令这样可复现性更强。