1. Linux基础指令概述
作为一名从Windows转向Linux的老用户,我清楚地记得第一次面对黑色终端窗口时的手足无措。与图形界面操作完全不同,Linux的精髓在于命令行操作的高效与精准。经过多年的运维工作,我总结出基础指令就像Linux世界的"生存工具包"——它们看似简单,却是构建复杂操作的基石。
Linux指令通常由三部分组成:命令本身、选项(通常以-或--开头)和参数。例如在ls -l /home这个命令中,ls是列出目录内容的命令,-l表示以长格式显示,而/home则是要查看的目录路径。这种结构的一致性让Linux指令体系具有极强的可预测性,这也是为什么掌握基础指令后,学习更高级命令会变得容易得多。
提示:Linux命令对大小写敏感,
LS和ls是完全不同的,绝大多数基础指令都是小写形式。
2. 文件与目录操作指令
2.1 导航与查看
pwd(Print Working Directory)是我最常用的指令之一,它能显示当前所在目录的完整路径。当你在复杂的目录结构中迷失时,这个简单的命令就像指南针一样可靠。
ls命令则是查看目录内容的"眼睛"。基础用法是直接输入ls,但加上不同选项后功能会大幅增强:
ls -l:以长格式显示,包含权限、所有者、大小等详细信息ls -a:显示所有文件,包括隐藏文件(以.开头的文件)ls -lh:人类可读的文件大小显示(如KB、MB)
我经常使用组合选项ls -lah来获取最全面的目录信息。记住,在Linux中,熟练使用选项组合是提高效率的关键。
2.2 目录操作
创建目录使用mkdir命令,mkdir project会在当前目录创建名为project的文件夹。如果需要创建多级目录,加上-p选项:mkdir -p project/src/main会一次性创建完整的目录结构。
切换目录用cd命令,几个特殊符号需要牢记:
cd ~:返回用户主目录cd ..:返回上级目录cd -:返回上一个工作目录
删除空目录用rmdir,而有内容的目录则需要rm -r(递归删除)。这里有个血的教训:rm -rf /这样的命令千万要小心,它会强制递归删除根目录下的所有内容,可能导致系统崩溃。
2.3 文件操作
cp和mv分别用于复制和移动文件。我建议总是使用-i(交互式)选项,特别是新手时期:
cp -i source.txt dest.txt mv -i oldname newname这样在覆盖已有文件时会提示确认,避免误操作。
rm删除文件时,同样建议使用-i选项。生产环境中,我通常会先使用ls确认要删除的文件,然后再执行rm,形成"看两次删一次"的习惯。
touch命令不仅可以创建空文件,更实用的功能是更新文件的时间戳。这在构建系统中经常用于触发重新编译。
3. 文件内容查看与编辑
3.1 查看文件内容
cat是最简单的文件内容查看命令,适合小文件:
cat /etc/hosts但对于大文件,less才是更好的选择。它支持分页查看和搜索:
less /var/log/syslog在less界面中,可以用/键搜索,n查找下一个,q退出。
head和tail分别查看文件开头和结尾,默认显示10行。查看日志时特别有用:
tail -20 /var/log/nginx/access.log # 查看最后20行 tail -f /var/log/nginx/error.log # 实时监控日志更新3.2 文件编辑
nano是最简单的命令行文本编辑器,适合初学者:
nano filename.txt基本操作会显示在屏幕底部,^X退出,^O保存。
vim则是更强大的选择,虽然学习曲线陡峭,但掌握后效率极高。我建议至少学会:
i进入插入模式ESC返回普通模式:wq保存退出:q!不保存强制退出
4. 系统信息与进程管理
4.1 系统信息查询
uname -a显示完整的系统信息,包括内核版本等。当需要报告系统问题时,这个命令的输出通常是必需的。
df -h查看磁盘使用情况,-h选项使大小以GB、MB显示更易读:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 20G 5.2G 14G 28% /free -h显示内存使用情况,类似的-h选项使输出更友好。
uptime命令一目了然地显示系统运行时间、用户数和负载平均值,是快速检查系统健康状态的首选。
4.2 进程管理
ps命令查看进程信息,我最常用的组合是:
ps aux | grep nginx其中:
a:显示所有用户的进程u:显示详细格式x:包括没有控制终端的进程
top是交互式的进程监控工具,类似Windows的任务管理器。按q退出,M按内存排序,P按CPU排序。
kill用于终止进程,先用ps找到PID,然后:
kill -9 1234 # 强制终止PID为1234的进程信号9(SIGKILL)是最强制的终止方式,应该最后尝试。首先应该用kill -15(SIGTERM)给进程正常退出的机会。
5. 网络相关指令
5.1 网络配置与测试
ifconfig(或现代系统中的ip addr)查看网络接口信息。当网络出现问题时,首先检查接口是否正常启动并获得了正确的IP地址。
ping是最基础的网络连通性测试工具:
ping -c 4 google.com # 发送4个测试包netstat显示网络连接、路由表等信息,常用选项:
netstat -tulnp # 查看所有监听端口及对应程序-t:TCP连接-u:UDP连接-l:监听中的套接字-n:显示数字地址-p:显示进程信息
5.2 远程连接
ssh是远程登录Linux系统的标准方式:
ssh username@hostname -p 2222 # 指定非标准端口scp在本地和远程系统间安全地复制文件:
scp local_file user@remote:/path/to/dest # 上传 scp user@remote:/path/to/file local_dest # 下载6. 权限与用户管理
6.1 文件权限
chmod修改文件权限,可以用数字或符号表示法:
chmod 755 script.sh # 所有者rwx,组和其他rx chmod +x script.sh # 添加执行权限chown改变文件所有者:
chown user:group file.txt6.2 用户管理
sudo以超级用户权限执行命令,是避免直接使用root账户的好方法。
passwd修改用户密码,root用户可以修改任何用户的密码:
passwd # 修改当前用户密码 passwd user1 # root修改user1的密码useradd和userdel添加删除用户:
sudo useradd -m -s /bin/bash newuser # 创建有主目录和使用bash的用户 sudo userdel -r olduser # 删除用户并移除主目录7. 实用技巧与组合命令
7.1 管道与重定向
Linux最强大的特性之一是将简单命令组合起来完成复杂任务。|(管道)将一个命令的输出作为另一个命令的输入:
ps aux | grep python | wc -l # 统计运行的Python进程数量>和>>用于重定向输出:
ls -l > listing.txt # 输出重定向到文件(覆盖) ls -l >> listing.txt # 追加到文件末尾7.2 查找文件
find是强大的文件搜索工具,我常用的形式:
find /home -name "*.txt" -mtime -7 # 查找/home下7天内修改过的txt文件grep在文件中搜索文本模式:
grep -r "error" /var/log/ # 递归搜索/var/log/下的"error"7.3 压缩与归档
tar是最常用的归档工具,配合gzip或bzip2压缩:
tar -czvf archive.tar.gz /path/to/dir # 创建gzip压缩的归档 tar -xzvf archive.tar.gz # 解压gzip归档zip和unzip处理zip格式压缩包,适合与Windows系统交换文件。
8. 进阶学习建议
掌握这些基础指令后,我建议从以下几个方面深化Linux技能:
学习shell脚本:将重复性工作自动化。从简单的备份脚本开始,逐步增加条件判断、循环等复杂逻辑。
理解文件系统结构:知道哪些文件应该放在/etc、/var、/usr等标准目录中,这对故障排查至关重要。
掌握系统服务管理:现代Linux发行版多使用systemd,学习
systemctl管理服务。定期查阅手册:
man命令是最好老师,如man ls会显示ls命令的完整手册。建立自己的命令别名:在
~/.bashrc中添加类似这样的别名可以大幅提高效率:
alias ll='ls -alhF' alias grep='grep --color=auto'最后分享一个真实案例:有次服务器磁盘空间告急,我通过组合df -h定位问题分区,然后用du -sh *找出占用空间最大的目录,最后用find配合rm清理了过期的日志文件。整个过程完全在终端完成,只用了不到5分钟。这就是Linux命令行的力量——精准、高效、可脚本化。