【Linux常见指令以及权限理解】基本指令(3)

news2025/1/23 6:16:03

写在前面

上一篇文章,我们学习了Linux的一些常用指令,

学习了如何理解Linux系统,介绍了对Linux系统的理解:Linux下一切皆文件

介绍了重定向还有管道相关的知识。这里是上一篇博客的链接:http://t.csdn.cn/2d6fc

接下来我会对Linux常用指令进行收尾,并谈一谈如何理解指令。

目录

写在前面

1. date

描述:

用法:

例子:

例1:

例2:

例3:

例4:

2. cal

描述:

用法:

例子:

例1:

例2:

 3. find(重要)

描述:

用法:

例子:

例1:

例2:

例3:

4. grep(非常重要)

描述:

用法:

例子:

例1:

例2:

例3:

例4:

5. zip/unzip

描述:

用法:

例子:

例1:

例2:

例3:

6. tar

描述:

用法:

例子:

例1:

例2:

例3:

 7. bc

描述:

用法:

例子:

例1:

例2:

8. uname

描述:

用法:

例子:

例1:

例2:

 9. 常用快捷键介绍

tab 补齐功能

Ctrl d 

Ctrl r 查找历史命令

上下键查找最近使用过的命令

history

10. shutdown

指令原理的理解

指令的运行原理:

解析:

总结:

写在最后:


1. date

描述:

date指令可以用来查看时间。

用法:

date

选项:有很多,我待会儿会实操介绍

例子:

例1:

直接使用date指令:

 

例2:

携带选项,自己设置格式:

Y代表年,m代表月,d代表日,H代表小时,M代表分钟,C代表秒。 

例3:

查看时间戳:

 补充:

什么是时间戳?

时间戳是从1970年1月1日开始计算到现在的秒数。

我们为什么需要时间戳?

就程序员而言,以后我们工作,写代码都会需要携带日志信息,

而日志信息包括了时间信息,而使用我们现在的时间并不太准确,

为什么呢?因为世界各地之间是有时差的。

所以日志信息包括的时间是使用这个统一的时间戳。

例4:

如何将时间戳转换成具体时间:

在date后面加上 -d @时间戳 即可,我这里前面携带了自定义的格式。

2. cal

描述:

查看日历(西历)

用法:

cal 查看本月日历

cal + 年份 查看该年的日历

例子:

例1:

直接用cal。

 

例2:

cal + 年份

 3. find(重要)

描述:

查找文件

用法:

find + 路径 + -name + 文件名

例子:

例1:

比如说,查找根目录下所有叫 test 的文件:

操作系统就递归搜索了所有叫 test 的文件。 

例2:

查找指定地址下的 ls 命令

 (注:我们之前有讲过,其实指令就是一个可执行程序,所以我们能在指定目录下找到他们) 

例3:

奇怪的现象:

 我们在 /usr 目录下面查找 ls 指令的时候,出现了 Permission denied 这样的提示,

其实是在查找的过程中出现了一些不允许进入的区域,就是有些地方被禁止(用户)访问了。

4. grep(非常重要)

描述:

查找文件内容。

用法:

选项:

-i 无视大小写

-n 顺便输出行号

-v 反向选择(就是显示出你没搜索的内容)

例子:

例1:

 我用 shell 脚本写了一些东西进 log.txt 文件中

脚本提供:cnt=0; while [ $cnt -le 100 ]; do echo "hello linux $cnt"; let cnt++; done > log.txt

使用 grep 查找所有带有 9 的内容:

例2:

测试 -n 

 测试 -v

不难观察出,我们看不到 9。

例3:

我们还能通过 grep 指令批量查找文件内容:

再创建一个文件:(并输入99)

 通过 grep 查找当前目录下所有文件的 99 都在哪里:

 

(注:* 是通配符)

例4:

通过 grep 查找根目录下所有文件的main函数在哪一行:

grep -nR "int main() " ~

 为了不让它刷屏啊,我就中途停止了,

我们可以看到他确实能将所有包含int main()的信息查找出来。

(注:~ 就是根目录的意思(之前的文章有提到过))

其实grep之后还有很多应用的场景,我们以后还会经常见到它。

