Coreutils 軟體包包含用于顯示和設定基本系統特性的工具。
大概編譯時間:
2.5 SBU
需要磁盤空間:
193 MB
POSIX 要求 Coreutils 中的程式即使在多位元組語言環境也能正确識别字元邊界。下面的更新檔修複這個不相容性以及其它一些和國際化相關的 錯誤。之後確定
<code>Makefile.in</code> 檔案的時間戳比其它所有檔案都晚以免出現
make 錯誤:
之前在這個更新檔中發現了很多錯誤。當向 Coreutils 維護者報告新錯誤的時候,請先檢查沒有該更新檔是否可以重制該錯誤。
現在準備編譯 Coreutils:
配置選項的含義:
<dl></dl>
<dt></dt>
<code>FORCE_UNSAFE_CONFIGURE=1</code>
<dd></dd>
該環境變量允許以 root 使用者權限編譯軟體包。
<code>--enable-no-install-program=kill,uptime</code>
該選項的目的是防止 Coreutils 安裝其它軟體包後面會安裝的二進制包。
編譯軟體包:
如果不運作測試套件的話跳到 “安裝軟體包”
現在可以運作測試套件了。首先,運作需要以 <code>root</code>
使用者運作的測試:
我們會以 <code>nobody</code> 使用者運作剩下的測試。但是,一些測試要求使用者屬于多個組。由于不跳過這些測試,我們會添加一個臨時的組并添加使用者
<code>nobody</code> 作為它的成員:
修複一些權限問題以便非 root 使用者可以編譯和運作測試:
現在運作測試。確定 <code>su</code> 環境中的 PATH 環境變量包含了 /tools/bin。
已知在虛拟主要台中 stty-pairs 測試會失敗,而在 X 終端中則能通過。
移除臨時組:
安裝軟體包:
移動程式到 FHS 指定的位置:
BLFS 以及上遊中的一些軟體包希望如下的程式放在 <code>/bin</code>
中,確定把它們放到了那裡:
安裝的程式:
[, base64, basename, cat, chcon, chgrp,
chmod, chown, chroot, cksum, comm, cp, csplit, cut, date, dd,
df, dir, dircolors, dirname, du, echo, env, expand, expr,
factor, false, fmt, fold, groups, head, hostid, id, install,
join, link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod,
mktemp, mv, nice, nl, nohup, nproc, numfmt, od, paste, pathchk,
pinky, pr, printenv, printf, ptx, pwd, readlink, realpath, rm,
rmdir, runcon, seq, sha1sum, sha224sum, sha256sum, sha384sum,
sha512sum, shred, shuf, sleep, sort, split, stat, stdbuf, stty,
sum, sync, tac, tail, tee, test, timeout, touch, tr, true,
truncate, tsort, tty, uname, unexpand, uniq, unlink, users,
vdir, wc, who, whoami, 以及 yes
安裝的庫:
libstdbuf.so
安裝目錄:
/usr/libexec/coreutils
根據 base64(RFC3548)規範編碼和解碼資料
從檔案名稱中抽取路徑和字尾
将檔案連接配接到标準輸出
改變檔案和目錄的安全上下文
更改檔案和目錄的組所有者
更改每個檔案為指定模式的權限;模式可以是要實作更改的符号表示
或者表示新權限的十進制數字
更改檔案和目錄的使用者和/或組所有者
使用指定目錄作為 <code>/</code>
目錄運作指令
輸出指定檔案的循環備援檢驗(CRC)校驗碼和位元組數目
比較兩個排序後的檔案,以三列輸出不用的行和相同的行
複制檔案
将指定檔案分割為幾個新的檔案,根據指定的模式或者行數分割并
輸出每個新檔案的位元組數
根據指定的域或位置,選擇輸出行的組成
根據指定格式顯示目前時間,或設定系統日期
用給定的塊大小和數目複制檔案,同時可以進行一些轉換
報告所有挂載的檔案系統中可用(和已用)磁盤空間,或隻是
含有指定檔案的檔案系統
列出指定目的的内容(和 ls
指令相同)
輸出設定 <code>LS_COLOR</code> 環境變量的指令,用于更改
ls 使用的顔色模式
從一個檔案名稱中抽取非目錄字尾
報告目前目錄使用的磁盤空間,根據指定的每個檔案夾(包括子檔案夾)
或每個指定的檔案
顯示給定的字元串
在更改後的環境中運作指令
把 tab 鍵轉換為空格
計算表達式
輸出所有指定整數的質數因子
什麼都不做;總是以訓示失敗的狀态碼退出
重新格式化給定檔案中的段落
折疊指定檔案的行
報告一個使用者的組成員
輸出指定檔案的前十行(或指定數目行數)
報告主機的數字辨別符(以十六進制)
報告目前使用者或指定使用者的有效 使用者 ID、組 ID
以及組成員
複制檔案的同時設定權限模式,如果可以的話包括使用者群組
從兩個單獨的檔案中連接配接有相同域的行
用指定的名稱建立到一個檔案的硬連結
在檔案之間建立硬連結或軟(符号)連結
報告目前使用者的登入名
列出給定目錄的内容
報告或檢查消息摘要 5(MD5) 校驗碼
用指定的名稱建立目錄
用指定的名稱在 UNIX 中建立先進先出(FIFOs) 的 “命名管道”
用指定的名稱建立裝置結點;裝置結點是一個特殊字元檔案、特殊塊檔案或先進先出
以安全方式建立臨時檔案;在腳本中使用
移動或重命名檔案或目錄
以更改後的排程優先級運作程式
标記指定檔案的行号
以不能被挂起方式運作指令,輸出重定向到一個日志檔案
輸出程序可用的處理單元數目
轉換數字為人可讀字元串或者相反
以十進制或其他格式轉儲檔案
合并指定檔案,用 tab 字元分隔,以行并列方式連續合并
檢查檔案名是否可用
輕量級的 finger 用戶端;報告指定使用者的資訊
對檔案進行分頁分行用于列印
輸出環境
根據指定格式列印指定參數,類似于 C 語言的 printf 函數
用文中的每個關鍵字,根據檔案的内容中建立重排索引
報告目前工作目錄的名稱
報告指定符号連結的值
列印解釋後路徑
删除檔案或目錄
如果目錄為空則删除
以指定安全上下文運作指令
用指定的範圍和增長步長輸出一序列數字
列印或檢查 160-bit 安全雜湊演算法1(SHA1) 校驗碼
列印或檢查 224-bit 安全雜湊演算法校驗碼
列印或檢查 256-bit 安全雜湊演算法校驗碼
列印或檢查 384-bit 安全雜湊演算法校驗碼
列印或檢查 512-bit 安全雜湊演算法校驗碼
用複雜形式多次重寫指定檔案,使得難以恢複其中的資料
打亂文本行
暫停指定時間
排序給定檔案的行
根據大小或行數分割檔案為多個塊
顯示檔案或檔案系統狀态
用改變後的緩沖操作在标準流上運作指令
設定或報告終端行設定
列印指定檔案的校驗碼和塊數目
清空檔案系統緩存;強制更改塊到磁盤并更新超級塊
反向輸出給定檔案
輸出每個給定檔案的最後十行(或給定數目的行)
從标準輸入讀入并寫出到标準輸出和指定檔案
比較值并檢查檔案類型
有限時間内運作指令
更改檔案時間戳,設定指定檔案的通路和修改時間為目前時間;
如果檔案不存在則建立空檔案
從标準輸入轉換、壓縮并删除指定字元
不做任何事情,總是成功;總是以表示成功的狀态碼退出
壓縮或擴充檔案到特定大小
進行拓撲排序;根據指定檔案的部分排序寫出完全有序清單
報告連結到标準輸入的終端檔案名稱
報告系統資訊
轉換空格為 tab 鍵
忽略所有除非出現連續相同的行
移除指定檔案
報告目前登入的使用者名
和 ls
-l 相同
報告給定檔案的行數、單詞數和位元組數,以及給定多個檔案時總的行數
報告誰登入了
報告和目前有效使用者 ID 關聯的使用者名
重複輸出 “y”
或指定的字元串直到被殺死
stdbuf
使用的庫
建立者:Gerard Beekmans
編輯者:Matthew Burgess 和 Armin K.
翻譯團隊:LCTT
譯者/校對:ictlyh,wxy
<a href="https://linux.cn/lfs/LFS-BOOK-7.7-systemd/chapter06/coreutils.html" target="_blank">原文連結</a>