1. Linux命令入门:从零开始的终端操作指南
第一次接触Linux终端的新手总会感到迷茫——黑色窗口里闪烁的光标,看似晦涩的命令,还有那个神秘的"$"符号。但别担心,每个Linux老手都经历过这个阶段。终端操作就像学习一门新语言,掌握基础词汇后,你会发现它比图形界面更高效直接。
我在运维岗位工作的第一周,因为不熟悉基本命令,曾用图形界面一个个右键重命名300多个日志文件。当同事用一行rename命令3秒完成任务时,我才真正明白命令行的价值。现在,让我们从最核心的20%命令开始,它们能解决80%的日常操作需求。
2. 文件系统导航:找到你的位置
2.1 查看与切换目录
pwd(Print Working Directory)是你的GPS定位器。刚打开终端时,输入:
$ pwd /home/username这会显示当前所在路径。注意:Linux路径用正斜杠(/)分隔,与Windows的反斜杠()不同。
ls命令相当于图形界面中的"刷新"按钮。基础用法:
$ ls Documents Downloads Pictures添加-l参数显示详细信息:
$ ls -l total 12 drwxr-xr-x 2 user user 4096 Jul 10 10:00 Documents drwxr-xr-x 2 user user 4096 Jul 10 09:58 Downloads这里drwxr-xr-x表示文件类型和权限(d=目录,rwx=所有者权限,r-x=组权限,r-x=其他用户权限)
cd(Change Directory)是导航核心命令。常用技巧:
$ cd /usr/local # 绝对路径跳转 $ cd ../src # 返回上级目录后进入src $ cd ~ # 快速回家目录 $ cd - # 返回上一个目录2.2 文件操作四件套
cp复制文件时,新手常犯的错误是忘记目标路径:
$ cp file.txt /tmp/ # 正确:复制到/tmp目录 $ cp file.txt /tmp/file.txt # 同样正确,显式指定文件名 $ cp file.txt /tmp # 危险!若/tmp是文件会被覆盖mv命令的两种用途:
$ mv old.txt new.txt # 重命名 $ mv file.txt ~/Documents # 移动文件rm是危险的命令,特别是配合-r(递归)和-f(强制)时。建议先使用-i交互模式:
$ rm -i important.txt rm: remove regular file 'important.txt'?touch不仅可以创建空文件,还能修改时间戳:
$ touch new_file.txt # 创建文件 $ touch -t 202407101200 old.txt # 修改时间为2024年7月10日12:003. 文本处理:查看与编辑
3.1 查看文件内容
cat适合查看小文件:
$ cat /etc/os-release NAME="Ubuntu" VERSION="20.04 LTS"less才是查看大文件的正确姿势(按q退出,/搜索):
$ less /var/log/sysloghead和tail查看文件首尾:
$ tail -n 20 /var/log/auth.log # 查看最后20行 $ tail -f /var/log/nginx/access.log # 实时追踪日志3.2 文本搜索与处理
grep是文本搜索的瑞士军刀:
$ grep -i "error" /var/log/syslog # -i忽略大小写 $ grep -r "TODO" ~/projects/ # -r递归搜索目录awk处理结构化文本的示例:
$ ps aux | awk '{print $1, $4}' # 显示进程的用户和CPU占用sed进行文本替换:
$ sed 's/foo/bar/g' input.txt > output.txt # 全局替换foo为bar4. 系统监控与管理
4.1 进程管理
ps查看进程的不同风格:
$ ps aux # BSD风格(常用) $ ps -ef # UNIX风格 $ ps -eo pid,comm,pcpu --sort=-pcpu | head # 显示CPU占用最高的进程top交互式监控(按q退出,M按内存排序,P按CPU排序):
$ top -u www-data # 只监控www-data用户的进程kill的正确用法:
$ kill -l # 查看所有信号 $ kill -9 1234 # 强制杀死PID为1234的进程 $ killall -u bob # 结束用户bob的所有进程4.2 磁盘与内存
df查看磁盘空间(加-h人类可读格式):
$ df -h /home Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 20G 28G 42% /homedu查看目录大小:
$ du -sh ~/Downloads/* 12G bigfile.iso 350M document.pdffree查看内存使用:
$ free -h total used free shared buff/cache available Mem: 7.7G 2.1G 3.2G 200M 2.4G 5.0G Swap: 2.0G 0B 2.0G5. 网络相关命令
5.1 连接检测
ping基础网络测试:
$ ping -c 4 google.com # 只发送4个包 PING google.com (142.250.190.46) 56(84) bytes of data. 64 bytes from fra16s48-in-f14.1e100.net (142.250.190.46): icmp_seq=1 ttl=117 time=12.3 mstraceroute诊断网络路径:
$ traceroute -n 8.8.8.8 # -n不解析IP为主机名5.2 网络配置
ifconfig(旧版)或ip(新版)查看网络接口:
$ ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lonetstat查看网络连接:
$ netstat -tulnp # 显示所有监听端口及相关进程6. 权限管理核心命令
6.1 用户与组
whoami快速查看当前用户:
$ whoami ubuntuid查看用户详细信息:
$ id uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),24(cdrom)passwd修改密码:
$ passwd # 修改当前用户密码 Changing password for ubuntu. (current) UNIX password:6.2 文件权限
chmod的数字表示法原理:
r=4, w=2, x=1 rwxr-xr-- = 754设置权限示例:
$ chmod 600 private.key # 仅所有者可读写 $ chmod +x script.sh # 添加可执行权限chown改变文件所有者:
$ chown ubuntu:www-data /var/www/ # 同时修改用户和组7. 实用技巧与组合命令
7.1 命令组合艺术
管道(|)连接命令的典型场景:
$ ps aux | grep nginx | awk '{print $2}' | xargs kill -9重定向的高效用法:
$ ./script.sh > output.log 2>&1 # 标准输出和错误都重定向到文件 $ diff <(ls /dir1) <(ls /dir2) # 比较两个目录的文件列表7.2 历史与补全
history的实用技巧:
$ !345 # 执行历史记录中第345条命令 $ !! # 上一条命令 $ !?string? # 执行最近包含string的命令Tab补全的进阶用法:
- 连按两次Tab显示所有可能补全
- 在命令中途按Alt+/尝试补全路径
8. 常见问题排错指南
8.1 权限问题诊断
"Permission denied"错误排查流程:
ls -l查看文件权限id确认当前用户和组- 检查父目录是否有x(执行)权限
- SELinux上下文检查(
ls -Z)
8.2 命令找不到的解决方案
command not found的可能原因:
- 命令拼写错误(先用
type验证) - 未安装软件包(
which查路径) - PATH环境变量问题(
echo $PATH) - 32/64位兼容性问题
8.3 磁盘空间不足处理
快速定位大文件:
$ du -ah / | sort -rh | head -n 20清理旧内核(Ubuntu为例):
$ dpkg --list | grep linux-image $ sudo apt purge linux-image-5.4.0-XX-generic9. 学习路线与进阶建议
9.1 内置帮助系统
善用内置文档:
$ man ls # 完整手册 $ ls --help # 快速帮助 $ info coreutils # GNU工具综合文档9.2 推荐练习项目
实战是最好的学习:
- 写一个日志分析脚本(结合grep/awk)
- 用cron设置定时备份任务
- 通过SSH远程管理服务器
- 配置一个简单的防火墙规则
9.3 效率工具推荐
终端增强工具:
- tmux:终端多窗口管理
- htop:增强版进程监控
- ncdu:交互式磁盘分析
- bat:带语法高亮的cat替代品
记住,命令行熟练度=实践时间×刻意练习。建议每天用终端完成一个日常任务,一个月后你会惊讶于自己的进步。遇到问题时,先尝试用--help或man查找答案,这比直接搜索更能加深理解。