【Linux】从零开始学习Linux基本指令(三)

🚩纸上得来终觉浅, 绝知此事要躬行。
🌟主页:June-Frost
🚀专栏:Linux入门

🔥该文章主要了解Linux操作系统下的基本指令。

⚡️该篇为Linux指令部分的终章,如果您想了解前两篇文章的内容,可以在阅读本文后点击👉【Linux】从零开始学习Linux基本指令(一) 和 【Linux】从零开始学习Linux基本指令(二)了解更多。

目录:

  • ⌛️ 从文件角度理解Linux
  • ⏳输入/输出重定向
  • ⌛️ 一些常见指令
    • ✉️ date 指令
    • ✉️ cal 指令
    • ✉️ find 指令
    • ✉️ whereis 指令
    • ✉️ grep 指令
    • ✉️ zip/unzip 指令
    • ✉️ tar 指令
  • ❤️ 结语

⌛️ 从文件角度理解Linux

重要设计思想——在Linux系统下一切皆为文件。系统的所有组件和资源,包括硬件设备、配置信息、数据等,都可以被视为文件。这种思想源自于Unix操作系统,而Linux作为Unix的开源版本,继承了这一设计思想。
 在Linux系统中,硬件设备也被抽象为文件来管理。每个设备都有对应的设备文件,例如硬盘、光驱、网卡等。用户可以通过打开和读取这些设备文件来访问硬件设备,例如使用命令行工具来读取或写入硬盘中的数据。此外,Linux系统中的配置信息也以文件的形式存储。例如,网络配置、系统环境变量、服务配置等都存储在各种配置文件中。这些配置文件可以被编辑和修改,以适应不同用户和系统的需求。对于用户数据,Linux系统也将其视为文件进行处理。每个用户都有自己的主目录,其中包含了用户的配置文件、文档、图片等数据。用户可以通过文件操作来访问、修改和删除这些数据。
 这种设计使得系统非常灵活和可配置,用户可以轻松地管理和访问系统中的各种资源。这种设计也使得Linux成为一个非常强大和稳定的操作系统,适合用于各种不同的应用场景。


⏳输入/输出重定向

  • > 输出重新向

📙echo 指令可以输出指定的字符串或变量值到标准输出设备(显示器),由于Linux系统下一切皆为文件,所以echo 可以看作默认向显示器文件写入,通过输出重定向,就可以将命令的输出结果从标准输出设备(显示器)重定向到其他设备或文件中。

> 有两个特点:

  1. > 右边的文件如果没有创建,那么系统会尝试创建一个新的文件。通过这个特性,我们就可以建造一个空文件。

  1. > 右边如果文件已经存在,那么它会被清空,并且新的输出会被写入到这个文件中。当然,如果没有内容就只清空文件。

📘> 会清空目标文件,而在Linux中,>>是用于将输出追加到已存在的文件中的重定向符号。它不会覆盖现有文件的内容,而是将新内容添加到文件的末尾。

在这里插入图片描述

这里补充一下 cat 选项的具体使用(按照上面的内容为例):

  • -b 对非空输出行编号

  • -n 对输出的所有行编号

  • -s 不输出多行空行

taccat 的倒序版。

  • < 输入重定向

 这里运用cat指令来帮助理解它的作用。对于cat指令,用户输入什么,它就会对应打印什么,这说明cat 默认读取键盘文件,然后向显示器输出。我们可以运用输入重定向使得cat去读取其它文件。


⌛️ 一些常见指令

✉️ date 指令

  • 语法date [OPTION]... [+FORMAT]
    功能:用于获取和操作日期和时间。

 其中,OPTION是可选的参数,FORMAT是用于指定日期和时间输出的格式。

 但是这种方式还是不太直观,所以我们可以将其格式化

📗格式化的一些选项:

  • %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

 通过date +%s , 可以查看当前的时间戳。(Unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。在计算机科学和数据领域中,时间戳被广泛用于记录事件发生的时间,以便进行事件溯源、数据同步和时间排序等操作。)

 通过date -d @时间戳 就可以实现时间戳转化时间

在这里插入图片描述

