Linux基本指令3

news2024/11/27 16:29:38

目录

一.基本常用指令

指令1:find命令:

指令2:which命令:

指令3:alias命令: 

 指令4:whereis

which,find,whereis这三个搜索命令的区别:

指令5:grep命令

指令6:sort命令:

指令7:uniq指令:

二.打包压缩/解包解压型指令

指令8:zip/unzip命令:

指令9:tar命令:


一.基本常用指令

指令1:find命令:

Linux下find命令在目录结构中搜索文件,并执行指定的操作。

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

语法: find pathname -options

功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

常用选项:

-name   按照文件名查找文件。

 

例1:

 

 

例2: 

 

 例3:

 

 其实find命令不止一个按文件名称查找,还有别的查找方式,但-name方式是最常用到的。

 

例4:

 


指令2:which命令:

        which 用于查看给定命令的绝对路径。


        which 可指定一个或多个参数。对于它的每个参数,它将可执行文件的完整路径打印到 stdout。它通过使用与 bash(1)相同的算法在环境变量 PATH 中列出的目录中搜索可执行文件或脚本来实现这一点。

如上图发现有个alias词汇,该词汇其实也是一个指令。

  


指令3:alias命令: 

alias命令用于设置指令的别名。
alias[别名]=[指令名称]。
功能:alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在.profile或.cshrc中设定指令的别名。

 

 

