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地址转化为一个字符串列表?

array=($(echo 192.168.9.100 | tr '.' ' '))

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-delimiter指定输出的字段分割符

--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.总结

  • 43
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值