📙谈一谈时间的重要性:

 在软件开发中,日志是一个非常重要的工具,它为开发人员和维护人员提供了应用程序运行时的信息,帮助他们跟踪和诊断问题,提高应用程序的可靠性和可维护性。在日志中很常见的两种时间就是刚才提到的时间戳日期时间。日期时间的可读性强,以人类可读的形式表示时间,可以直接查看和阅读。而时间戳是递增的,它具有唯一性,可以进行范围查找


✉️ cal 指令

  • 语法cal [参数][月份][年份]
    功能:显示公历(阳历)日历。它主要用于查看日历等时间信息。如果参数后面跟一个值,则表示年份(1-9999),如有参数后面跟两个值,则表示月份和年份,如果参数后面没有值,则显示本月日历。

在这里插入图片描述

📗一些常用的选项:

  • -1 显示一个月的月历。
  • -3 显示系统前一个月,当前月,下一个月的月历。
  • -s 显示星期天为一个星期的第一天,默认的格式。
  • -m 显示星期一为一个星期的第一天。
  • -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)。
  • -y 显示当前年份的日历。

✉️ find 指令

  • 语法find [路径] [选项] [操作]
    功能:在指定目录下查找文件和目录。可以根据文件名、类别、时间、大小、权限等不同资讯的组合来查找文件。
    说明:[路径] 表示要搜索的目录路径,[选项] 是可选的搜索条件或限制,[操作] 是在找到文件后可以执行的操作。

📙Linux下find命令提供了相当多的查找条件,功能很强大。即使系统中含有网络文件系统( NFS),只要具有相应的权限,find命令在该文件系统中同样有效。
 对于它的功能具体来说,find命令可以根据给定的规则在指定的路径下搜索文件,并且可以应用不同的选项来过滤搜索结果。例如,使用-name选项可以按照文件名进行搜索,-mtime选项可以按照文件的修改时间进行搜索。

在这里插入图片描述


✉️ whereis 指令

语法whereis [选项][文件名]
功能:用于查找二进制文件、源代码和帮助文档的位置。

 对于find指令whereis指令,如果搜索的文件带着通配符,例如:stdio.* ,这意味着寻找的文件后缀没有要求。

📗一些常用的选项:

  • -b 搜索文件的二进制部分。
  • -m 搜索文件的手册部分。
  • -s 搜索文件的源部分。

✉️ grep 指令

  • 语法grep [选项] pattern [file...]
    功能:在文件中搜索匹配某个模式的行。
    说明pattern是要搜索的模式,可以是简单的字符串或使用正则表达式来描述更复杂的模式。file是要搜索的文件列表,可以是多个文件名,用空格分隔。如果未指定file,则默认会搜索标准输入。

 为了更好地展示它的功能,先使用nano向一个test.txt文件中写入一些内容。
test.txt中查找有‘A’的行:

在这里插入图片描述

📗一些常用的选项:

  • -i 忽略大小写的不同,所以大小写视为相同。
  • -n 显示行号。在输出中显示匹配行的行号。
  • -v 反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行。

📗 grep指令不但可以通过管道查看日志的一些错误信息,而且也可以配合sortuniq等指令满足一些需求(例如:查看有多少ip访问过机器)

  • sort功能:用于对文本文件进行排序。

 💡可以按照同一套规则,把相同的内容放在一起。

  • uniq 用于去除文件中的重复行(相邻的行如果重复,就只保留一行)。

 结合起来,通过sort 文件名 | uniq -c 就可以对test.txt文件中的内容进行排序,去除重复行并统计每行的出现次数。


🔭 打包压缩和解压解包

 在Linux中,打包压缩是一种常见的文件管理技术,用于将多个文件和目录合并成一个单独的文件,并使用压缩算法可选择地进行压缩。这样做有很多优点:

  • 方便管理:将多个文件和目录打包成一个文件,可以方便地对其进行备份、传输和存储,同时也可以避免在文件系统中出现大量的文件和目录,从而简化文件管理。
  • 节省存储空间:通过将多个文件和目录打包并压缩,可以大大减少存储空间的使用。特别是在网络传输时,压缩文件可以减小传输的数据量,提高传输效率。
  • 保护文件安全:打包压缩可以保护文件的安全性。例如,当一个重要文件被压缩成一个单独的文件时,即使其他文件被恶意修改或删除,这个重要文件也不会受到影响。

 这里着重说明一下ziptar的打包压缩格式。

