Linux中國

GNU 核心實用程序簡介

許多 Linux 系統管理員最基本和常用的工具主要包括在兩套實用程序中:GNU 核心實用程序(coreutils)和 util-linux。它們的基本功能允許系統管理員執行許多管理 Linux 系統的任務,包括管理和操作文本文件、目錄、數據流、存儲介質、進程式控制制、文件系統等等。

這些工具是不可缺少的,因為沒有它們,就不可能在 Unix 或 Linux 計算機上完成任何有用的工作。鑒於它們的重要性,讓我們來研究一下它們。

GNU coreutils

要了解 GNU 核心實用程序的起源,我們需要乘坐時光機進行一次短暫的旅行,回到貝爾實驗室的 Unix 早期。編寫 Unix 是為了讓 Ken Thompson、Dennis Ritchie、Doug McIlroy 和 Joe Ossanna 可以繼續他們在大型多任務和多用戶計算機項目 Multics 上的工作:開發一個叫做《太空旅行》遊戲的小東西。正如今天一樣,推動計算技術發展的似乎總是遊戲玩家。這個新的操作系統比 Multics(LCTT 譯註:multi- 字頭的意思是多數的)的局限性更大,因為一次只能有兩個用戶登錄,所以被稱為 Unics(LCTT 譯註:uni- 字頭的意思是單獨的)。後來這個名字被改成了 Unix。

隨著時間的推移,Unix 取得了如此巨大的成功,開始貝爾實驗室基本上是將其贈送給大學,後來送給公司也只是收取介質和運輸的費用。在那個年代,系統級的軟體是在組織和程序員之間共享的,因為在系統管理這個層面,他們努力實現的是共同的目標。

最終,AT&T 公司的老闆們決定,他們應該在 Unix 上賺錢,並開始使用限制更多的、昂貴的許可證。這發生在軟體變得更加專有、受限和封閉的時期,從那時起,與其他用戶和組織共享軟體變得不可能。

有些人不喜歡這種情況,於是用自由軟體來對抗。Richard M. Stallman(RMS),他帶領著一群「反叛者」試圖編寫一個開放的、自由的可用操作系統,他們稱之為 GNU 操作系統。這群人創建了 GNU 實用程序,但並沒有產生一個可行的內核。

當 Linus Torvalds 開始編寫和編譯 Linux 內核時,他需要一套非常基本的系統實用程序來開始執行一些稍微有用的工作。內核並不提供命令或任何類型的命令 shell,比如 Bash,它本身是沒有任何用處的,因此,Linus 使用了免費提供的 GNU 核心實用程序,並為 Linux 重新編譯了它們。這讓他擁有了一個完整的、即便是相當基本的操作系統。

你可以通過在終端命令行中輸入命令 info coreutils 來了解 GNU 核心實用程序的全部內容。下面的核心實用程序列表就是這個信息頁面的一部分。這些實用程序按功能進行了分組,以方便查找;在終端中,選擇你想了解更多信息的組,然後按回車鍵。

* Output of entire files::       cat tac nl od base32 base64
* Formatting file contents::     fmt pr fold
* Output of parts of files::     head tail split csplit
* Summarizing files::            wc sum cksum b2sum md5sum sha1sum sha2
* Operating on sorted files::    sort shuf uniq comm ptx tsort
* Operating on fields::          cut paste join
* Operating on characters::      tr expand unexpand
* Directory listing::            ls dir vdir dircolors
* Basic operations::             cp dd install mv rm shred
* Special file types::           mkdir rmdir unlink mkfifo mknod ln link readlink
* Changing file attributes::     chgrp chmod chown touch
* Disk usage::                   df du stat sync truncate
* Printing text::                echo printf yes
* Conditions::                   false true test expr
* Redirection::                  tee
* File name manipulation::       dirname basename pathchk mktemp realpath
* Working context::              pwd stty printenv tty
* User information::             id logname whoami groups users who
* System context::               date arch nproc uname hostname hostid uptime
* SELinux context::              chcon runcon
* Modified command invocation::  chroot env nice nohup stdbuf timeout
* Process control::              kill
* Delaying::                     sleep
* Numeric operations::           factor numfmt seq

這個列表裡有 102 個實用程序。它涵蓋了在 Unix 或 Linux 主機上執行基本任務所需的許多功能。但是,很多基本的實用程序都缺失了,例如,mountumount 命令不在這個列表中。這些命令和其他許多不在 GNU 核心實用程序中的命令可以在 util-linux 中找到。

util-linux

util-linix 實用程序包中包含了許多系統管理員常用的其它命令。這些實用程序是由 Linux 內核組織發布的,這 107 條命令中幾乎每一個都來自原本是三個單獨的集合 —— fileutils、shellutils 和 textutils,2003 年它們被合併成一個包:util-linux。

agetty          fsck.minix      mkfs.bfs        setpriv 
blkdiscard      fsfreeze        mkfs.cramfs     setsid 
blkid           fstab           mkfs.minix      setterm 
blockdev        fstrim          mkswap          sfdisk 
cal             getopt          more            su 
cfdisk          hexdump         mount           sulogin 
chcpu           hwclock         mountpoint      swaplabel 
chfn            ionice          namei           swapoff 
chrt            ipcmk           newgrp          swapon 
chsh            ipcrm           nologin         switch_root 
colcrt          ipcs            nsenter         tailf 
col             isosize         partx           taskset 
colrm           kill            pg              tunelp 
column          last            pivot_root      ul 
ctrlaltdel      ldattach        prlimit         umount 
ddpart          line            raw             unshare 
delpart         logger          readprofile     utmpdump 
dmesg           login           rename          uuidd 
eject           look            renice          uuidgen 
fallocate       losetup         reset           vipw 
fdformat        lsblk           resizepart      wall 
fdisk           lscpu           rev             wdctl 
findfs          lslocks         RTC Alarm       whereis 
findmnt         lslogins        runuser         wipefs 
flock           mcookie         script          write 
fsck            mesg            scriptreplay    zramctl 
fsck.cramfs     mkfs            setarch

這些實用程序中的一些已經被淘汰了,很可能在未來的某個時候會從集合中被踢出去。你應該看看維基百科的 util-linux 頁面來了解其中許多實用程序的信息,而 man 頁面也提供了關於這些命令的詳細信息。

總結

這兩個 Linux 實用程序的集合,GNU 核心實用程序和 util-linux,共同提供了管理 Linux 系統所需的基本實用程序。在研究這篇文章的過程中,我發現了幾個有趣的實用程序,這些實用程序是我從不知道的。這些命令中的很多都是很少需要的,但當你需要的時候,它們是不可缺少的。

在這兩個集合里,有 200 多個 Linux 實用工具。雖然 Linux 的命令還有很多,但這些都是管理一個典型的 Linux 主機的基本功能所需要的。

via: https://opensource.com/article/18/4/gnu-core-utilities

作者: David Both 選題者: lujun9972 譯者: wxy 校對: wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國