Shell之常用命令

目录

1.排序工具--sort命令

1.1 快读查找一个目录中最大文件

2.去重工具--uniq命令

2.1 分析判断远程登录错误次数,禁止该用户远程登录

3.修改工具--tr命令

4.列截取工具--cut命令

5.分割文件工具--split命令

6.合并文件列--paste命令

7.扫描工具--eval命令

8.总结


1.排序工具--sort命令

以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序
比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

语法格式

sort [选项]  参数
cat file | sort  选项
按首字母排序,首字母一样按第二个字母排序,以此类推

数字:按第一个字符排序,第一个字符一样再看第二个数字,依次类推

常用选项

-n数字升序排序;-r反序排序


-u去重


-t指定字段分隔符;
-k指定排序字段

-t ':' 以冒号为分割,-k 3 指定第三个字段进行排序,-nr 倒序排序

-o将排序后的结果转存至指定文件;效果等同于“>”


-f忽略大小写


1.1 快读查找一个目录中最大文件

使用du -a查找所有文件,再通过sort -nr进行倒序排序查看最大文件

2.去重工具--uniq命令

  • 用于报告或者忽略文件中连续的重复行,常与sort 命令结合使用.
  • 注意: 是连续的行。所以通常和sort结合使用,先排序使之变成连续的行, 再执行去重操作,否则不连续的重复行它不能去重。

语法格式

uniq  [选项]   参数
cat file | uniq 选项

常用选项


如何删除重复行

-c统计指定文件中行数

-d仅显示有重复
-u查看内容没有重复

2.1 分析判断远程登录错误次数,禁止该用户远程登录

加入黑名单,防止登录

3.修改工具--tr命令

  • 常用来对来自标准输入的字符进行替换、压缩和删除.

语法格式

tr [选项] [参数]

常用选项

-t 字符集1替换字符集2,不加选项-t结果也相同

-c保留字符集1的字符,其他字符用字符集2替换

案例:

保留ab,其余都替换为0,\n为换行也会替换为0

-d删除所有 参数1 的字符

-s根据 参数1 进行去重,如果有 参数2 则再用 参数2 的字符替换 参数1 的字符

补充:
1.如何遍历PATH中的所有目录?

2.如何将一个ip地址转化为一个字符串列表?

3.如何将windows文件格式转换为linux文件格式?

(1).windows的换行:由回车符\r和换行符\n组成;而linux的换行:由换行符\n组成.

(2).安装dos2unix工具,即可解决windows文件转化为linux文件

4.使用sort和tr命令,实现数组的排序;

删除空行的两种方法;

1.grep -v “^$”

2.tr -s "\n"

4.列截取工具--cut命令

显示行中的指定部分,删除文件中指定字段.

语法格式

cut 参数
cat file | cut选项

常用选项

注意:

--output-dellmiter指定输出的字段分割符

--complement取反作用

补充:

字符串分片的三种方法

1.echo ${变量:下标:长度}  ;该方法下标起始从0开始

2.echo $变量 | cut -b 起始下标-终止下标  ;该方法下标起始从1开始

3.expr substr $变量 起始下标 长度  ;该方法下标起始从1开始

5.分割文件工具--split命令

split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等

语法格式

split 选项 参数 原始文件 拆分后文件名前缀

常用选项

1.如何分割一个大文件根据行分割
split -l (指定分割行数) 源文件 目标文件名前缀

-d   输出的目标文件后缀用数字替代

2.如何将一个10G文件分割为10个1G的文件?
split -b 1G 源文件 目标文件名前缀

6.合并文件列--paste命令

将多个文件按照列进行合

语法格式

paste [-s][-d <间隔字符>] 文件...

常用选项

-d 指定分割符

-s将每一个字段横向输出

如何合并文件列?

1.paste 文件1 文件2

示例:
将b.txt与与a.txt文件第二列进行合并

如何合并文件行?

cat 文件1 文件2  > 新文件

7.扫描工具--eval命令

命令字前加上eval时,shell会在执行命令之前扫描它两次。eval命令将首先会先扫描命令行进行所有的置换,然后再执行该命令。该命令适用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。

示例1 

示例2

示例3

示例4

8.总结

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

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

相关文章

