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

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
  • dd实用程序的独特语法让人想起 OS/360作业控制语言(20 世纪 60 年代初)。
  • 排序程序是唯一利用多线程的实用程序
  • fmt实用程序演示了使用特征成本优化行和段落
  • 看似简单的yes实用程序使用页对齐内存缓冲区具有高性能输出
  • df实用程序比du更快。前者使用设备元数据,后者检查所有文件
  • cksum包括两个入口点,一个用于正常操作,一个用于生成 CRC-32 表
  • echo实用程序没有失败条件
  • testexpr实用程序的设计与典型实用程序有很大不同
  • su最初由 coreutils/shellutils 维护

有趣的实现

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

其他资源

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: GNU是一个自由软件运动的项目,其目标是创建一个完全自由的操作系统GNU的全称是GNU's Not Unix,这是一种递归缩写,旨在说明该项目是一个Unix系统的替代品,但不是UnixLinux是一个基于Unix的操作系统内核,由Linus Torvalds在1991年首次发布。GNU项目提供了许多用户空间工具和库,而Linux内核则提供了操作系统的核心功能。这两个项目的结合形成了GNU/Linux操作系统,也被称为Linux发行版。 GNU组织提供了一系列的自由软件工具和库,包括GNU编译器套件(GCC)、GNU调试器(GDB)、GNU Bash shell、GNU Coreutils等等。这些工具和库提供了操作系统的基本功能,使得GNU/Linux系统能够运行应用程序并管理计算机硬件。 因此,GNU提供了GNU工具和库,这些工具和库是构建GNU/Linux操作系统的基础要素之一。 ### 回答2: GNU组织对于Linux操作系统的诞生提供了最重要的基础条件,这包括: 1. 自由软件理念:GNU组织坚持自由软件的理念,即用户有权利自由地运行、复制、分发、研究、修改和改进软件。这为Linux操作系统的开发提供了坚实的法律和道德支持。 2. GNU工具链:GNU组织开发了一系列的工具和软件,包括GNU C编译器、GNU调试器、GNU文本编辑器等,这些工具为Linux操作系统的开发提供了必要的基础设施。 3. GNU许可证:GNU组织开发了GNU通用公共许可证(GPL),这是一种开源软件许可证,它保护了软件自由,并要求任何修改和派生的软件也必须开放源代码。GPL为Linux操作系统的开发提供了法律保障,鼓励了开发者的合作和贡献。 4. GNU项目的支持:GNU组织通过自身网络和开发者社区的协作,为Linux操作系统的开发提供了技术和组织上的支持。GNU组织的成员和志愿者贡献了大量的代码和知识,推动了Linux操作系统的发展和完善。 总的来说,GNU组织为Linux操作系统的诞生提供了自由软件理念、工具链、许可证和项目支持,这些基础条件是Linux操作系统能够发展壮大的重要前提。 ### 回答3: GNU组织的诞生为Linux操作系统的发展提供了一些最重要的基础条件。其中包括: 1. 自由软件理念:GNU组织的创始人理查德·斯托曼提出了自由软件的概念,即用户有权利运行、复制、分发、学习和改进软件。这个理念为Linux操作系统的发展提供了自由和开放的环境,使得人们可以在合作的基础上共同开发和改进Linux。 2. GNU工具链:GNU组织提供了一系列重要的开发工具,如GNU C编译器和GNU调试器等。这些工具为Linux的开发者提供了便利,使得他们可以更加高效地开发、测试和调试Linux操作系统。 3. GNU通用公共许可证(GPL):GNU组织制定了一系列自由软件许可证,其中最著名的就是GNU通用公共许可证(GPL)。GPL保证了用户在使用GNU软件时的自由,并且要求在对软件进行修改和分发时,必须以相同的自由方式对外公开。这种开放的许可证为Linux的发展提供了法律框架,保证了Linux的代码能够被广泛地使用和改进。 4. GNU项目:GNU组织在开发自由软件方面做出了巨大的贡献。他们开发了许多重要的自由软件项目,如GNU Bash(Unix shell)、GNU Emacs(文本编辑器)和GNU Core Utilities(基本实用工具集)等。这些项目为Linux操作系统的发展提供了丰富的软件基础,使得Linux操作系统能够提供丰富的功能和应用。 综上所述,GNU组织的诞生为Linux操作系统的发展提供了自由软件理念、GNU工具链、GNU通用公共许可证和丰富的GNU项目等重要基础条件。这些条件为Linux的成功发展奠定了基础,并成为Linux操作系统得以成为世界上最流行的开源操作系统的重要因素。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

特立独行的猫a

您的鼓励是我的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值