Linux--初识和基本的指令(3)

目录

1.前言

1.指令

1.1 cat指令

 1.2 echo指令

1.3 more 指令

1.4 less指令 

 1.5 什么时候使用less和more 

1.6 head指令

1.7  tail指令

1.8 wc指令

 1.9 与时间相关的指令 

1.9.1 date指令 

1.9.2  cal指令

1.10 16.find指令:(灰常重要) -name

1.11 grep指令

 1.12 文件的打包和压缩

1.12.1 什么是打包和压缩,为什么要打包和压缩?

1.12.2 zip和unzip 指令

 2.理论

2.1 '>'输出重定向&&'>>'追加重定向

2.2 '<'输入重定向

 2.3 普通文件VS显示器

2.4 '|'管道


1.前言

在前面两节我们学习了:

        1.linux用户下有自己的家目录,对于root账号:默认的家目录/root;对于普通用户的家目录:/home/XXX,XXX是新建的用户名。

        2.指令的本质就是程序。

        3.Linux是多用户的操作系统。

        4.在Linux中一切皆文件。

        5.一些指令。

本节我们将分成指令,理论两条线路去学习Linux更多的内容。

本节重点:

        1. 造出一个大文件

        2. 查看大文件中内容的指令

        3.输出重定向,追加重定向,输入重定向,管道

        4.日志,日历,时间戳

        5.打包压缩文件


1.指令


1.1 cat指令

语法: cat [选项][文件]
功能: 查看目标文件的内容

常用选项:
        -b 对非空输出行编号
        -n 对输出的所有行编号
        -s 不输出多行空行

在之前我们学习的大多是查看文件属性的命令,本条命令专门用来查看文件的内容

我们知道Linux中一切皆文件,那我们来进行如下操作:

        我们输入cat指令,但不在后面追加指令,我们发现,我们输入一个,它就会向屏幕上打印一个。按CTRL C后便可以结束输入。(这是因为cat是默认从键盘文件中读取数据,相当于C语言中的scanf。)

见理论线2.2内容。


 1.2 echo指令

语法:echo“输出的内容”

功能:向屏幕打印内容。

见理论线 2.1内容。


1.3 more 指令

语法: more [选项][文件]
功能: more命令,功能类似 cat
使用more命令打开一个文件后,你可以使用以下按键进行浏览:

        - 空格键:向下滚动一页。

        - Enter键:向下滚动一行。

        - /加关键字,跳到指定位置。

        - q键:退出命令。

构造一个大文件,请先看完理论线2.1和2.2

造大文件的脚本:

i=1; while [ $i -le 10000 ]; do echo "hello Linux $i"; let i++; done > big.txt

此时大文件已经造好了。

如果我们使用cat命令进行查看的话,那么文件中的所有内容都是会被打印出来的。我们浏览器来是十分不方便的,这时我们就可以使用more指令。


1.4 less指令 

         less指令,可以说是more指令的升级版,它包含more的功能,他相较于more使用起来更加的方便,less可以进行上下的翻查内容(按↑键往上翻,按↓键往下翻)。所有我们查看大文件的时候------推荐使用less指令


 1.5 什么时候使用less和more 

        我们以后工作的时候会查很多的日志,在查日志的时候我们会用到less和more。

什么是日志?

        日志是程序运行过程中产生的记录,它包含了程序运行的状态、错误信息等内容。日志可以帮助程序员定位和解决程序运行中出现的问题,因此在程序员的工作中非常重要。

        日志通常以文本文件的形式存储,每个日志文件都包含了某个时间段内程序运行的状态信息。日志文件通常以日期和时间命名,这样可以方便程序员查找和分析日志信息。

         日志文件通常由程序自动生成,程序员也可以手动创建日志文件。日志文件可以通过日志管理工具进行管理,日志管理工具可以帮助程序员查找、分析和删除日志文件。

        日志是程序员工作中非常重要的工具,它可以帮助程序员定位和解决程序运行中出现的问题。因此,程序员应该了解日志的概念和使用方法,并在日常工作中合理使用日志。

在Linux中的日志信息:

cat /var/log/messages

因为日志信息太庞大了,这时候就可以来利用less和more逐行的查找。


1.6 head指令

 head 用来显示档案的开头至标准输出中。

语法: head [参数]... [文件]...
功能:

head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:-n<行数> 显示的行数


1.7  tail指令

tail 命令从指定点开始将文件写到标准输出.
语法: tail[必要参数][选择参数][文件]
功能:

用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:-n<行数> 显示行数

我们用head取了头,用tail取了尾,那么中间应该怎么取呢?

请看理论线2.4。


1.8 wc指令

 查看文件中的行数。


 1.9 与时间相关的指令 


