一起来学Linux命令(六)

2023年 8月 22日 45.4k 0

前言

目前正在出一个Linux命令系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~

作为服务端开发,linux命令还是要掌握一下的,可以做做基础性的运维。好了, 废话不多说直接开整吧~

cut

从每个文件中剪切出每行的选定部分(由列表指定),并将它们写入标准输出。如果未指定文件参数,或者文件参数为单破折号(-),则从标准输入中读取内容。列表指定的项目可以是列位置,也可以是由特殊字符分隔的字段。列编号从1开始。

语法:

cut -b list [-n] [file ...] cut -c list [file ...] cut -f list [-d delim] [-s] [file ...]

参数格式:

-b:仅显示行中指定直接范围的内容;

-c:仅显示行中指定范围的字符;

-d:指定字段的分隔符,默认的字段分隔符为“TAB”;

-f:显示指定字段的内容;

-n:与“-b”选项连用,不分割多字节字符;

--complement:补足被选择的字节、字符或字段;

--out-delimiter=:指定输出内容是的字段分割符;

使用示例:

[root@iZ2ze5vrnucj8nu52fq932Z head]# cut -c3- a.txt
llo1
llo2
llo3
llo4
llo5
[root@iZ2ze5vrnucj8nu52fq932Z head]# 

diff

比较两个文件的不同

语法:

diff [OPTION]... FILES

命令参数:

-b或--ignore-space-change 不检查空格字符的不同。

-B或--ignore-blank-lines 不检查空白行。

-c 显示全部内文,并标出不同之处。

-C或--context 与执行"-c-"指令相同。

-d或--minimal 使用不同的演算法,以较小的单位来做比较。

-D或ifdef 此参数的输出格式可用于前置处理器巨集。

-e或--ed 此参数的输出格式可用于ed的script文件。

-f或-forward-ed 输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。

-H或--speed-large-files 比较大文件时,可加快速度。

-l或--ignore-matching-lines 若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。

-i或--ignore-case 不检查大小写的不同。

-l或--paginate 将结果交由pr程序来分页。

-n或--rcs 将比较结果以RCS的格式来显示。

-N或--new-file 在比较目录时,若文件A仅出现在某个目录中,预设会显示:Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。

-p 若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。

-P或--unidirectional-new-file 与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。

-q或--brief 仅显示有无差异,不显示详细的信息。

-r或--recursive 比较子目录中的文件。

-s或--report-identical-files 若没有发现任何差异,仍然显示信息。

-S或--starting-file 在比较目录时,从指定的文件开始比较。

-t或--expand-tabs 在输出时,将tab字符展开。

-T或--initial-tab 在每行前面加上tab字符以便对齐。

-u,-U或--unified= 以合并的方式来显示文件内容的不同。

-v或--version 显示版本信息。

-w或--ignore-all-space 忽略全部的空格字符。

-W或--width 在使用-y参数时,指定栏宽。

-x或--exclude 不比较选项中所指定的文件或目录。

-X或--exclude-from 您可以将文件或目录类型存成文本文件,然后在=中指定此文本文件。

-y或--side-by-side 以并列的方式显示文件的异同之处。

使用示例:

[root@iZ2ze5vrnucj8nu52fq932Z head]# echo 'hhhhhh' >> b.txt
[root@iZ2ze5vrnucj8nu52fq932Z head]# diff a.txt b.txt
5a6
> hhhhhh
[root@iZ2ze5vrnucj8nu52fq932Z head]# 


tar

用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的

语法:

  tar [bundled-flags ] [ |  ...]
     tar {-c} [options] [files | directories]
tar {-r | -u} -f archive-file [options] [files | directories]
tar {-t | -x} [options] [patterns]

命令参数:

-A 新增压缩文件到已存在的压缩

-B 设置区块大小

-c 建立新的压缩文件

-d 记录文件的差别

-r 添加文件到已经压缩的文件

-u 添加改变了和现有的文件到已经存在的压缩文件

-x 从压缩的文件中提取文件-A 新增压缩文件到已存在的压缩

-B 设置区块大小

-c 建立新的压缩文件

-d 记录文件的差别

-r 添加文件到已经压缩的文件

-u 添加改变了和现有的文件到已经存在的压缩文件

-x 从压缩的文件中提取文件

-t 显示压缩文件的内容

-z 支持gzip解压文件

-j 支持bzip2解压文件

-Z 支持compress解压文件

-v 显示操作过程

-l 文件系统边界设置

-k 保留原有文件不覆盖

-m 保留文件不被覆盖

-W 确认压缩文件的正确性

-b 设置区块数目

-C 切换到指定目录

-f 指定压缩文件

-t 显示压缩文件的内容

-z 支持gzip解压文件

-j 支持bzip2解压文件

-Z 支持compress解压文件

-v 显示操作过程

-l 文件系统边界设置

-k 保留原有文件不覆盖

-m 保留文件不被覆盖

-W 确认压缩文件的正确性

-b 设置区块数目

