Linux基本指令和操作(3)

目录

一. date指令 -- 显示时间

二. cal指令 -- 日历打印指令

三. find指令 -- 查找文件

四. grep指令 -- 行过滤指令

五. zip/unzip指令 -- 压缩和解压缩

六. tar指令 -- 解压/打包 或 查看压缩包内文件

七. bc指令 -- 计算器

八. uname指令 -- 获取电脑和操作系统相关信息

九. Tab、Ctrl+C、Ctrl+r和Ctrl+d

十. shutdown指令 -- 关机


一. date指令 -- 显示时间

实际项目中写代码,日志很重要,这有助于定位异常发生时间以及记录程序运行过程等。程序每运行到一个关键时刻,都要打日志。

日志内容主要包括:时间、日志等级、日志具体信息以及其他与业务相关的信息。

date指令的使用:

  • 指定格式显示时间:date +%Y:%m:%d -- 年:月:日
  • date使用方法:date 选项 格式
[zhangHHH@VM-8-5-centos ~]$ date +%Y:%m:%d
2023:05:14
[zhangHHH@VM-8-5-centos ~]$ date +%Y_%m_%d
2023_05_14
[zhangHHH@VM-8-5-centos ~]$ date +%Y:%m:%d_%H:%M:%S
2023:05:14_19:54:41

时间戳:为了满足不同时区之间进行通讯的时间记录问题,引入时间戳来对各地区的计算机时间进行统一。时间戳指从格林威治时间1970年1月1日午夜到现在所经历的秒数。

我们在自己的Linux系统下使用指令将时间戳转换为具体时间时,会转换为本地区的时间显示。

  • 时间 -> 时间戳:date +%s
  • 时间戳 -> 时间:date -d @时间戳
[zhangHHH@VM-8-5-centos ~]$ date +%s
1684065566
[zhangHHH@VM-8-5-centos ~]$ date -d @1684065566
Sun May 14 19:59:26 CST 2023
[zhangHHH@VM-8-5-centos ~]$ date -d @168406
Sat Jan  3 06:46:46 CST 1970
[zhangHHH@VM-8-5-centos ~]$ date -d @5
Thu Jan  1 08:00:05 CST 1970
[zhangHHH@VM-8-5-centos ~]$ date -d @0

二. cal指令 -- 日历打印指令

  • 语法:cal [参数][月份][年份]
  • 打印指定年份/月份的日历

-3:当前月、前一个月和后一个月的日历。

[zhangHHH@VM-8-5-centos ~]$ cal 
      May 2023      
Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

[zhangHHH@VM-8-5-centos ~]$ cal 2 2023
    February 2023   
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28

[zhangHHH@VM-8-5-centos ~]$ cal -3
     April 2023             May 2023              June 2023     
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
                   1      1  2  3  4  5  6               1  2  3
 2  3  4  5  6  7  8   7  8  9 10 11 12 13   4  5  6  7  8  9 10
 9 10 11 12 13 14 15  14 15 16 17 18 19 20  11 12 13 14 15 16 17
16 17 18 19 20 21 22  21 22 23 24 25 26 27  18 19 20 21 22 23 24
23 24 25 26 27 28 29  28 29 30 31           25 26 27 28 29 30   
30  

三. find指令 -- 查找文件

find的选项极多,但最常使用的就是在指定路径下按照文件名查找文件,语法为

  • find 路径名 -name 文件名
[zhangHHH@VM-8-5-centos ~]$ ls ./dir1
test1.txt  test2.txt
[zhangHHH@VM-8-5-centos ~]$ find ./dir1/ -name test1.txt
./dir1/test1.txt
[zhangHHH@VM-8-5-centos ~]$ find ./dir1/ -name test2.txt
./dir1/test2.txt

注意:如果普通用户在home以外查找文件,那么大概率会报错,而root用户一般不会。报错信息:Permission denied -- 禁止访问。

  • which 指令 -- 在指令路径下(user/bin/)下搜索指令
  • whereis 指令 -- 搜索更多与指令相关的文件
[zhangHHH@VM-8-5-centos ~]$ which ls
alias ls='ls --color=auto'
	/usr/bin/ls
[zhangHHH@VM-8-5-centos ~]$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

四. grep指令 -- 行过滤指令

  • 语法:grep [选项] '字符串' 文件
  • 功能:在文件中搜索包含特定字符串(或不包含)的行
  • 选项:-i:忽略字母大小写,-n:打印行号,-v:反向选择(不包含特定字符串)
