前言

Linux 系统以其强大的命令行工具而闻名,掌握这些工具不仅能提高工作效率,还能帮助用户更深入地理解系统的工作原理。本文档详细介绍了 Linux 中一些常用命令的功能、用法及实际案例,包括 date、cal、history、scp、rsync、ssh、nohup、reboot、shutdown 和 free 等。

一、data(重点)

date 命令用于显示当前的系统日期和时间,可以指定不同的输出格式,或用它来设置系统的日期和时间。

  • 显示当前系统时间
date

在这里插入图片描述

  • 自定义时间格式
date "+%Y-%m-%d %H:%M:%S" #显示当前时间(按自定义格式),不可以修改时间

在这里插入图片描述

  • 设置系统时间
date  -s "2026-07-14 17:00"  #自定义时间需要添加 -s ,这会将系统日期设置为 2026年7月14日17点。

在这里插入图片描述

  • 恢复系统时间(选一个就可以)
ntpdate ntp.aliyun.com
ntpdate time1.aliyun.com
ntpdate ntp.tencent.com
ntpdate cn.ntp.org.cn

在这里插入图片描述

  • 显示当前时间的时间戳(从1970年1月1日以来的秒数)
data +%s

在这里插入图片描述

二、cal

cal 命令用来显示当前月份或指定月份的日历。可以方便地查看日期。

  • 查看当前月份的日历
cal
#输出2026年7月14日

在这里插入图片描述

  • 查看指定年份和月份的日历
cal  10 2026  #查看2026年10月份的日历

在这里插入图片描述

  • 显示一整年的日历
cal  -y 2026   #显示2026一整年的日历

在这里插入图片描述

三、history(重点)

history 命令用来查看当前用户的历史命令。这个命令可以帮助你快速找到之前运行的命令。

  • 查看历史命令
history

在这里插入图片描述

  • 查看历史命令中的特定条目
history |grep "date"  #查看历史命令中所有包含 date 的命令。

在这里插入图片描述

  • 执行历史命令
!40  #执行编号为40的命令

在这里插入图片描述

四、scp

scp 命令用于通过 SSH 协议在本地和远程服务器之间安全地复制文件或目录。它加密了数据传输,因此更加安全。

  • 将本地文件复制到远程服务器
scp [本地文件] [用户]@[IP地址或主机名]:[远程主机的绝对路径] 
scp file.txt root@10.8.0.102:/opt/src  #将当前目录的file.txt拷贝到目标服务器的/opt/src目录下

在这里插入图片描述
在这里插入图片描述

  • 将本地目录复制到远程服务器
scp -r /opt root@192.168.10.123:/opt/backup    #将/opt拷贝到目标服务器的/opt/backup目录下,-r是递归

在这里插入图片描述
在这里插入图片描述

  • 将远程文件复制到本地
scp root@10.8.0.102:/opt/backup/file.txt /opt

在这里插入图片描述

  • 从远程服务器复制整个目录到本地
scp -r root@10.8.0.102:/opt/backup /opt

在这里插入图片描述
在这里插入图片描述

五、rsync

rsync 是一个非常强大的文件同步工具,支持增量同步,减少了文件传输的时间和带宽消耗。它可以同步文件和目录,不仅可以在本地计算机之间同步,也支持远程同步。

  • 参数说明
    -a:归档模式,表示保持文件的所有属性(如权限、时间戳等)。
    -v:详细模式,显示传输过程中的文件。
    -z:启用压缩传输。
  • 将本地目录同步到远程服务器
rsync -avz /opt root@10.8.0.102:/opt/backup

在这里插入图片描述
在这里插入图片描述

  • 将远程目录同步到本地
rsync -avz root@10.8.0.102:/opt/src  /opt

在这里插入图片描述
在这里插入图片描述

  • 同步文件时,排除某些文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 仅同步文件变化
    (1)查看两个文件原本情况
    在这里插入图片描述
    在这里插入图片描述
    (2)创建新文件并开始进行同步
rsync -avz --lgnore-existing /opt/wj root@10.8.0.102:/opt/backup

在这里插入图片描述
在这里插入图片描述

六、ssh

ssh(Secure Shell)命令用于通过加密连接远程登录到计算机。它使得你可以安全地访问远程机器并执行命令。

  • 登录到远端服务器
ssh root@10.8.0.102

在这里插入图片描述

  • 使用不同端口登录
systemctl stop firewalld   #关闭防火墙
setenforce 0  #关闭SELinux
getenforce   #查看SELinux状态,Permissive为关
vim /etc/ssh/sshd_config  #检查文件,找到Port 22这一行,取消注释,并添加一行Port 2222
systemctl restart sshd   #重启SSH服务
ss -tulnp|grep 2222 #检查是否监听2222端口
ssh -p 2222 root@10.8.0.102 #使用指定端口登录。-p是指定端口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 通过SSH执行远程命令
ssh root@10.8.0.102 'ls -l /home/'

