Linux和其他类Unix系统的GNU coreutils 知多少

news/2024/11/29 8:51:53/

GNU coreutils是GNU项目的一部分,它是一组基本的命令行工具集,用于操作和管理Linux和其他类Unix系统中的文件和数据流。这些工具被广泛用于终端和脚本中,提供了许多常用的功能和实用程序。Linux和其他类Unix系统的GNU coreutils 知多少?了解它有助你熟悉常用的linux命令。

官网地址:Coreutils - GNU core utilities

这张图很牛炸,瞧瞧上面列出的命令行程序,是不是很容易帮助记忆。

常用命令行程序

 以下是一些常见的GNU coreutils工具及其功能:

 1. ls :列出目录中的文件和子目录。

2. cp :复制文件和目录。

3. mv :移动或重命名文件和目录。

4. rm :删除文件和目录。

5. mkdir :创建新目录。

6. rmdir :删除空目录。

7. cat :将文件内容输出到终端或文件。

8. head :显示文件的前几行。

9. tail :显示文件的后几行。

10. grep :根据模式匹配搜索文件中的文本。

11. wc :统计文件中的字数、行数和字符数。

12. sort :对文件的行进行排序。

13. uniq :从文件中删除重复的行。

14. chmod :更改文件或目录的权限。

15. chown :更改文件或目录的所有者。

16. chgrp :更改文件或目录的所属组。

17. find :在文件系统中搜索文件和目录。

18. du :估算文件或目录的磁盘使用情况。

19. df :显示文件系统的磁盘空间使用情况。

20. ln :创建硬链接或符号链接。

21. basename :从文件路径中提取文件名部分。

22. dirname :从文件路径中提取目录部分。

23. tee :将标准输入内容复制到标准输出和文件。

24. cut :从文件的每一行中提取指定的字段。

25. paste :将多个文件的内容按列合并。

26. sed :基于规则进行文本替换和转换。

27. awk :处理和分析文本数据。

28. tar :创建、提取和管理tar归档文件。

29. gzip :压缩文件。

30. gunzip :解压缩文件。

GNU coreutils和GNU Binary Utilities区别

GNU Binary Utilities(GNU二进制工具)和GNU coreutils(GNU核心工具集)是GNU项目中的两个不同的软件集合,它们具有不同的功能和目的。

1. GNU Binary Utilities(GNU二进制工具): GNU Binary Utilities是一组用于处理二进制文件的工具。它们主要用于开发和调试可执行文件、库文件和目标文件。

Binutils- GNU Project - Free Software Foundation

这些工具包括:

- as :汇编器,将汇编语言源代码转换为可执行文件格式。

- ld :链接器,将多个目标文件和库文件链接为一个可执行文件。

- objcopy :用于复制、转换和操作目标文件的工具。

- objdump :用于反汇编目标文件并显示其内容。

- readelf :用于显示和分析ELF格式的目标文件信息。

2. GNU coreutils(GNU核心工具集): GNU coreutils是一组基本的命令行工具,用于操作和管理Linux和其他类Unix系统中的文件和数据流。它们主要用于终端和脚本中,提供了许多常用的功能和实用程序。一些常见的GNU coreutils工具已在前面的回答中提到,如 lscpmvrmmkdir 等。

总结:

- GNU Binary Utilities是一组用于处理二进制文件的工具,主要用于开发和调试可执行文件、库文件和目标文件。

- GNU coreutils是一组基本的命令行工具,用于操作和管理文件和数据流,主要用于终端和脚本中。

GNU coreutils核心程序

 

对代码阅读有帮助提高c/c++语言

源码地址:

git clone git://git.sv.gnu.org/coreutils

GNU软件源码

下载地址:https://ftp.gnu.org/gnu/

stc-c++官方手册地址 (学习c++新特性的一手资料):

https://gcc.gnu.org/onlinedocs/libstdc++/

libstdc++ Source: Main Index 

大名鼎鼎的GCC

GCC, the GNU Compiler Collection- GNU Project

https://gcc.gnu.org/onlinedocs/gcc-13.2.0/gcc.pdf

好玩的东西

想要了解这些实用程序的资深开发人员可能想从这里开始他们的旅程。

琐事