-C 切换到指定目录

-f 指定压缩文件

使用示例:

#打包  tar -cvf 包名  文件名
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# tar -cvf test.tar test
test/
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# ls
test.tar
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# 


# 解包
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# tar -xvf test.tar
test/
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# ls
 test test.tar
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# 


# 压缩 实际上就多了一个z
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# tar -czvf test.tgz test
test/
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# ls
 test test.tar  test.tgz
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# 


# 解压
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# tar -xzvf test.tgz
test/
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# 


du

显示每个文件自变量以及以每个目录自变量为根的文件层次结构中每个目录的文件系统块使用情况。如果未指定文件,则显示以当前目录为根的层次结构的块使用情况。

语法:

du [-H | -L | -P] [-a | -s | -d depth] [-c] [-h | -k | -m | -g] [-x] [-I mask] [file ...]

命令参数:


-a或-all 显示目录中个别文件的大小。

-b或-bytes 显示目录或文件大小时,以byte为单位。

-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。

-k或--kilobytes 以KB(1024bytes)为单位输出。

-m或--megabytes 以MB为单位输出。

-s或--summarize 仅显示总计,只列出最后加总的值。

-h或--human-readable 以K,M,G为单位,提高信息的可读性。

-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。

-L或--dereference 显示选项中所指定符号链接的源文件大小。

-S或--separate-dirs  显示个别目录的大小时,并不含其子目录的大小。

-X或--exclude-from= 在指定目录或文件。

--exclude=     略过指定的目录或文件。

-D或--dereference-args  显示指定符号链接的源文件大小。

-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。

-l或--count-links  重复计算硬件链接的文件。

使用示例:

# 查看指定文件大小
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# du -h test.tgz
4.0K	test.tgz
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# 

#展示该目录下所有文件大小,大小以可读方式展示
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# du -h ./
12K	./head
8.0K	./cat
4.0K	./cp
4.0K	./mkd/test1/tmp
8.0K	./mkd/test1
4.0K	./mkd/test
4.0K	./mkd/test2/tmp
8.0K	./mkd/test2
24K	./mkd
4.0K	./test
4.0K	./rmd
4.0K	./ls
4.0K	./mvd
8.0K	./echo
4.0K	./.cache
96K	./
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# 


# 展示当前目录大小
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# du -sh
96K	.
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# 


# 展示所有文件大小
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# du -ah ./
4.0K	./head/a.txt
4.0K	./head/b.txt
12K	./head
0	./test3.txt
4.0K	./cat/a.txt
8.0K	./cat
0	./cp/a.txt
0	./cp/c.txt
0	./cp/b.txt
4.0K	./cp
4.0K	./mkd/test1/tmp
8.0K	./mkd/test1
4.0K	./mkd/test
4.0K	./mkd/test2/tmp
8.0K	./mkd/test2
24K	./mkd
4.0K	./test
4.0K	./rmd
4.0K	./ls
0	./test1.txt
4.0K	./test.tgz
0	./mvd/e.txt~
0	./mvd/e.txt
4.0K	./mvd
4.0K	./echo/a.txt
8.0K	./echo
4.0K	./.cache
12K	./test.tar
0	./test2.txt
96K	./
[root@iZ2ze5vrnucj8nu52fq932Z linux_study]# 


结束语

命令很多,大家不用去背,可以放到便签之类的工具中,用到的时候翻一下就好~

本着把自己知道的都告诉大家,如果本文对您有所帮助,点赞+关注鼓励一下呗~

Linux相关文章

  • 一起来学Linux命令(一)
  • 一起来学Linux命令(二)
  • 一起来学Linux命令(三)
  • 一起来学Linux命令(四)
  • 一起来学Linux命令(五)

往期面试题相关文章

  • 查漏补缺第一期(Redis相关)
  • 查漏补缺第二期(synchronized & 锁升级)
  • 查漏补缺第三期(分布式事务相关)
  • 查漏补缺第四期(Mysql相关)
  • 查漏补缺第五期(HashMap & ConcurrentHashMap)
  • 查漏补缺第六期(京东一面)
  • 查漏补缺第七期(美团到店一面)
  • 查漏补缺第八期(阿里一面)
  • 查漏补缺第九期(阿里二面)
  • 查漏补缺第十期(网易实习一面)
  • 查漏补缺第十一期(网易实习二面)
  • 查漏补缺第十二期(网易实习三面)
  • 查漏补缺第十三期(滴滴实习一面)
  • 查漏补缺第十四期(滴滴实习二面)
  • 查漏补缺第十五期(华为一面)
  • 查漏补缺第十六期(华为二面)
  • 查漏补缺第十七期(华为三面)
  • 查漏补缺第十八期(你了解class文件吗)

项目源码(源码已更新 欢迎star⭐️)

  • java-interview-all: https://github.com/qiuChengleiy/java-interview-all