[zhangHHH@VM-8-5-centos ~]$ cat test.txt
hello Linux
hello Linux
hello linux
hello LINUX

hello world
hello World
hello WORLD

[zhangHHH@VM-8-5-centos ~]$ grep 'Linux' test.txt
hello Linux
hello Linux
[zhangHHH@VM-8-5-centos ~]$ grep -i 'Linux' test.txt
hello Linux
hello Linux
hello linux
hello LINUX
[zhangHHH@VM-8-5-centos ~]$ grep -n 'world' test.txt
6:hello world
[zhangHHH@VM-8-5-centos ~]$ grep -vn 'world' test.txt
1:hello Linux
2:hello Linux
3:hello linux
4:hello LINUX
5:
7:hello World
8:hello WORLD
9:
[zhangHHH@VM-8-5-centos ~]$
  • grep -r ‘字符串’ 目录 -- 在目录下递归查找不同文件的指定内容
  • cat 文件名 | grep '字符串'  --  通过管道打印 
  • grep后面可以跟多个文件名

五. zip/unzip指令 -- 压缩和解压缩

打包和压缩的概念:打包是指将多个文件合为一个文件,压缩是指通过算法将文件进行合理摆放,使其占用更少的空间。

为什么要打包和压缩:(1)能被打包的一定是多个文件构成的整体,对整体进行传输,不会造成文件的部分缺失。(2)让体积变小,减少传输时间。

  • zip 前缀.zip 文件或目录名 -- 文件压缩
  • zip -r 前缀.zip 目录/文件 -- 递归压缩,不加-r无法实现将一个目录下面的所有文件递归压缩

-r为递归压缩选项。

dir1  test1.txt  test2.cpp  test.cpp  test.txt
[zhangHHH@VM-8-5-centos ~]$ zip -r d.zip dir1 test1.txt test2.cpp
  adding: dir1/ (stored 0%)
  adding: dir1/test1.txt (deflated 21%)
  adding: dir1/test2.txt (deflated 7%)
  adding: test1.txt (stored 0%)
  adding: test2.cpp (stored 0%)
[zhangHHH@VM-8-5-centos ~]$ ls
dir1  d.zip  test1.txt  test2.cpp  test.cpp  test.txt
[zhangHHH@VM-8-5-centos ~]$ 

  • unzip 前缀.zip -- 解压缩到当前路径
  • unzip 前缀.zip -d 指定路径 -- 解压到指定路径(-d)

-d为指定解压缩路径选项。

[zhangHHH@VM-8-5-centos ~]$ ls
dir1  d.zip  test1.txt  test2.cpp  test.cpp  test.txt
[zhangHHH@VM-8-5-centos ~]$ unzip d.zip -d ./dir1
Archive:  d.zip
  inflating: ./dir1/dir1/test1.txt   
  inflating: ./dir1/dir1/test2.txt   
 extracting: ./dir1/test1.txt        
 extracting: ./dir1/test2.cpp        
[zhangHHH@VM-8-5-centos ~]$ ls ./dir1
dir1  test1.txt  test2.cpp
[zhangHHH@VM-8-5-centos ~]$ 

六. tar指令 -- 解压/打包 或 查看压缩包内文件

  • tar czf XXX.tgz 文件名 -- 打包
  • tar tzf XXX.tgz -- 不解压压缩包,预览压缩包里面的内容
  • tar xzf XXX.tgz -- 解压
  • tar xzf XXX.tgz -C 路径 -- 解压到指定路径

-C选项为解压到指定路径。

.tar为打包后缀,.gz为压缩后缀,.tgz等价于.tar.gz

[zhangHHH@VM-8-5-centos dir2]$ ls
dir1  dir3  test1.c  test2.c
[zhangHHH@VM-8-5-centos dir2]$ tar czf d.tgz dir1 test1.c test2.c
[zhangHHH@VM-8-5-centos dir2]$ ls
dir1  dir3  d.tgz  test1.c  test2.c
[zhangHHH@VM-8-5-centos dir2]$ tar tzf d.tgz
dir1/
dir1/test1.txt
dir1/test2.txt
test1.c
test2.c
[zhangHHH@VM-8-5-centos dir2]$ tar xzf d.tgz -C ./dir3
[zhangHHH@VM-8-5-centos dir2]$ ls ./dir3
dir1  test1.c  test2.c
[zhangHHH@VM-8-5-centos dir2]$ 