5. zip/unzip

描述:

压缩和解压的指令。

用法:

zip + 压缩后的文件名 + 被压缩文件名

选项:

-r 递归压缩

-d 指定目录

例子:

例1:

首先我想补充一些内容,我们为什么要压缩文件,

1. 我们将文件打包压缩到一起,可以很方便我们发送给其他人,就算丢失,也是全部都丢了;

如果我们一下子传输一堆文件,容易出现有一些文件丢失了,那就非常难受,不知道丢了那个文件

2. 压缩后的文件比较小,更容易传输

那废话不多说,现在开始:

使用 zip 打包目录和文件:

我们先创建一些文件:

 打包压缩:

 解压:

 我们把这个压缩文件在上级目录解压,发现确实解压出来了。

结果一查看,d1里面什么都没有,这是为什么呢?

(注:如果你的Linux里面没有zip,下载指令:yum install -y unzip zip(要在root用户下载)) 

例2:

对于目录,我们需要递归打包压缩:

 我们还是一样的操作,在上级目录解压该文件:

查看:

 

例3:

解包解压到指定目录:

 解包到 test 目录下面了。

6. tar

描述:

主要功能:打包压缩、预览、解压解包。

用法:

tar + czf + 压缩后文件名 + 文件名 = 打包压缩

tar + tzf + 文件名 = 预览

tar + xzf + 文件名 = 解压解包

例子:

例1:

打包压缩:

 

例2:

预览:

 

例3:

解包解压:

 7. bc

描述:

计算器。

用法:

bc

例子:

例1:

直接bc:

你可以随意计算。 

例2:

其实我们还可以用管道:

 这样也可以调用计算器。

8. uname

描述:

uname用来获取电脑和操作系统的相关信息。

用法:

选项:

-r 查看操作系统内核版本

-a 查看基本信息

例子:

例1:

-r 和 -a 选项:

 我们可以看到 3.10.0 这个其实就是我们的内核版本,x86_64位机器。

例2:

扩展:我们还有命令可以查看CPU信息:

lscpu 命令:

 9. 常用快捷键介绍

之前我已经介绍了 Ctrl c 结束当前程序,

还有一些好用的快捷键,

tab 补齐功能

比如说,我有一个命令忘记了:(clear命令) 

双击 tab 键:

 会有提示,其他命令也是如此,你可以试试。

另外,

tab 键的补齐非常好用,平时进入目录的时候,也可以用 tab 键补齐。

Ctrl d 

一直按Ctrl d可以直接退出xshell。

Ctrl r 查找历史命令

我使用该命令:

只输入了while,他就自动帮我找到了之前使用的脚步,非常好用。

上下键查找最近使用过的命令

这个我就不演示了,大家知道就行,

非常好用。

history

实际上,为什么我们能查找到曾经用过命令呢,因为Linux帮我们存起来了,

用history我们就能查看:(太长了,我就截一小段)

10. shutdown

这个是关机指令,直接输入就能关机,

但是我想说:Linux服务器永不关机,记住这个点,

因为我们以后工作,也是不会关机的。

指令原理的理解

经过上述的学习以及之前文章的学习,我们总算是把常见常用的指令都学习了一遍,

在这其中我也穿插了不少对于Linux操作系统的理解,那么现在我们也来理解一下指令。

指令的运行原理:

我们来看看我们平时输指令的地方:

输入指令的过程,本质就是输入字符串。

我们之前也有讲过如何理解指令,

指令的本质其实就是编译好的程序和脚本,

一定是存放在系统的某一个地方。(之前也找过在哪) 

图中的那一行其实叫做 bash 命令行。

先说结论:我们输入指令到 bash 命令行,命令行解释器告诉操作系统,

然后操作系统处理结果返回给命令行解释器,命令行解释器再将结果告诉用户。

那么这是个什么原理呢?

解析:

我们输入的所有指令,最终都要在OS内部运行,

但是OS的操作难度很高,普通人很难说直接去操作我们的OS,

这个时候就出现了:图形化界面 / 命令行解释器

平时我们用的Windows系统就是图形化界面,我们现在用的Linux就是命令行解释器

