刚开始接触 Linux 的时候,很多人都会觉得命令行看起来有点“劝退”。但真正用起来之后你会发现,很多事情反而比图形界面更直接、更高效。本文我就用几个最常见、最实用的命令,带你快速感受一下 Linux 的基本操作方式。
这篇内容适合刚入门的朋友阅读,所以我尽量用最直白的方式来写。你不需要一次全部记住,先知道这些命令是干什么的,后面慢慢用熟就行。
一、先看看系统基本信息
很多时候我们登录一台 Linux 服务器,第一件事就是先确认当前系统是什么版本、内核版本是多少、主机名是什么。
# 查看系统内核版本 uname -a # 查看当前主机名 hostname # 查看当前登录用户 whoami # 查看系统发行版信息 cat /etc/os-release
如果只是想快速知道系统版本,cat /etc/os-release 这个命令非常常用。像 Debian、Ubuntu、CentOS、Rocky Linux 等系统,基本都能从这里看到关键信息。
二、查看目录和文件
Linux 中最基础的操作,就是查看当前目录、列出文件,以及切换目录。下面这几个命令几乎每天都会用到。
# 查看当前所在目录 pwd # 列出当前目录文件 ls # 以更详细的方式显示文件 ls -lh # 包含隐藏文件一起显示 ls -lah # 切换到 /etc 目录 cd /etc
其中我个人最常用的是 ls -lah,因为它能同时显示隐藏文件、权限、大小和时间,信息比较完整。
三、查看磁盘和内存使用情况
一台服务器运行久了,最容易遇到的就是磁盘空间不足,或者内存占用过高。所以学会这几个排查命令,非常有必要。
# 查看磁盘使用情况 df -h # 查看当前目录下各文件夹大小 du -sh ./* # 查看内存使用情况 free -h # 查看系统负载 uptime
df -h 适合看整体磁盘分区使用率,du -sh ./* 适合看当前目录里到底是谁最占空间。很多时候清理日志、缓存、备份文件,都要先靠这两个命令定位问题。
四、查看进程和端口
当你部署网站、数据库、容器或者代理服务的时候,经常要确认某个程序到底有没有运行,某个端口到底有没有被监听。
# 查看进程 ps aux | grep nginx # 动态查看系统资源占用 top # 如果系统安装了 htop,体验会更好 htop # 查看端口监听情况 ss -tulpn # 查看 80 端口是否被占用 ss -tulpn | grep :80
如果你发现网站打不开,第一反应通常就是先看服务有没有运行,再看端口有没有监听,最后再看防火墙有没有放行。这套思路非常实用。
五、网络连通性测试
网络问题是运维和折腾服务器时最常见的一类问题。下面几个命令,就是最基础也最常用的网络排查工具。
# 测试与目标地址是否连通 ping 8.8.8.8 # 测试 DNS 是否正常 ping www.baidu.com # 查看路由路径 traceroute www.baidu.com # 测试端口连通性 nc -zv 127.0.0.1 22 # 获取网页头部信息 curl -I https://www.example.com
如果能 ping 通 IP 但是 ping 不通域名,通常优先怀疑 DNS;如果服务本机正常但外部访问不了,就要看防火墙、监听地址和路由策略。
六、一个简单的 Bash 脚本示例
Linux 命令不只是手动执行,还可以组合成脚本。下面这个脚本会输出当前时间、主机名和磁盘使用情况,适合刚接触 Shell 的朋友看一看。
#!/bin/bash echo "===== 系统巡检开始 =====" echo "时间:$(date)" echo "主机名:$(hostname)" echo "" echo "===== 磁盘使用情况 =====" df -h echo "" echo "===== 内存使用情况 =====" free -h echo "" echo "===== 系统负载 =====" uptime echo "" echo "===== 巡检结束 ====="
把上面的内容保存为 check.sh 之后,可以这样执行:
chmod +x check.sh ./check.sh
七、一个简单的 Python 示例:检查端口是否开放
除了 Bash,Python 也是服务器上非常常见的一门脚本语言。下面这个小例子可以用来检测指定主机的某个端口是否开放,代码不复杂,适合拿来练手。
import socket
def check_port(host, port):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((host, port))
sock.close()
if result == 0:
print(f"[+] {host}:{port} 端口开放")
else:
print(f"[-] {host}:{port} 端口关闭")
except Exception as e:
print(f"检查失败: {e}")
if __name__ == "__main__":
check_port("127.0.0.1", 22)
如果你本机 SSH 正常监听,一般执行后会看到 22 端口开放。这个例子虽然简单,但已经包含了 socket、超时控制和判断逻辑,作为入门练习很合适。
八、实战思路比命令本身更重要
很多新手在学 Linux 的时候,容易把注意力全部放在“背命令”上。其实命令本身不是最重要的,更重要的是排查问题的思路。
比如一台网站服务器打不开,你可以这样想:
- 先看服务是否启动;
- 再看端口是否监听;
- 然后看防火墙是否放行;
- 最后再看 DNS、反向代理、证书和网络链路。
只要思路清楚,很多问题并没有想象中那么复杂。
九、写在最后
Linux 的命令远不止这些,但对入门来说,先把最常用的一小部分真正用熟,比一次看一大堆命令更有意义。平时多敲几次、多排查几次,慢慢就会形成自己的操作习惯。
如果你刚开始接触 Linux,我建议先从这篇文章里的命令开始练习:系统信息、文件目录、磁盘内存、进程端口、网络连通性。把这些基础打牢之后,再去接触 Docker、Nginx、Systemd、Shell 脚本这些内容,会顺很多。
本文小结:
- 学 Linux,先掌握最常用的基础命令;
- 服务器排障时,优先建立清晰的检查顺序;
- Bash 和 Python 都很适合作为自动化小工具的入门语言。