1.9.1 date指令 

date显示
date 指定格式显示时间: date +%Y:%m:%d
date 用法: date [OPTION]... [+FORMAT]

1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
:

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

eg:显示年月日

2.在设定时间方面


  • date -s //设置当前时间,只有root权限才能设置,其他只能查看。
  • date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
  • date -s 01:01:01 //设置具体时间,不会对日期做更改
  • date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
  • date -s “01:01:01 20080523″ //这样可以设置全部时间
  • date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
  • date -s “20080523 01:01:01″ //这样可以设置全部时间

3.时间戳
时间->时间戳: date +%s


时间戳->时间: date -d@1508749502


Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。(为了统一全球的时间,便于网络的全球化)

有许多原因需要建立时间戳。其中一些最常见的原因包括:

        * 跟踪时间变化。时间戳可以用于识别事件发生的确切时刻,这可以帮助跟踪数据随时间的变化。

         * 确保数据完整性。时间戳可以用于验证数据没有被篡改或更改。 * 提高性能。时间戳可以用于优化数据存储和检索。

        * 遵守法规。时间戳可以用于遵守要求数据以特定格式存储或要求数据保留一定时间的法规。 时间戳是许多不同应用程序的宝贵工具。它们可以用于跟踪时间变化、确保数据完整性、提高性能和遵守法规。


1.9.2  cal指令

        cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。 “阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。

命令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:

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

eg:查看2018年的日历


1.10 16.find指令:(灰常重要) -name

  • Linux下find命令在目录结构中搜索文件,并执行指定的操作。
  • Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
  • 即使系统中含有网络文件系统( NFS), find命令在该文件系统中同样有效,只你具有相应的权限。
  • 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项:-name 按照文件名查找文件。

 此查找,可以查找文件子树下所有的此文件。


1.11 grep指令

语法: grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来

常用选项:

  • -i :忽略大小写的不同,所以大小写视为相同
  • -n :顺便输出行号
  • -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

grep指令其实相当于文本过滤器:
 显示出文件中包含999的所有行


 1.12 文件的打包和压缩


1.12.1 什么是打包和压缩,为什么要打包和压缩?

         打包和压缩是在计算机领域中常用的两个概念。

         打包是将多个文件或者文件夹组合成一个单独的文件或者文件夹的过程。通过打包,可以将多个相关的文件或者文件夹整理在一起,方便存储、传输和管理。

        压缩是将文件或者文件夹通过一定的算法和方法,减小其占用的存储空间的过程。通过压缩,可以将文件或者文件夹的体积减小,从而节省存储空间和减少传输所需的时间和带宽。

打包和压缩的目的主要有以下几点:

         1. 节省存储空间:打包和压缩可以将多个文件或者文件夹整合在一起,减少占用的存储空间。

        2. 减少传输时间和带宽:通过压缩文件或者文件夹,可以减小其体积,从而减少传输所需的时间和带宽。

         3. 方便传输和分享:打包和压缩后的文件或者文件夹可以方便地进行传输和分享,减少传输错误和丢失的风险。

        4. 方便管理和备份:通过打包和压缩,可以将多个相关的文件或者文件夹整理在一起,方便进行管理和备份。

         总而言之,打包和压缩是为了提高存储和传输效率,方便管理和分享文件或者文件夹。


1.12.2 zip和unzip 指令

语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式
常用选项:-r 递 归处理,将指定目录下的所有文件和子目录一并处理
eg:(失败的打包案例)

        1.首先我们先造一批文件

我们发现所有的文件都是在data2目录下

        2.我们把data2打包一下(zip)

        3.然后我们把111.zip解压一下,看有什么效果(unzip)

此时我们把data2解压出来了。

此时data2中什么都没有,这说明我们这次打包是失败的,并没有打包data2中的内容

eg:成功的打包案例

      1. zip -r 递归式的打包压缩

        2.unzip ,此时发现data2中的内容全都被解压出来了


 2.理论


2.1 '>'输出重定向&&'>>'追加重定向

'>'输出重定向:将程序的输出重定向到一个文件或其他设备,而不是在终端上显示。这可以用于保存输出以供以后使用,或将一个命令的输出重定向到另一个命令的输入。

        补充概率见2.2 普通文件VS显示器

1.'>' (相当于C语言中以写'w'的方式打开文件)

我们可以看到本该输出到屏幕上的hello,却到了t.txt文件中。

这时我们发现:

        1.1> 可以直接创建一个文件。

        1.2 本该显示到显示器上的数据,显示到了文件中。

        1.3 清空写入的内容

我们可以看到我们上一次所写的内容没有了,显示的是当前所写入的内容。


