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
    • 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.rhkb.cn/news/103501.html

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

相关文章

用 VB.net,VBA 两种方式 读取单元格内的 换行数据,并出力到 CSV文件

用 VB.net,VBA 两种方式 读取单元格内的 换行数据,并出力到 CSV文件 需求 如下图所示,为了生成csv文件导入数据库,需要将下图 的 1 和 2 拼接成 如下 3 所示的一行数据, 开头为 1 ,往后为 2 的换行数据 将换…

HTML中SCRIPT 标签中的那些属性

在HTML中&#xff0c; <script> 标签用于嵌入或引用JavaScript代码。 在 <script> 标签中&#xff0c;有两个属性可以用来控制脚本的加载和执行方式&#xff1a; async 和 defer 。 当然这也是常见的一道面试题&#xff0c; async 和 defer 的作用和区别。 asy…

[Go版]算法通关村第十三关黄金——数字数学问题之数论问题(最大公约数、素数、埃氏筛、丑数)

目录 题目&#xff1a;辗转相除法&#xff08;求最大公约数&#xff09;思路分析&#xff1a;辗转相除法&#xff08;也叫欧几里得算法&#xff09;gcd(a,b) gcd(b,a mod b)复杂度&#xff1a;时间复杂度 O ( n l o g ( m a x ) ) O(nlog(max)) O(nlog(max))、空间复杂度 O (…

轻松实现文件夹名互换,快速批量改名高手工具助您高效管理!

亲爱的用户们&#xff0c;您是否曾经需要将文件夹的名称进行互换&#xff0c;但手动一个一个改名太过繁琐&#xff1f;现在&#xff0c;我们为您推出一款高效的文件夹批量改名工具&#xff0c;让您轻松实现文件夹名的互换&#xff0c;帮助您更好地管理文件&#xff01; 首先&a…

python中的matplotlib画散点图(数据分析与可视化)

python中的matplotlib画散点图&#xff08;数据分析与可视化&#xff09; import numpy as np import pandas as pd import matplotlib.pyplot as pltpd.set_option("max_columns",None) plt.rcParams[font.sans-serif][SimHei] plt.rcParams[axes.unicode_minus]Fa…

苹果iPhone 15 Ultra和iPhone 15 Pro Max:新名字是否值得期待?

我们即将发现一个名字里有什么,至少如果一个关于iPhone 15 Pro Max的新谣言被证明是准确的。一份新的报告表明,当这款手机可能在苹果9月的发布会上首次亮相时,苹果可能会放弃Pro Max的名字,而将其称为iPhone 15 Ultra。 改名的原因是什么?好吧,这肯定会将苹果最高端的手…

PHP实现每日蛋白质摄入量计算器

1.laravel 路由 //每日蛋白质摄入计算器Route::get(api/protein/intake, FormulaControllerproteinIntakeCal); 2.代码 /*** 每日蛋白质摄入计算器*/public function proteinIntakeCal(){$number intval($this->request(number));$goalFactor array(0.8, 1.16, 0.8, 1.16,…

【sql】MongoDB 增删改查 高级用法

【sql】MongoDB 增删改查 高级用法 相关使用文档 MongoDB Query API — MongoDB Manual https://www.mongodb.com/docs/manual/reference/sql-comparison //增 //新增数据2种方式 db.msg.save({"name":"springboot&#x1f600;"}); db.msg.insert({&qu…

Dubbo3之SerializingExecutor

前言 Dubbo3 提供了一个挺有意思的 Executor&#xff0c;用来将提交到线程池里的任务按顺序串行执行。 需求背景&#xff1a;你有一个线程池&#xff0c;但是你不想修改它&#xff0c;现在你的需求是要把提交上去的任务按顺序串行执行。 在这样一个需求背景下&#xff0c;Ser…

CSS scoped 属性的原理

scoped 一、scoped 是什么&#xff1f;二、实现原理 一、scoped 是什么&#xff1f; 在 Vue 组件中&#xff0c;为了使样式私有化&#xff08;模块化&#xff09;&#xff0c;不对全局造成污染&#xff0c;可以在 style 标签上添加 scoped 属性以表示它的只属于当下的模块&am…

计算机提示mfc120u.dll缺失(找不到)怎么解决

在计算机领域&#xff0c;mfc120u.dll是一个重要的动态链接库文件。它包含了Microsoft Foundation Class (MFC) 库的特定版本&#xff0c;用于支持Windows操作系统中的应用程序开发。修复mfc120u.dll可能涉及到解决与该库相关的问题或错误。这可能包括程序崩溃、运行时错误或其…

基于swing的图书借阅系统java jsp书店进销存mysql源代码

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于swing的图书借阅系统 系统有2权限&#xff1a;管…

手搭手入门MyBatis-Plus

MyBatis-Plus Mybatis-Plus介绍 为简化开发而生 MyBatis-Plus(opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis(opens new window) 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 特性 无侵入&#…

【洛谷算法题】P1000-超级玛丽游戏【入门1顺序结构】

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P1000-超级玛丽游戏【入门1顺序结构】&#x1f30f;题目描述&#x1f30f;输入格…

【无标题】idea 中 SpringBoot 点击运行没反应,按钮成灰色

问题描述 在使用 Spring Boot 开发项目时&#xff0c;可能会遇到一个问题&#xff1a;点击运行按钮后&#xff0c;控制台没有任何输出&#xff0c;项目界面也没有显示。这种情况可能是由多种原因导致的&#xff0c;本文将介绍一些常见的解决方法。 解决方法 首先看下Groovy插…

如何限制PDF打印?限制清晰度?

想要限制PDF文件的打印功能&#xff0c;想要限制PDF文件打印清晰度&#xff0c;都可以通过设置限制编辑来达到目的。 打开PDF编辑器&#xff0c;找到设置限制编辑的界面&#xff0c;切换到加密状态&#xff0c;然后我们就看到 有印刷许可。勾选【权限密码】输入一个PDF密码&am…

UI设计第一步,在MasterGo上开展一个新项目

我们都知道&#xff0c;一个完整的项目&#xff0c;要经历创建团队、搭建组件库、应用规范以及管理设计资产&#xff0c;那么今天小编就在MasterGo中带你从0到1开展一个全新的项目。 你一定遇到过这种情况&#xff0c;同团队的设计师&#xff0c;由于使用不同版本或不同软件&a…

js将搜索的关键字加颜色

js将搜索的关键字加颜色 使用正则匹配关键字并加入span标签&#xff0c;页面渲染时使用v-html渲染即可 // 文本框内容 let searchCont 测试;const reg new RegExp((${searchCont.value}), g); let data 图片保存测试A; data data.replace(reg, <span style"color:…

docker第二次作业

1、使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘。 拉取镜像 docker pull mysql:5.6 docker pull ow ncloud 运行镜像生成容器 [rootharbor ~]# docker run -d --name mydb1 --env MYSQL_ROOT_PASSWORD123456 mysql:5.6 [rootharbor ~]# docker run -d --name…

Spring Boot整合RabbitMQ之发布与订阅模式

RabbitMQ的模式中&#xff0c;常用的模式有&#xff1a;简单模式&#xff0c;发布与订阅模式&#xff0c;工作模式&#xff0c;路由模式&#xff0c;主题模式。简单模式不太会运用到工作中&#xff0c;我们可以使用 RabbitMQ 的发布订阅模式&#xff0c;实现&#xff1a; 用户…