溫馨提示×

溫馨提示×

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

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

在 Linux上如何安裝moreutils

發(fā)布時間:2021-10-25 11:03:13 來源:億速云 閱讀:506 作者:小新 欄目:系統(tǒng)運維

這篇文章給大家分享的是有關在 Linux上如何安裝moreutils的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

我們都了解GNU 核心實用程序GNU Core Utilities,所有類 Unix 操作系統(tǒng)都預裝了它們。它們是 GNU 操作系統(tǒng)中與文件、Shell 和 文本處理相關的基礎實用工具。GNU 核心實用程序包括很多日常操作命令,例如 cat、lsrm、mkdirrmdir、touchtailwc 等。除了這些實用程序,還有更多有用的實用程序沒有預裝在類 Unix 操作系統(tǒng)中,它們匯集起來構成了 moreutilis 這個日益增長的集合。moreutils 可以在 GNU/Linux 和包括 FreeBSD,openBSD 及 Mac OS 在內的多種 Unix 類型操作系統(tǒng)上安裝。

截至到編寫這份指南時, moreutils 提供如下實用程序:

  • chronic – 運行程序并忽略正常運行的輸出

  • combine – 使用布爾操作合并文件的行

  • errno – 查詢 errno 名稱及描述

  • ifdata – 獲取網絡接口信息,無需解析 ifconfig 的結果

  • ifne – 在標準輸入非空的情況下運行程序

  • isutf8 – 檢查文件或標準輸入是否采用 UTF-8 編碼

  • lckdo – 帶鎖運行程序

  • mispipe – 使用管道連接兩個命令,返回***個命令的退出狀態(tài)

  • parallel – 同時運行多個任務

  • pee – 將標準輸入傳遞給多個管道

  • sponge – 整合標準輸入并寫入文件

  • ts – 為標準輸入增加時間戳信息

  • vidir – 使用你默認的文本編輯器操作目錄文件

  • vipe – 在管道中插入信息編輯

  • zrun – 自動解壓并將其作為參數(shù)傳遞給命令

在 Linux 上安裝 moreutils

由于 moreutils 已經被打包到多種 Linux 發(fā)行版中,你可以使用發(fā)行版對應的軟件包管理器安裝 moreutils。

Arch Linux 或衍生的 AntergosManjaro Linux 上,運行如下命令安裝 moreutils:

$ sudo pacman -S moreutils

Fedora 上,運行:

$ sudo dnf install moreutils

RHEL,CentOSScientific Linux 上,運行:

$ sudo yum install epel-release$ sudo yum install moreutils

DebianUbuntuLinux Mint 上,運行:

$ sudo apt-get install moreutils

Moreutils – 打包更多有用的 Unix 實用程序

讓我們看一下幾個 moreutils 工具的用法細節(jié)。

combine 實用程序

正如 combine 名稱所示,moreutils 中的這個實用程序可以使用包括 andnot,orxor 在內的布爾操作,合并兩個文件中的行。

  • and – 輸出 file1file2 都包含的行。

  • not – 輸出 file1 包含但 file2 不包含的行。

  • or – 輸出 file1file2 包含的行。

  • xor – 輸出僅被 file1file2 包含的行

下面舉例說明,方便你理解該實用程序的功能。這里有兩個文件,文件名分別為 file1file2,其內容如下:

$ cat file1iswaswerewherethere $ cat file2iswerethere

下面,我使用 and 布爾操作合并這兩個文件。

$ combine file1 and file2iswerethere

從上例的輸出中可以看出,and 布爾操作只輸出那些 file1file2 都包含的行;更具體的來說,命令輸出為兩個文件共有的行,即 is,were 和 there。

下面我們換成 not 操作,觀察一下輸出。

$ combine file1 not file2waswhere

從上面的輸出中可以看出,not 操作輸出 file1 包含但 file2 不包含的行。

ifdata 實用程序

ifdata 實用程序可用于檢查網絡接口是否存在,也可用于獲取網絡接口的信息,例如 IP 地址等。與預裝的 ifconfigip 命令不同,ifdata 的輸出更容易解析,這種設計的初衷是便于在 Shell 腳本中使用。

如果希望查看某個接口的 IP 地址,不妨以 wlp9s0 為例,運行如下命令:

$ ifdata -p wlp9s0192.168.43.192 255.255.255.0 192.168.43.255 1500

如果只查看掩碼信息,運行如下命令:

$ ifdata -pn wlp9s0255.255.255.0

如果查看網絡接口的物理地址,運行如下命令:

$ ifdata -ph wlp9s0A0:15:46:90:12:3E

如果判斷接口是否存在,可以使用 -pe 參數(shù):

$ ifdata -pe wlp9s0yes
pee 命令

該命令某種程度上類似于 tee 命令。

我們先用一個例子看一下 tee 的用法。

$ echo "Welcome to OSTechNIx" | tee file1 file2Welcome to OSTechNIx

上述命令首先創(chuàng)建兩個文件,名為 file1file2;接著,將 “Welcome to OSTechNix” 行分別附加到兩個文件中;***,在終端中打印輸出 “Welcome to OSTechNix”。

pee 命令提供類似的功能,但與 tee 又稍微有些差異。查看下面的例子:

$ echo "Welcome to OSTechNIx" | pee cat catWelcome to OSTechNIxWelcome to OSTechNIx