也就是图中的 bash 命令行,就是我们这个版本的命令行解释器。

这就有了上面说的,命令行解释器将用户的命令翻译给操作系统,

同时,也将操作系统的处理结果翻译给用户。

不仅如此,命令行解释器还能保护系统,它可以驳回用户的错误/非法操作。

像这样:(找不到命令)

就像一个外壳一样保护这操作系统:(如图)

 我们将命令行解释器统称为shell,

举个例子,如果说shell是学生的总称,

那么我们的 bash 命令行就是一个大一学生张三

其他类型的命令行解释器例如 sh 就是大二学生李四

他们都是学生。他们都是shell。

 等以后学了进程,我会带着你们自己实现一个shell,到时候我们能对它有更深的理解。

总结:

文章将常用的指令基本讲解完了,

最后讲述了如何理解指令的运行原理,希望对大家有所帮助。

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

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

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

相关文章

Kali HTTrack演示-渗透测试察打一体(1)

HTTrack是一个免费并易于使用的线下浏览器工具,全称是HTTrack Website Copier for Windows,它能够让你从互联网上下载指定的网站进行线下浏览(离线浏览),也可以用来收集信息(甚至有网站使用隐藏的密码文件),一些仿真度极高的伪网站(为了骗取用户密码),也是使用类似工具做…

[一篇读懂]C语言十二讲:栈与队列和真题实战

[一篇读懂]C语言十二讲:栈与队列和真题实战 1. 与408关联解析及本节内容介绍1 与408关联解析2 本节内容介绍 2. 栈(stack)的原理解析2.1 **栈:只允许在一端进行插入或删除操作的线性表**2.2 栈的基本操作2.3 栈的顺序存储2.4 栈的链表存储 3. 初始化栈 -…

PE文件+UPX壳 ida分析

die查壳发现是UPX壳,直接用ida分析,会发现能分析出来的信息特别少,需要脱壳 工具链接发布 UPX/UPX (github.com) 下载压缩包后解压,直接在该文件路径下cmd,输入upx.exe -h安装完成,使用命令“upx -d 文件路…

计算机网络-网络层与链路层协议分析实验

一.实验目的 通过本实验,进一步熟悉PacketTracer的使用,学习路由器与交换机的基本配置,加深对网络层与链路层协议的理解。 二.实验内容 1.完成路由器交换机的基本配置 2.了解 ICMP 数据包的格式 3.检查ARP交换 三.实验过程 1.完成路由…

链表——循环链表

其他形式的链表——循环链表 循环链表 定义:循环链表是表中最后一个结点的指针指向头结点,使链表构成环状 特点:从表中任一结点发出均可找到表中其他结点,提高查找效率 双向循环链表 data:数据元素 prior&#xff1…

进程间通信--管道

文章目录 一.通信二.管道匿名管道(只能用于有血缘关系的进程之间通信)1.匿名管道的创建2.匿名管道的读取情况3.管道的特征4.基于匿名管道的简单进程池 有名管道(用于没有血缘关系的进程间的通信)1.有名管道的建立和删除2.通过一段…

CodeForces 438 D线段树暴力修改

线段树暴力修改 关键是每个数取余操作,看似我们如果暴力改的话m*n肯定超时了 容易发现一个数小于给定模数的时候,取模不会发生改变,而大于给定模数的时候我们得到的最大的结果是x/2向上取整,结果一定小于等于这个数字,这里我想说…

AECC全球留学趋势报告解读

AECC全球留学趋势报告解读 相对更安全的留学目的地: 留学安全是留学生及家长最关注的一个问题。报告显示,在“你认为相对更安全的留学目 的"的问答中,澳大利亚获得总评8.76分(满分10分)位居第一。 英澳新留学更受…

VMware Tanzu Kubernetes Grid (TKG) 2.1 - 企业级 Kubernetes 解决方案

VMware Tanzu Kubernetes Grid (TKG) 2.1 - 企业级 Kubernetes 解决方案 VMware 构建、签名和支持的开源 Kubernetes 容器编排平台的完整分发版 请访问原文链接:https://sysin.org/blog/vmware-tkg-2/,查看最新版。原创作品,转载请保留出处…

