Linux常见指令-2

news2025/1/10 20:37:58

我们本期继续学习Linux基本指令,没有看过第一期的小伙伴建议先看第一期

(4条消息) Linux常见指令-1_KLZUQ的博客-CSDN博客

目录

15.时间相关指令

16.cal指令

17.find指令

18.grep指令

19.zip/unzip指令

20.tar指令

21.bc指令

22.uname –r指令

22.重要的几个热键

24.关机

拓展


 我们之前都使用root账号,之后我们都将使用普通用户账号,因为我们未来使用的是普通用户账号

我在这里创建了一个新的目录,后面的操作在里面演示

15.时间相关指令

date 显示
date 指定格式显示时间: date +%Y:%m:%d
date 用法: date [OPTION]... [+FORMAT]
1. 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
%H : 小时 (00..23)
%M : 分钟 (00..59)
%S : (00..61)
%X : 相当于 %H:%M:%S
%d : (01..31)
%m : 月份 (01..12)
%Y : 完整年份 (0000..9999)
%F : 相当于 %Y-%m-%d
2. 在设定时间方面
date -s // 设置当前时间,只有 root 权限才能设置,其他只能查看。
date -s 20080523 // 设置成 20080523 ,这样会把具体时间设置成空 00:00:00
date -s 01:01:01 // 设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ // 这样可以设置全部时间
date -s “01:01:01 20080523″ // 这样可以设置全部时间
date -s “2008-05-23 01:01:01″ // 这样可以设置全部时间
date -s “20080523 01:01:01″ // 这样可以设置全部时间
3. 时间戳
时间 -> 时间戳: date +%s
时间戳 -> 时间: date -d@1508749502
Unix 时间戳(英文为 Unix epoch, Unix time, POSIX time Unix timestamp )是从 1970 1 1 日( UTC/GMT
午夜)开始所经过的秒数,不考虑闰秒。

时间在计算机这块是很重要的,我们以后是要写日志的,我们可以根据问题出现的时间,来推段这个问题产生的原因,是由人为操作机器导致的,还是别的原因

比如我们写了一个服务器挂了,我们要看看是什么时候挂掉的,我们要根据挂掉的时长来评估问题的严重性

程序运行到每一个关键时刻,都要自己打日志,日志里会包含时间,日志等级,日志信息,还有一些其他的信息,日志后会以行为单位,写入一个文件中,这个文件就被称为日志文件

在Linux中显示时间就使用date

但是这个风格我们看起来很别扭

我们可以根据需求来提取并指定格式 

这里是不可以使用空格的,否则会变为两个参数 ,我们使用_即可

我们用date +%s ,会显示出一长串数字,而且我们连续多次打印发现他会自增

这个就是时间戳,简单来说,时间戳就是为了在互联网上统一时间,而规定的一个标准,是从1970年1月1日累计秒数,我们在日志中如果使用时间戳的话,因为是单调自增,我们在查找问题时就可以非常容易确认范围,从而进行判断

不过时间戳我们看起来非常难受,我们可以把它转换为我们使用的格式吗?

我们可以用-d,然后@,后跟时间戳即可,这里的格式是系统自带的,我们可以根据需求修改

我们加上上面的格式即可 

我们可以把时间戳减少两位,或者直接输入0,都可以转换为对应时间

但是我们这里发现,0的时间戳并不是零时0分0秒,而是8时,这是因为这个时间规定的地方在欧洲,和我们是有时差的

我们增加它发现,确实是秒数 

既然是递增的,又是在计算机里,总一天这个时间戳其实是会溢出的,这个溢出其实是很严重的,比如我们转账,买车票等等,转账时间变成2000年前,车票的日期变成几百年前,对于社会影响其实还是很大的,在2038年,时间戳就会溢出,不过这是未来的问题,到时候我们也会解决这个问题

16.cal指令

cal 命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。 阳历 又名 太阳历” ,系以地球绕行太阳一周为一年,为西方各国所通用,故又名 “西
命令格式 cal [ 参数 ][ 月份 ][ 年份 ]
功能 : 用于查看日历等时间信息,如只有一个参数,则表示年份 (1-9999) ,如有两个参数,则表示月份和年份
常用选项
-3  显示系统前一个月,当前月,下一个月的月历
-j   显示在当年中的第几天(一年日期按天算,从 1 1 号算起,默认显示当前月在一年中的天数)
-y   显示当前年份的日历

 我们可以用cal打印出当前月的日历,cal -3打印出前一个月,本月和下一个月总共三个月的日历,也可以cal 2023,打印出2023年的所有日历

