Linux基本指令和操作(3)

news2024/11/25 20:41:24

目录

一. 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 秒数:指定多少秒后关机

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

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

相关文章

webserver|4.23-4.24 TCP状态转换、半关闭、端口复用

4.23 TCP状态转换 四次挥手: 另一种状态图: 红色实线:客户端 绿色虚线:服务端状态转变 4.24 半关闭、端口复用 半关闭 基本就是一边closed,另一边还没有closed 一边一旦closed之后就不能再向另一方传数据(A…

异常检测专栏(三)传统的异常检测算法——上

前言 在上一篇推文中,我们简要介绍了异常检测常用的几种数据集如ImageNet、CIFAR10/CIFAR100、MNIST等。接下来,我们将基于传统的异常检测算法分为上、下两部分,逐一介绍不同类别的方法。 本教程禁止转载。同时,本教程来自知识星球…

matlab将RGB图像在HSI空间去噪

思路与代码 RGB 转换为 HSI 的计算步骤如下: 首先归一化三通道值 : r R R G B r \frac{R}{RGB} rRGBR​ g G R G B g \frac{G}{RGB} gRGBG​ b B R G B b \frac{B}{RGB} bRGBB​ 接下来,计算 HSI 图像的亮度 I I I&#xf…

(转载)从0开始学matlab(第3天)—子数组

你可以选择和使用一个 MATLAB 函数的子集,好像他们是独立的数组一样。在数组名后面加括号,括号里面是所有要选择的元素的下标,这样就能选择这个函数的子集了。例如,假设定义了一个数组 arr1 如下 arr1[1.1 -2.2 3.3 -4.4 5.5] 那…

yolov5 实例分割 jason标注格式转换 训练自己的数据集

目录 一、coco128-seg数据集分析 1、配置文件 coco128-seg.yaml 2、coco128-seg数据集 二、自己用anylabeling标注获得的json文件 三、json文件转coco128-seg格式 四、实例分割训练 1、修改数据配置文件 coco128-seg.yaml 2、训练 一、coco128-seg数据集分析 这个博客中有…

5。STM32裸机开发(3)

嵌入式软件开发学习过程记录,本部分结合本人的学习经验撰写,系统描述各类基础例程的程序撰写逻辑。构建裸机开发的思维,为RTOS做铺垫(本部分基于库函数版实现),如有不足之处,敬请批评指正。 &…

【探索SpringCloud】服务发现

前言 今天,我们来聊聊SpringCloud服务发现。主要有如下几个议题: 一、服务发现的概念与方案;二、SpringCloud是如何与各个服务注册厂商进行集成的。 服务发现 在微服务架构中,我们不可避免的需要通过服务间的调用来完成系统功能…

Fourier分析入门——第1章——数学预备知识

第 1 章 学习Fourier分析的数学预备知识 目录 第 1 章 学习Fourier分析的数学预备知识 1.1 引言 1.2 几何和代数的一些相关概念的回顾 1.2.1 标量运算(scalar arithmetic) 1.2.2 向量运算(vector arithmetic) 1.2.3 向量乘法(vector multiplication) 1.2.4 向量长度 …

设计模式(java)-观察者模式

1. 简介 观察者模式,行为型设计模式。观察者模式在实际项目实践中,是一种使用较频繁的设计模式,它主要解决的是信息同步的问题,当多个对象需要从同一个主题中得到自身所需要的信息或状态,并通过这些信息或状态做出相应…

以太网外设ETH

1. 概述 近几年,项目需要,在多款单片机上使用了以太网外设。 本文为阶段知识整理,查缺补漏,方便以后再次遇到相关任务时,可以游刃有余的完成工作。 1.1 修改时间 2023年5月6日创建本文。包含STM32的ETH外设。2023年…

利用CNN对车牌进行智能识别(python代码,解压缩后直接运行)

1.代码流程 该段代码主要利用卷积神经网络(CNN)来识别车牌。下面是代码的主要流程: 导入所需的库和模块,包括matplotlib、numpy、cv2、tensorflow等。 加载用于检测车牌的级联分类器(cascade classifier)…

可见光遥感目标检测(一)任务概要介绍

前言 本篇开始对遥感图像的目标检测进行介绍,介绍了其目标前景、数据集以及评价指标。 本教程禁止转载。同时,本教程来自知识星球【CV技术指南】更多技术教程,可加入星球学习。 Transformer、目标检测、语义分割交流群 欢迎关注公众号CV技…

机器学习13(正则化)

文章目录 简介正则化经验风险和结构风险过拟合正则化建模策略 逻辑回归逻辑回归评估器 练习评估器训练与过拟合实验评估器的手动调参 简介 这一节详细探讨关于正则化的相关内容,并就 sklearn 中逻辑回归(评估器)的参数进行详细解释由于 skle…

javaweb项目实战之myBlog

项目简介 技术栈: Java Mysql Html Ajax Css JS Json 项目说明 :项目使用maven创建,使用MVC架构模式 表示层:通俗讲就是展现给用户的界面和控制器层Servlet,接受请求、封装数据、调用业务 逻辑层,响…

libevent高并发网络编程 - 05_libevent实现http客户端

文章目录 1 http客户端相关的APIevhttp_uri_parse()evhttp_uri_get_scheme()evhttp_uri_get_port()evhttp_uri_get_host()evhttp_uri_get_path()evhttp_uri_get_query()evhttp_connection_base_bufferevent_new()evhttp_request_new()evhttp_make_request()evhttp_request_get_…

刷题刷题,开心

一先来每日一题 在一个仓库里,有一排条形码,其中第 i 个条形码为 barcodes[i]。 请你重新排列这些条形码,使其中任意两个相邻的条形码不能相等。 你可以返回任何满足该要求的答案,此题保证存在答案。 示例 1: 输入&…

基于html+css图展示59

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

Prompt learning 教学[最终篇]:Chatgpt使用场景推荐、优秀学习资料推荐、AI工具推荐

Prompt learning 教学[最终篇]:Chatgpt使用场景推荐、优秀学习资料推荐、AI工具推荐 1.chatgpt使用场景推荐 各位应该在各种平台看到不少可以尝试使用的场景,我这里仅收录: 有意思的场景:一般比较垂直或者小众,或者出…

CobaltStrike项目实战

环境介绍 模拟内网有三台机器:WEB、PC和DC。 WEB服务器有两个网络适配器,适配器1处于NAT模式用于连接外网,适配器2用于内网。 PC和WEB服务器一样,有两个适配器,能够同时访问外网和内网;DC作为域控制器&…

神经网络的训练过程、常见的训练算法、如何避免过拟合

神经网络的训练是深度学习中的核心问题之一。神经网络的训练过程是指通过输入训练数据,不断调整神经网络的参数,使其输出结果更加接近于实际值的过程。本文将介绍神经网络的训练过程、常见的训练算法以及如何避免过拟合等问题。 神经网络的训练过程 神…