1. Linux基础命令概述
作为一个在Linux环境下工作多年的系统管理员,我深知命令行操作是Linux系统的灵魂所在。与图形界面相比,命令行提供了更高效、更灵活的系统控制方式。对于初学者来说,掌握基础命令就像学习一门新语言的字母表 - 这是你与系统对话的第一步。
Linux命令通常由三部分组成:命令本身、选项(通常以-或--开头)和参数。例如在ls -l /home这个命令中,ls是命令,-l是选项,/home是参数。这种结构设计让Linux命令既保持了简洁性,又具备了强大的功能扩展能力。
提示:Linux命令区分大小写,这意味着
LS和ls会被系统视为完全不同的命令。
2. 文件与目录操作命令
2.1 导航与查看命令
pwd(Print Working Directory)是我每天使用频率最高的命令之一。它简单地显示当前所在目录的完整路径,对于不熟悉终端的新手特别有用。当你迷失在复杂的目录结构中时,一个简单的pwd就能告诉你身在何处。
ls命令则是查看目录内容的瑞士军刀。最基本的用法是直接输入ls,它会列出当前目录下的文件和子目录。但真正强大的地方在于它的各种选项:
ls -l:以长格式显示,包含权限、所有者、大小等详细信息ls -a:显示所有文件,包括隐藏文件(以.开头的文件)ls -lh:人类可读的文件大小显示(如K、M、G)
2.2 目录操作命令
创建目录使用mkdir命令。mkdir new_folder会在当前目录下创建一个名为new_folder的新目录。如果需要创建多级目录,可以加上-p选项,如mkdir -p project/src/main会一次性创建整个目录结构。
删除空目录用rmdir,但更常用的是rm -r来递归删除非空目录。这里要特别小心,因为Linux没有回收站的概念,删除的文件很难恢复。
2.3 文件操作命令
cp和mv是文件操作的双子星。cp file1 file2复制文件,而mv file1 file2可以移动或重命名文件。一个实用的技巧是使用cp -r来复制整个目录。
rm用于删除文件,但请记住这个危险的命令没有撤销功能。我强烈建议新手先使用rm -i,它会在删除前询问确认。
3. 文件内容查看与编辑
3.1 查看文件内容
cat是最简单的文件内容查看命令,适合小文件。但对于大文件,less或more是更好的选择,它们支持分页浏览。
head和tail分别显示文件的开头和结尾部分,默认显示10行。tail -f是我调试日志时的最爱,它能实时显示文件新增的内容。
3.2 文本编辑
nano是最适合初学者的文本编辑器,界面简单直观。而vim则是更强大的选择,虽然学习曲线陡峭,但一旦掌握就能极大提高编辑效率。
注意:在vim中,记得按i进入插入模式才能编辑文本,编辑完成后按ESC退出插入模式,然后输入:wq保存并退出。
4. 系统信息与进程管理
4.1 系统信息命令
uname -a显示完整的系统信息,包括内核版本等。df -h查看磁盘使用情况,free -h查看内存使用情况。这些命令在排查系统性能问题时非常有用。
top提供了一个动态的系统进程视图,类似于Windows的任务管理器。它的增强版htop提供了更友好的界面和更多功能。
4.2 进程管理
ps命令列出当前进程。ps aux是最常用的组合,显示所有用户的详细进程信息。当需要结束进程时,先用ps找到进程ID,然后用kill PID终止它。
对于顽固的进程,可以使用kill -9 PID强制终止,但这应该是最后的手段,因为它不给进程清理的机会。
5. 权限与用户管理
5.1 文件权限
Linux的权限系统是其安全性的基石。chmod修改文件权限,chown修改文件所有者。权限分为读(r)、写(w)、执行(x),分别对应数字4、2、1。
例如,chmod 755 script.sh会给所有者rwx权限,给组和其他用户rx权限。更直观的方式是chmod u+x script.sh,给所有者添加执行权限。
5.2 用户管理
sudo允许普通用户以超级用户权限执行命令。passwd修改密码,useradd和userdel管理用户账户。在生产环境中,我建议总是使用adduser而不是useradd,因为它提供了更友好的交互式界面。
6. 网络相关命令
6.1 网络配置与测试
ifconfig或更现代的ip addr显示网络接口信息。ping测试网络连通性,traceroute显示数据包路径。
netstat -tulnp显示所有监听端口和对应的程序,这在排查端口冲突时非常有用。ss是netstat的现代替代品,提供类似的但更详细的信息。
6.2 远程连接
ssh是远程管理Linux服务器的标准工具。基本用法是ssh username@hostname。为了提高安全性,我建议使用密钥认证而不是密码。
scp在本地和远程系统间安全地复制文件,语法类似于cp。例如scp file.txt user@remote:/path/会将文件复制到远程服务器。
7. 实用技巧与组合命令
7.1 命令组合
Linux命令的强大之处在于它们可以通过管道(|)组合。例如ps aux | grep python会找出所有Python进程。grep是强大的文本搜索工具,我几乎每天都会用到。
重定向是另一个重要概念。>将输出重定向到文件(覆盖),>>追加到文件。2>重定向错误输出。例如ls /nonexistent > output.txt 2> error.txt会将正常输出和错误输出分别保存到不同文件。
7.2 实用小技巧
history查看命令历史,可以用!数字重复执行历史中的命令man 命令名查看命令手册,例如man lsalias创建命令别名,如alias ll='ls -alF'Ctrl+R反向搜索命令历史Ctrl+C终止当前命令,Ctrl+Z暂停当前命令
8. 进阶学习建议
掌握这些基础命令后,我建议从以下几个方面继续深入学习:
- Shell脚本编程:将常用命令组合成自动化脚本
- 正则表达式:提升文本处理能力
- 系统服务管理:systemd或init系统
- 软件包管理:apt、yum或dnf
- 性能监控工具:sar、vmstat、iostat等
记住,Linux命令的学习是一个渐进的过程。我建议新手每天学习几个新命令,并在实际工作中尝试使用它们。遇到问题时,别忘了Linux社区有丰富的资源 - Stack Overflow和各个发行版的论坛都是获取帮助的好地方。
