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

【Linux】基本指令学习3

目录

  • 一、指令学习
    • 1.1 date 指令
    • 1.2 cal 指令
    • 1.3 find 指令 及 理论补充
    • 1.4 alias 指令
    • 1.5 which 指令
    • 1.6 whereis 指令
    • 1.7 grep 命令
    • 1.8 top 命令
    • 1.9 zip 和unzip 指令
    • 1.10 rzsz 指令
    • 1.11 tar 指令(重要)
    • 1.12 uname 指令
    • 1.13 重要热键
    • 1.14 shell命令及其运行原理

在这里插入图片描述
个人主页<—请点击
Linux专栏<—请点击

一、指令学习

1.1 date 指令

指定格式显示时间:date +%Y/%m/%d_%H:%M:%S,显示年月日时分秒
在这里插入图片描述
它就会获取显示当前时间,指令中间的连接符号/、_、:可以随便更改,但不能是空格。这个指令并不重要,重要的是下面的时间戳。

时间戳定义:记录从UTC时间1970年1月1日00:00:00(称为“Unix纪元”或“Unix Epoch”)开始所经过的秒数

获取时间戳:date +%s
在这里插入图片描述
它是在不断增长的一串数字,由时间戳获取当时的时间:date -d@时间戳
在这里插入图片描述
时间戳0所代表的时间:
在这里插入图片描述
上图中不是1970年零时零分零秒,是因为北京在东八区,这八个小时是时差。

时间戳对于Linux而言是很重要的,文件都有三个时间戳:修改时间、变更时间、访问时间。对于系统而言:时间戳为整个系统运行提供时序上下文,是运维和开发的绝对依据。

总结:时间戳将Linux系统中一切无序的事件(文件改动、系统日志、任务执行)转化为有序的、可查询的历史时间线,是系统可知、可控、可审计的根本前提。

1.2 cal 指令

cal可以用来查看日历,常用选项-3查看上个月、本月和下个月cal后接具体年份,显示那年所有月份。
在这里插入图片描述

1.3 find 指令 及 理论补充

作用:在指定目录层级中递归地搜索和定位符合用户指定条件的文件和目录。 find的选项有很多,我们学习一个常见的:find 路径 -name 名称
在这里插入图片描述
既然find可以指定文件和目录,那我一直搞不懂我们所学的这些指令本质到底是什么呀,我们可以以ls为例查询一下。
在这里插入图片描述
如上图,Linux一切皆文件,ls是一个可执行文件!

理论认识:所学习的大部分指令都是可执行文件!

那我们思考一下,我们之前编写的代码,最后不也编译成可执行文件了吗?这里我准备了如下图的代码,并将其编译成了可执行文件mycmd
在这里插入图片描述
现在我们单独运行mycmd
在这里插入图片描述
它说找不到对应的文件。ls是二进制文件,我们mycmd也是二进制文件,凭什么ls可以找到,而mycmd不能找到。虽然不懂,但是可以大胆猜一下,是不是系统在找命令时,默认在/usr/bin/路径下查找呢? 我们可以尝试将mycmd拷贝到该目录一份。

在这里插入图片描述
如上图,我们程序拷贝到/usr/bin/目录下了,我们再次尝试:
在这里插入图片描述
我们发现成功了,恭喜你刚刚将自己的命令安装到了系统上。 所以我们所写的可执行文件和我们所学习的系统的指令没有任何区别! 这也是为什么,我们写好的可执行文件系统找不到,因为系统默认会去/usr/bin/路径下查找。

理论认识:所学习的大部分指令都是Linux系统固定目录下的可执行文件!

最佳实践:不建议将你写的可执行文件拷贝到/usr/bin/路径下,会污染系统的命令池

1.4 alias 指令

作用:设置命令的别名。 语法:alias 别名='原命令 -选项 参数'

假设我们要将ls -al命令起名为hsl
在这里插入图片描述
如图,这样就可以起别名了,如果不想使用了,可以引号中的内容清空。
在这里插入图片描述
注意:别名是一种内存级的,重新登录就没有了。

最佳实践:除非对Linux系统特别熟悉,否则不要给命令起别名。

1.5 which 指令

