当前位置: 首页 > news >正文

Linux——一些常用的其他命令

文章目录

  • 前言
  • 一、 date(重点)
    • 1.1 date功能
    • 1.2 date详细案例
  • 二、cal
    • 2.1 cal功能
    • 2.2 cal详细案例
  • 三、history(重点)
    • 3.1 history功能
    • 3.2 history详细案例
  • 四、scp
    • 4.1 scp功能
    • 4.2 scp详细案例
  • 五、rsync
    • 5.1 rsync功能
    • 5.2 rsync详细案例
  • 六、ssh
    • 6.1 ssh功能
    • 6.2 ssh详细案例
    • 6.3 可能遇到的问题
      • 6.3.1 ssh: connect to host 192.168.10.123 port 2222: Connection refused
  • 七、nohup
    • 7.1 nohup功能
    • 7.2 nohup详细案例
  • 八 reboot
    • 8.1 reboot功能
    • 8.2 reboot详细案例
  • 九、shutdown
    • 9.1 shutdown功能
    • 9.2 shutdown详细案例
  • 十、free命令
    • 10.1 free命令功能
    • 10.2 free基本命令格式
    • 10.3 free基本用法
    • 10.4 free输出字段解释
    • 10.5 free典型应用场景
    • 10.6 free高级技巧
    • 10.7 free总结
  • 总结

前言

Linux 系统以其强大的命令行工具而闻名,掌握这些工具不仅能提高工作效率,还能帮助用户更深入地理解系统的工作原理。本文档详细介绍了 Linux 中一些常用命令的功能、用法及实际案例,包括 datecalhistoryscprsyncsshnohuprebootshutdownfree 等。这些命令涵盖了时间管理、日历查看、历史命令检索、文件传输、远程连接、后台任务管理、系统重启与关闭以及内存监控等多个方面。

无论您是 Linux 初学者还是有一定经验的用户,本文档都能为您提供实用的参考。通过具体的示例和详细的解释,您将能够快速掌握这些命令的使用技巧,并在实际工作中灵活运用。希望本文档能成为您学习 Linux 命令的得力助手!


一、 date(重点)

1.1 date功能

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

1.2 date详细案例

  • 显示当前系统时间:
 date

输出:2025年 08月 16日 星期六 16:26:18 CST
在这里插入图片描述

  • 自定义时间格式:
 date "+%Y-%m-%d %H:%M:%S"

输出:2025-08-16 16:28:43
在这里插入图片描述

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

输出:1692017091

  • 设置系统时间:
date +%Y-%m-%d -s "2025-08-15"

这会将系统日期设置为 2025年8月15日
在这里插入图片描述

  • 可以使用ntpdate ntp.aliyun.com恢复系统时间

在这里插入图片描述


二、cal

2.1 cal功能

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

2.2 cal详细案例

  • 查看当前月份的日历:
 cal

输出(假设当前为2025年8月):

      August 2025Su Mo Tu We Th Fr Sa1  23  4  5  6  7  8  910 11 12 13 14 15 1617 18 19 20 21 22 2324 25 26 27 28 29 3031

在这里插入图片描述

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

输出:查看2025年12月的日历。
在这里插入图片描述

  • 显示一整年的日历:
 cal -y 2025

输出:显示2025年全年日历。

在这里插入图片描述


三、history(重点)

3.1 history功能

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

3.2 history详细案例

  • 查看命令历史:
 history

输出示例:

[root@simon ~]# history8  ls -lh9  find ./ -size -8k10  ls -lh11  find ./ -size -2k12  ls -lh

在这里插入图片描述

  • 查看历史命令中的特定条目:
 history | grep "mkdir"

这会过滤出历史记录中所有包含 mkdir 的命令。
在这里插入图片描述

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

这会执行编号为12的命令,即 ls -lh

在这里插入图片描述


四、scp

4.1 scp功能

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

