這篇文章為大家帶來了linux作業系統下替代工具的相關知識,其中包括linux中安裝和使用bat指令,希望對大家有幫助。
在Linux 作業系統下,我們經常使用cat 指令去連接多個文件並列印到標準輸出,合成幾個文件為一個目標文件,追加幾個文件到目標檔案中。
最近我在 GitHub 上發現了一個具有相似作用的命令叫做 “Bat”,它是 cat 命令的替代品,具有一些例如語法高亮、 Git 集成和自動分頁等非常酷的特性。
在這篇文章中,就來跟大家介紹下如何在 Linux 中安裝和使用 bat 指令。
1、bat
#安裝bat
## Arch Linux
bat 可以在Arch Linux 作業系統的預設軟體來源中進行獲取,可直接使用pacman 命令在任何基於 Arch 的系統上來安裝它。 pacman -S bat
dnf install bat
brew install bat
我是透過Ubuntu 環境下安裝的bat,從bat 的發布頁面下載.deb文件,可執行以下命令進行下載和安裝。
sudo apt-get install wget wget https://github.com/sharkdp/bat/releases/tag/v0.18.3/bat_0.18.3_amd64.deb sudo dpkg -i bat_0.18.3_amd64.deb
對於其他系統,也許需要從軟體來源編譯並安裝,或參考 GitHub 上 bat 的其他作業系統安裝方式。 bat 指令的使用
bat 指令的使用與 cat 指令的使用非常相似。
使用bat 指令建立一個新檔案:
bat > jiaoben1.sh
使用bat 指令查看檔案內容:
bat jiaoben1.sh
使用bat 指令同時檢視多個檔案:
bat jiaoben1.sh jiaoben2.sh
使用bat 指令將多個檔案的內容合併到一個單獨的檔案中:
bat jiaoben1.sh jiaoben2.sh > test.txt
上述介紹了bat 建立新檔案、檢視檔案內容、將多個檔案的內容合併到一個單獨的檔案中的方式。
接下來,我們就來看看 bat 指令一些非常酷的特性。
bat 指令支援大多數程式設計和標記語言的語法高亮,那麼我們就來用 cat 和 bat 指令來展示下 jiaoben1.sh 裡面的內容做個鮮明的對比。
可以看出,cat 指令以純文字格式顯示檔案的內容,而 bat 指令顯示了語法高亮和整齊的文字對齊格式。
從上面bat 指令的輸出,可以看出是有表格線的,如果你只想顯示行號(而沒有表格)可以使用-n參數來實現,雖然cat 執行也會顯示行號,但還是沒有bat 執行輸出後的效果美觀。
bat -n jiaoben2.sh
bat 指令支援 Git 集成,可以輕鬆檢視和編輯 Git 儲存庫中的文件,bat 與 Git 連接可顯示關於索引的修改。
bat 支援自動分頁,這點特性也是需要值得注意的。
支援分頁意思也就是說,當檔案的輸出內容超出螢幕顯示的時候,bat 指令會自動將自己輸出的內容傳到less 指令中,你將可以使用回車鍵一頁一頁的查看輸出內容,使用空白鍵可直接跳到文末最後一行。
當你使用 bat 指令時這些都是不必要的,bat 指令會自動傳輸跨越多個頁面的檔案的輸出。
bat jiaoben3.sh
對比下cat 指令,查看jiaoben3.sh 跨多個頁面檔案內容時,提示符號會直接跳到檔案的最後一頁,將無法看到跨多個頁面文件開頭及中間部分的內容。
cat jiaoben3.sh
如果你想要透過cat 來實現bat 指令的效果,則需要去使用cat 的輸出傳送到less 指令中去,這樣就可以從開頭部分一頁一頁的查看內容了。
cat jiaoben3.sh | less
同樣,這種方式也是可以使用回車鍵一頁一頁的查看輸出內容以及使用空格鍵可直接跳轉至文末最後一行。 bat 客製主題
###目前bat 客製主題有24 種,包括:Coldark-Cold、GitHub、Monokai Extended Light、OneHalfDark、Solarized (light)、TwoDark、Visual Studio Dark 、base16、zenburn 等;###如果你不喜欢默认主题,也是可以根据自己的风格进行修改,只需执行:bat --list-themes命令,即可显示可用的主题。
# bat --list-themes Theme: 1337 // Output the square of a number. fn print_square(num: f64) { let result = f64::powf(num, 2.0); println!("The square of {:.2} is {:.2}.", num, result); } ......
例如你要选择Dracula主题,可直接执行:bat --theme=Dracula 文件名
如果你想永久改变某一个主题,可使用export BAT_THEME="Dracula"在你的 shell 启动文件,以使更改为永久。
您可以使用--style参数选项来控制bat输出的外观,配置元素包括:行号、文件头、网格边框、Git修改来显示除文件内容之外的东西,参数是一个逗号分隔的列表。
--style=numbers,changes可以使用仅显示 Git修改和行号,而不显示网格和文件标题,设置BAT_STYLE环境变量以使这些更改为永久。
关于更多 bat 的使用方法可通过执行命令man bat或bat --help。
除此之外,也可以通过 bat 项目的 GitHub 库查看更多详细信息,我用过 bat 后就不会再想用回 cat 了!
2、duf
在 Linux 环境下,我们知道 df 命令是用于显示磁盘分区上可使用的磁盘空间,默认显示单位为 KB,你还可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda3 18439940 4943264 12559972 29% / tmpfs 506176 76 506100 1% /dev/shm /dev/sda1 99150 30003 64027 32% /boot /dev/sr0 4363088 4363088 0 100% /media/CentOS_6.5_Final
除此之外,du 命令也是查看使用空间的,但与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看,和 df 命令还是有一些区别的。
# du 4 ./.abrt 8 ./.dbus/session-bus 12 ./.dbus 4 ./.nautilus 40 ./.local/share/gvfs-metadata 24 ./.local/share/applications 68 ./.local/share 72 ./.local
接下来就跟大家介绍一款终端工具,你可以理解为传统的 Linux 命令 df 和 du 整合版 —— duf。
duf 是一个用 Golang 编写的跨平台磁盘使用情况工具,可以让你轻松地检查可用磁盘空间,对输出进行分类,并以用户友好的方式进行呈现,适用于 Linux、Windows、macOS、Android、FreeBSD;
Ubuntu 安装方式:
$ sudo apt install gdebi #如果报错,Failed to fetch http://security.ubuntu.com...... # sudo apt-get update $ sudo gdebi duf_0.5.0_linux_amd64.deb #要先在下载duf_0.5.0_linux_amd64.deb,下载地址为:https://github.com/muesli/duf/releases/download/v0.5.0/duf_0.5.0_linux_amd64.deb
MacOS 安装方式:
#先安装Homebrew,按照提示安装即可。 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" #安装duf brew install duf #或者 sudo port selfupdate && sudo port install duf
Windows 安装方式:
choco install duf #或者 scoop install duf
安装完毕后,可直接使用 duf,方法也非常简单。
不添加任何参数,会输出所有本地设备、已挂载的任何云存储设备以及任何其他特殊设备(包括临时存储位置等)的详细信息;
$ duf
如果你只想查看本地连接设备的详细信息,而不想看其他的,可执行:
$ duf --only local
如果你只想根据大小按特定顺序对输出信息进行排序,可执行:
$ duf --sort size
更多参数使用方式:
duf /home /some/file 根据参数,则 duf 将仅列出特定的设备和安装点 duf --all 列出所有内容 duf --hide-network 隐藏网络文件系统,与之对应的 --hide-fuse --hide-special --hide-loops --hide-binds duf --inodes 列出inodes duf --output mountpoint,size,usage 指定输出的格式 对应的还有(mountpoint, size, used, avail, usage, inodes, inodes_used, inodes_avail, inodes_usage, type, filesystem) duf --json 以json格式输出 duf --theme light 如果 duf 无法正确检测终端的颜色,可以设置一个主题 duf --help 查看所有 duf 的可用命令
3、tldr
对于初学者学习 Linux 来说,遇到最多的问题就是在 Linux 操作系统下有记不完的命令以及包括各种参数的使用方法,其实你根本不用死记硬背它,当你用到时去查找相关资料或通过man命令来查看相关文档,man手册输出的信息也比较多,而对于参数较多的命令来说,翻看man手册也非常吃力。
这次就给大家介绍一款工具:tldr,它的全称是:Too Long, Don't Read,中文意思:太长不看的意思。
其实跟man命令的结果基本上就是太长不看,tldr这个工具你可以理解为简化了 man 命令的帮助文档,把 Linux 命令最常用的一些命令用法列举出来,非常容易看懂。
同时,tldr包括非常多语言编写的客户端,比如:C、Go、iOS、Python、nodejs 等等,你可以使用不同的客户端来安装;
我这里的环境是 Ubuntu,需要先安装 Node.js,然后根据下述安装方式操作:
sudo apt-get install nodejs sudo apt-get install npm sudo npm install -g tldr
执行完上述三条命令后,还需要再执行tldr --update,更新tldr至最新的状态,然后就可以直接使用了;
tldr --update
tldr 的使用:
tldr 命令的使用也非常简单,只需 tldr + 你所要查询的命令即可;
4、htop
在 Linux 操作系统上显示进程运行状态信息最常用工具是我们熟悉的 top,它是每位系统管理员的好帮手。
htop 可以說是top 的絕佳替代品,它是用C 寫的,是一個跨平台的交互式的進程監控工具,具有更好的視覺效果,一目了然更容易理解當前系統的狀況,允許垂直和水平滾動進程列表以查看它們的完整命令行和相關信息,如記憶體和CPU 消耗。也顯示了系統範圍的信息,例如平均負載或交換使用情況。
顯示的資訊可透過圖形設定進行配置,並且可以交互排序和過濾,與進程相關的任務(例如終止和重新處理)可以在不輸入其 PID 的情況下進行完成。
安裝也很簡單,只需執行指令:apt install htop即可完成。
htop 比起 top,優點很明顯,除了功能更加完善以外,它的色彩搭配也很豐富,整體上使用起來更加友好。
5、glances
Glances 是用Python 寫的一個跨平台的監控工具,旨在透過curses 或基於Web 的介面呈現大量系統監控訊息,該資訊根據使用者介面的大小動態調整,是GNU/Linux、BSD、Mac OS 和Windows 作業系統的top/htop 替代品。
它可以在客戶端/伺服器模式下工作,遠端監控可以透過終端機、Web 介面或 API(XML-RPC 和 RESTful)完成,統計資料也可以匯出到檔案或外部時間/值資料庫。
除了列出所有進程及其CPU 和記憶體使用情況之外,它還可以顯示有關係統的其他信息,例如:
6、exa
#提到ls 指令,大家都不陌生,在Linux 環境下,其主要作用:列出目前目錄下所包含的檔案及子目錄,如果目前目錄下檔案過多,則使用指令ls 不是很好,因為這輸出出來的結果跟你所要查找的文件未能達成一致,第一:需要進行二次過濾查找;第二:文件過多時,終端輸出結果較慢;##EXA是Unix 和Linux 作業系統附帶的命令列程式的ls 現代替代品,賦予它更多功能和更好的預設值。它使用顏色來區分文件類型和元資料。它了解符號連結、擴展屬性和 Git。它體積小、速度快,而且只有一個二進位。
EXA 與 LS 有什麼不同之處?顏色:檔案類型清單以及如何區分檔案;
顯示選項
-1,--oneline:每行顯示一個條目
-a,--all:顯示隱藏和「點」檔案
-d,--list-dirs:像普通檔案一樣列出目錄
--git-ignore:忽略中提到的文件.gitignore
-I,--ignore-glob=(globs):要忽略的文件的全局模式(管道分隔)
传递该--all选项两次以同时显示.和..目录。
7、fd
fd 是一个在文件系统中查找条目的程序,它是 find 命令的一个简单、快速且用户友好的替代品,fd 目的不是取代 find 命令所提供的全部功能,而是在多数用例中提供了合理的默认值,在某些情况下非常有用。
fd 输出是彩色的,类似于某些 ls 模式,它是递归的,在包含 Git 存储库的目录中搜索源代码文件时,fd 会自动排除隐藏的文件和目录,包括.、.git目录,并忽略.gitignore文件中的模式。一般来说,搜索速度更快,而且第一次搜索时会提供了更多相关结果。
默认情况下,fd 在当前目录中执行不区分大小写的模式搜索,但是,如果你的搜索模式包含一个大写字母,fd 将以区分大小写的模式进行执行。当然,也可以重写默认值,但在许多情况下还是有利的。同样使用 find 进行相同的搜索需要你提供额外的命令行参数。
fd 可用于许多 Linux 发行版,执行以下命令,可以使用标准存储库在 Ubuntu 中安装:
sudo apt install fd-find
在 Ubuntu 操作系统中,命令是 fdfind,避免与其他现有的实用程序名称发生冲突,如果希望它是 fd,可以设置一个别名:
alias fd=fdfind
要使别名保持不变,在重启后仍然可用,请将其放入“.bashrc”或“.bash_aliases”文件中。
使用不带参数选项的 fd,则类似于 ls,不同之处在于它默认情况下也会将子目录中的文件进行列出。
fd bat_0.18.3_amd64.deb fd_8.3.0_amd64.deb jiaoben1.sh jiaoben2.sh jiaoben3.sh snap snap/firefox snap/firefox/631 snap/firefox/731 snap/firefox/common snap/firefox/current snap/snap-store snap/snap-store/557 snap/snap-store/558 snap/snap-store/common snap/snap-store/current test.md
在当前目录中搜索所有的 markdown 文件(.md 或.MD ),find 命令如下:
find . -iname "*.md" ./test.md
使用 fd 进行同样的搜索:
fd *.md test.md
在某些情况下,fd 需要额外的选项;例如,如果你想包含隐藏文件和目录,则必须使用选项 -H,而这在 find 中是不需要的,关于 fd 更多命令行参数选项的使用方法,可查阅 fd GitHub 存储库。
8、ag
ack和ag是两个文本搜索工具,比自带的grep要好用得多。
在指定目录下搜索文本时,不需要像 grep 那样指定各种命令行选项,输出结果也会包含文件名和行号,并且会高亮显示搜索关键字。
ag是可以比grep、ack更快的递归搜索文件内容。
Ubuntu 21.10 安装 ag 和 ack apt-get install silversearcher-ag apt install ack
ag 命令常用参数
ag -g (文件名):类似于 find . -name (文件名)
ag -i sed:忽略大小写搜索含 sed 文本
ag -A sed:搜索含 sed 文本,并显示匹配内容之后的 n 行文本
ag -B sed:搜索含 sed 文本,并显示匹配内容之前的 n 行文本
ag -C sed:搜索含 sed 文本,并同时显示匹配内容以及它前后各 n 行文本的内容
ag -w sed:全匹配搜索,只搜索与所搜内容完全匹配的文本
ag --java sed:在 java 文件中搜索含 sed 的文本
ag --xml sed:在 XML 文件中搜索含 sed 的文本
ag 命令的使用
根据文件名进行搜索对应的文件,可使用-g参数选项。
ag -g jiaoben jiaoben2.sh jiaoben1.sh jiaoben3.sh
搜索当前目录下有关 sed 关键字的文本。
ag -w sed jiaoben1.sh 10: sed -i '2d' "$new_filename"
更多参数选项,大家可根据自身实际场景进行运用。
9、axel
axel 是命令行多线程下载工具,下载文件时可以替代 curl、wget。
Ubuntu 21.10 安装 axel
apt-get install axel
axel 参数选项
-n:指定线程数
-o:指定另存为目录
-s:指定每秒的最大比特数
-q:静默模式
案例
# axel -n 10 -o /tmp/ http://mirrors.163.com/ubuntu/ls-lR.gz # exa /tmp/ls-lR.gz /tmp/ls-lR.gz
可以看出,我们通过 axel 也是可以把 ls-lR.gz 这个文件正常下载到 /tmp 目录下的。
10、pydf
在 Linux 系统下,我们可以使用df命令来显示磁盘的相关信息。
# df 文件系统 1K-块 已用 可用 已用% 挂载点 tmpfs 199180 1660 197520 1% /run /dev/sda3 19946096 10317864 8589692 55% / tmpfs 995884 0 995884 0% /dev/shm tmpfs 5120 4 5116 1% /run/lock /dev/sda2 524252 5344 518908 2% /boot/efi tmpfs 199176 100 199076 1% /run/user/1000 /dev/sr0 3043440 3043440 0 100% /media/jacktian/Ubuntu 21.10 amd64 tmpfs 199176 60 199116 1% /run/user/0
Ubuntu 21.10 安装 pydf
apt install pydf
pydf 可以说是 df 的替代品,它以更简洁的方式显示磁盘使用状态。
相关推荐:《Linux视频教程》
以上是總結分享十個Linux環境下的替代工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!