功能:搜索系统指定的命令告诉你,当你输入一个命令时,系统实际会执行哪个位置的可执行文件。
在这里插入图片描述
如上图,会告诉你系统实际会执行哪个位置的可执行文件。并且从上图中,我们发现,系统对ls起了一个别名,那有什么作用呢?我们可以使用ls/usr/bin/ls进行辨识。
在这里插入图片描述
如上图,我们发现我们所使用的ls是原来lsls --color=auto的别名,所以我们可以得出结论:执行命令时会优先搜索别名,如果存在别名不会再/usr/bin/xxx查找。

1.6 whereis 指令

功能:用于找到程序的源文件、二进制文件或手册。
在这里插入图片描述

1.7 grep 命令

grep命令叫做行文本过滤工具,上期博客我们创建了一个有一万行的文件,我们可以拿它使用一下grep

假设我要过滤文本文件中包含999的行:
在这里插入图片描述
现在有如下需求,要求过滤出2000行到2100行中包含9的行,我们可以使用管道将我们所学的命令组合起来使用。
在这里插入图片描述
grep指令的常用选项:-i:忽略大小写的不同,所以大小写视为相同;-n :输出行号;-v :反向选择,即显示出没有 ‘搜寻字符串’ 内容行。

输出20002010行有关9的行:
在这里插入图片描述
输出20002010行与9无关的行:
在这里插入图片描述
现在准备了如下代码:
在这里插入图片描述
筛选出与hello无关的行,并带上行号
在这里插入图片描述

1.8 top 命令

top命令相当于Linux下的任务管理器,它可以实时、动态地显示当前整个系统的资源占用状况,以及各个进程的运行状态。选项-d:刷新的时间间隔,-n:刷新的次数。按q退出top
在这里插入图片描述
当然top不够直观,htoptop的增强版,支持鼠标操作,界面更友好,显示更直观。Centos的安装指令:sudo yum install htop -yUbuntu的安装指令:sudo apt install htop -y

在这里插入图片描述

1.9 zip 和unzip 指令

zipunzipLinux系统中实用的压缩解压工具

zip语法:zip 压缩文件.zip 目录或文件常用选项:-r:递归处理,将指定目录下的所有文件和子目录一并处理

现在准备了一份空目录test和非空目录test1
在这里插入图片描述

我们要将test1打包成test1.zip,并在test目录中解压并解包。
在这里插入图片描述
如图test1已经被打包成了test1.zip,接下来就是在test目录下解压并解包。
在这里插入图片描述
unzip的选项-d:解压到指定目录,所以也可以直接解压到指定目录,不需要移动。
在这里插入图片描述
如果你在Linux下运行zipunzip时,系统反馈没有找到,就是没有安装该指令,安装一下就好了,Centos:sudo yum install zip unzipUbuntu:sudo apt install zip unzip

1.10 rzsz 指令

rzsz是两个用于在本地计算机远程Linux服务器之间,进行文件传输的工具。rz: 从本地计算机上传文件到Linux服务器。sz:从Linux服务器发送文件到本地计算机。

rzsz的安装指令:Centos:sudo yum install -y lrzszUbuntu:sudo apt install -y lrzsz

从本地计算机获取文件:
在这里插入图片描述
在这里插入图片描述
在安装了rz的情况下,也可以直接将本地计算机的文件拖拽到Linux下。

使用szLinux下的文件传输到桌面上:
在这里插入图片描述

在这里插入图片描述
假设我们想将刚刚打包的压缩包传送到桌面上就可以直接sz了。
在这里插入图片描述

1.11 tar 指令(重要)

tarLinux系统中用于文件打包、压缩、解压和归档管理的基石工具

语法:tar [选项] 文件与目录 ....,常用选项:-c :建立一个压缩文件的参数指令;-x :解开一个压缩文件的参数指令;-z :是否同时具有gzip的属性,即是否需要用gzip压缩;-f :指定归档文件的文件名。这个选项后面必须紧跟你指定的文件名;-v :压缩的过程中显示压缩的文件;-C: 解压到指定目录。

常用组合,打包:czf;解包:xzf