将指定的指令重命名,那么自己设置的名字就可代替官方的指令进行操作了:,如下:

         解析:将ls -l指令重起个名字为zhangsan,那么zhangsan也就是一个可以查看当前路径下所有文件的指令了。  

 


 指令4:whereis

        功能:定位一个“命令”的二进制文件、源文件、手册文件。
        语法:whereis [options] [-BMS directory... -f name..


        描述whereis 定位一个指定“命令”的二进制文件、源文件、手册文件的位置。提供的名称首先去除前导路径名组件和任何 (单个) 尾随 .ext 扩展名 (例如: .c) 。使用源代码控制产生的前缀"s."也得到处理。然后whereis 尝试在标准 LinuxQ 位置以及 SPATH 和SMANPATH 指定的位置中定位所需的程序。

       选项:

-b: 只搜索二进制文件
-m:只搜索手册文件
-s: 只搜索源文件。

 

 

 

which,find,whereis这三个搜索命令的区别:

  1. which:常用于查找可直接执行的命令。只能查找可执行文件,该命令基本只在$PATH路径中搜索,查找范围最小,查找速度快。默认只返回第一个匹配的文件路径,通过选项 -a 可以返回所有匹配结果。
  2. whereis:不只可以查找命令,其他文件类型都可以(man中说只能查命令、源文件和man文件,实际测试可以查大多数文件)。在$PATH路径基础上增加了一些系统目录的查找,查找范围比which稍大,查找速度快。可以通过 -b 选项,限定只搜索二进制文件。whereis适用于查找文档和指令。
  3. find:直接搜索整个文件目录,默认直接从根目录开始搜索,建议在以上命令都无法解决问题时才用它,功能最强大但速度超慢。除非你指定一个很小的搜索范围。通过 -name 选项指定要查找的文件名,支持通配符。

 


指令5:grep命令

全拼:Global search REgular expression and Print out the line.

语法: grep [选项]  搜寻文件中的指定内容

功能:文本搜索工具,根据用户指定的“模式 (过滤条件”对目标文本逐行进行匹配检查,打印匹配到的行模式:由正则表达式的元字符及文本字符所编写出的过滤条件

常用选项:

-i :忽略大小写的不同,所以大小写视为相同

-n :顺便输出行号

-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

 

例1:此下图片为106.txt的内容:

 通过使用grep指令去查询筛选出特定关键字的内容:

        图片解析:查询106.txt文件中的有关字母i的行数并显示出来grep -i 不分大小写 ,grep -n 显示行数。

采用-v选项可以筛选出除了包含内容i以外的所有内容:

 



 

 

 


指令6:sort命令:

语法:sort  [filename]

功能:对文件内容进行排序(按照ASCII码表)

例1:

 

采用sort指令对该文件进行排序后,如下: 

 

 解析:文件内容变得很规范,数字行在前,字母行在后。

注:那些空行全部都按照ASCII的数字0进行匹配的。


指令7:uniq指令:

 

语法:uniq  [filename] 

功能:对文件内容进行去重,即有多个相同行数据的全部清除到只有一行。

例1: 

采用uniq指令后: 

 

         图片解析:从图中可发现,那些连续行重复的,uniq可以进行去重;但是零散的多个重复行内容却没有做到去重。

解决方法:

 想要真正去重只能是在sort的前提下进行uniq才能真正做到文件内容的去重!

 

 


二.打包压缩/解包解压型指令

 1. 打包:将一堆文件或目录什么的变成一个总的文件。

 2. 压缩:将一个大的文件经过某种压缩算法变成一个小文件。

       为什么要区分这两个概念呢?因为Linux中的很多压缩程序只能针对一个文件进行压缩,所以当你想要压缩一大堆文件时,首先需要打个包,然后压缩。

指令8:zip/unzip命令:

语法: zip 压缩文件.zip 目录或文件   ; unzip解压文件

功能: 将目录或文件压缩成zip格式;   将zip格式的压缩包进行解压成文件

常用选项:

-r 递 归处理,将指定目录下的所有文件和子目录一并处理

 

使用该命令需要执行yum指令安装下载才可以,注意:安装时需要root用户进行,采用子账号权限不够!

例1:

 

 

 

 

 但是进入myy.zip中发现该文件中没有empty的文件,这是为什么?从上上个图可以看出:zip myy.zip  empty指令是一定执行成功的,因为有adding:qaq/(stored 0%)。

        但是我们需要好好想想:empty是一个目录文件,它里面即可以放目录,又可以放普通文件,所以我们的做法只是将empty目录表面压缩成了包,但empty里面的内容并没有压缩!所以还得加上-r选项才可以!

将my.zip移动到新创建的目录qaq中: 

 

对zip进行解压:

 

还可以将压缩包解压到指定路径下:需要用到-d选项!

 

        以上就成功的将某个目录文件完整的进行压缩成zip格式的包,然后再放到新建的目录文件中进行解压的全部过程。 

总结:

1.zip默认对一个目录进行打包压缩的时候,只会对目录文件打包压缩。

2.zip -r 你的压缩包名称(自定义) dir(要打包压缩的目录)

3.unzip 你自定义的压缩包名称 —— 在当前目录下进行解包解压的功能

 

 


 

指令9:tar命令:

功能:tar -[选项] [要打包的目录文件]                 (压缩指令);

           tar -[选项] [要解压的taz类型的压缩包]     (解压指令);

参数:

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令!

-t :查看 tarfile 里面的文件!

-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

-C : 解压到指定目录

 

例1:仍是将empty目录文件压缩到指定目录中

 

 

解析:压缩的时候是:tar -czf 自定义的压缩包名称  dir(要压缩的目录文件) 

        解压的时候是:tar -xzf 自定义的压缩名称

 例2:解包解压时指定路径:-C选项

例3:不解包解压,仍可以查看到包里的文件名称:

 

 

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

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

相关文章

Vue初始

一、Vue的概述 Vue 发音类似 view Vue 游雨溪 鱿鱼须 鱿鱼须不懂Vue Vue历史 Angular React Vue 2013 Seed 2013 Seed命名为Vue 2014 Vue正式发布 0.8 - 0.10 2015 6.13 0.12 2015下半年 vue-cli vueRouter vueX 版本好1.0 vue正式跨入大众 渐进式框架(JQuery) 2016国…

[CTF/网络安全]攻防世界unserialize3解题详析及php序列化反序列化实例讲解

[CTF/网络安全]攻防世界unserialize3解题详析及php序列化反序列化实例讲解 _wakeup()及php序列化反序列化序列化字符串结构分析_wakeup()的利用 解题思路伪属性数量绕过 解题姿势总结 _wakeup()及php序列化反序列化 序列化是指将数据结构或对象转换为可传输或可存储的格式的过…

14.Kafka系列之K8S部署集群

1. 部署方式选择 基于Kafka3.X后的集群搭建方式主要分为两种,一种是基于Zookeeper管理方式,一种是基于KRaft模式,本文主要介绍Kafka-KRaft集群模式搭建 纠正文章1.Kafka系列之K8S部署单节点中基于Zookeeper方式的部署方式错误,其…

Godot引擎 4.0 文档 - 入门介绍 - Godot设计理念

本文为Google Translate英译中结果,DrGraph在此基础上加了一些校正。英文原版页面: Godots design philosophy — Godot Engine (stable) documentation in English Godot设计理念 既然你已经了解了,让我们来谈谈 Godot 的设计。 每个游戏…

(转载)MATLAB智能算法30个案例分析(1)——遗传算法工具箱

以下内容大部分来源于《MATLAB智能算法30个案例分析》,仅为学习交流所用。 1理论基础 1.1遗传算法概述 遗传算法(genetic algorithm,GA)是一种进化算法,其基本原理是仿效生物界中的“物竞天择、适者生存”的演化法则。遗传算法是把问题参数编码为染色体,再利用迭代…

第11届蓝桥杯Scratch选拔赛真题集锦

目录 一、编程题 第11届蓝桥杯Scratch选拔赛真题集锦 一、编程题 第 1 题 问答题 马克思的手稿 题目说明 背景信息: 马克思手稿中有一道趣味数学问题: 有30个人,其中有男人、女人和小孩。在一家饭馆吃饭共花了50先令;每个男人花了3先令,每个女人花了…

draw.io如何绘制带箭头的弧线

好长时间没有写draw.io相关的技巧了。今天再补充一个小技巧。 如何绘制像下图中蓝色的带箭头的弧线? 本来以为这个问题应该很简单,但是在仔细研究了很久之后我发现这个问题并没有想像得那么容易。 众所周知,draw.io中带箭头的线叫作“connect…

软件工程 | 期末复习习题

一、软件工程概述 1、选择 软件有无可行性和不可控性 软件工程是一门工程性学科 软件生存周期常见模型:螺旋模型、增量模型、瀑布模型、原型模型、融合模型、快速应用开发模型、敏捷模型 软件生存周期中时间最长的阶段是维护阶段 瀑布模型是一种软件生存周期模…

微搭低代码实现aad的sso

微搭低代码平台是一种可帮助您快速构建和部署应用程序的工具,而无需手动编写大量代码。要在微搭低代码平台上实现Azure Active Directory(AAD)的单点登录(SSO),您需要遵循以下步骤: 注册Azure …

SpringBoot整合Mybatis(3000字)

SpringBoot整合Mybatis 文章目录 SpringBoot整合Mybatis依赖导入配置信息(application.yml)代码分层数据库(建库建表语句)各层代码enity:dao:service:controller: 测试 Mybatis分页查询和模糊查询分页查询:测试: 模糊查询:测试: Mybatis的分布查询多对一:测试:一对多: Mybatis的…

邮箱营销不再难:如何提高邮件的到达率和打开率?

在数字时代,电子邮件是企业与客户以及潜在客户沟通的重要渠道,是企业培养客户的有效方式之一。然而,由于每个人每天也要收到大量的垃圾邮件,所以企业必须确保在正确的时间将邮件传递给正确的人。在这篇文章中,小编将探…

BEVDet 论文学习

1. 解决了什么问题? 自动驾驶系统感知周围的环境再进行决策,极具挑战。基于视觉的自动驾驶系统对准确性和效率的要求很严格,人们会采用不同的范式来解决 3D 检测和分割任务。对于多相机 3D 目标检测,image-view-based 方法如 FCO…

缓存更新策略

缓存更新策略 内存淘汰超时剔除主动更新说明利用Redis的内存淘汰机制,不用自己维护,当内存不足时会自动淘汰部分数据。下次查询时更新缓存。给缓存数据添加TTL(过期时间),到期后自动删除缓存。下次查询时更新缓存。编写业务逻辑,…

CSAPP Lab4- PerfLab

代码优化 typedef struct { unsigned short red; /* R value */ unsigned short green; /* G value */ unsigned short blue; /* B value */ } pixel图像用一维数组表示,第(i,j)个像素表示为I[RIDX(i,j,n)],n为图像的维数 #def…

Datacom-HCIE 02(10月26日更新)--含解析

单选题 1.[试题编号:189785] (单选题)如图所示,VTEP1上在BD20域内开启了ARP广播抑制功能,并且VTEP1通过 BGP EVPN路由学习到了PC2的ARP信息,则PC1发送的针对PC2的ARP请求,VIEP1在转发给VIEP2时…

sqli-labs Less-11,12

less-11(基于错误的POST型单引号字符型注入) sqlmap 1.使用bp抓包 2.保存为1.txt在本地,使用sqlmap查询数据库 sqlmap.py -r "C:\Users\wy199\Desktop\1.txt" --dbs 3.查询当前数据库的所有表 sqlmap.py -r "C:\Users\wy199\Desktop\1.txt"…

正点原子ALPHA开发板核心资源分析

目录 正点原子ALPHA开发板核心资源分析I.MX6ULL实物图对比SOC 主控芯片(MCIMX6Y2CVM08AB)NAND FLASHEMMCDDR3L 正点原子ALPHA开发板核心资源分析 I.MX6ULL实物图对比 I.MX6ULL NAND BTB 接口核心板资源图与 I.MX6ULL EMMC BTB 接口核心板资源图如上图&a…

安装ElasticSearch之前的准备工作jdk的安装

一.windows 下载jdk的软件 (1).进入jdk1.8官网 (2).根据电脑是32位还是64位按需下载 (3).点击下载之后就会跳转到Oracle账号登录界面 没有 Oracle账号的注册一下就可以了 下载好的jdk如下: 双击下一步下一步安装jdk 默认安装就可以了 配置环境变量 (1).电脑左下方设置选项 (2).…

UFT软件的安装与注意事项

安装包下载 UFT软件的安装包网上也有许多,这里我分享下我使用的--->UFT安装包 下载完成解压后进行安装。 要注意关闭杀毒软件,否则安装过程中某些组件可能会安装不上。 部分电脑在安装过程中出现以下提示,可以点击确定 然后我们查看桌面上…

学习open62541 --- [77] 修改String类型变量的注意点

对于String类型的节点,其值的类型是UA_String,在这篇文章中我们解释了UA_String的生成方法。 当我们修改String类型节点的值时,会事先准备一个UA_String变量,这时就会遇到一个选择:是否需要动态分配内存,即…