17.find指令

Linux fifind 命令在目录结构中搜索文件,并执行指定的操作。
Linux fifind 命令提供了相当多的查找条件,功能很强大。由于 fifind 具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
即使系统中含有网络文件系统 ( NFS) fifind 命令在该文件系统中同样有效,只你具有相应的权限。
在运行一个非常消耗资源的 fifind 命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间( 这里是指 30G 字节以上的文件系统 )
语法: fifind pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项:
-name   按照文件名查找文件

find指令选项非常多,我们只讲一个选项

find后跟目录,这里~是家目录的意思,然后跟-name,后接我们要查找的文件,比如上面我们就有一个test.c文件,我们就使用find找到了它所在的路径

 

我们也可以*.c查找所有的.c文件

还可以找到我们的指令

 另外,如果我们此时的账号是普通用户,在搜索某些目录时,有可能出现Permission denied的报错,这是权限的问题,我们后续讲解

总结一下,find可以在指定路径下进行文件搜索,是真的在磁盘文件中进行搜索

另外,which也可以搜索 ,只不过which是在指令所在的路径下(/usr/bin)搜索对应的指令文件

 whereis一般是在系统路径下,显示出包含我们输入的内容

比如我们输入了ls,他就会显示包含ls的文件

比如这里我们查找了stdio.h

 whereis是介于which和find之间,在系统特定的路径下,既可以找到可执行程序,又可以找到手册,安装包,压缩包之类

18.grep指令

语法: grep [ 选项 ] 搜寻字符串文件
功能: 在文件中搜索字符串,将找到的行打印出来
常用选项:
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 ' 搜寻字符串 ' 内容的那一行

 

我们可以使用这条语句输出10000条hello linux

 我们把这1w条hello linux重定向到一个文件里,构造一个大文件

此时我们就有了一个大文件

 

我们可以使用head和tail来查看文件的前面几行或者结尾几行,但是这个文件太大了,我们想要查找中间行时,如果使用less的话需要翻好久,比如这里我们想看有关9的行

这样就会把所有包含9的行打印出来

或者是999的

grep是行文本过滤工具 ,grep就是把我们的文件打开按行读取,如果该行没有我们需要的就丢弃,如果包含就显示打印

我们使用nano重新在该文件里写入内容

 

我们可以看到这里是按world进行子串匹配

我们还可以使用-v选项,此时会打印出不包含world的行

我们还可以使用-n选项来给打印出来的行显示编号,另外,如果' '里什么也没写,就会将所有行打印出来,比如上面的第二种

 

我们可以打印出abc,然后使用-i选项,i是忽略大小写的意思

而使用场景,我们可以和管道相结合

 我们可以先使用find查找文件所在位置,然后使用grep来查看想要的内容

 而且grep后不止可以跟一个文件,是可以跟多个文件的,比如我上面只有一个test.c,如果有多个,我们可以把多个路径写在grep后面,他会根据你的需求显示出你所需要的

我们可以使用-R选项,来直接在目录下把所有包含我们需要的内容显示出来

grep后续我们要使用它配合管道来查找程序,进程等等

19.zip/unzip指令

