獻給命令列重度使用者的一組實用 BASH 指令碼
今天,我偶然發現了一組適用於命令列重度使用者的實用 BASH 指令碼,這些指令碼被稱為 Bash-Snippets,它們對於那些整天都與終端打交道的人來說可能會很有幫助。想要檢視你居住地的天氣情況?它為你做了。想知道股票價格?你可以執行顯示股票當前詳細資訊的指令碼。覺得無聊?你可以看一些 YouTube 視訊。這些全部在命令列中完成,你無需安裝任何嚴重消耗記憶體的 GUI 應用程式。
在撰寫本文時,Bash-Snippets 提供以下 19 個實用工具:
- Cheat – Linux 命令備忘單。
- Cloudup – 一個將 GitHub 倉庫備份到 bitbucket 的工具。
- Crypt – 加解密檔案。
- Cryptocurrency – 前 10 大加密貨幣的實時匯率轉換。
- Currency – 貨幣轉換器。
- Geo – 提供 wan、lan、router、dns、mac 和 ip 的詳細資訊。
- Lyrics – 從命令列快速獲取給定歌曲的歌詞。
- Meme – 創造命令列表情包。
- Movies – 搜尋並顯示電影詳情。
- Newton – 執行數值計算一直到符號數學解析。(to 校正:這裡不理解)
- Qrify – 將給定的字串轉換為二維碼。
- Short – 縮短 URL
- Siteciphers – 檢查給定 https 站點啟用或禁用的密碼。
- Stocks – 提供某些股票的詳細資訊。
- Taste – 推薦引擎提供三個類似的專案,如提供物品(如書籍、音樂、藝術家、電影和遊戲等。)
- Todo – 命令列待辦事項管理。
- Transfer – 從命令列快速傳輸檔案。
- Weather – 顯示你所在地的天氣詳情。
- Youtube-Viewer – 從終端觀看 YouTube 視訊。
作者可能會在將來新增更多實用程式和/或功能,因此我建議你密切關注該專案的網站或 GitHub 頁面以供將來更新。
安裝
你可以在任何支援 BASH 的作業系統上安裝這些指令碼。
首先,克隆 git 倉庫,使用以下命令:
$ git clone https://github.com/alexanderepstein/Bash-Snippets
進入目錄:
$ cd Bash-Snippets/
切換到最新的穩定版本:
$ git checkout v1.22.0
最後,使用以下命令安裝 Bash-Snippets:
$ sudo ./install.sh
這將詢問你要安裝哪些指令碼。只需輸入 Y
並按Enter鍵即可安裝相應的指令碼。如果你不想安裝某些特定指令碼,輸入 N
並按Enter鍵。
Do you wish to install currency [Y/n]: y
要安裝所有指令碼,執行:
$ sudo ./install.sh all
要安裝特定的指令碼,比如 currency,執行:
$ sudo ./install.sh currency
你也可以使用 Linuxbrew 包管理器來安裝它。
安裝所有的工具,執行:
$ brew install bash-snippets
安裝特定的工具:
$ brew install bash-snippets --without-all-tools --with-newton --with-weather
另外,對於那些基於 Debian 系統的,例如 Ubuntu、Linux Mint,可以新增 PPA 源:
$ sudo add-apt-repository ppa:navanchauhan/bash-snippets
$ sudo apt update
$ sudo apt install bash-snippets
用法
需要網路連線才能使用這些工具。用法很簡單。讓我們來看看如何使用其中的一些指令碼,我假設你已經安裝了所有指令碼。
1、 Currency – 貨幣轉換器
這個指令碼根據實時匯率轉換貨幣。輸入當前貨幣程式碼和要交換的貨幣,以及交換的金額,如下所示:
$ currency
What is the base currency: INR
What currency to exchange to: USD
What is the amount being exchanged: 10
=========================
| INR to USD
| Rate: 0.015495
| INR: 10
| USD: .154950
=========================
你也可以在單條命令中傳遞所有引數,如下所示:
$ currency INR USD 10
參考以下螢幕截圖:
2、 Stocks – 顯示股票價格詳細資訊
如果你想檢視一隻股票價格的詳細資訊,輸入股票即可,如下所示:
$ stocks Intel
INTC stock info
=============================================
| Exchange Name: NASDAQ
| Latest Price: 34.2500
| Close (Previous Trading Day): 34.2500
| Price Change: 0.0000
| Price Change Percentage: 0.00%
| Last Updated: Jul 12, 4:00PM EDT
=============================================
上面輸出了 Intel 股票 的詳情。
3、 Weather – 顯示天氣詳細資訊
讓我們檢視以下天氣詳細資訊,執行以下命令:
$ weather
示例輸出:
正如你在上面螢幕截圖中看到的那樣,它提供了 3 天的天氣預報。不使用任何引數的話,它將根據你的 IP 地址顯示天氣詳細資訊。你還可以顯示特定城市或國家/地區的天氣詳情,如下所示:
$ weather Chennai
同樣,你可以檢視輸入以下命令來檢視月相(月亮的形態):
$ weather moon
示例輸出:
4、 Crypt – 加解密檔案
此指令碼對 openssl 做了一層包裝,允許你快速輕鬆地加密和解密檔案。
要加密檔案,使用以下命令:
$ crypt -e [original file] [encrypted file]
例如,以下命令將加密 ostechnix.txt
,並將其儲存在當前工作目錄下,名為 encrypt_ostechnix.txt
。
$ crypt -e ostechnix.txt encrypt_ostechnix.txt
輸入兩次檔案密碼:
Encrypting ostechnix.txt...
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
Successfully encrypted
上面命令將使用 AES 256 位金鑰加密給定檔案。密碼不要儲存在純文字檔案中。你可以加密 .pdf、.txt、 .docx、 .doc、 .png、 .jpeg 型別的檔案。
要解密檔案,使用以下命令:
$ crypt -d [encrypted file] [output file]
例如:
$ crypt -d encrypt_ostechnix.txt ostechnix.txt
輸入密碼解密:
Decrypting encrypt_ostechnix.txt...
enter aes-256-cbc decryption password:
Successfully decrypted
5、 Movies – 檢視電影詳情
使用這個指令碼,你可以檢視電影詳情。
以下命令顯示了一部名為 “mother” 的電影的詳情:
$ movies mother
==================================================
| Title: Mother
| Year: 2009
| Tomato: 95%
| Rated: R
| Genre: Crime, Drama, Mystery
| Director: Bong Joon Ho
| Actors: Hye-ja Kim, Bin Won, Goo Jin, Je-mun Yun
| Plot: A mother desperately searches for the killer who framed her son for a girl's horrific murder.
==================================================
6、 顯示類似條目
要使用這個指令碼,你需要從這裡 獲取 API 金鑰。不過不用擔心,它完全是免費的。一旦你獲得 API 金鑰後,將以下行新增到 ~/.bash_profile
:export TASTE_API_KEY=”你的 API 金鑰放在這裡”
。(LCTT 譯註: TasteDive 是一個推薦引擎,它會根據你的品味推薦相關專案。)
現在你可以根據你提供的專案檢視類似專案,如下所示:
$ taste -i Red Hot Chilli Peppers
7、 Short – 縮短 URL
這個指令碼會縮短給定的 URL。
$ short <URL>
8、 Geo – 顯示網路的詳情
這個指令碼會幫助你查詢網路的詳細資訊,例如廣域網、區域網、路由器、 dns、mac 地址和 ip 地址。
例如,要查詢你的區域網 ip,執行:
$ geo -l
我係統上的輸出:
192.168.43.192
檢視廣域網 ip:
$ geo -w
在終端中輸入 geo
來檢視更多詳細資訊。
$ geo
Geo
Description: Provides quick access for wan, lan, router, dns, mac, and ip geolocation data
Usage: geo [flag]
-w Returns WAN IP
-l Returns LAN IP(s)
-r Returns Router IP
-d Returns DNS Nameserver
-m Returns MAC address for interface. Ex. eth0
-g Returns Current IP Geodata
Examples:
geo -g
geo -wlrdgm eth0
Custom Geo Output =>
[all] [query] [city] [region] [country] [zip] [isp]
Example: geo -a 8.8.8.8 -o city,zip,isp
-o [options] Returns Specific Geodata
-a [address] For specific ip in -s
-v Returns Version
-h Returns Help Screen
-u Updates Bash-Snippets
9、 Cheat – 顯示 Linux 命令的備忘單
想參考 Linux 命令的備忘單嗎?這是可能的。以下命令將顯示 curl
命令的備忘單:
$ cheat curl
只需用你選擇的命令替換 curl
即可顯示其備忘單。這對於快速參考你要使用的任何命令非常有用。
10、 Youtube-Viewer – 觀看 YouTube 視訊
使用此指令碼,你可以直接在終端上搜尋或開啟 YouTube 視訊。(LCTT 譯註:在媒體播放器中,而不是文字的終端中開啟)
讓我們來看一些有關 Ed Sheeran 的視訊。
$ ytview Ed Sheeran
從列表中選擇要播放的視訊。所選內容將在你的預設媒體播放器中播放。
要檢視藝術家的近期視訊,你可以使用:
$ ytview -c [channel name]
要尋找視訊,只需輸入:
$ ytview -s [videoToSearch]
或者:
$ ytview [videoToSearch]
11、 cloudup – 備份 GitHub 倉庫到 bitbucket
你在 GitHub 上託管過任何專案嗎?如果託管過,那麼你可以隨時間 GitHub 倉庫備份到 bitbucket,它是一種用於原始碼和開發專案的基於 Web 的託管服務。
你可以使用 -a
選項一次性備份指定使用者的所有 GitHub 倉庫,或者備份單個倉庫。
要備份 GitHub 倉庫,執行:
$ cloudup
系統將要求你輸入 GitHub 使用者名稱, 要備份的倉庫名稱以及 bitbucket 使用者名稱和密碼等。
12、 Qrify – 將字串轉換為二維碼
這個指令碼將任何給定的文字字串轉換為二維碼。這對於傳送連結或者儲存一串命令到手機非常有用。
$ qrify convert this text into qr code
示例輸出:
很酷,不是嗎?
13、 Cryptocurrency
它將顯示十大加密貨幣實時匯率。
輸入以下命令,然後單擊回車來執行:
$ cryptocurrency
14、 Lyrics
這個指令碼從命令列快速獲取一首歌曲的歌詞。
例如,我將獲取 “who is it” 歌曲的歌詞,這是一首由 邁克爾·傑克遜 演唱的流行歌曲。
$ lyrics -a michael jackson -s who is it
15、 Meme
這個指令碼允許你從命令列建立簡單的表情貼圖。它比基於 GUI 的表情包生成器快得多。
要建立一個表情貼圖,只需輸入:
$ meme -f mymeme
Enter the name for the meme's background (Ex. buzz, doge, blb ): buzz
Enter the text for the first line: THIS IS A
Enter the text for the second line: MEME
這將在你當前的工作目錄建立 jpg 檔案。
16、 Newton
厭倦瞭解決複雜的數學問題?你來對了。Newton 指令碼將執行數值計算,乃至於符號數學解析。
17、 Siteciphers
這個指令碼可以幫助你檢查在給定的 https 站點上啟用/禁用哪些加密演算法。(LCTT 譯註:指 HTTPS 通訊中採用的加密演算法)
$ siteciphers google.com
18、 Todo
它允許你直接從終端建立日常任務。
讓我們來建立一些任務。
$ todo -a The first task
01). The first task Tue Jun 26 14:51:30 IST 2018
要新增其它任務,只需新增任務名稱重新執行上述命令即可。
$ todo -a The second task
01). The first task Tue Jun 26 14:51:30 IST 2018
02). The second task Tue Jun 26 14:52:29 IST 2018
要檢視任務列表,執行:
$ todo -g
01). The first task Tue Jun 26 14:51:30 IST 2018
02). A The second task Tue Jun 26 14:51:46 IST 2018
一旦你完成了任務,就可以將其從列表中刪除,如下所示:
$ todo -r 2
Sucessfully removed task number 2
01). The first task Tue Jun 26 14:51:30 IST 2018
要清除所有任務,執行:
$ todo -c
Tasks cleared.
19、 Transfer
Transfer 指令碼允許你通過網際網路快速輕鬆地傳輸檔案和目錄。
讓我們上傳一個檔案:
$ transfer test.txt
Uploading test.txt
################################################################################################################################################ 100.0%
Success!
Transfer Download Command: transfer -d desiredOutputDirectory ivmfj test.txt
Transfer File URL: https://transfer.sh/ivmfj/test.txt
該檔案將上傳到 transfer.sh 站點。Transfer.sh 允許你一次上傳最大 10 GB 的檔案。所有共享檔案在 14 天後自動過期。如你所見,任何人都可以通過 Web 瀏覽器訪問 URL 或使用 transfer 目錄來下載檔案,當然,transfer 必須安裝在他/她的系統中。
現在從你的系統中移除檔案。
$ rm -fr test.txt
現在,你可以隨時(14 天內)從 transfer.sh 站點下載該檔案,如下所示:
$ transfer -d Downloads ivmfj test.txt
獲取關於此實用指令碼的更多詳情,參考以下指南。
獲得幫助
如果你不知道如何使用特定指令碼,只需輸入該指令碼的名稱,然後按下 ENTER 鍵,你將會看到使用細節。以下示例顯示 Qrify 指令碼的幫助資訊。
$ qrify
Qrify
Usage: qrify [stringtoturnintoqrcode]
Description: Converts strings or urls into a qr code.
-u Update Bash-Snippet Tools
-m Enable multiline support (feature not working yet)
-h Show the help
-v Get the tool version
Examples:
qrify this is a test string
qrify -m two\\nlines
qrify github.com # notice no http:// or https:// this will fail
更新指令碼
你可以隨時使用 -u
選項更新已安裝的工具。以下命令更新 “weather” 工具。
$ weather -u
解除安裝
你可以使用以下命令來解除安裝這些工具。
克隆倉庫:
$ git clone https://github.com/alexanderepstein/Bash-Snippets
進入 Bash-Snippets 目錄:
$ cd Bash-Snippets
執行以下命令來解除安裝指令碼:
$ sudo ./uninstall.sh
輸入 y
,並按下Enter鍵來移除每個指令碼。
Do you wish to uninstall currency [Y/n]: y
另請閱讀:
好了,這就是全部了。我必須承認,在測試這些指令碼時我印象很深刻。我真的很喜歡將所有有用的指令碼組合到一個包中的想法。感謝開發者。試一試,你不會失望的。
乾杯!
via: https://www.ostechnix.com/collection-useful-bash-scripts-heavy-commandline-users/
相關文章
- Bash 指令碼 set 命令教程指令碼
- Laravel 重度使用者,如何給 Lumen 新增便捷的命令操作Laravel
- shell和bash指令碼命令學習指令碼
- bash指令碼中的普通陣列和關聯陣列指令碼陣列
- Bash Shell指令碼中的陣列使用例項指令碼陣列
- Bash-Insulter:一個在輸入錯誤命令時嘲諷使用者的指令碼指令碼
- Bash指令碼指令碼
- Jenkins 指令碼命令列應用總結Jenkins指令碼命令列
- tkprof命令列工具用法小結,獻給初學者朋友命令列
- 取內容中的多列的某一列的指令碼 。比較實用指令碼
- shell指令碼的命令列引數 - todo指令碼命令列
- 獻給 Dapper 使用者的一份禮物APP
- 用 symfony/console 元件寫命令列指令碼元件命令列指令碼
- Bash 常用指令碼片段指令碼
- Bash 指令碼簡介指令碼
- bash 指令碼總結指令碼
- 一個能夠生成 Markdown 表格的 Bash 指令碼指令碼
- 用最短的javascript實現位址列載入指令碼JavaScript指令碼
- 命令列批量截圖Node指令碼命令列指令碼
- pwn題命令列解題指令碼命令列指令碼
- 詳解Bash命令列處理命令列
- Bash 指令碼如何建立臨時檔案:mktemp 命令和 trap 命令教程指令碼
- 批量修改檔名的bash指令碼指令碼
- 世界上最短的bash指令碼指令碼
- 寫出健壯的Bash指令碼指令碼
- 《Bash 指令碼教程》釋出了指令碼
- 指令碼前面的/bin/bash指令碼
- Bash指令碼debug攻略指令碼
- golang封裝一個bash函式,用於執行bash命令Golang封裝函式
- 教你如何用 Bash 指令碼傳送新使用者建立的郵件指令碼
- TCL指令碼讀取命令列引數指令碼命令列
- 詳解Bash命令列處理(轉)命令列
- Bash 指令碼程式設計的一些高階用法指令碼程式設計
- 一個java中呼叫bash指令碼錯誤的診斷Java指令碼
- ftp命令在指令碼中的運用FTP指令碼
- 舒服,給Spring貢獻一波原始碼。Spring原始碼
- Bash 指令碼中的錯誤處理指令碼
- 關於 Bash 指令碼中 Shebang 的趣事指令碼