Linux系统管理员需要做的大部分事情都可以在GNUcoreutils或util-linux中找到。许多Linux系统管理员最基本和最常用的工具主要包含在两组实用程序中:GNU核心实用程序(coreutils)和util-linux。它们的基本功能允许系统管理员执行许多管理Linux系统的任务,包括管理和操作文本文件、目录、数据流、存储介质、过程控制、文件系统等等。这些工具是必不可少的,因为没有它们就不可能在Unix或Linux计算机上完成任何有用的工作。鉴于它们的重要性,让我们来研究一下它们。GNUcoreutils要了解GNU核心实用程序的起源,我们需要乘坐时光机回到贝尔实验室的早期Unix。编写Unix是为了让KenThompson、DennisRitchie、DougMcIlroy和JoeOssanna可以继续他们在Multics上的工作,Multics是一个大型的多任务和多用户计算机项目:开发一个叫做《太空旅行》游戏的小东西。就像今天一样,游戏玩家似乎总是在推动计算技术。这种新的操作系统比Multics(LCTT译注:multi-前缀是多数的意思)限制更多,因为一次只能有两个用户登录,所以叫Unics(LCTT译注:uni-前缀是单独的意思)。后来改名为Unix。随着时间的推移,Unix取得了巨大的成功,起初贝尔实验室基本上将其赠予大学,后来以媒体和运输成本赠送给公司。在那些日子里,系统级软件在组织和程序员之间共享,因为他们试图在系统管理级别实现共同的目标。最终,AT&T的老板们决定他们应该在Unix上赚钱,并开始使用更严格、更昂贵的许可证。这发生在软件变得更加专有、受限和封闭的时期,从那时起,就不可能与其他用户和组织共享软件。有些人不喜欢这种情况并使用免费软件来对抗它。RichardM.Stallman(RMS),他带领一群“叛逆者”试图编写一个开放的、可自由使用的操作系统,他们称之为GNU操作系统。这个小组创建了GNU实用程序,但没有产生可行的内核。当LinusTorvalds开始编写和编译Linux内核时,他需要一组非常基本的系统实用程序来开始做一些稍微有用的工作。内核不提供命令或任何类型的命令外壳,例如Bash,它本身是无用的,因此Linus使用免费提供的GNU核心实用程序并为Linux重新编译它们。这让他拥有了一个完整的、相当基本的操作系统。您可以通过在终端命令行输入命令infocoreutils来了解有关GNUCoreUtilities的所有信息。下面的核心实用程序列表是此信息页面的一部分。这些实用程序按功能分组,以便于查找;在终端中,选择您想了解更多信息的组,然后按Enter。*整个文件的输出::cattacnlodbase32base64*格式化文件内容::fmtprfold*部分文件的输出::headtailsplitcsplit*总结文件::wcsumcksumb2summd5sumsha1sumsha2*操作sortedfiles::sortshufuniqcommptxtsort*字段操作::cutpastejoin*字符操作::trexpandunexpand*目录列表::lsdirvdirdircolors*基本操作::cpddinstallmvrmshred*特殊文件types::mkdirrmdirunlinkmkfifomknodlnlinkreadlink*更改文件属性::chgrpchmodchowntouch*磁盘使用::dfdustatsynctruncate*打印文本::echoprintfyes*Conditions::falsetruetestexpr*重定向::tee*文件名操作::dirnamebasenamepathchkmktemprealpath*工作上下文::pwdsttyprintenvtty*用户信息::idlognamewhoami将用户分组为*系统上下文::datearchnprocunamehostnamehostiduptime*SELinuxcontext::chconrunco??n*Modifiedcommandinvocation::chrootenvnicenohupstdbuftimeout*Processcontrol::kill*Delaying::sleep*Numericoperations::factornumfmtseq这里面有102个列表涵盖在Unix或Linux主机上执行基本任务所需的许多功能的实用程序。但是,缺少许多基本实用程序,例如,mount和umount命令不在此列表中。这些命令和许多其他不在GNU核心实用程序中的命令都可以在util-linux中找到。util-linuxutil-linix实用程序包包含系统管理员常用的许多其他命令。这些实用程序由Linux内核组织发布,107个命令中几乎每一个都来自最初三个独立的集合——fileutils、shellutils和textutils——它们在2003年合并为一个包:util-linux。agettyfsck.minixmkfs.bfssetprivblkdiscardfsfreezemkfs.cramfssetsidblkidfstabmkfs.minixsettermblockdevfstrimmkswapsfdiskcalgetoptmoresucfdiskhexdumpmountsuloginchcpuhwclockmountpointswaplabelchfnionicenameiswapoffchrtipcmknewgrpswaponchshirootcolcrtpcipcswitch_nsentertailfcolisosizepartxtasksetcolrmkillpgtunelpcolumnlastpivot_rootulctrlaltdelldattachprlimitumountddpartlinerawunsharedelpartloggerreadprofileutmpdumpdmesgloginrenameuuiddejectlookreniceuuidgenfallocatelosetupresetvipwfdformatlsblkresizepartwallfdisklscpurevwdctlfindfslslocksRTC警报在哪里找到lsloginsrunuserwipefsflockmcookiescriptwritefsckmesgscriptreplayzramctlfsck.cramfsmkfssetarch其中一些实用程序已被弃用,并且可能会在将来的某个时候从集合中踢出你应该看看wikipedia-linux页面上的实用程序以获取信息在其中许多实用程序中,手册页还提供了有关这些命令的详细信息。总结这两个Linux实用程序集合,GNU核心实用程序和util-linux,共同提供了管理Linux系统所需的基本实用程序。在研究本文的过程中,我发现了几个我以前不知道的有趣实用程序。其中许多命令很少需要,但当您需要时,它们是不可或缺的。在这两个集合中,都有200多个Linux实用程序。虽然还有更多的Linux命令,但这些是您管理典型Linux主机的基本功能所需的全部。