4.2 scp详细案例

  • 将本地文件复制到远程服务器:
 scp file.txt user@remote:/path/to/destination/命令  本地文件  用户@IP地址或者主机名  远程主机的路径

将当前目录test01.txt拷贝到目标服务器的/opt/backup目录下

scp test01.txt root@192.168.10.123:/opt/backup/

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

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

/opt拷贝到目标服务器的/opt/backup目录下

scp -r /opt root@192.168.10.123:/opt/backup

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

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

将远程服务器/opt/backup/test01.txt文件复制到本地/opt目录下

scp root@192.168.10.123:/opt/backup/test01.txt /opt

在这里插入图片描述

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

将远程服务器/opt/backup文件夹复制到本地/opt目录下

scp -r root@192.168.10.123:/opt/backup/ /opt/

在这里插入图片描述


五、rsync

5.1 rsync功能

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

5.2 rsync详细案例

  • 将本地目录同步到远程服务器:
#将本地目录/opt同步到远程服务器/opt/backup目录下
rsync -avz /opt root@192.168.10.123:/opt/backup

参数说明:

  • -a:归档模式,表示保持文件的所有属性(如权限、时间戳等)。
  • -v:详细模式,显示传输过程中的文件。
  • -z:启用压缩传输。

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

  • 将远程目录同步到本地:
#将远程服务器/opt/backup目录目录同步到本地的/home目录下rsync -avz root@192.168.10.123:/opt/backup /opt/

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

  • 同步文件时,排除某些文件:
 rsync -avz --exclude="*.log" /opt root@192.168.10.123:/opt/backup/

这会排除所有 .log 后缀的文件。
在这里插入图片描述
在这里插入图片描述

  • 仅同步文件变化:
 rsync -avz --ignore-existing /opt root@192.168.10.123:/opt/backup/

这会跳过远程目录中已经存在的文件,只同步新的文件。

在这里插入图片描述
在这里插入图片描述
可以看到,此时本地和远程服务器目录中的文件是一致的。我们创建新的文件newfile.txt

touch newfile.txt

在这里插入图片描述
执行rsync -avz --ignore-existing /opt root@192.168.10.123:/opt/backup/,可以看到只发送了newfile.txt
在这里插入图片描述
在远程服务器中查看更新的内容
在这里插入图片描述


六、ssh

6.1 ssh功能

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

6.2 ssh详细案例

  • 登录到远程服务器:
 ssh root@192.168.10.123

这会连接到远程主机 192.168.10.123 上的 root 用户。
在这里插入图片描述

  • 使用不同端口登录:
ssh -p 2222 root@192.168.10.123

通过 -p 选项指定端口,默认端口是 22。
在这里插入图片描述

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

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

6.3 可能遇到的问题

6.3.1 ssh: connect to host 192.168.10.123 port 2222: Connection refused

[root@simon ~]# ssh -p 2222 root@192.168.10.123
ssh: connect to host 192.168.10.123 port 2222: Connection refused

**问题描述:**SSH 客户端无法连接到目标服务器的指定端口。
解决方案:

SSH 监听端口配置错误
检查 /etc/ssh/sshd_config文件:

grep Port /etc/ssh/sshd_config
[root@localhost ~]# grep Port /etc/ssh/sshd_config 
#Port 22
#GatewayPorts no

若发现没有2222端口,修改 SSH 配置文件:

vim /etc/ssh/sshd_config

找到 #Port 22 这一行,取消注释并修改为:

Port 22
Port 2222

在这里插入图片描述
重启 SSH 服务

systemctl restart sshd

检查是否监听2222端口

ss -tulnp|grep 2222

仍然无输出,说明SSH 服务没有在监听2222 端口。大概率是SELinux 阻止新端口。

通过 SELinux 放行 2222 端口

# 查看 SELinux 对 SSH 端口的设定
semanage port -l | grep ssh_port_t# 添加 2222 端口到 SSH 允许列表
sudo semanage port -a -t ssh_port_t -p tcp 2222# 重启一下ssh服务
systemctl restart sshd# 检查是否监听2222端口
ss -tulnp|grep 2222

