Linux 常用命令入门:从查看系统信息到简单脚本实战


刚开始接触 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 都很适合作为自动化小工具的入门语言。
, ,

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注