往期设计模式相关文章

  • 一起来学设计模式之认识设计模式
  • 一起来学设计模式之单例模式
  • 一起来学设计模式之工厂模式
  • 一起来学设计模式之建造者模式
  • 一起来学设计模式之原型模式
  • 一起来学设计模式之适配器模式
  • 一起来学设计模式之桥接模式
  • 一起来学设计模式之组合模式
  • 一起来学设计模式之装饰器模式
  • 一起来学设计模式之外观模式
  • 一起来学设计模式之享元模式
  • 一起来学设计模式之代理模式
  • 一起来学设计模式之责任链模式
  • 一起来学设计模式之命令模式
  • 一起来学设计模式之解释器模式
  • 一起来学设计模式之迭代器模式
  • 一起来学设计模式之中介者模式
  • 一起来学设计模式之备忘录模式
  • 一起来学设计模式之观察者模式
  • 一起来学设计模式之状态模式
  • 一起来学设计模式之策略模式
  • 一起来学设计模式之模板方法模式
  • 一起来学设计模式之访问者模式
  • 一起来学设计模式之依赖注入模式

设计模式项目源码(源码已更新 欢迎star⭐️)

  • java-design-mode-all: https://github.com/qiuChengleiy/java-design-mode-all

Kafka 专题学习

  • 一起来学kafka之Kafka集群搭建
  • 一起来学kafka之整合SpringBoot基本使用
  • 一起来学kafka之整合SpringBoot深入使用(一)
  • 一起来学kafka之整合SpringBoot深入使用(二)
  • 一起来学kafka之整合SpringBoot深入使用(三)

项目源码(源码已更新 欢迎star⭐️)

  • springboot-kafka-all: https://github.com/qiuChengleiy/springboot-kafka-all

ElasticSearch 专题学习

  • 利用docker搭建es集群

  • 一起来学ElasticSearch(一)

  • 一起来学ElasticSearch(二)

  • 一起来学ElasticSearch(三)

  • 一起来学ElasticSearch(四)

  • 一起来学ElasticSearch(五)

  • 一起来学ElasticSearch(六)

  • 一起来学ElasticSearch(七)

  • 一起来学ElasticSearch(八)

  • 一起来学ElasticSearch(九)

  • 一起来学ElasticSearch(十)

  • 一起来学ElasticSearch之整合SpringBoot(一)

  • 一起来学ElasticSearch之整合SpringBoot(二)

  • 一起来学ElasticSearch之整合SpringBoot(三)

项目源码(源码已更新 欢迎star⭐️)

  • springboot-es-all: https://github.com/qiuChengleiy/springboot-es-all

往期并发编程内容推荐

  • Java多线程专题之线程与进程概述
  • Java多线程专题之线程类和接口入门
  • Java多线程专题之进阶学习Thread(含源码分析)
  • Java多线程专题之Callable、Future与FutureTask(含源码分析)
  • 面试官: 有了解过线程组和线程优先级吗
  • 面试官: 说一下线程的生命周期过程
  • 面试官: 说一下线程间的通信
  • 面试官: 说一下Java的共享内存模型
  • 面试官: 有了解过指令重排吗,什么是happens-before
  • 面试官: 有了解过volatile关键字吗 说说看
  • 面试官: 有了解过Synchronized吗 说说看
  • Java多线程专题之Lock锁的使用
  • 面试官: 有了解过ReentrantLock的底层实现吗?说说看
  • 面试官: 有了解过CAS和原子操作吗?说说看
  • Java多线程专题之线程池的基本使用
  • 面试官: 有了解过线程池的工作原理吗?说说看
  • 面试官: 线程池是如何做到线程复用的?有了解过吗,说说看
  • 面试官: 阻塞队列有了解过吗?说说看
  • 面试官: 阻塞队列的底层实现有了解过吗? 说说看
  • 面试官: 同步容器和并发容器有用过吗? 说说看
  • 面试官: CopyOnWrite容器有了解过吗? 说说看
  • 面试官: Semaphore在项目中有使用过吗?说说看(源码剖析)
  • 面试官: Exchanger在项目中有使用过吗?说说看(源码剖析)
  • 面试官: CountDownLatch有了解过吗?说说看(源码剖析)
  • 面试官: CyclicBarrier有了解过吗?说说看(源码剖析)
  • 面试官: Phaser有了解过吗?说说看
  • 面试官: Fork/Join 有了解过吗?说说看(含源码分析)
  • 面试官: Stream并行流有了解过吗?说说看

推荐 SpringBoot & SpringCloud (源码已更新 欢迎star⭐️)

  • springboot-all https://github.com/qiuChengleiy/springboot-all.git

  • SpringBoot系列教程合集

  • 一起来学SpringCloud合集

  • SpringCloud整合 Oauth2+Gateway+Jwt+Nacos 实现授权码模式的服务认证(一)

  • SpringCloud整合 Oauth2+Gateway+Jwt+Nacos 实现授权码模式的服务认证(二)

博客(阅读体验较佳)

  • 我的博客(阅读体验较佳)

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论