华为OD机试真题 Java 实现【最优资源分配】【2023Q1 200分】

一、题目描述 某块业务芯片最小容量单位为 1.25G,总容量为 M*1.25G,对该芯片资源编号为 1,2,… M。 该芯片支持 3 种不同的配置,分别为 A、B、C. 配置 A: 占用容量为 1.25 * 1 1.25G配置 B: 占用容量为 1.25* 2 2…

白嫖chatgpt的Edge插件,很难不爱啊

目录 🍁1.常见的Edge浏览器界面 🍁二.安装WebTab插件 🍁三.WebTab插件的各种功能 🍁1.支持免费的chatgpt,不限次数​编辑 🍁2.有几个休闲的小游戏可以玩耍,点击即玩。 🍁3.支…

【迷宫问题】找出迷宫所有可能的路径C++

1 引入情境 我记得小时候玩过推箱子游戏,也是如下图这种,四周由深色的方格作为墙壁,白色的地方是可以通过的。现在想要从红色方格出发走到黄色方格,能有什么好办法呢? 注意到,对于计算机没有全局的观念&…

Flutter音乐播放audioplayers

简介 Flutter的audioplayers是一个Flutter插件,可以播放多个同时的音频文件,支持Android、iOS、Linux、macOS、Windows和web平台。它有以下特点: 可以从本地文件、网络资源或内存中加载音频可以控制音量、进度、速度和循环可以播放多个音频…

《编程思维与实践》1069.第一位数字

《编程思维与实践》1069.第一位数字 题目 思路 由于正整数N的N次方最大可以为 1 0 8 ⋅ 1 0 8 10^{8\cdot 10^8} 108⋅108,加上数据可能有很多组,所以直接采用大整数计算次方这方法很可能超时, 这里给出一种数学算法: 幂指函数通常的处理方式是取对数将乘方转化为乘法: N N 1…

Linux驱动编程(驱动程序基石)(上)

一、休眠与唤醒 要休眠的线程,放在 wq 队列里,中断处理函数从 wq 队列里把它取出来唤醒。所以,我们要做这几件事: ① 初始化 wq 队列 ② 在驱动的 read 函数中,调用 wait_event_interruptible: 它本身会判断…

English Learning - L3 作业打卡 Lesson1 Day7 2023.5.11 周四

English Learning - L3 作业打卡 Lesson1 Day7 2023.5.11 周四 引言🍉句1: Blues is slow, sad and soulful.成分划分弱读连读爆破语调 🍉句2: Duke Ellington and his orchestra recorded a famous song – Mood Indigo – about the deep blue color, …

【嵌入式环境下linux内核及驱动学习笔记-(11-设备树)】

目录 1、设备树体系1.1 DTS /DTSI / DTC / DTB 2、基础语法2.1 节点语法2.1.1 通用名称建议 2.2 属性语法2.2.1 属性值 2.3 关于label2.4 节点的[unit-address] 与reg属性2.5 根节点 /2.6 标准属性compatible2.6.1 of_machine_is_compatible函数 2.7 地址编码2.7.1 标准属性#ad…

Linux常用命令(4)

文章目录 Linux常用命令(4)查找文件或目录 find在当前文件下找一个hello.txt的文件在/user/include目录下找stdio.h文件 查找内容 grep在当前目录的hello.txt 文件中搜索1234在当前目录下所有文件中搜索1234在当前目录下所有以.txt结尾的文件中搜索1234 制作压缩包和解压缩命令…

Java 函数式编程 详细介绍

在兼顾面向对象特性的基础上,Java语言通过Lambda表达式与方法引用等,为开发者打开了函数式编程的大门。 下面我们做一个初探。 Lambda的延迟执行 有些场景的代码执行后,结果不一定会被使用,从而造成性能浪费。而Lambda表达式是延…

PID现场参数调试解密

看图 反馈与给定曲线 1.超调过大,减小比例,增大积分时间 2.迅速变化,存在小超调 3.实际值缓慢接近设定值,并且无超调的达到设定值 4.增益系数太小和/或微分时间太长 5.益系数太小和/或积分时间太长 公式(西门子FB41) 举例 现象…