语法: zip 压缩文件 .zip 目录或文件
功能: 将目录或文件压缩成 zip 格式
常用选项:
-r 递 归处理,将指定目录下的所有文件和子目录一并处理
举例
test2 目录压缩: zip test2.zip test2/*
解压到 tmp 目录: unzip test2.zip -d /tmp

使用zip指令前要看看自己的Linux是否安装了zip,如果报错,我们要使用下面的语句进行安装(在root账号下)

yum install -y zip unzip

我们在传输文件时,经常会谈到打包和压缩这两个概念,打包就是把所有的东西装在一起,压缩就是把东西按照合理的顺序摆放,以节省空间

我们在网络上下载的很多东西都是打包压缩的,这是为什么呢?首先,能被打包压缩的,一定是一个整体,比如我们写了一个软件,这个软件有它所依赖的文件,环境等等,我们打包时要将这些全部打包,打包后就变成了一个文件,一个文件的优点就是不容易造成文件缺失,比如我们传输几千个文件,如果我们分开传输,最难受的是缺失一两个,我们首先要知道的是缺失的是哪一个,而我们打包成一个后就没有这些麻烦了。打包压缩的第二个特点是会使体积变小,现在的互联网网速比以前快多了,我们可以能没什么感觉,如果是以前,对打包压缩的要求非常高,如果体积太大,会带来两个问题,下载时间变长,存储空间变大,所以打包压缩可以使体积变小,下载时间变短,以前上网使用流量是很贵的

因为这些理由,就有了对应的打包压缩工具,Linux充当服务器时,也有各种网络应用场景,满足通讯要求

在Windows下,我们是可以看到压缩信息的

 在上面的详细信息里也能看到别的一些内容,大家有兴趣可以去看一看

我在这里创建了一个d1,其中file1.txt里hello world,其余是空文件

 我们下面来演示指令,我们打包整个d1目录

zip后跟我们打包后的名字,然后跟要打包的文件,执行后我们可以看到出现了d1.zip的文件 

我们把这个包移动到上级目录

然后我们把它解压,查看后发现只有一个单独的d1,里面是空的

原因是默认只会把d1当一个文件打包,所以我们解压后只有一个

要想打包所有内容,需要-r选项

然后我们再按照之前的步骤,移动,解压,查看,发现是全部都有的,我们再看看file1文件

发现也是有的,以上就是我们对一个目录的打包压缩以及解压等等

如果我们想要把d1和long.txt一起打包呢?

我们只需要在后续跟上需要打包的文件即可

 另外,我们平时在解压时,还会有解压到的选项,解压到我们指定的路径下

这里我们就把d1.zip解压到了test目录下,我们来看看是否解压成功

是解压成功的

20.tar指令

tar [-cxtzjvf]  文件与目录  ....
参数
-c  :建立一个压缩文件的参数指令 (create  的意思 )
-x  :解开一个压缩文件的参数指令!
-t  :查看  tarfifile  里面的文件!
-z  :是否同时具有  gzip  的属性?亦即是否需要用  gzip  压缩?
-j  :是否同时具有  bzip2  的属性?亦即是否需要用  bzip2  压缩?
-v  :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f  :使用档名,请留意,在  f  之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录

打包和压缩的方案有很多种

我们可以通过百度查询,Linux压缩包后缀,是有非常多的种类的

比如.gz,.bz2,.tar,.tar.gz,.tar.bz2,.tar.xz

我们不知道的对应解压命令都可以通过百度来查询

 c表示创建,我们打包后要变为新的文件,z表示要用zip方式压缩,f表示指明文档名称,也就是code.tar.gz,这里tar.gz可以简写为tgz

这里我们用t选项进行查看,不过此时我们并没有对文件解压,但是可以看到压缩包里有什么东西,就像我们在Windows下双击压缩包,预览里面的内容

我们使用x选项,对压缩包进行解压,是没有问题的

总结一下:

tar czf XXX 打包压缩

tar tzf XXX.tgz 预览

tar xzf XXX.tgz 解压解包

大家记住这三个即可,上面的tar是打包后缀,.gz是压缩后缀,简写为tgz

如果我们想要把他解压到别的路径下呢?

使用-C选项,后跟路径,这样就可以解压到指定路径下了

21.bc指令

bc 命令可以很方便的进行浮点运算

简单来说,就是计算器,quit是退出 

我们可以把它和管道结合使用

22.uname –r指令

语法 uname [ 选项
功能 uname 用来获取电脑和操作系统的相关信息。
补充说明 uname 可显示 linux 主机所用的操作系统的版本、硬件的名称等基本信息。
常用选项:
-a –all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

我们使用Linux时,想到当前的内核版本之类,就可以使用这条指令

 这里我们就使用了-a选项来详细显示

 x86_64是x64,x86是32位

在linux下我们可以使用free查内存,大家先了解一下,具体我们后续会讲

还可以查磁盘

还有查cpu之类的

lsmem也可以查内存,未来我们都会学习

22.重要的几个热键

[Tab] 按键 --- 具有『命令补全』和『档案补齐』的功能
[Ctrl]-c 按键 --- 让当前的程序『停掉』
[Ctrl]-d 按键 --- 通常代表着:『键盘输入结束 (End Of File, EOF End OfInput) 』的意思;另外,他也可以用来取代exit

 我们输入w,然后快速按两下tab键就可以显示出所有w开头的指令

如果是whic,我们按一下tab,它会自动补全指令,变为which

 补全后还会带上空格,其他的也是同理,所以我们在输入指令时,可以使用tab进行快速补全,从而提高我们写指令的速度

另外,我们还可以输入a,然后tab两下,看看以a开头的指令有哪些,b开头的等等

另外,如果我们什么也不输入tab两下,可能会没反应,也可能会帮你显示所有的指令

根据我们的系统不同,结果会不同

ctrl+c我们前面介绍过,是终止的意思,这里不再多说

我们再看ctrl+r

是历史命令搜索的意思

根据我们的输入,他会显示出我们历史输入的指令,比如这里我输入了fin,它显示出了我之前使用过的一条指令

Linux会将我们历史上最近的1000条命令进行保存,我们是可以进行检索的,在有时候我们懒的写命令时是可以这样玩的

既然Linux可以记录我们的命令,我们就是可以查看的,使用history即可

这里的330指令history就是查询历史记录 

下面来看ctrl+d,这是退出的意思,我们按的话会退出xshell

24.关机

语法 shutdown [ 选项 ] ** 常见选项: **
-h : 将系统的服务停掉后,立即关机。
-r : 在将系统的服务停掉之后就重新启动
-t sec -t 后面加秒数,亦即『过几秒后关机』的意思

 关机指令大家了解即可,我们的Linux操作系统(服务器)一般是永不关机的

拓展

◆ 安装和登录命令 login shutdown halt reboot install mount umount chsh exit last
◆ 文件处理命令: fifile mkdir grep dd fifind mv ls diffff cat ln
◆ 系统管理相关命令 df top free quota at lp adduser groupadd kill crontab
◆ 网络操作命令 ifconfifig ip ping netstat telnet ftp route rlogin rcp fifinger mail nslookup
◆ 系统安全相关命令: passwd su umask chgrp chmod chown chattr sudo ps who
◆ 其它命令: tar unzip gunzip unarj mtools man unendcode uudecode

以上为拓展内容,大家感兴趣的话去了解一下即可 

至此,我们的基本指令就全部完了,我们可能用到的其他指令我会在未来博客中进行穿插讲解

以上即为本期全部内容,希望大家可以有所收获

如有错误,还请指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/580767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PMP考试总结-2023-05-27

目录 前言 为什么会参加PMP考试? 那么什么是PMP? Plan 目标: 方式方法: 达标标准: Do 执行内容: Check 执行效果 计划的复盘 一、考试前及当天的计划: 二、整个备考计划&#xff…

如何正确地使用ES6提高我们的代码质量

前言 相信每个前端工程师,或者了解前端的人都知道ES6。它是js的一次巨变,它为我们开发js前端项目的时候带来了许多更好的去书写代码的方式。但是很多时候我们可能都没有过度地去关注优化代码这一块内容,哪怕有也只是注意到了一些比较大众化&…

Linux进程概念引入

文章目录 冯诺依曼体系操作系统概念设计目的定位系统调用和库函数的概念 进程概念描述进程PCBtask_struct内容分类 组织进程查看进程通过系统调用获取进程标识符通过系统调用创建进程 冯诺依曼体系 目前我们的计算机基本都是遵守冯诺依曼体系的,在冯诺依曼体系中&am…

[Kubernetes] - RabbitMQ学习

1.消息队列 消息: 在应用间传送的数据队列,先进先出 1.2. 作用 好处:解耦, 容错,削峰坏处:降低系统可用性,系统复杂度提高,一致性问题; RabbitMQ组成部分&#xff1a…

云上高校导航 导入 与 配置教程

开通 云开发 功能(首月免费,次月19.9),激活 云数据库、云存储和云函数 功能。 将 项目 文件夹下 最新版本的 文件夹下的 Cloud-based_University_Navigation 整个文件夹 复制到项目路径下(比如 D:\WeChatProjects&…

Zabbix Server Api批量添加Zabbix Agent

脚本或使用自动化工具来批量添加Zabbix Agent,从而减少手动操作和提高效率 使用API添加主机可以减少人为错误的发生。通过自动化和脚本,可以确保正确的配置被应用到每个主机上,避免了手动操作可能导致的配置错误。 使用前提条件 1、zabbix…

C919用了哪些人工智能(AI)技术?

#国产大飞机C919商业首飞#近日,C919在国人的期盼下终于迎来了首次商飞,机票已公开售卖。众所周知,C919是一款全新的、先进的大飞机,那你知道它采用了哪些新的人工智能(AI)技术吗?下面让我来为大…

[golang 微服务] 2. RPC架构介绍以及通过RPC实现微服务

一.简介 在上一节简单了解了微服务定义和优缺点之后,在使用微服务框架之前,需要首先了解一下RPC架构,通过RPC可以更形象了解微服务的工作流程 RPC的概念 RPC(Remote Procedure Call Protocol),是 远程过程调用的缩写,通俗的说就是…

【提示学习】HPT: Hierarchy-aware Prompt Tuning for Hierarchical Text Classification

论文信息 名称内容论文标题HPT: Hierarchy-aware Prompt Tuning for Hierarchical Text Classification论文地址https://arxiv.org/abs/2204.13413研究领域NLP, 文本分类, 提示学习, 层级标签文本分类提出模型HPT(Hierarchy-aware Prompt Tuning)来源EMNLP 2022源码https://gi…

SpringBoot AOP切面编程 使用案例

参考资料 Springboot AOP实现指定敏感字段数据加密 (数据加密篇 二)【SpringBoot-3】切面AOP实现权限校验:实例演示与注解全解【小家Spring】Spring AOP中Pointcut切入点表达式最全面使用介绍AOP编程过程中的Signature接口 本篇文章核心思想…

(详解)vue中实现主题切换的三种方式

目录 一、背景 二、实现思路 方法1:定义全局的CSS变量 方法2:切换已定义好的css文件 方法3:切换顶级CSS类名 (需使用css处理器,如sass、less等) 一、背景 在我们开发中我们会遇到像是需要切换程序风格、主题切换啦这种应用场景。 参考大佬…

经典智能合约案例之发红包

经典智能合约案例:发红包 角色分析:发红包的人和抢红包的人 功能分析: 发红包:发红包的功能,可以借助构造函数实现,核心是将ether打入合约; 抢红包:抢红包的功能,抢成…

Flume系列:案例-Flume 聚合拓扑(常见的日志收集结构)

目录 Apache Hadoop生态-目录汇总-持续更新 1:案例需求-实现聚合拓扑结构 3:实现步骤: 2.1:实现flume1.conf - sink端口4141 2.2:实现flume2.conf- sink端口4141 2.3:实现flume3.conf - 监听端口4141 …

32 KVM管理系统资源-管理虚拟内存热插

文章目录 32 KVM管理系统资源-管理虚拟内存热插32.1 概述32.2 约束限制32.3 操作步骤32.3.1 配置虚拟机XML32.3.2 热插并上线内存 32 KVM管理系统资源-管理虚拟内存热插 32.1 概述 在虚拟化场景下,虚拟机的内存、CPU、外部设备都是软件模拟呈现的,因此…

深度学习进阶篇-国内预训练模型[5]:ERINE、ERNIE 3.0、ERNIE-的设计思路、模型结构、应用场景等详解

【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化…

旧键盘打字 两数之和

💕"不要因为别人的成功而感到沮丧,你的时机会来,只要你继续努力、坚持不懈。"💕 🐼作者:不能再留遗憾了🐼 🎆专栏:Java学习🎆 🚗本文章主要内容:使用哈希表的思…

2023年江苏省中职网络安全Web渗透测试解析(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 1.访问地址http://靶机IP/web1,分析页面内容,获取flag值,Flag格式为flag{xxx}; 2.访问地址http://靶机IP/web2,访问登录页面。用户user01的密码为1-1000以内的数,获取用户user01的密码,将密码作为Flag进行提交,Flag格式为…

Java数据结构之第十四章、泛型进阶

补充复杂示例&#xff1a; public class MyArray<E extends Comparable<E>> { ... } 表明E必须是实现了Comparable接口的 泛型基础内容 目录 一、通配符 二、通配符上界 三、通配符下界 一、通配符 ? 用于在泛型的使用&#xff0c;即为通配符 示例&#xf…

如何使用 Python Nornir 实现基于 CLI 的网络自动化?

在现代网络环境中&#xff0c;网络自动化已成为管理和配置网络设备的重要工具。Python Nornir 是一个强大的自动化框架&#xff0c;它提供了一个简单而灵活的方式来执行网络自动化任务。本文将详细介绍如何使用 Python Nornir 实现基于 CLI 的网络自动化。 1. Python Nornir 概…

jacoco增量覆盖率平台开发

先聊聊做这个平台的意义&#xff0c;从项目管理角度来说&#xff0c;测试说项目测试完成&#xff0c;该如何证明呢&#xff1f;一般情况下我们进行验收时没什么问题就算完成了&#xff0c;但是实际上测试很多情况并没有考虑到。所以该平台可以反哺测试的测试用例&#xff0c;让…