七. bc指令 -- 计算器

  • 可以支持浮点数运算,可以分辨优先级。
  • 输入quit退出计算器
  • 可以通过管道计算,如echo "1+2+3" | bc
[zhangHHH@VM-8-5-centos dir2]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
1+2+3
6
(1+3)*2
8
1.23+2.13
3.36
quit
[zhangHHH@VM-8-5-centos dir2]$ echo "1+2*4" | bc
9
[zhangHHH@VM-8-5-centos dir2]$ 

八. uname指令 -- 获取电脑和操作系统相关信息

  • uname -- 获取当前系统
  • uname -a -- 获取系统所有信息
  • uname -r -- 查看当前系统的体系结构(内核版本、系统、32/64位)
[zhangHHH@VM-8-5-centos dir2]$ uname
Linux
[zhangHHH@VM-8-5-centos dir2]$ uname -a
Linux VM-8-5-centos 3.10.0-1160.88.1.el7.x86_64 #1 SMP Tue Mar 7 15:41:52 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
[zhangHHH@VM-8-5-centos dir2]$ uname -r
3.10.0-1160.88.1.el7.x86_64
[zhangHHH@VM-8-5-centos dir2]$ 
图8.1 输出内核信息解读

九. Tab、Ctrl+C、Ctrl+r和Ctrl+d

  • Tab:单击补全指令,双击输出以特定字符串开头的指令
  • ctrl+r:搜索历史指令
  • ctrl+c:强制进程终止
  • ctrl+d:退出当前用户

history:打印历史上的指令(默认1000条)。Linux会对进行执行过的,特定数量的指令进行记录,一般记录最近执行的1000条指令。

图9.1 history指令输出历史上执行的指令

十. shutdown指令 -- 关机

注意:运行在Linux云服务器上的操作系统,永远不关机。

  • shutdown -h:立即关机
  • shutdown -r:立即重新启动
  • shutdown -t 秒数:指定多少秒后关机

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA - 字符串工具类StringBuilder和StringBuffer

文章目录 目录 文章目录 前言 二.常用方法演示 1.append()用于将指定的字符串添加到当前StringBuilder对象的末尾 2.delete():用于删除StringBuilder对象中指定位置的字符。 3.insert():用于在指定位置插入指定字符串。 4.replace():用于替换…

中睿天下成为国家信息安全漏洞库(CNNVD)一级技术支撑单位

近日,中国信息安全测评中心公布2023年度国家信息安全漏洞库技术支撑单位名单,中睿天下荣获中国信息安全测评中心颁发的“国家信息安全漏洞库(CNNVD)技术支撑单位等级(一级)证书”,成为该领域最高…

提高运算放大器输出功率

运算放大器的串联:如何同时实现高精度和高输出功率 复合放大器 复合放大器由两个单独放大器组合而成,分别具有不同的特性。 图1所示就是这种结构。放大器1为低噪声精密放大器ADA4091-2。 在本例中,放大器2为AD8397,具有高输出功率&#xff…

【游戏逆向】某某游戏邮件遍历分析

邮件常常用来远程交易,这样可以节省交易时间,并且降低数据的需求。邮件遍历的分析,一般是以邮件名字,邮件数量等为突破口。不过有些游戏的邮件名字并不存放在邮件对象中,或者在对象中也不会改变邮件的本地显示&#xf…

全网独家首发最牛最全面的JMeter使用BeanShell断言

BeanShell简介 BeanShell是使用Java语法的一套脚本语言,在JMeter的多种组件中都有BeanShell的身影,如: 定时器:BeanShell Timer前置处理器:BeanShell PreProcessor采样器:BeanShell Sampler后置处理器&am…

内网渗透(七十二)之域权限维持之伪造域控

伪造域控 2022年1月10日,国外安全研究员Kaido发文称发现了一种新的伪造域控方式,安全研究员只需要新建一个机器账户,然后修改机器账户的UserAccountControl属性为8192。活动目录就会认为这个机器账户就是域控,然后就可以使用这个新建的机器账户进行DCSync操作了。由于修改…

(2020)End-to-end Neural Coreference Resolution论文笔记