在这里插入图片描述

  • 可能遇到的问题
    ssh: connect to host 10.8.0.102 port 2222: Connection refused
    问题描述:SSH 客户端无法连接到目标服务器的指定端口
  • 关键检查点
    配置错误 , grep Port /etc/ssh/sshd_config ,修改 /etc/ssh/sshd_config 文件|
    端口占用, sudo ss -tulnp | grep :2222 ,如果有占用,终止占用进程或更换端口
    SELinux 限制, sudo semanage port -l 将 2222 端口加入允许列表

七、nohup

nohup 命令用于让某个进程在后台运行,并且使其在关闭终端后依然保持运行。nohup 会将标准输出和错误输出重定向到 nohup.out 文件中。

  • nohup ./ww& 与./ww & 区别
    1、./ww &(普通后台运行)
    后台运行:& 让脚本在后台执行,不占用当前终端。
    终端关闭时:进程会收到 SIGHUP(挂断信号)并 终止。
    输出:脚本的 stdout/stderr 默认仍打印到终端(可能干扰当前会话)。
    适用场景:临时后台任务,且终端会话不会关闭。
    2、nohup ./ww &(无视挂断的后台运行)
    忽略 SIGHUP:nohup 使进程忽略终端关闭时的挂断信号,终端退出后仍继续运行。
    输出重定向:默认将 stdout/stderr 重定向到 nohup.out 文件(避免干扰终端)。
    适用场景:需要长期运行的任务(如通过 SSH 启动服务)。
vim ww  #编写一个shell脚本
 #!/bin/bash
 count=0
 while true; do
    count=$((count + 1))
    current_time=$(date '+%Y-%m-%d %H:%M:%S')
    echo "[$current_time] 第 $count 次运行,进程 ID: $$"
    sleep 3
 done
chmod a+x ww  #给ww文件授权
nohup ./ww & 
#因为已经在ww所在目录,所以需要用./表示当前目录,若未在ww所在目录,则需要输入绝对路径,&表示在后台运行
tail -f nohup.out #查看后台任务输出

在这里插入图片描述
在这里插入图片描述
这会实时查看后台任务的输出
在这里插入图片描述

八、reboot

reboot 命令用于重启计算机。在一些场景中需要重新启动计算机以应用更新或其他操作。

  • 重启计算机
sudo reboot
sudo reboot +5 #重启并延迟5分钟

九、shutdown

shutdown 命令用于关闭计算机。它可以指定一个延迟时间,或者立即关闭系统。

shutdown -h +20   #20分钟后关闭计算机
shutdown -c  #取消延迟关机

在这里插入图片描述

十、free命令(重点)

用于显示系统的内存使用情况,包括物理内存(RAM)、交换空间(swap)和内核缓冲区。它是 Linux 系统中非常常用的一个命令,用于查看内存的总体状态。

10.1 free命令功能

  • 总内存(total):物理内存的总量。
  • 已用内存(use):已经被系统或应用程序使用的内存。
  • 空闲内存(free):没有被使用的内存。
  • 共享内存(shared):不同进程之间共享的内存空间。 缓存内存(buff/cache):操作系统用作缓存的数据。
  • 系统可用的内存(available):这个值并不是单纯的空闲内存,而是指经过系统缓存和缓冲区回收后的可以使用的内存。
  • 交换内存(Swap):当物理内存不足时,系统使用磁盘上的空间作为虚拟内存(交换空间)。 total:总交换空间大小。
    used:已使用的交换空间。
    free:剩余的交换空间。
  • 常用选项
    -h:以人类可读的方式显示(自动选择合适的单位,如 KB, MB, GB)。
    -m:以 MB 为单位显示内存。
    -g:以 GB 为单位显示内存。
    -t:显示内存的总和(即总内存 + 总交换空间)。
    -s:以秒为单位指定显示刷新时间间隔。
    -l:显示低内存和高内存的详细信息。
    在这里插入图片描述
  • 解释
    total:总内存。
    used:已用内存。
    free:空闲内存。
    shared:被多个进程共享的内存。
    buff/cache:系统缓冲区和缓存使用的内存。
    available:可以用来启动新应用程序的内存(考虑了缓存和缓冲的回收)。
  • 以人类可读的方式显示
    在这里插入图片描述
  • 以 MB 为单位显示内存
    在这里插入图片描述
  • 显示内存和交换空间的总和
    在这里插入图片描述
  • 这会每3秒钟更新一次内存的使用情况,直到手动终止(按 Ctrl+C)
    在这里插入图片描述

10.2 free典型应用场景

  • 检查内存使用情况
    你可以通过 free 命令快速了解当前系统的内存使用情况,帮助你判断是否有内存不足的情况,或者是否需要调整交换空间。
  • 监控内存和交换空间使用情况
    如果系统经常使用大量的交换空间,可能意味着系统内存不足,可能需要增加物理内存或调整系统配置。
  • 检查缓冲区和缓存的影响
    通过 buff/cache 和 available 字段,你可以了解系统缓存占用了多少内存,以及哪些内存是可以被回收利用的。