YOLOv8改进教程|加入可改变核卷积AKConv模块,效果远超DSConv!

⭐⭐ YOLOv8改进专栏|包含主干、模块、注意力机制、检测头等前沿创新 ​ ⭐⭐ 一、 论文介绍 论文链接&#xff1a;https://arxiv.org/abs/2311.11587 代码链接&#xff1a;GitHub - CV-ZhangXin/AKConv 论文速览&#xff1a;&#xff1a;AKConv是2023年11月发表的一种可变卷积…

mobarxtem应用与华为设备端口绑定技术

交换机端口绑定 华为交换机的基础配置与MOBAXTERM终端连接 实验步骤&#xff1a; 一、给每个交换机划分vlan并添加端口 1.单个vlan的划分 2.批量划分vlan 在高端交换机CE6800上批量划分连续编号的VLAN&#xff0c;本例中连续的vlan20到vlan25 [~CE6800]vlan b 20 to 25 3…

Django视图Views

Views视图 HttpRequest 和HttpResponse Django中的视图主要用来接受web请求&#xff0c;并做出响应。视图的本质就是一个Python中的函数视图的响应分为两大类 1)以Json数据形式返回(JsonResponse) 2)以网页的形式返回 2.1)重定向到另一个网页 (HttpRe…

鸿蒙应用布局ArkUI【基础运用案例】

布局基础运用案例 平级导航的复合网格视图 平级导航的复合网格视图常出现在同时展示多种不同内容的界面。 例如&#xff0c;市场类应用作为典型的平级导航&#xff0c;其首页不同板块采用了不同布局能力。 标题栏与搜索栏&#xff1a;因元素单一、位置固定在顶部&#xff0c…

【easyX】动手轻松掌握easyX 1

01 简单绘图 在这个程序中&#xff0c;我们先初始化绘图窗口。其次&#xff0c;简单绘制两条线。 #include <graphics.h>//绘图库头文件 #include <stdio.h> int main() {initgraph(640, 480);//初始化640✖480绘图屏幕line(200, 240, 440, 240);//画线(200,240)…

win11快速安装mysql数据库系统

win11快速安装mysql数据库系统 1、下载 1.1 打开官网 1.2 向下滚动页面 1.3 进入下载选项 1.4 下载8.0.4 LTS 1.5 开始下载 1.6 下载中 2、解压 大家注意&#xff0c;此时解压后目录是没有data目录的。 3、数据库初始化 3.1 管理员身份打开CMD 开始菜单上&#xff0c;输入…

【记录】docker笔记(五):Docker网络-Network Namespace

Docker 网络理论基础 要了解docker网络&#xff0c;先了解如下基础概念。 Network Namespace Docker 网络的底层原理是 Linux 的 Network Namespace &#xff0c;所以对于 Linux Network Namespace 的理解对 Docker 网络底层原理的理解非常重要。 简介 Network Name…

【Qt】widget圆角,styleSheet

仅配置widget&#xff0c;不设置其子组件。 #widget{background-color: rgba(255, 255, 255, 100); border-top-left-radius: 20; border-top-right-radius: 20; border-bottom-left-radius: 20; border-bottom-right-radius: 20;}

汇舟问卷:5年专业经验,海外渠道查无需烦恼!

大家好&#xff0c;我是汇舟问卷&#xff0c;拥有五年的行业经验&#xff0c;专注于海外问卷渠道查。 在海外问卷渠道查领域&#xff0c;我们拥有专业的知识和经验。无需为购买大量海外邮箱而烦恼&#xff0c;更无需担忧账号被封禁的风险。我们提供全天候24小时的服务&#xf…

USB-OTG:1、OTG原理介绍

目录 &#x1f345;点击这里查看所有博文 随着自己工作的进行&#xff0c;接触到的技术栈也越来越多。给我一个很直观的感受就是&#xff0c;某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了&#xff0c;只有经常会用到的东西才有可能真正记…

Redis实战—验证码登录注册

目录 基于Session Controller层 Service层 ServiceImpl层 ​编辑校验登录状态 ThreadLocal 登录拦截器 添加拦截器到Config Controller层实现 基于Redis ServiceImpl 新增刷新拦截器 添加拦截器到Config 基于Session Controller层 /*** 发送手机验证码*/PostMappi…