2.>> (相当于C语言中以追加'a'的方式向文件写入内容)

        >>与>不同的是,>>不会清空文件内容,而是在上一次写入到末尾继续写入新的内容。


2.2 '<'输入重定向

 暂时只介绍<,不对<<做介绍。

’<'输入重定向:输入重定向是指将文件的内容作为命令的输入。(相当于C语言中以读的方式'r'打开文件)

读取方向发生改变。

本来cat要由键盘文件输入,现在转变为由t.txt文件输入。


 2.3 普通文件VS显示器

        Linux中一切皆文件         

        对于任何文件来讲,读和写文件:

显示器设备->显示器文件->向显示器文件打印,向显示器文件写入 。

也就是说输出重定向的作用我们可以初步理解为:将写入显示器文件的内容,重新输出到普通文件中。


2.4 '|'管道

        | 是 Linux 命令行中的一个特殊字符,它可以将一个命令的输出作为另一个命令的输入。这可以用于连接多个命令,或者将一个命令的输出传递给一个文件。就类似于管道的作用,用于连通。

eg:我想查看大文件中4991行到5000行的内容。

我们先用head去到了前 5000行,然后用管道连接tail指令去到了前5000行的后10行

前文:

Linux--初识和基本的指令(1)-CSDN博客

Linux--初识和基本的指令(2)-CSDN博客

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

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

相关文章

RPG项目01_脚本代码

基于“RPG项目01_场景及人物动画管理器”&#xff0c;我们创建一个XML文档 在资源文件夹下创建一个文件夹&#xff0c; 命名为Xml 将Xnl文档拖拽至文件夹中&#xff0c; 再在文件夹的Manager下新建脚本LoadManager 写代码&#xff1a; using System.Collections; using System…

7、Qt延时的使用

一、说明 平时用到两种延时方式QThread::sleep()和QTimer::singleShot() 1、QThread::sleep() QThread类中如下三个静态函数&#xff1a; QThread::sleep(n); //延迟n秒 QThread::msleep(n); //延迟n毫秒 QThread::usleep(n); //延迟n微妙 这种方式使用简单&#xff0c;但是会阻…

四.多表查询

多表查询 1.一个案例引发的多表连接1.1案例说明1.2 笛卡尔积&#xff08;或交叉连接&#xff09;的理解1.3案例分析与问题解决 2.多表查询分类讲解分类1&#xff1a;等值连接vs非等值连接分类2&#xff1a;自连接vs非自连接分类3&#xff1a;内连接vs外连接 3.SQL99语法实现多表…

【【FPGA 之 MicroBlaze XADC 实验】】

FPGA 之 MicroBlaze XADC 实验 Vivado IP 核提供了 XADC 软核&#xff0c;XADC 包含两个模数转换器&#xff08;ADC&#xff09;&#xff0c;一个模拟多路复用器&#xff0c;片上温度和片上电压传感器等。我们可以利用这个模块监测芯片温度和供电电压&#xff0c;也可以用来测…

在AWS Lambda上部署标准FFmpeg工具——自定义层的方案

大纲 1 确定Lambda运行时环境1.1 Lambda系统、镜像、内核版本1.2 运行时1.2.1 Python1.2.2 Java 2 打包FFmpeg3 创建Lambda的Layer4 测试4.1 创建Lambda函数4.2 附加FFmpeg层4.3 添加测试代码4.4 运行测试 参考文献 FFmpeg被广泛应用于音/视频流处理领域。对于简单的需求&#…

sizeof()、strlen()、length()、size()的区别(笔记)

​ 上面的笔记有点简陋&#xff0c;可以看一下下面这个博主的&#xff1a; c/c中sizeof()、strlen()、length()、size()详解和区别_csize,sizeof,length_xuechanba的博客-CSDN博客

Linux Docker 图形化工具 Portainer远程访问

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 结束语 前言 Portainer是一个轻量级的容器管理工具&#xff0c;可以通过Web界面对Docker容器进行管理和监控。它提供了…

Kafka中的Topic

在Kafka中&#xff0c;Topic是消息的逻辑容器&#xff0c;用于组织和分类消息。本文将深入探讨Kafka Topic的各个方面&#xff0c;包括创建、配置、生产者和消费者&#xff0c;以及一些实际应用中的示例代码。 1. 介绍 在Kafka中&#xff0c;Topic是消息的逻辑通道&#xff0…

LeetCode-478. 在圆内随机生成点【几何 数学 拒绝采样 随机化】