2222端口成功被ssh监听
在这里插入图片描述

连接成功
在这里插入图片描述
关键检查点:

  • 配置错误 , grep Port /etc/ssh/sshd_config ,修改 /etc/ssh/sshd_config 文件|
  • 端口占用, sudo ss -tulnp | grep :2222 ,如果有占用,终止占用进程或更换端口
  • SELinux 限制, sudo semanage port -l 将 2222 端口加入允许列表

七、nohup

7.1 nohup功能

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

nohup python test.py &python test.py & 区别:
1、python test.py &(普通后台运行)

  • 后台运行:& 让脚本在后台执行,不占用当前终端。

  • 终端关闭时:进程会收到 SIGHUP(挂断信号)并 终止。

  • 输出:脚本的 stdout/stderr 默认仍打印到终端(可能干扰当前会话)。

  • 适用场景:临时后台任务,且终端会话不会关闭。

2、nohup python test.py &(无视挂断的后台运行)

  • 忽略 SIGHUP:nohup 使进程忽略终端关闭时的挂断信号,终端退出后仍继续运行。

  • 输出重定向:默认将 stdout/stderr 重定向到 nohup.out 文件(避免干扰终端)。

  • 适用场景:需要长期运行的任务(如通过 SSH 启动服务)。

7.2 nohup详细案例

脚本内容 (nohup_test.py)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import datetimedef main():print("脚本已启动,所有输出将写入 nohup.out")print("按 Ctrl+C 终止脚本")try:while True:current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")log_message = "[%s] 脚本正在运行..." % current_timeprint log_message  # 输出到 stdout(会被 nohup 捕获到 nohup.out)time.sleep(5)  # 每5秒输出一次except KeyboardInterrupt:print "\n脚本被手动终止"if __name__ == "__main__":main()
  • 让脚本在后台运行:
 nohup python nohup_test.py &

这会使 nohup_test.py 脚本在后台运行,即使终端关闭,脚本也会继续执行。
在这里插入图片描述

  • 查看后台任务的输出:
 tail -f nohup.out

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


八 reboot

8.1 reboot功能

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

8.2 reboot详细案例

  • 重启计算机:
 sudo reboot

这会立即重启计算机。


九、shutdown

9.1 shutdown功能

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

9.2 shutdown详细案例

  • 立即关闭系统:
 sudo shutdown -h now

这会立即关闭计算机。

  • 延迟关闭系统:
 sudo shutdown -h +10

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

在这里插入图片描述

  • 重启系统:
 sudo shutdown -r now

这会立即重启计算机。

  • 延时重启系统:
 sudo shutdown -r +10

这会十分钟后重启计算机。
在这里插入图片描述

十、free命令

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

10.1 free命令功能

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

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

10.2 free基本命令格式

free [options]

常用选项

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

10.3 free基本用法

  1. 显示当前内存使用情况:
 free

输出示例:

[root@simon ~]# freetotal        used        free      shared  buff/cache   available
Mem:        3861300      537320     2948504       12424      375476     3088540
Swap:       4194300           0     4194300

在这里插入图片描述

解释:

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

输出示例:

[root@simon ~]# free -htotal        used        free      shared  buff/cache   available
Mem:           3.7G        859M        2.3G         15M        505M        2.6G
Swap:          4.0G          0B        4.0G

在这里插入图片描述

  1. 显示内存使用情况(以 MB 为单位):
 free -m

输出示例:

[root@simon ~]# free -mtotal        used        free      shared  buff/cache   available
Mem:           3770         856        2408          15         506        2679
Swap:          4095           0        4095

在这里插入图片描述

  1. 显示内存和交换空间的总和:
 free -t

输出示例:

[root@simon ~]# free -ttotal        used        free      shared  buff/cache   available
Mem:        3861300      876868     2466224       15728      518208     2743924
Swap:       4194300           0     4194300
Total:      8055600      876868     6660524