我们要将test1打包成test1.tgz:
在这里插入图片描述
将它解压到test目录下:
在这里插入图片描述
这些压缩解压工具并不很重要,重要的是要了解到计算机Linux之间(lrzsz)LinuxLinux之间(scp),可以进行网络传输。

1.12 uname 指令

题目:如何查看你的Linux机器的体系架构?
以上题目中询问体系架构就是询问CPU架构uname指令的功能是用来获取电脑和操作系统的相关信息。选项-a:详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。选项-r:显示Linux内核版本。
在这里插入图片描述
上图中x86_6464位机器,在有的场景下会直接显示x64。单一显示x8632位机器。
在这里插入图片描述

扩充:显示cpu的详细信息指令lscpu;显示系统内存的详细信息指令lsmem

1.13 重要热键

【Tab】键:具有命令补全功能。
【Ctrl+C】:让当前程序停掉。
【Ctrl+R】:搜索历史命令。

小技巧:【!+ 字母】执行最近一次以该字母开头的命令。

1.14 shell命令及其运行原理

Linux严格意义上说的是一个操作系统,我们称之为核心,(广义操作系统:操作系统内核、外壳程序,必要的应用软件;狭义操作系统:操作系统内核)。

我们用户不擅长与内核打交道,那太过复杂,所以就有了外壳程序,Shell是外壳程序的统称它最简单的定义就是一个命令行解释器,它将使用者的命令翻译给内核处理,同时将内核处理结果翻译给使用者,例如你输入人类可读的文本命令如 lsShell会理解这些命令,然后调用操作系统内核提供的相应功能来执行它们。
在这里插入图片描述
Linux中的Shell外壳程序是bash
在这里插入图片描述
另一方面,Shell外壳程序也保护了内核,它防止了直接和错误的访问,Shell绝不仅仅是一个被动的命令输入框,它是一个主动的、至关重要的安全层和治理层,通过验证、翻译和抽象,有效地保护了精密而脆弱的内核,确保了整个操作系统的稳定和安全。

总结:
以上就是本期博客分享的全部内容啦!如果觉得文章还不错的话可以三连支持一下,你的支持就是我前进最大的动力!
技术的探索永无止境! 道阻且长,行则将至!后续我会给大家带来更多优质博客内容,欢迎关注我的CSDN账号,我们一同成长!
(~ ̄▽ ̄)~

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

相关文章:

  • IBMS集成管理系统与3D数字孪生智能服务系统的应用
  • Linux驱动 — 导出proc虚拟文件系统属性信息
  • LabVIEW 音频信号处理
  • 【ElasticSearch】原理分析
  • opencv+yolov8n图像模型训练和推断完整代码
  • django注册app时两种方式比较
  • PyTorch图像预处理完全指南:从基础操作到GPU加速实战
  • jQuery版EasyUI的ComboBox(下拉列表框)问题
  • 通义万相音频驱动视频模型Wan2.2-S2V重磅开源
  • 聊一聊 单体分布式 和 微服务分布式
  • Package.xml的字段说明
  • 前端架构知识体系:css架构模式和代码规范
  • 趣味学习Rust基础篇(用Rust做一个猜数字游戏)
  • PAT 1087 All Roads Lead to Rome
  • 嵌入式学习资料分享
  • java中的数据类型
  • 《FastAPI零基础入门与进阶实战》第14篇:ORM之第一个案例改善-用户查询
  • 【图文介绍】PCIe 6.0 Retimer板来了!
  • 快速上手对接币安加密货币API
  • 《Linux 网络编程四:TCP 并发服务器:构建模式、原理及关键技术(以select )》
  • 3 无重复字符的最长子串
  • Windows系统之不使用第三方软件查看电脑详细配置信息
  • 基于linux系统的LIRC库学习笔记
  • Ubuntu 的磁盘管理
  • [java] 控制三个线程按顺序交替输出数字1、2、3
  • 【新版发布】Apache DolphinScheduler 3.3.1 正式上线:更稳、更快、更安全!
  • TensorFlow 面试题及详细答案 120道(21-30)-- 模型构建与神经网络
  • 数据结构:创建堆(或者叫“堆化”,Heapify)
  • 增强CD47检查点免疫治疗:高通量发现增强巨噬细胞吞噬作用的小分子协同剂
  • nestjs 连接redis