10.3 free高级技巧

10.3.1 查看内存使用趋势

需要实时监控内存使用情况并保存到文件中,可以结合 free 和 watch 命令
每秒刷新一次显示内存使用情况。

watch -n 1 free -h

在这里插入图片描述

10.3.2 使用 free 监控系统健康状态

  • 监控内存是否充足。
  • 判断是否有大量的缓存内存导致可用内存减少。
  • 如果交换空间使用量较大,考虑优化内存使用或增加物理内存。

十一、ping

ping 命令用于测试网络连接是否畅通。通过发送ICMP回显请求报文并等待响应来确认网络连通性。

  • 测试到某个主机是否可达
ping baidu.com

在这里插入图片描述

  • 指定发送次数
ping -c 4 baidu.com

在这里插入图片描述

十二、ip addr

ip addr 命令用于查看和管理IP地址。

  • 查看所有网络接口的IP地址信息
ip addr show

在这里插入图片描述

  • 查看特定接口(如ens33)的IP地址
ip addr show ens33

在这里插入图片描述

十三、ip link

ip link 命令用于显示或修改网络接口的状态。

  • 显示所有网络接口的状态
ip link show

在这里插入图片描述

  • 启用或禁用接口
ip link set ens33 up  #启动
ip link set ens33 down  #关闭

十四、ip route

ip route 命令用于查看和管理路由表

  • 查看当前的路由表
ip route show

在这里插入图片描述

  • 添加一条静态路由
ip route add 10.8.0.50/16 via 10.8.0.2 

十五、ifconfig命令

ifconfig命令用于查看和配置网络接口的参数

  • 查看所有网络接口的配置
ifconfig ens33 down  #关闭
ifconfig ens33 up   #开启
ifconfig ens33

在这里插入图片描述

  • 配置一个IP地址
ifconfig ens33 10.8.0.30/16

十六、netstat 工具

netstat 命令用于显示网络连接、路由表、接口统计信息等。

  • 选项含义
    -t:TCP协议连接相关信息
    -u:UDP协议相关的链接信息
    -l:显示监听端口状态
    -n:以数字形式显示ip地址端口号
    -p:显示进程PID号
  • 显示当前所有的TCP和UDP连接
netstat -tuln |grep :22

在这里插入图片描述

  • 查看本地端口使用情况
netstat -tulnp

在这里插入图片描述

十七、traceroute

traceroute命令用于追踪数据包经过的路由路径

  • 跟踪到baidu的路径
traceroute baidu.com

在这里插入图片描述

十八、mtr命令

mtr是结合了ping和traceroute的网络诊断工具,提供实时的网络路径追踪和丢包情况。

  • 实时追踪到baidu的网络路径
mtr baidu.com

在这里插入图片描述

十九、ss

ss命令用于显示和分析套接字(网络连接),比netstat更快速和高效。

  • 显示TCP和UDP连接
ss -tuln

在这里插入图片描述

  • 查看特定端口的连接
ss -tuln = :80

在这里插入图片描述

二十、telnet

telnet命令用于与远程主机建立文本模式的通信连接,常用于远程登录和测试端口

  • 连接到远程的某个端口
telnet baidu.com 80

在这里插入图片描述

二十一、nslookup

nslookup 命令用于查询域名系统(DNS)记录

  • 查询域名的IP地址
nslookup baidu.com

在这里插入图片描述

二十二、dig

dig命令也是一个DNS查询工具,比nslookup更强大,提供更多的功能和选项。

  • 查询某个域名的A记录
dig baidu.com A

在这里插入图片描述

二十三、route

route命令用于查看和配置网络路由表

  • 查看当前路由表
route -n

在这里插入图片描述

二十四、lsof

lsof命令用于列出当前系统中打开的所有文件及其相关信息。它可以显示哪些进程正在使用特定的文件。

  • 查看哪个进程在使用某个文件
lsof /var/log/messages

在这里插入图片描述

  • 查看当前系统中所有打开的网络连接
lsof -i

在这里插入图片描述

二十五、uname

uname命令用于显示系统信息,如内核版本、操作系统类型等

  • 查看操作系统信息
uname -a

在这里插入图片描述

二十六、uptime

uptime命令用于查看系统的运行时间及当前的负载情况。

  • 查看系统的运行时间和负载情况
uptime

在这里插入图片描述

总结

以上命令聚焦于网络管理与故障排查以及日常运维中高频率使用的命令。
(1)时间与日期管理的命令:date、cal
(2)远程连接与文件传输的命令:ssh、scp、rsync、telnet
(3)系统状态与资源查看的命令:free、uptime、uname、history、lsof
(4)网络连通性测试与路径追踪的命令:ping、traceroute、mtr
(5) 网络配置(IP/路由/端口)的命令:ip addr、ip link、ip route、ss、ifconfig、route -n、netstat
(6)DNS解析查询的命令:nslookup、dig
(7)后台任务与系统开关机:nohup、shutdown、reboot

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