2020End-to-end Neural Coreference Resolution论文笔记 Abstract1 Introduction2 Related Work3 Task4 Model4.1 Scoring Architecture4.2 Span Representations5 Inference6 Learning7 Experiments7.1 HyperparametersWord representationsHidden dimensionsFeature encoding…

Maven基础使用

Maven 学习目标 理解Maven的用途掌握Maven的基本操作掌握Maven如何创建Web项目 Maven是什么 面临问题 在学习Maven之前,我们先来看一下我们现在做的项目都有哪些问题。假设你现在做了一个crm的系统,项目中肯定要用到一些jar包,比如说myb…

分布式锁解决方案_基于Redisson实现的分布式锁实现

Redisson介绍: https://github.com/redisson/redisson/wiki Redisson - 是一个高级的分布式协调Redis客服端,能帮助用户在分布式环境中轻松实现一些Java的对象,Redisson、Jedis、Lettuce是三个不同的操作 Redis 的客户端,Jedis、…

element-plus 问题

对话框内部下拉框会在左上角 在对话框内打开下拉框后点击关闭按钮,尚未关闭的下拉框会在左上角出现(或闪现) 解决方案: popper-append-to-body 此方法失效,改用 :teleported"false" teleported:…

思维中的世界

⾝体的空间,以⾏为为导向的空间 感官⼩矮⼈ 当我们观察特定的事物时,⼤脑的相应区域就会被“点亮”,并变得 活跃起来。 ⾝体映射到⼤脑上,映射到“感官⼩矮⼈”上, 即从左⽿延伸,过⼤脑顶⾻,…

心法利器[84] | 最近面试小结

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。 2022年新一版的文章合集已经发布,累计已经60w字了,获取方式看这里&…

RT-Thread 2. GD32在 RT-Thread Nano上添加控制台与 FinSH

本篇文档分为两部分: 第一部分是添加 UART 控制台(实现打印):用来向控制台对接的终端输出打印信息;该部分只需要实现两个函数,串口初始化和系统输出函数,即可完成 UART 控制台打印功能。 第二部…

全景 I 0基础学习VR全景制作,第26章热点功能-文档

本期为大家带来蛙色VR平台,热点功能—文档功能操作。 功能位置示意 热点,指在全景作品中添加各种类型图标的按钮,引导用户通过按钮产生更多的交互,增加用户的多元化体验。 文档热点,即点击热点后会嵌入式弹出所选文档…

基于Java+SpringMVC+vue+element实现前后端分离校园失物招领系统详细设计

基于JavaSpringMVCvueelement实现前后端分离校园失物招领系统详细设计 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获…

WPF MaterialDesign 初学项目实战(3)动态侧边栏

其他文章 WPF MaterialDesign 初学项目实战(0):github 项目Demo运行 WPF MaterialDesign 初学项目实战(1)首页搭建 WPF MaterialDesign 初学项目实战(2)首页导航栏样式 创建侧边栏实体类 新建MenuBar文件…

基于MWORKS的电动汽车电平衡分析

1 引言 随着电动汽车的快速发展、电池技术的进步和智能电力管理系统的应用,电动汽车电平衡已经成为了电动汽车技术研究中的重要问题之一。 电动汽车电平衡是指车辆发电机、蓄电池、整车用电器在一定时间内的电能供给与消耗达到平衡状态。如果车辆电能产生与消耗无法…

国产游戏引擎,竟然用来搞民航

​本文源自量子位 | 公众号 QbitAI 只是给飞行员做个“装备”,竟然突破了国内民用航空领域的一大技术难题?! 这是一群游戏技术开发者的真实经历。 他们用自研游戏引擎开发了一个飞行模拟软件,能够第一视角模拟飞行员起飞、着陆…

mysql 分组语句测试

建表 建表语句: CREATE TABLE student( id int not null, name char(12), sex char(1) ); 预置数据 insert into student values(1, wh, 1); insert into student values(2, wh1, 0); insert into student values(3, zyx, 0); commit; 增加字段 alt…

Linux -- 进程信号

文章目录 1. 信号量1.1 进程互斥概念1.2 认识信号量 2. 信号入门2.1 信号概念2.2 见一见2.3 signal()系统调用2.4 宏定义信号 3. 信号产生方式3.1 键盘产生信号3.2 系统调用产生信号3.3 软件条件产生信号3.4 硬件异常产生信号3.5 Core dump 4. 阻塞信号4.1 相关概念4.2 信号在内…