最短的实用程序:false(2 行 - 与 arch、dir 和 vdir 相关)
最短的独立实用程序:true(80 行) -第一个版本几乎是一个最小的 C 程序!
最长的实用程序:ls(5308 行)

  • 许多实用程序都可以追溯到 20 世纪 70 年代的 Research UNIX。少数甚至可以追溯到 Multics
  • 最古老的精神祖先是 CTSS LISTF命令(~1963)。值得庆幸的是短接到ls
    • LISTF是1962年设计论文中最初的18个实用程序之一
  • dd实用程序的独特语法让人想起 OS/360作业控制语言(20 世纪 60 年代初)。
  • 排序程序是唯一利用多线程的实用程序
  • fmt实用程序演示了使用特征成本优化行和段落
  • 看似简单的yes实用程序使用页对齐内存缓冲区具有高性能输出
  • df实用程序比du更快。前者使用设备元数据,后者检查所有文件
  • cksum包括两个入口点,一个用于正常操作,一个用于生成 CRC-32 表
  • echo实用程序没有失败条件
  • testexpr实用程序的设计与典型实用程序有很大不同
  • su最初由 coreutils/shellutils 维护

有趣的实现

coreutils 中有一些独立的代码片段值得研究:

  • shuf和shred使用的随机数ISAAC密码
  • shuf使用的油藏采样
  • sum中使用的旧版System V和BSD校验和
  • expr中使用的左关联表达式求值
  • shred实用程序使用的安全覆盖
  • 由cksum实用程序计算的CRC -32 校验和
  • 合并排序适合排序
  • 因子背后的一连串数学魔法

其他资源

Free Software Directory

util-linux - Debian Package Tracker

Software- GNU Project - Free Software Foundation

Boost.SmartPtr: The Smart Pointer Library - 1.83.0

Boost C++ Libraries


http://www.ppmy.cn/news/1057296.html

相关文章

【数据结构】C语言实现栈(详细解读)

前言: 💥🎈个人主页:​​​​​​Dream_Chaser~ 🎈💥 ✨✨专栏:http://t.csdn.cn/oXkBa ⛳⛳本篇内容:c语言数据结构--C语言实现栈 目录 什么是栈 栈的概念及结构 实现栈的方式 链表的优缺点: 顺序表的优缺点: 栈…

如何在一周内,学会用Python开发ai产品

学会用Python开发AI产品需要时间和系统的学习过程,一周内完全掌握可能是困难的,但你可以在一周内掌握Python中AI开发的基础知识和技能。以下是一个快速入门的学习路径: 第一天:了解Python和AI基础知识 学习Python语言基础&#…

如何才能设计出“好的”测试用例?

软件测试用例的设计质量直接影响到测试的完整性、有效性以及自动化测试的实施效果,是软件测试成功的重要保证,良好的软件测试用例对于提高测试的有效性和效率至关重要。那大家知道好的测试用例该怎么写吗?应该从哪几个方面来撰写呢&#xff1…

【MPC控制方法】

今天在读百度的MPC算法的代码。 研究对象 LQR的研究对象是现代控制理论中以状态空间方程形式给出的线性系统。MPC的研究对象可以是线性系统,也可以是非线性系统,只不过为了某些需求,如时效性,计算的便捷,操控性等&am…

常用的数据可视化工具有哪些?要操作简单的

随着数据量的剧增,对分析效率和数据信息传递都带来了不小的挑战,于是数据可视化工具应运而生,通过直观形象的图表来展现、传递数据信息,提高数据分析报表的易读性。那么,常用的操作简单数据可视化工具有哪些&#xff1…

[国产MCU]-W801开发实例-UART控制器

UART控制器 文章目录 UART控制器1、UART控制器介绍2、UART驱动API介绍3、UART使用示例本文将详细如何使用W801的UART模块。 1、UART控制器介绍 UART是一种通用串行 数据总线 ,用于 异步通信 。该总线支持双向通信,可以实现 全双工传输 和接收。 W801 共 6组普通 UART口,通…

NX/UG二次开发—其他—在NX中多线程的简单案例

一些NX使用者,经常提出一个需求,在NX的顶部标题栏显示当前显示部件的全路径,网上也有一些类似外挂或实现方法,比如利用定时器不断刷新,但这个方法存在一个弊端就是有时候会有明显卡顿。 通过测试,发现其他…

uCharts 运行微信小程序时,图表放在scroll-view中点击后不能正确获取点击的currentIndex一直为-1

图表在APP和H5中的点击位置是正常的,在微信小程序中会出现点击位置不对且有部分地方点击不到,最终我的解决方法如下。 1.查看包裹图表的元素中有没有元素开启了定位,可以去除定位属性试一试。 2.为微信平台的图表添加 isScrollView="true"属性。 解决方案: 添加 …