前言

本文旨在介绍 Linux 系统中一些常用且实用的命令,涵盖日期时间管理、文件传输、远程连接、系统监控等多个方面。


一、date日期

1.1 功能:

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

1.2 详细案例:

  • 显示当前系统时间:

    date
    

    在这里插入图片描述

  • 自定义时间格式:

    date "+%Y-%m-%d %H:%M:%S"
    

    在这里插入图片描述

    输出:2025-08-14 16:24:51

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

    date +%s
    

    在这里插入图片描述

  • 设置系统时间:

    sudo date +%Y-%m-%d -s "2025-08-15"
    

    在这里插入图片描述

  • 同步网络时间:

    sudo ntpdate ntp.aliyun.com
    

    在这里插入图片描述


二、cal展示日历

2.1 功能:

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

2.2 详细案例:

  • 查看当前月份的日历:

    cal
    

    在这里插入图片描述

  • 查看指定年份和月份的日历:

    cal 9 2025
    

    在这里插入图片描述

  • 显示一整年的日历:

    cal -y 2025
    

    在这里插入图片描述


三、 history运行历史

3.1 功能:

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

3.2 详细案例:

  • 查看命令历史:

    history
    
  • 查看历史命令中的特定条目:

    history | grep "mkdir" # 过滤出历史记录中所有包含 `mkdir` 的命令。
    

    在这里插入图片描述

  • 执行历史命令:
    使用历史命令编号执行:

    !555 # 执行编号为555的命令
    

    在这里插入图片描述


四、 scp加密传输

4.1 功能:

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

4.2 详细案例:

  • 将本地文件复制到远程服务器:

    scp /var/log/test.log aike@192.168.10.122:/C:/Users/aike/Desktop/bak
    命令  本地文件  远程主机用户名@IP地址或主机名 远程主机路径
    

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

  • 将本地目录复制到远程服务器:

    scp -r /home/test3 aike@192.168.10.122:/C:/User/aike/Desktop/bak
    

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

  • 将远程文件复制到本地:

    scp aike@192.168.10.122:/C:/Users/aike/Desktop/bak/test.log /home/aike/test
    

    在这里插入图片描述

  • 从远程服务器复制整个目录到本地:

    scp -r user@remote:/remote/dir /local/dir/
    

    在这里插入图片描述


五、 ssh远程连接

5.1 功能:

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

5.2 详细案例:

  • 登录到远程服务器:

    ssh user@hostname
    

    这会连接到远程主机 hostname 上的 user 用户。

  • 使用不同端口登录:

    ssh -p 800 root@192.168.10.121#修改/etc/ssh/sshd_config中的默认端口
    

默认端口22,因是默认,易被暴力破解,使用其余端口更神秘。
通过 -p 选项指定端口,默认端口是 22。
在这里插入图片描述

  • 通过 SSH 执行远程命令:

    ssh -p 800 root@192.168.10.121 'ls -l /home/aike' #由于将默认开放端口改为800,所以得加上`-p 800`
    

    这会在远程主机上执行 ls -l /home/aike 命令,列出指定目录的内容。
    在这里插入图片描述


六. nohup后台运行并记录

6.1 功能:

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

6.2 详细案例:

  • 让脚本在后台运行:

    nohup python script.py &
    

    这会使 script.py 脚本在后台运行,即使终端关闭,脚本也会继续执行。

  • 查看后台任务的输出:

    tail -f nohup.out
    

在这里插入图片描述


七、 reboot重启

7.1 功能:

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

7.2 详细案例:

  • 重启计算机:

    sudo reboot
    

    这会立即重启计算机。

  • 重启并延迟几分钟:

    sudo reboot +5
    

    这会在5分钟后重启计算机。


八、 shutdown关机

8.1 功能:

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

8.2 详细案例:

  • 立即关闭系统:

    sudo shutdown -h now
    

    这会立即关闭计算机。

  • 延迟关闭系统:

    sudo shutdown -h +10
    

    这会在10分钟后关闭系统。

  • 重启系统:

    sudo shutdown -r now
    

    这会立即重启计算机。