✉️ zip/unzip 指令

  • 语法zip [选项] 压缩文件名.zip 目录或文件
    功能:将目录或文件压缩成zip格式。

 通过选项-r可以递归处理,将指定目录下的所有文件和子目录一并处理。

 如果我们想解压到tree目录下,可以先将node.zip剪切到tree目录下,通过unzip node.zip 就可以实现。

 也可以不去剪切,通过选项-d 直接将压缩包解压到test目录。

在这里插入图片描述


✉️ tar 指令

语法tar [选项] [文件名]...
功能:将多个文件和目录打包成一个文件,称为归档文件或tar文件,同时也可以将归档文件中的文件解压缩出来。

📗一些常用的选项:

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

 该指令和zip类似,如果要打包压缩一个目录,就使用指令 tar -czf 文件名.tgz 文件名 。如果要解压(前面提到的先使用mv的那种),就使用tar -xzf 文件名.tgz。如果是直接将压缩包解压到其他目录,就需要使用tar -xzf 压缩包 -C 指定目录
 如果想看到打包的过程,可以在选项中加入 -v


❤️ 结语

 文章到这里就结束了,如果对你有帮助,你的点赞将会是我的最大动力,如果大家有什么问题或者不同的见解,欢迎大家的留言~

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Docker】Linux网络命名空间

命名空间 Namespace是Linux提供的一种对于系统全局资源的隔离机制&#xff1b;从进程的视角来看&#xff0c;同一个namespace中的进程看到的是该namespace自己独立的一份全局资源&#xff0c;这些资源的变化只在本namespace中可见&#xff0c;对其他namespace没有影响。容器就…

Linux学习第26天:异步通知驱动开发: 主动

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 在正式开启今天的学习前&#xff0c;讲一讲为什么标题中加入了【主动】俩字。之前学习的阻塞和非阻塞IO&#xff0c;都是在被动的接受应用程序的操作。而今天的学…

rust入门

目录 一&#xff0c;输入输出 二&#xff0c;函数 1&#xff0c;main函数 2&#xff0c;普通函数 3&#xff0c;库函数 4&#xff0c;常用库函数 三&#xff0c;变量 1&#xff0c;变量绑定、let、mut 2&#xff0c;变量作用域 四&#xff0c;数据结构 1&#xff0c…

风云七剑攻略,最强阵容搭配

今天的风云七剑攻略最强阵容搭配给大家推荐以神仙斋减怒回血为主的阵容。 关注【娱乐天梯】&#xff0c;获取内部福利号 首先&#xff0c;这个角色在这个阵容当中&#xff0c;所有的角色当中&#xff0c;他的输出系数是最高的&#xff0c;已经达到了200%的层次&#xff0c;而且…

商业模式画布的9大模块全解读,产品经理不可不知!

“商场如战场”&#xff0c;在当今瞬息万变的商业环境中&#xff0c;创造出独特且创新的商业模式是每个企业家、策略家和决策者的首要任务。为了在激烈的市场竞争中取得优势&#xff0c;我们需要一个强大且直观的工具来帮助我们规划和塑造公司的商业模式&#xff0c;这个经常被…

H5游戏源码分享-跳得更高

H5游戏源码分享-跳得更高 控制跳动踩到云朵上 <!DOCTYPE html> <html> <head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><meta http-equiv"Content-Type" content"text/html;"&g…

【.NET Core】创建一个在后台运行的控制台程序(ConsoleApp)

文章目录 1. 添加Nuget包2. 修改Program.cs3. 添加TestService 借助.NET的通用主机&#xff08;IHostBuilder&#xff09;可以轻易创建一个可以执行后台任务的程序 1. 添加Nuget包 Microsoft.Extensions.Hosting 2. 修改Program.cs 通过Host获取IHostService&#xff0c;然…

[UDS] --- ECUReset 0x11

1 0x11功能描述 根据ISO14119-1标准中所述&#xff0c;诊断服务11主要用于Client向Server(ECU)请求重启行为。该重启行为将会导致Server复位回归到特定的初始状态&#xff0c;具体是什么初始状态取决于Client的请求行为。 2 0x11应用场景 一般而言&#xff0c;对于11诊断服务…

Ansible的安装和部署

目录 1.Ansible的安装 2.构建Ansible清单 直接书写受管主机名或ip 设定受管主机的组[组名称] 主机规格的范围化操作 指定其他清单文件 ansible命令指定清单的正则表达式 3.Ansible配置文件参数详解 配置文件的分类与优先级 常用配置参数 4.构建用户级Ansible操作环…