從上面的命令輸出中可以看出,有兩個 cat 命令實例獲取 echo 命令的輸出并執(zhí)行,因而終端中出現(xiàn)兩個同樣的輸出。

sponge 實用程序

這是 moreutils 軟件包中的另一個有用的實用程序。sponge 讀取標準輸入并寫入到指定的文件中。與 Shell 中的重定向不同,sponge 接收到完整輸入后再寫入輸出文件。

查看下面這個文本文件的內容:

$ cat file1IYouMeWeUs

可見,文件包含了一些無序的行;更具體的說,這些行“沒有”按照字母順序排序。如果希望將其內容安裝字母順序排序,你會怎么做呢?

$ sort file1 > file1_sorted

這樣做沒錯,對吧?當然沒錯!在上面的命令中,我將 file1 文件內容按照字母順序排序,將排序后的內容保存在 file1_sorted 文件中。但如果使用 sponge 命令,你可以在不創(chuàng)建新文件(即 file1_sorted)的情況下完成同樣的任務,命令如下:

$ sort file1 | sponge file1

那么,讓我們檢查一下文件內容是否已經按照字母順序排序:

$ cat file1IMeUsWeYou

看到了吧?并不需要創(chuàng)建新文件。在腳本編程中,這非常有用。另一個好消息是,如果待寫入的文件已經存在,sponge 會保持其權限信息permissions不變。

ts 實用程序

正如名稱所示,ts 命令在每一行輸出的行首增加時間戳timestamp。

查看如下命令的輸出:

$ ping -c 2 localhostPING localhost(localhost.localdomain (::1)) 56 data bytes64 bytes from localhost.localdomain (::1): icmp_seq=1 ttl=64 time=0.055 ms64 bytes from localhost.localdomain (::1): icmp_seq=2 ttl=64 time=0.079 ms --- localhost ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1018msrtt min/avg/max/mdev = 0.055/0.067/0.079/0.012 ms

下面,結合 ts 實用程序運行同樣地命令:

$ ping -c 2 localhost | tsAug 21 13:32:28 PING localhost(localhost (::1)) 56 data bytesAug 21 13:32:28 64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.063 msAug 21 13:32:28 64 bytes from localhost (::1): icmp_seq=2 ttl=64 time=0.113 msAug 21 13:32:28Aug 21 13:32:28 --- localhost ping statistics ---Aug 21 13:32:28 2 packets transmitted, 2 received, 0% packet loss, time 4msAug 21 13:32:28 rtt min/avg/max/mdev = 0.063/0.088/0.113/0.025 ms

對比輸出可以看出,ts 在每一行行首增加了時間戳。下面給出另一個例子:

$ ls -l | tsAug 21 13:34:25 total 120Aug 21 13:34:25 drwxr-xr-x 2 sk users 12288 Aug 20 20:05 DesktopAug 21 13:34:25 drwxr-xr-x 2 sk users 4096 Aug 10 18:44 DocumentsAug 21 13:34:25 drwxr-xr-x 24 sk users 12288 Aug 21 13:06 Downloads[...]
vidir 實用程序

vidir 實用程序可以讓你使用 vi 編輯器(或其它 $EDITOR 環(huán)境變量指定的編輯器)編輯指定目錄的內容。如果沒有指定目錄,vidir 會默認編輯你當前的目錄。

下面的命令編輯 Desktop 目錄的內容:

$ vidir Desktop/

在 Linux上如何安裝moreutils

vidir

上述命令使用 vi 編輯器打開了指定的目錄,其中目錄內的文件都會對應一個數(shù)字。下面你可以按照 vi 的操作方式來編輯目錄中的這些文件:例如,刪除行意味著刪除目錄中對應的文件,修改行中字符串意味著對文件進行重命名。

你也可以編輯子目錄。下面的命令會編輯當前目錄及所有子目錄:

$ find | vidir -

請注意命令結尾的 -。如果 - 被指定為待編輯的目錄,vidir 會從標準輸入讀取一系列文件名,列出它們讓你進行編輯。

如果你只想編輯當前目錄下的文件,可以使用如下命令:

$ find -type f | vidir -

只想編輯特定類型的文件,例如 .PNG 文件?你可以使用如下命令:

$ vidir *.png

這時命令只會編輯當前目錄下以 .PNG 為后綴的文件。

vipe 實用程序

vipe 命令可以讓你使用默認編輯器接收 Unix 管道輸入,編輯之后使用管道輸出供下一個程序使用。

執(zhí)行下面的命令會打開 vi 編輯器(當然是我默認使用的編輯器),你可以編輯 echo 命令的管道輸入(即 “Welcome to OSTechNix”),***將編輯過的內容輸出到終端中。

$ echo "Welcome to OSTechNIx" | vipeHello World

從上面的輸出可以看出,我通過管道將 “Welcome to OSTechNix” 輸入到 vi 編輯器中,將內容編輯為 “Hello World”,***顯示該內容。

好了,就介紹這么多吧。我只介紹了一小部分實用程序,而 moreutils 包含更多有用的實用程序。我在文章開始的時候已經列出目前 moreutils 軟件包內包含的實用程序,你可以通過 man 幫助頁面獲取更多相關命令的細節(jié)信息。舉個例子,如果你想了解 vidir 命令,請運行:

$ man vidir

感謝各位的閱讀!關于“在 Linux上如何安裝moreutils”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

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

AI