Linux系统-基本指令(5)

article/2025/6/8 0:35:54

文章目录

  • mv 指令
  • cat 指令(查看小文件)
  • 知识点(简单阐述日志)
  • more 和 less 指令(查看大文件)
  • head 和 tail 指令(跟查看文件有关)
  • 知识点(管道)
  • 时间相关的指令(3-2.36.00)
  • 知识点(跟时间相关)
  • cal 指令(了解即可)

mv 指令

1. 普通文件和目录剪切是不需要带选项的。mv + 普通文件/目录 + 指定路径

// 剪切普通文件
[root@hcss-ecs-28ce dir]# ls
file.txt[root@hcss-ecs-28ce dir]# mv file.txt ..
[root@hcss-ecs-28ce dir]# ls[root@hcss-ecs-28ce dir]# ls ..
dir  file.c  file.txt// 剪切目录
[root@hcss-ecs-28ce dir]# ls
dir1
[root@hcss-ecs-28ce dir]# mv dir1 ..
[root@hcss-ecs-28ce dir]# ls[root@hcss-ecs-28ce dir]# ls ..
dir  dir1  file.c  file.txt

2. 修改普通文件和目录的文件名称(修改名称的那个文件得存在

[root@hcss-ecs-28ce lesson]# ls
dir  dir1  file.c  file.txt[root@hcss-ecs-28ce lesson]# mv file.c code.c
[root@hcss-ecs-28ce lesson]# ls
code.c  dir  dir1  file.txt[root@hcss-ecs-28ce lesson]# mv dir dir2
[root@hcss-ecs-28ce lesson]# ls
code.c  dir1  dir2  file.txt

cat 指令(查看小文件)

1. cat正向打印文件中的内容,tac逆向打印文件中的内容

// cat 指令
[root@hcss-ecs-28ce lesson]# vim code.c
[root@hcss-ecs-28ce lesson]# cat code.c
#include<stdion.h>
int main()
{printf("hello world/n");return 0;
}// tac 指令
[root@hcss-ecs-28ce lesson]# tac code.c}return 0;printf("hello world/n");
{
int main()
#include<stdion.h>

2. cat它的作用就是用来查看一些小文件。因为当想查看文件的时候,如果直接用vimnano打开小文件,就很容易进行误操作

  • 选项 -n对输出的所以行进行编号
  • 选项 -b对非空输出行进行编号
  • 选项 -s不输出多行空行(一行或几行空行还是会输出的)
[root@hcss-ecs-28ce lesson]# cat -n code.c1	#include<stdion.h>2	int main()3	{4	   printf("hello world/n");5	   return 0;6	}7	[root@hcss-ecs-28ce lesson]# cat -b code.c1	#include<stdion.h>2	int main()3	{4	   printf("hello world/n");5	   return 0;6	}

知识点(简单阐述日志)

  • 如果要写一个上点规模的代码,日志是必须要有的
  • 什么是日志呢?在你的程序正常工作之前,你自己首先要打开一个日志文件,比如log.txt
  • 在你程序运行期间,代码里所有的printf要打印的内容全部写入到该日志文件中,不要往显示器中写入,这样日志文件就记录了该程序的执行痕迹
  • 这个文件就叫日志文件,这个行为就是写日志(它会有固定模式的)。通过这种方式,如果程序出问题了,能方便对问题进行排查

more 和 less 指令(查看大文件)

// 该命令是输出重定向,直接构建一万行内容写入到log.txt文件中
// 自行创建一个大文件log.txt用来举例子
[root@hcss-ecs-28ce lesson]# cnt=1;while [ $cnt -le 10000 ];do echo "hello bit,hello world$cnt";let cnt++; done > log.txt
[root@hcss-ecs-28ce lesson]# ll log.txt
-rw-r--r-- 1 root root 258894 Jun  3 18:00 log.txt

1. 之前用cat是来查看小文件,如果用cat去查看大文件的话就会出现刷屏的情况(ctrl + c强制停止)。可以用Linux系统自带的日志(大文件)举例/var/log/messages

[root@hcss-ecs-28ce lesson]# cat /var/log/messages
...
Jun  3 14:01:01 hcss-ecs-28ce systemd: Started Session 1385 of user root.
Jun  3 15:01:01 hcss-ecs-28ce systemd: Started Session 1386 of user root.
Jun  3 16:01:01 hcss-ecs-28ce systemd: Started Session 1387 of user root.
Jun  3 17:01:01 hcss-ecs-28ce systemd: Started Session 1388 of user root.
Jun  3 17:14:44 hcss-ecs-28ce systemd: Started Session 1389 of user root.
Jun  3 17:14:44 hcss-ecs-28ce systemd-logind: New session 1389 of user root.

2. 此时可以用到more指令,只不过它比较鸡肋,只能回车键往下翻(不能往上翻),more + 要查看的大文件(按q可以退出)

[root@hcss-ecs-28ce lesson]# more log.txt
...
hello bit,hello world28
hello bit,hello world29
hello bit,hello world30
hello bit,hello world31
hello bit,hello world32
hello bit,hello world33
...

3. 这里更推荐使用less指令

  • 它不仅可以上下翻(上下方向键
  • 还可以高亮的去查找特定的信息(/后面跟要搜索的信息
  • q退出查看。在搜索的过程中按n可以查看下一个匹配项
[root@hcss-ecs-28ce lesson]# less log.txt

在这里插入图片描述

head 和 tail 指令(跟查看文件有关)

1. head + 普通文件,默认查看该普通文件的前十行内容。tail + 普通文件,默认查看该普通文件的后上行内容

[root@hcss-ecs-28ce lesson]# head log.txt
hello bit,hello world1
hello bit,hello world2
hello bit,hello world3
hello bit,hello world4
hello bit,hello world5
hello bit,hello world6
hello bit,hello world7
hello bit,hello world8
hello bit,hello world9
hello bit,hello world10[root@hcss-ecs-28ce lesson]# tail log.txt
hello bit,hello world9991
...

2. head/tail -n 指定的文件,显示该文件指定行数n的内容。head从头开始,tail从尾部开始

[root@hcss-ecs-28ce lesson]# head -3 log.txt
hello bit,hello world1
hello bit,hello world2
hello bit,hello world3[root@hcss-ecs-28ce lesson]# tail -3 log.txt
hello bit,hello world9998
hello bit,hello world9999
hello bit,hello world10000

3. 那如果我想去查看大文件任意区间的文本内容呢?比如区间[2000, 2020],这里总共有两种方法

  • 第一种方法:head -2020 log.txt > temp.txt,先将该文件的前2020行写入到temp.txt中,再取temp.txt文件的后21行,tail -21 temp.txt
[root@hcss-ecs-28ce lesson]# head -2020 log.txt > temp.txt[root@hcss-ecs-28ce lesson]# ll temp.txt
-rw-r--r-- 1 root root 51413 Jun  3 18:23 temp.txt[root@hcss-ecs-28ce lesson]# tail -21 temp.txt
hello bit,hello world2000
hello bit,hello world2001
...

知识点(管道)

  • 第二种方法:这里只需要先知道管道是怎么用的即可。head -2020 log.txt | tail -21|就是管道,它就跟流水线加工一样,先提取到前2020行,再把这2020行通过管道喂给后面的指令,再提取末尾21行。这样经过二次加工,完成了对数据的两次操作
[root@hcss-ecs-28ce lesson]# head -2020 log.txt | tail -21
hello bit,hello world2000
hello bit,hello world2001
hello bit,hello world2002
...
  • 管道可以有多个(多个|),这样就可以使用多组命令来批量化,流水线化的对文本内容进行编辑和加工
// tac 逆向打印文本中的内容
[root@hcss-ecs-28ce lesson]# head -2020 log.txt | tail -21 | tac
hello bit,hello world2020
hello bit,hello world2019
hello bit,hello world2018// wc -l 输出多少行
[root@hcss-ecs-28ce lesson]# head -2020 log.txt | tail -21 | tac | wc -l
21

时间相关的指令(3-2.36.00)

1. date:后面啥也不跟,是老外看时间的方式。咱们看时间一般用到这个命令:date +%Y-%m-%d_%H:%M:%S+是选项,%是固定搭配,%Y与%m之间是分隔符(可自主选择),从做到右依次为:年,月,日,时,分,秒

[root@hcss-ecs-28ce lesson]# date
Tue Jun  3 18:43:55 CST 2025[root@hcss-ecs-28ce lesson]# date +%Y-%m-%d_%H:%M:%S
2025-06-03_18:44:38

2. 如果想输出2025-6-30 7:30:00,但它这里是不支持空格符作为分隔符的(%d %H,不支持),想带空格的话,就得用到转义字符\,使它成为字面上的空格

[root@hcss-ecs-28ce lesson]# date +%Y-%m-%d\ %H:%M:%S
2025-06-03 19:56:46
[root@hcss-ecs-28ce lesson]# date +%Y-%m-%d %H:%M:%S
date: extra operand ‘%H:%M:%S’
Try 'date --help' for more information

3. 这里date命令并不重要,但时间是很重要的。就比如之前说的日志,时间就是其中一个很重要的部分,我们不仅需要知道该程序出现什么问题,更要知道该问题出现在什么时候,才可以评估损失大小

4. 通过命令date +%s去获取时间戳。时间戳:1970-01-01 12:00(凌晨12点)到现在累计的秒数

[root@hcss-ecs-28ce lesson]# date +%s
1748952158
[root@hcss-ecs-28ce lesson]# date +%s
1748952161
[root@hcss-ecs-28ce lesson]# date +%s
1748952163
[root@hcss-ecs-28ce lesson]# date +%s
1748952168

知识点(跟时间相关)

1. 先讨论一下时差指的是什么,这里是按照我自己的理解粗略的阐述一下

  • 假如我想到国外的以一家购物网站上买一辆自行车,我是在中午12点买的,可能在美国记录的时间是晚上12点。
  • 因为全国有些地方就存在时间差的情况,可能在中国12点的时候,美国那边就晚上12点。
  • 结果过了一周了,我的自行车还没到,我就询问他们,怎么弄的啊!我上个星期中午12点的货咋还没到呢?
  • 然后这个客服就按照他们他们当地的时间去找中午12点的货却怎么也找不到(因为系统记录的是晚上12点的货),所以就需要规定一个时差,用自己这个地方的时间加上或减去这个时差就相当于另外一个地方的时间

2. 在计算机中只需要存储时间戳即可,命令date +%Y-%m输出的日期是通过对应的算法将此刻的时间戳转换而来的

3. 现在来讨论一下时间戳这个东西有什么用,就拿咱们之前的日志来说,时间戳对于日志是一个非常重要的组成部分

  • 举个例子,有一天我发现我的服务器在早上八点钟到晚上八点钟这段时间是非常的卡,我就想要去写一个程序去排查出问题
  • 我就先记录这一天的早上八点和晚上八点的时间戳,连着记录一个星期,再分别统计每天早上八点时间戳与晚上八点时间戳这个范围内服务器对应日志(日志中就包含了该时间戳下用户访问的IP信息),看一下它到底做了什么
  • 这才发现是这段时间的访问量从2万增长到了10万。所以时间戳在记录上它是一个线性增长的数值,在业务和应用上,它可以对内容做批量化的分段查找和定位

4. 之前咱是通过命令date +%s去打印时间戳,其实还可以写一个可执行程序,通过C语言函数time去打印时间戳

[root@hcss-ecs-28ce lesson]# ls
a.out  code.c  dir1  dir2  file.txt  log.txt  temp.txt  time.c[root@hcss-ecs-28ce lesson]# cat time.c
#include<stdio.h>
#include<time.h>int main()
{printf("%lu\n", time(NULL));return 0;
}[root@hcss-ecs-28ce lesson]# ./a.out
1748954029
[root@hcss-ecs-28ce lesson]# ./a.out
1748954032
[root@hcss-ecs-28ce lesson]# ./a.out
1748954036

5. 命令date +%Y-%m-%d_%H:%M:%S -d @1748954036,可将该时间戳转换成指定的日期格式

[root@hcss-ecs-28ce lesson]# date +%Y-%m-%d_%H:%M:%S -d @1748954036
2025-06-03_20:33:56
[root@hcss-ecs-28ce lesson]# date +%Y-%m-%d_%H:%M:%S -d @1748954
1970-01-21_13:49:14
[root@hcss-ecs-28ce lesson]# date +%Y-%m-%d_%H:%M:%S -d @17489
1970-01-01_12:51:29
[root@hcss-ecs-28ce lesson]# date +%Y-%m-%d_%H:%M:%S -d @0
1970-01-01_08:00:00
  • 当时间戳为0的时候,为啥会是早上八点呢,不是凌晨12点开始计算的吗?
  • 这是因为北京和他们开始统计时间戳的地方(也是就是格林威治)时差是八个小时,当时他们是12:00:00,北京是08:00:00,而咱们用的机器都在国内,所以服务器就自动的帮我们加上了时差,那你所获取的时间就是咱们本地的时间

cal 指令(了解即可)

  1. cal 打印当月的日历
    在这里插入图片描述
  2. cal 2025 打印2025年的日历
    在这里插入图片描述
  3. cal -3 打印前一个月,这个月,后一个月的日历。想了解的更多可以man cal
    在这里插入图片描述

http://www.hkcw.cn/article/ZyeYwiaTlX.shtml

相关文章

C 语言学习笔记(预处理和库文件)

内容提要 预处理库文件 预处理 预处理编译汇编链接 什么是预处理 预处理就是在源文件&#xff08;.c文件&#xff09;编译之前&#xff0c;所进行的一部分预备操作&#xff0c;这部分操作是由预处理器&#xff08;预处理程序&#xff09;自动完成。当源文件在编译时&#x…

谷歌地图高清卫星地图软件(Google Earth)v6.0.3.2197 中文版 - 前端工具导航

谷歌地图6.0Google Earth是一款谷歌地图高清卫星地图软件&#xff0c;能够实时监测并提供最准确的地图信息&#xff0c;地球上的任意一块地区都能够准确定位并放大查看&#xff0c;覆盖范围广&#xff0c;精度高&#xff0c;非常实用&#xff01; 谷歌卫星高清地图 下载链接&a…

全球治理指标数据(1996-2023)

1945 全球治理指标&#xff08;WGI&#xff09;(1996-2023&#xff09; 数据简介 全球治理指标&#xff08;WGI&#xff09;是一个由世界银行开发的综合性数据库&#xff0c;通过政治稳定、政府效能、监管质量、法治水平、腐败控制和公民话语权六个维度系统衡量全球各国的治理…

Blocked aria-hidden on an element because its descendant retained focus.

问题出在 Element UI 的 el-table 组件 全选功能上&#xff0c;这是一个常见的无障碍&#xff08;a11y&#xff09;问题。这个错误提示与网页 accessibility&#xff08;无障碍访问&#xff09;相关&#xff0c;涉及 aria-hidden 属性的不当使用。 问题原因分析 1. Element U…

2025 年人脸识别技术应用备案政策已落地

在 AI 技术深度渗透的当下&#xff0c;人脸识别作为重要的生物识别技术&#xff0c;已广泛应用于安防、金融、零售等多领域。但随之而来的个人信息安全风险也备受关注。2025 年 6 月 1 日起《人脸识别技术应用安全管理办法》正式实施&#xff0c;企业需重视人脸识别技术应用备案…

01电气设计-380V强电部分设计

目标&#xff1a;在电气设计过程中380V的强电部分&#xff0c;一般来自与工厂&#xff0c;一般为3相5线制的380V&#xff0c;下面的应用场景是当我的用电设备&#xff08;电机&#xff0c;冷水机&#xff0c;控制器&#xff0c;驱动器&#xff0c;激光器等等&#xff09;总功率…

文件批量重命名

mv只支持单个文件命名 批量重命名用rename 例子&#xff1a; #touch命令批量创建空文件&#xff0c;文件10-15 touch file{10..15}.txt批量重命名 # 批量重命名&#xff0c;file10-15重命名为test10-15 #这里file1? 匹配的是单个字符。比如10,11等 rename file1 test1 file1…

ES的开始

ES作用 在海量数据中&#xff0c;执行搜索功能&#xff0c;使用mysql&#xff0c;效率过低&#xff0c; 如果关键字输入不准确&#xff0c;一样可以搜索到想要的数据 讲搜索关键字&#xff0c;以红色字体展示 ES介绍 ES是基于java语言并且基于Lucene编写的搜索引擎框架&#x…

【论文解读】ReAct:从思考脱离行动, 到行动反馈思考

认识从实践开始&#xff0c;经过实践得到了理论的认识&#xff0c;还须再回到实践去。 ——《实践论》,毛泽东 1st author: About – Shunyu Yao – 姚顺雨 paper [2210.03629] ReAct: Synergizing Reasoning and Acting in Language ModelsReAct: Synergizing Reasoning and…

AXURE-动态面板

1.概述 动态面板原件&#xff0c;容器类的原件一个动态面板可以有多种状态 同一时刻只展示一个状态 默认展示第一个状态 主要用于多个状态的切换可拖动 1.1 创建 将原件库中的“动态面板”原件&#xff0c;直接拖动到工作区中&#xff0c;创建空白动态面板将页面中原件选中…

AI地面垃圾检测算法智能分析网关V4打造城市/公园/校园等场景环保卫生监管解决方案

一、方案背景​ 在城市管理与场所运营中&#xff0c;地面垃圾的及时清理是环境品质的重要指标。传统人工巡检效率低、成本高&#xff0c;存在明显滞后性&#xff0c;难以满足现代环境管理需求。随着人工智能与计算机视觉技术发展&#xff0c;智能化管理成为趋势。AI智能分析网…

帝国CMS QQ登录插件最新版 获取QQ头像和QQ昵称

帝国CMS QQ登录插件最新版 获取QQ头像和QQ昵称 QQ一键登录&#xff0c;免邮箱 随机密码 获取QQ头像 获取QQ昵称 直接下载上传到帝国CMS&#xff1a;/e/memberconnect UTF-8版本 GBK的自己转换 QQ登录后的默认密码 是随机的邮箱账号前面的随机6个字母和数字 【下图字母数…

Kafka 的优势是什么?

Kafka 作为分布式流处理平台的核心组件&#xff0c;其设计哲学围绕高吞吐、低延迟、高可扩展性展开&#xff0c;在实时数据管道和大数据生态中具有不可替代的地位。 一、超高吞吐量与低延迟 1. 磁盘顺序 I/O 优化 突破磁盘瓶颈&#xff1a;Kafka 将消息持久化到磁盘&#xff…

低谷才是出成绩

有些朋友说我现在是高光&#xff0c;其实不然 之所以有这样的误解&#xff0c;是我个人的简历上是不断增加名誉。这点属实&#xff0c;看看我的词条&#xff1a;https://www.modb.pro/wiki/4245的确如此。但是其实也有误会。事情可以反过来看。因为&#xff0c;如果做技术的在…

Bash shell四则运算

文章目录 四则运算1. ‌expr 命令‌2. ‌$(( )) 表达式&#xff08;推荐&#xff09;‌3. ‌$[ ] 表达式&#xff08;已弃用&#xff09;‌4. ‌let 命令‌小数运算i 和 i 区别 四则运算 算术运算&#xff1a; - * / %&#xff08;取模&#xff0c;求余数&#xff09; Bash sh…

Windows + CPU也能跑时序预测:TSLib框架快速上手与踩坑避雷

在时序预测领域,选择一个成熟的框架往往能让我们事半功倍。最近接手了一个紧急的时序预测项目,经过一番调研后,我选择了TSLib(Time-Series-Library)这个优秀的开源框架来快速搭建整个预测流程。 由于开发环境限制在Windows平台且没有GPU支持,整个部署过程还是遇到了一些…

多模态大语言模型arxiv论文略读(105)

UnifiedMLLM: Enabling Unified Representation for Multi-modal Multi-tasks With Large Language Model ➡️ 论文标题&#xff1a;UnifiedMLLM: Enabling Unified Representation for Multi-modal Multi-tasks With Large Language Model ➡️ 论文作者&#xff1a;Zhaowei…

set map数据结构

#include <set> #include <iostream> using namespace std;int main() {// 设置控制台输出编码为UTF-8system("chcp 65001");set<int> s1; // 创建一个整数集合// 插入元素s1.insert(5);s1.insert(3);s1.insert(7);s1.insert(1);s1.insert(9);//默…

云开发实现新闻列表小程序

新闻列表小程序需要两个页面即新闻列表页及新闻发布页&#xff0c;这两个页面需要以tabBar的形式展示&#xff0c;单击tab图标可以进行页面相互切换。本项目中是分别在cloudfunctions中创建一个名为“submit”的云函数&#xff0c;功能为向小程序端发布信息&#xff0c;在pages…

《C++ Core Guidelines解析》深入理解C++

前言 在计算机编程领域&#xff0c;C一直以其高效、灵活和强大而闻名。然而&#xff0c;C作为一种复杂的编程语言&#xff0c;如果没有正确的理解和使用&#xff0c;很容易导致软件质量的下降和性能问题的出现。幸运的是&#xff0c;一本名为《CCore Guidelines解析》的书籍为…