LeetCode-478. 在圆内随机生成点【几何 数学 拒绝采样 随机化】 题目描述&#xff1a;解题思路一&#xff1a;一个最简单的方法就是在一个正方形内生成随机采样的点&#xff0c;然后拒绝不在内切圆中的采样点。解题思路二&#xff1a;具体思想是先生成一个0到r的随机数len&…

加强网站稳定性!学习如何进行高效压力测试!

前言 1、什么是压力测试&#xff1f; 软件压力测试是一种基本的质量保证行为&#xff0c;它是每个重要软件测试工作的一部分。 软件压力测试的基本思路很简单&#xff1a;不是在常规条件下运行手动或自动测试&#xff0c;而是在计算机数量较少或系统资源匮乏的条件下运行测试…

k8s之镜像拉取时使用secret

k8s之secret使用 一、说明二、secret使用2.1 secret类型2.2 创建secret2.3 配置secret 一、说明 从公司搭建的网站镜像仓库&#xff0c;使用k8s部署服务时拉取镜像失败&#xff0c;显示未授权&#xff1a; 需要在拉取镜像时添加认证信息. 关于secret信息,参考: https://www.…

AntDesignBlazor示例——创建项目

本示例是AntDesign Blazor的入门示例&#xff0c;在学习的同时分享出来&#xff0c;以供新手参考。 示例代码仓库&#xff1a;https://gitee.com/known/AntDesignDemo 1. 开发环境 VS2022 17.8.2.NET8AntDesign 0.16.2 2. 学习目标 创建新项目安装AntDesign组件包及使用方…

2D与3D图形的基本变换

1. 2d transformations 1.1缩放(Scaling) 其实这个转换非常简单&#xff0c;如图所示就是把x与y进行s倍的缩放&#xff0c;而我们图中的这个矩阵正好满足这一算法。 1.2镜像(Reflection) 这个镜像变换可以和上面的做类比&#xff0c;简单看一下就行。 1.3错切(Shearing) 当然…

《数据结构、算法与应用C++语言描述》-线索二叉树的定义与C++实现

_23Threaded BinaryTree 可编译运行代码见&#xff1a;GIithub::Data-Structures-Algorithms-and-Applications/_24Threaded_BinaryTree 线索二叉树定义 在普通二叉树中&#xff0c;有很多nullptr指针被浪费了&#xff0c;可以将其利用起来。 首先我们要来看看这空指针有多少…

单片机怎么实现真正的多线程?

单片机怎么实现真正的多线程? 不考虑多核情况时&#xff0c;CPU在一个时间点只能做一件事&#xff0c;因为切换的速度快所以看起来好像是同时执行多个线程而已。 实际上就是用定时器来做时基&#xff0c;以时间片的方式分别执行来实现的&#xff0c;只不过实现起来细节比较复…

C语言--每日选择题--Day37

第一题 1. 有以下说明语句&#xff1a;则下面引用形式错误的是&#xff08;&#xff09; struct Student {int num;double score; };struct Student stu[3] {{1001,80}, {1002,75}, {1003,91}} struct Student *p stu; A&#xff1a;p->num B&#xff1a;(p).num C&#…

LeetCode:2477. 到达首都的最少油耗(DFS C++、Java)

目录 2477. 到达首都的最少油耗 题目描述&#xff1a; 实现代码与解析&#xff1a; dfs 2477. 到达首都的最少油耗 题目描述&#xff1a; 给你一棵 n 个节点的树&#xff08;一个无向、连通、无环图&#xff09;&#xff0c;每个节点表示一个城市&#xff0c;编号从 0 到 n…

1-4节电池升降压充电IC解决方案

描述 MP2760是一款集成窄电压DC&#xff08;NVDC&#xff09;电源路径管理功能和USB On-the-Go(OTG)功能的升降压充电IC&#xff0c;兼容USB PD&#xff0c;适用于单节至4节串联的电池包应用。该芯片的充电输入电压范围广&#xff0c;可支持最高22V。 当启用电池放电模式&…

线性可分SVM摘记

线性可分SVM摘记 0. 线性可分1. 训练样本到分类面的距离2. 函数间隔和几何间隔、(硬)间隔最大化3. 支持向量 \qquad 线性可分的支持向量机是一种二分类模型&#xff0c;支持向量机通过核技巧可以成为非线性分类器。本文主要分析了线性可分的支持向量机模型&#xff0c;主要取自…

企业级SQL开发:如何审核发布到生产环境的SQL性能

自从上世纪 70 年代数据库开始普及以来&#xff0c;DBA 们就不停地遭遇各种各样的数据库管理难题&#xff0c;其中最为显著的&#xff0c;可能就是日常的开发任务中&#xff0c;研发人员们对于核心库进行变更带来的一系列风险。由于针对数据库的数据变更是一项非常常见的任务&a…