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

news2024/12/28 19:49:22

目录

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.coloradmin.cn/o/1277415.html

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

相关文章

熬夜会秃头——beta冲刺Day7

这个作业属于哪个课程2301-计算机学院-软件工程社区-CSDN社区云这个作业要求在哪里团队作业—beta冲刺事后诸葛亮-CSDN社区这个作业的目标记录beta冲刺Day7团队名称熬夜会秃头团队置顶集合随笔链接熬夜会秃头——Beta冲刺置顶随笔-CSDN社区 一、团队成员会议总结 1、成员工作…

蓝桥杯算法心得——小郑躲太阳(思维推导)

大家好&#xff0c;我是晴天学长&#xff0c;一道与平时的题型截然不同的题型&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1) .小郑躲太阳 问题描述 小郑一觉醒来发现起晚啦!现在需要从家里飞速前往公司…

服装行业中小企业零售数字化转型的工作目标和主要实施路径|徐礼昭

目标1&#xff1a;实现“人、货、场”的在线化和经营数字化 实施路径&#xff1a;中小企业可以选择商派的微信小程序商城系统&#xff0c;结合导购助手小程序&#xff0c;实现业务在线化&#xff0c;导购在线化&#xff0c;通过微信公众号、企微社群和视频号&#xff0c;开展私…

synchronized和volatile的区别是什么?

synchronized和volatile是Java中的两个关键词&#xff0c;分别用于实现线程同步和线程间的可见性。 synchronized用于实现线程之间的互斥同步&#xff0c;即同一时刻只能有一个线程访问被synchronized修饰的代码块或方法&#xff0c;其他线程需要等待。synchronized确保了线程…

在Android上搭建一个NDK项目

首先New Project&#xff0c;选择Native C&#xff0c;点击Next。 填入项目名称和包名&#xff0c;点击Next。 这里我们选择Cmake默认的C版本。 创建好的项目目录&#xff0c;里面比我们正常的Android项目多了一个cpp目录 打开MainActivity。里面定义了一个jni方法stringFromJN…

SOCKET、TCP、HTTP之间的区别与联系

SOCKET、TCP、HTTP之间的区别与联系 一、 Socket 1、什么是socket2、为什么需要socket3、建立socket连接 二、HTTP(基于TCP) 1、HTTP的概念2、HTTP连接的特点 连接请求&#xff1a;一次连接连接请求&#xff1a;短连接(socket是长连接) 三、TCP/IP协议簇 四、HTTP、Socket…

Linux中shell的运行原理

在Linux中&#xff0c;每次输入命令时&#xff0c;前面都会出现一串字母&#xff0c;我们称之为命令行提示符 实际上&#xff0c;命令行提示符是一种外壳程序 外壳程序的概念&#xff1a; 前面我们提到过&#xff0c;在Linux中&#xff0c;一切皆文件&#xff0c;所谓的命令就…

linux设置权限_setfacl_getfacl

3.2 设置权限ACL&#xff08;access control list&#xff09; 假设&#xff1a;/data所有者与所属组均为root&#xff0c;在不改变所有者的前提下&#xff0c;要求用户tom对该目录有完全访问权限&#xff08;rwx&#xff09;。只能考虑&#xff1a; 方法一&#xff1a;给/dat…

Spring AOP记录接口访问日志

Spring AOP记录接口访问日志 介绍应用范围组成通知&#xff08;Advice&#xff09;连接点&#xff08;JoinPoint&#xff09;切点&#xff08;Pointcut&#xff09;切面&#xff08;Aspect&#xff09;引入&#xff08;Introduction&#xff09;织入&#xff08;Weaving&#x…

003、应用程序框架-UIAbility

之——UIAbility 目录 之——UIAbility 杂谈 正文 1.UIAbility 2.基本使用 2.1 创建Ability工程 2.2 添加基础功能 2.3 新建页面 2.4 页面间的跳转 3.生命周期 总结 杂谈 UIAbility&#xff0c;其中的页面创建、页面间的跳转、数据传递、生命周期。 正文 1.UIAbil…

BUUCTF-WEB-刷题记录(2)

[网鼎杯 2018]Fakebook 注册一个账户&#xff0c;进去之后查看源代码&#xff0c;感觉存在注入点 是数字型注入&#xff0c;payload&#xff1a; 1%20and(false) 1%20and(true)判断列数 1 order by 5改为4的时候则页面正常 判断显示位&#xff0c;可以看见第二列存在数据回…

C语言每日一题(43)旋转链表

力扣 61 旋转链表 题目描述 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3]示例 2&#xff1a; 输入&#xff1a;head [0,1,2], …

Matlab 自适应选择搜索半径

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 通常我们计算某一点邻域的信息使用的都是固定搜索半径,然而,这取决于局部特征规模以及不包括代表性的几何信息。但如果存在三维噪声,固定的半径对最终的结果往往有着很大的影响。因此,要找到一个唯一的半径在所…

【网络安全技术】实体认证技术Kerberos

一、什么是Kerberos Kerberos解决的是客户端与服务器通信场景中&#xff0c;确保客户端服务器双方的身份可信&#xff0c;并提供对称密钥的分发来加密传输。是一个应用层的协议。 二、一个简单的模型 1.看这个基础的模型&#xff0c;客户端要和服务器通信&#xff0c;他先将自…

(使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))

使用vite搭建vue3项目&#xff08;vite vue3 vue router pinia element plus&#xff09; 初始化项目安装依赖&#xff0c;运行项目初始配置 初始化项目 1.需要在创建项目的位置cmd目录下执行 2. npm init vitelatest 回车 npm init vitelatest3.填上自己的项目名称 回车…

Rocket-核心编程模型

RocketMQ的消息模型 深入理解RocketMQ的消息模型 RocketMQ客户端基本流程 RocketMQ基于Maven提供了客户端的核心依赖&#xff1a; <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version&…

Overflow Aware Quantization

Overflow Aware Quantization Framework N o _o o​是 amount of arithmetic overflow 辅助信息 作者未提供代码

【数值计算方法(黄明游)】矩阵特征值与特征向量的计算(二):Jacobi 过关法(Jacobi 旋转法的改进)【理论到程序】

文章目录 一、Jacobi 旋转法1. 基本思想2. 注意事项 二、Jacobi 过关法1. 基本思想2. 注意事项 三、Python实现迭代过程&#xff08;调试&#xff09; 矩阵的特征值&#xff08;eigenvalue&#xff09;和特征向量&#xff08;eigenvector&#xff09;在很多应用中都具有重要的数…

计算机体系结构补充篇----静态超标量流水线及循环展开(一)

本文仅供学习&#xff0c;不作任何商业用途&#xff0c;严禁转载。部分资料取自----计算机系统结构教程(第二版)张晨曦等。部分资料来自----国科大计算机体系结构课程PPT–张科、刘珂、高婉玲 计算机体系结构----静态超标量流水线及循环展开&#xff08;一&#xff09; 摘要静…

西南科技大学(数据结构A)期末自测练习三

一、填空题&#xff08;每空1分&#xff0c;共10分&#xff09; 1、为解决计算机主机与打印机之间速度不匹配的问题&#xff0c;通常设置一个打印数据缓冲区。主机将要输出的数据依次写入缓冲区&#xff0c;打印机则依次从缓冲区中取出数据&#xff0c;则该换缓冲区的逻辑结构…