九、 free显示内存使用情况

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

9.1 命令功能

free 命令提供以下几个主要信息:

  1. 总内存:物理内存的总量。
  2. 已用内存:已经被系统或应用程序使用的内存。
  3. 空闲内存:没有被使用的内存。
  4. 共享内存:不同进程之间共享的内存空间。
  5. 缓存内存:操作系统用作缓存的数据。
  6. 交换内存(Swap):当物理内存不足时,系统使用磁盘上的空间作为虚拟内存(交换空间)。

9.2 基本命令格式

free [options]

9.3 常用选项

  • -h:以人类可读的方式显示(自动选择合适的单位,如 KB, MB, GB)。
  • -m:以 MB 为单位显示内存。
  • -g:以 GB 为单位显示内存。
  • -t:显示内存的总和(即总内存 + 总交换空间)。
  • -s:以秒为单位指定显示刷新时间间隔。
  • -l:显示低内存和高内存的详细信息。

9.4 基本用法

9.4.1 显示当前内存使用情况:

free

输出示例:
在这里插入图片描述

解释:

  • total:总内存。
  • used:已用内存。
  • free:空闲内存。
  • shared:被多个进程共享的内存。
  • buff/cache:系统缓冲区和缓存使用的内存。
  • available:可以用来启动新应用程序的内存(考虑了缓存和缓冲的回收)。

9.4.2 以人类可读的格式显示内存:

free -h

输出示例:
在这里插入图片描述

9.4.3 显示内存使用情况(以 MB 为单位):

free -m

输出示例:

在这里插入图片描述

9.4.4 显示内存和交换空间的总和:

free -t

在这里插入图片描述

输出示例:

9.4.5 每 5 秒刷新一次显示内存使用情况:

free -s 5

在这里插入图片描述

9.4.6 输出字段解释

free 命令的输出通常包含两行:一行显示内存(Mem),一行显示交换空间(Swap)。

  • Mem 行
    • total:总物理内存(RAM)。
    • used:已用内存(包括缓存、共享内存、应用程序使用的内存等)。
    • free:空闲内存。
    • shared:共享内存,指多个进程之间共享的内存。
    • buff/cache:缓冲区和缓存所占用的内存。系统会使用这部分内存来缓存磁盘数据,以加快访问速度。
    • available:系统可用的内存。这个值并不是单纯的空闲内存,而是指经过系统缓存和缓冲区回收后的可以使用的内存。
  • Swap 行
    • total:总交换空间大小。
    • used:已使用的交换空间。
    • free:剩余的交换空间。

9.4.7 典型应用场景

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

9.4.8 高级技巧

  1. 查看内存使用趋势
    如果你需要实时监控内存使用情况并保存到文件中,可以结合 freewatch 命令:

    watch -n 1 free -h
    

    这会每秒刷新一次显示内存使用情况。

  2. 使用 free 监控系统健康状态

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

总结

本文介绍了Linux系统中常用的几个命令及其功能,包括:

  1. date:显示和设置系统日期时间,支持自定义格式和时间戳转换。
  2. cal:查看日历,支持指定月份或年份的显示。
  3. history:查看和管理命令历史记录,方便快速调用过往命令。
  4. scp:通过SSH安全传输文件或目录,保障数据安全。
  5. ssh:远程登录到其他计算机,支持端口指定和远程命令执行。
  6. nohup:让进程在后台持续运行,即使终端关闭也不中断。
  7. rebootshutdown:用于重启或关闭系统,支持延迟操作。
  8. free:查看系统内存和交换空间的使用情况,帮助监控系统资源。

这些命令是Linux系统管理和日常操作中的基础工具,熟练掌握它们可以显著提升工作效率。无论是查看时间、管理进程,还是进行远程操作,这些命令都能为你提供强大的支持。希望本文的内容能够帮助你更好地理解和使用这些命令,为你的学习和工作带来便利。
最后,希望大家多多实践,夯实基础,聚沙成塔,与君共勉之!

更多推荐