Linux 常用命令终极指南:运维工程师必备技能全解
·
在服务器管理、软件开发和日常运维中,Linux 命令行扮演着至关重要的角色。熟练掌握 Linux 常用命令,不仅能提高工作效率,更能让你在面对复杂问题时游刃有余。本文将深入探讨 Linux 常用命令,从入门到实战,助你成为 Linux 命令行高手。尤其对于使用宝塔面板的开发者,理解底层命令更有助于排查和优化应用。
为什么学习 Linux 命令?
- 高效管理服务器:通过命令可以快速地完成服务器的配置、监控和维护,远比图形界面更高效。
- 自动化运维:可以使用 Shell 脚本编写自动化任务,例如定时备份数据库、监控服务器状态等。
- 问题排查:当服务器出现问题时,可以使用命令查看日志、进程状态等信息,快速定位问题。
- 开发调试:在开发过程中,可以使用命令编译、运行和调试程序。
Linux 常用命令详解
文件操作类命令
ls: 列出目录内容。ls -l显示详细信息,ls -a显示所有文件(包括隐藏文件)。ls -h以人类可读的格式显示文件大小,配合-l参数使用。ls -l /var/log # 显示 /var/log 目录下的文件详细信息ls -la . # 显示当前目录下的所有文件(包括隐藏文件)cd: 切换目录。cd ..返回上一级目录,cd ~回到用户主目录。cd /home/user/documents # 切换到指定目录cd .. # 返回上一级目录mkdir: 创建目录。mkdir -p可以递归创建多级目录。mkdir my_directory # 创建名为 my_directory 的目录mkdir -p path/to/new/directory # 递归创建多级目录rm: 删除文件或目录。rm -f强制删除,rm -r递归删除目录。rm file.txt # 删除 file.txt 文件rm -rf directory/ # 递归强制删除 directory 目录cp: 复制文件或目录。cp -r递归复制目录。cp file.txt destination/ # 复制 file.txt 到 destination 目录cp -r directory/ destination/ # 递归复制 directory 目录到 destination 目录mv: 移动或重命名文件或目录。mv file.txt new_file.txt # 重命名 file.txt 为 new_file.txtmv file.txt destination/ # 移动 file.txt 到 destination 目录touch: 创建空文件或更新文件时间戳。touch new_file.txt # 创建一个名为 new_file.txt 的空文件
系统管理类命令
ps: 显示当前进程状态。ps aux显示所有进程的详细信息,ps -ef显示所有进程的完整信息,grep命令通常与ps结合使用,筛选特定的进程,例如ps aux | grep nginx可以找到所有 Nginx 进程。ps aux | grep nginx # 查找包含 nginx 关键词的进程ps -ef # 显示所有进程的完整信息top: 实时显示系统资源占用情况,包括 CPU、内存、进程等。top # 实时显示系统资源占用情况kill: 杀死进程。需要进程 ID (PID)。可以使用ps命令找到 PID。kill 1234 # 杀死 PID 为 1234 的进程kill -9 1234 # 强制杀死 PID 为 1234 的进程df: 显示磁盘空间使用情况。df -h以人类可读的格式显示。df -h # 显示磁盘空间使用情况du: 显示目录或文件占用磁盘空间的大小。du -sh以人类可读的格式显示总大小。du -sh /var/log # 显示 /var/log 目录占用磁盘空间的总大小free: 显示内存使用情况。free -m以 MB 为单位显示。free -m # 显示内存使用情况shutdown: 关闭系统。shutdown -h now立即关机,shutdown -r now立即重启。shutdown -h now # 立即关机shutdown -r now # 立即重启
网络相关命令
ping: 测试网络连通性。ping www.baidu.com # 测试与 www.baidu.com 的连通性netstat: 显示网络连接、路由表、接口统计等信息。netstat -tulnp显示所有 TCP/UDP 端口的监听状态和对应的进程。netstat -tulnp # 显示所有 TCP/UDP 端口的监听状态和对应的进程ifconfig: 显示或配置网络接口。在较新的 Linux 发行版中,通常使用ip命令代替。ifconfig # 显示网络接口信息ip: 更强大的网络管理工具,可以显示和配置网络接口、路由等。例如:ip addr show显示网络接口地址,ip route show显示路由表。ip addr show # 显示网络接口地址ip route show # 显示路由表ssh: 安全地远程连接到另一台计算机。ssh user@remote_host # 通过 SSH 连接到 remote_hostwget: 从网络下载文件。wget https://example.com/file.txt # 下载文件
文本处理类命令
cat: 连接文件并打印到标准输出。cat file.txt # 显示 file.txt 文件的内容head: 显示文件的前几行,默认显示前 10 行。head file.txt # 显示 file.txt 文件的前 10 行head -n 20 file.txt # 显示 file.txt 文件的前 20 行tail: 显示文件的后几行,默认显示后 10 行。tail -f可以实时监控文件新增内容,常用于查看日志。tail file.txt # 显示 file.txt 文件的后 10 行tail -f file.log # 实时监控 file.log 文件的新增内容grep: 在文件中搜索匹配指定模式的行。grep "error" file.log # 在 file.log 文件中搜索包含 "error" 的行sed: 流编辑器,用于对文本进行替换、删除、插入等操作。sed 's/old/new/g' file.txt # 将 file.txt 文件中的所有 "old" 替换为 "new"awk: 强大的文本处理工具,可以按列处理文本数据。awk '{print $1}' file.txt # 打印 file.txt 文件中每一行的第一列wc: 统计文件中的行数、字数和字符数。wc file.txt # 统计 file.txt 文件中的行数、字数和字符数
用户和权限管理
useradd: 创建新用户。useradd newuser # 创建名为 newuser 的用户passwd: 修改用户密码。passwd newuser # 修改 newuser 的密码chmod: 修改文件或目录的权限。chmod 755 file.txt # 设置 file.txt 的权限为 755chown: 修改文件或目录的所有者。chown newuser file.txt # 设置 file.txt 的所有者为 newuserchgrp: 修改文件或目录的所属组。chgrp newgroup file.txt # 设置 file.txt 的所属组为 newgroup
Linux 命令实战与避坑
实战案例:使用 Shell 脚本监控 Nginx 状态并自动重启
假设我们需要监控 Nginx 的状态,如果 Nginx 停止运行,则自动重启 Nginx。可以编写以下 Shell 脚本:
#!/bin/bashnginx_pid=$(ps aux | grep nginx | grep -v grep | awk '{print $2}')if [ -z "$nginx_pid" ]; then echo "Nginx is not running, restarting..." systemctl start nginx # 或者使用 service nginx startelse echo "Nginx is running (PID: $nginx_pid)"fi
将脚本保存为 check_nginx.sh,并使用 chmod x check_nginx.sh 添加执行权限,然后使用 crontab -e 添加定时任务,例如每分钟执行一次该脚本:
* * * * * /path/to/check_nginx.sh
避坑经验
- 谨慎使用
rm -rf:该命令会强制递归删除目录,没有任何提示,一旦误操作,可能会导致数据丢失。 - 注意命令的参数和选项:不同的参数和选项会影响命令的行为,务必仔细阅读命令的帮助文档 (
man command)。 - 理解管道 (
|) 和重定向 (>,>>):管道可以将一个命令的输出作为另一个命令的输入,重定向可以将命令的输出保存到文件中。理解这些概念对于编写复杂的 Shell 脚本至关重要。 - 权限问题:在执行某些命令时,可能需要 root 权限,可以使用
sudo命令提升权限。但要避免滥用sudo,尽量以普通用户身份执行操作。 - 使用 Tab 键自动补全:Tab 键可以自动补全命令、文件名和目录名,可以提高输入效率,并避免拼写错误。
掌握这些 Linux 常用命令,能够帮助你更好地进行服务器管理和运维。配合诸如 Nginx 反向代理、负载均衡、高并发连接数优化等技术,将能够构建更稳定、更高效的应用系统。此外,熟悉宝塔面板等可视化工具背后所依赖的 Linux 命令,也能帮助你更好地理解和管理服务器。
相关阅读
更多推荐



所有评论(0)