在这里插入图片描述

  1. 每 5 秒刷新一次显示内存使用情况:
 free -s 5

这会每5秒钟更新一次内存的使用情况,直到手动终止(按 Ctrl+C)。

在这里插入图片描述


10.4 free输出字段解释

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

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

10.5 free典型应用场景

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

10.6 free高级技巧

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

这会每秒刷新一次显示内存使用情况。
在这里插入图片描述

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

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

10.7 free总结

free 命令是查看内存和交换空间使用情况的非常实用工具,尤其在 Linux 系统管理中频繁使用。通过它,您可以迅速了解系统内存的总体状况,帮助您优化系统性能或解决内存不足的问题。


总结

本文档系统地介绍了 Linux 系统中多个常用命令的功能和实际应用场景。从基础的 datecal 命令到高级的 scprsyncssh 工具,再到系统管理相关的 rebootshutdownfree 命令,这些工具为日常的系统操作和管理提供了极大的便利。

通过学习这些命令,您可以:

  • 高效地管理系统时间和日历。
  • 快速检索和执行历史命令。
  • 安全地在本地和远程服务器之间传输文件。
  • 通过 SSH 远程连接并管理服务器。
  • 让任务在后台持续运行,不受终端关闭的影响。
  • 监控系统内存使用情况,优化性能。
  • 灵活地重启或关闭系统。

掌握这些命令不仅能提升您在终端环境下的操作效率,还能帮助您更好地理解和维护 Linux 系统。建议您在实际操作中多加练习,逐步熟悉这些工具的更多高级用法。如果您在学习过程中遇到问题,可以参考相关文档或社区资源,进一步扩展您的知识面。祝您在 Linux 的学习和使用中取得更大的进步!

http://www.dtcms.com/a/336032.html

相关文章:

  • 学习Python中Selenium模块的基本用法(5:程序基本步骤)
  • MySQL数据库备份与恢复
  • 《棒球百科》奥运会取消了棒球·野球1号位
  • 旋钮键盘项目---foc讲解(闭环位置控制)
  • Redis-plus-plus API使用指南:通用操作与数据类型接口介绍
  • TensorFlow|张量流
  • C/C++复习(四)
  • 【LeetCode】单链表经典算法:移除元素,反转链表,约瑟夫环问题,找中间节点,分割链表
  • Javascript面试题及详细答案150道之(106-120)
  • 深度学习——常见的神经网络
  • Tomcat 类加载器原理深度解析
  • PowerPoint和WPS演示让多个对象通过动画同时出现
  • 近期(2021-2025)发行的常用国军标GJB 整理,2021,2022,2023,2024,2025
  • 深入理解QFlags:Qt中的位标志管理工具
  • 本文将详细介绍如何构建一个功能完整的键盘测试工具,包含虚拟键盘、实时统计、打字练习等核心功能,无需任何后端服务或复杂依赖。
  • 无人机视角土地区域类型识别分割数据集labelme格式4904张7类别
  • 使用oradebug收集数据库诊断信息
  • 第3章 Java NIO核心详解
  • AOP配置类自动注入
  • Linux系统分析 CPU 性能问题的工具汇总
  • 【102页PPT】某著名企业智能制造解决方案及智能工厂产品介绍(附下载方式)
  • 19.5 「4步压缩大模型:GPTQ量化实战让OPT-1.3B显存直降75%」
  • 微网智能光储协调控制器方案
  • 【运维进阶】实施任务控制
  • 网络原理与编程实战:从 TCP/IP 到 HTTP/HTTPS
  • 基于Vue的个人博客网站的设计与实现/基于node.js的博客系统的设计与实现#express框架、vscode
  • Rust 入门 生命周期(十八)
  • 力扣3:无重复字符的最长子串
  • Linux软件编程:进程与线程(线程)
  • 最新技术论坛技术动态综述