溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何實(shí)現(xiàn)GNU核心實(shí)用程序分析

發(fā)布時(shí)間:2022-01-07 10:09:31 來源:億速云 閱讀:141 作者:柒染 欄目:系統(tǒng)運(yùn)維

本篇文章為大家展示了如何實(shí)現(xiàn)GNU核心實(shí)用程序分析,內(nèi)容簡明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

大多數(shù) Linux 系統(tǒng)管理員需要做的事情都可以在 GNU coreutils 或 util-linux 中找到。

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

這些工具是不可缺少的,因?yàn)闆]有它們,就不可能在 Unix 或 Linux 計(jì)算機(jī)上完成任何有用的工作。鑒于它們的重要性,讓我們來研究一下它們。

GNU coreutils

要了解 GNU 核心實(shí)用程序的起源,我們需要乘坐時(shí)光機(jī)進(jìn)行一次短暫的旅行,回到貝爾實(shí)驗(yàn)室的 Unix 早期。編寫 Unix 是為了讓 Ken Thompson、Dennis Ritchie、Doug McIlroy 和 Joe Ossanna 可以繼續(xù)他們在大型多任務(wù)和多用戶計(jì)算機(jī)項(xiàng)目 Multics  上的工作:開發(fā)一個(gè)叫做《太空旅行》游戲的小東西。正如今天一樣,推動(dòng)計(jì)算技術(shù)發(fā)展的似乎總是游戲玩家。這個(gè)新的操作系統(tǒng)比 Multics(LCTT  譯注:multi- 字頭的意思是多數(shù)的)的局限性更大,因?yàn)橐淮沃荒苡袃蓚€(gè)用戶登錄,所以被稱為 Unics(LCTT 譯注:uni-  字頭的意思是單獨(dú)的)。后來這個(gè)名字被改成了 Unix。

隨著時(shí)間的推移,Unix 取得了如此巨大的成功,開始貝爾實(shí)驗(yàn)室基本上是將其贈(zèng)送給大學(xué),后來送給公司也只是收取介質(zhì)和運(yùn)輸?shù)馁M(fèi)用。在那個(gè)年代,系統(tǒng)級(jí)的軟件是在組織和程序員之間共享的,因?yàn)樵谙到y(tǒng)管理這個(gè)層面,他們努力實(shí)現(xiàn)的是共同的目標(biāo)。

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

有些人不喜歡這種情況,于是用自由軟件來對(duì)抗。Richard M. Stallman(RMS),他帶領(lǐng)著一群“反叛者”試圖編寫一個(gè)開放的、自由的可用操作系統(tǒng),他們稱之為 GNU 操作系統(tǒng)。這群人創(chuàng)建了 GNU 實(shí)用程序,但并沒有產(chǎn)生一個(gè)可行的內(nèi)核。

當(dāng) Linus Torvalds 開始編寫和編譯 Linux  內(nèi)核時(shí),他需要一套非?;镜南到y(tǒng)實(shí)用程序來開始執(zhí)行一些稍微有用的工作。內(nèi)核并不提供命令或任何類型的命令 shell,比如  Bash,它本身是沒有任何用處的,因此,Linus 使用了免費(fèi)提供的 GNU 核心實(shí)用程序,并為 Linux  重新編譯了它們。這讓他擁有了一個(gè)完整的、即便是相當(dāng)基本的操作系統(tǒng)。

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

* 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

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

util-linux

util-linix 實(shí)用程序包中包含了許多系統(tǒng)管理員常用的其它命令。這些實(shí)用程序是由 Linux 內(nèi)核組織發(fā)布的,這 107  條命令中幾乎每一個(gè)都來自原本是三個(gè)單獨(dú)的集合 —— fileutils、shellutils 和 textutils,2003 年它們被合并成一個(gè)包: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

這些實(shí)用程序中的一些已經(jīng)被淘汰了,很可能在未來的某個(gè)時(shí)候會(huì)從集合中被踢出去。你應(yīng)該看看維基百科的 util-linux 頁面來了解其中許多實(shí)用程序的信息,而 man 頁面也提供了關(guān)于這些命令的詳細(xì)信息。

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

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

上述內(nèi)容就是如何實(shí)現(xiàn)GNU核心實(shí)用程序分析,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

gnu
AI