goland无法调试问题解决

goland 无法调试问题解决 golang 版本升级后&#xff0c;goland 无法进行调试了 首先请看自己下载的版本是否有误 1.apple系 M系列芯片的 arm64版本 2.apple系 intel系列芯片的x86_64 3.windows系 intel解决如下&#xff1a; 查看gopath ericsanchezErics-Mac-mini gww-api…

docker 安装minio,访问地址进不去

文章目录 黑马头条P37docker安装minio文图一、启动后页面一直是加载状态进不去 黑马头条P37docker安装minio文图 一、启动后页面一直是加载状态进不去 通过docker logs -f (容器id)查看日志 通过这个报错信息&#xff0c;得知最近minio 升级&#xff0c;一些启动信息和之前不…

FPGA_Signal TapII 逻辑分析仪 在线信号波形抓取

FPGA_Signal TapII 逻辑分析仪 在线信号波形抓取 由于一些工程的仿真文件不易产生&#xff0c;所以我们可以利用 quartus 软件自带的 SignalTap 工具对波形进行抓取 对各个信号进行分析处理&#xff0c;让电子器件与FPGA进行正常通讯工作&#xff0c;也验证所绘制的波形图是否一…

【设计模式三原则】

设计模式三原则 单一职责原则开放封闭原则依赖倒转原则里氏代换原则 我们在进行程序设计的时候&#xff0c;要尽可能地保证程序的可扩展性、可维护性和可读性&#xff0c;所以需要使用一些设计模式&#xff0c;这些设计模式都遵循了以下三个原则&#xff0c;下面来依次为大家介…

探求flutter全栈开发

显示一种网络图片 import package:flutter/material.dart; main(){runApp(MaterialApp(theme: ThemeData.dark(),home:Home(),));}class Home extends StatelessWidget{overrideWidget build(BuildContext context) {// TODO: implement buildreturn Scaffold(appBar:AppBar(t…

树----数据结构

树的概念 树是一种非线性的数据结构&#xff0c;它是由 n (n>1) 个有限结点组成一个具有层次关系的集合&#xff0c;它看起来就像一颗倒挂的树&#xff0c;根朝上&#xff0c;叶朝下。由 0 个节点构成的树&#xff0c;叫做空树。 树的特点&#xff1a;每个结点有 0 个或多…

【Http协议】 一

本文主要介绍了Http协议的作用以及如何通过抓包工具Fiddler抓取http请求/响应&#xff0c;重点介绍了请求/响应报文的内容 一.Http协议 最常用的应用层协议 http超文本传输协议&#xff0c;除了能传输字符串文本&#xff0c;还能那个传输其他的 比如&#xff1a; 浏览器打开网…

网络工程综合试题(二)

1. SR技术有哪些缺点&#xff1f; SR&#xff08;Segment Routing&#xff09;技术是一种新兴的网络编程技术&#xff0c;它具有很多优点&#xff0c;但也存在一些缺点&#xff0c;包括&#xff1a; 部署复杂性&#xff1a;SR技术需要对网络进行改造和升级&#xff0c;包括更新…

MAC缓解WebUI提示词反推

当前环境信息&#xff1a; 在mac上安装好stable diffusion后&#xff0c;能做图片生成了之后&#xff0c;遇到一些图片需要做提示词反推&#xff0c;这个时候需要下载一个插件&#xff0c;参考&#xff1a; https://gitcode.net/ranting8323/stable-diffusion-webui-wd14-tagg…

Android 驱动学习调试

1 Android 驱动代码编译 参考https://www.sharetechnote.com/html/Linux_DeviceDriver_Programing.html#Device_Driver_HelloWorld编译ko文件调试驱动代码&#xff0c;将ko文件push到手机上验证 相关C文件testdriver.c #include <linux/init.h> #include <linux/mod…

批量去除pdf每一页相同未知的同样的内容

例如我想去除每一页右下角的www.alevelcollege.com ①打开acrobat pro ②编辑文件和图像 ③ctrlF输入字符串www.alevelcollege.com替换为空 ④鼠标点击替换 ⑤回车键按下不放&#xff0c;会自动翻页&#xff0c;直到翻页到最后一页。