命令行備忘錄 navi 使用教程

文章首發於個人公衆號:「阿拉平平」

在 Linux 中,我們可以通過 history 查詢並運行之前執行過的命令。但是對於 高頻使用 與 相對複雜 的命令行,有沒有什麼好用的工具便於我們去管理呢?

本文將介紹 navi 的安裝和使用方法,版本爲 v0.15.3。

navi 簡介

navi 是一個可交互的命令行備忘工具。用戶可以執行備忘錄中的命令,navi 也支持自定義備忘錄以及命令行參數提示。

源碼安裝

本文通過源碼安裝,演示環境爲 CentOS 7.5。更多安裝方法可以參考 GitHub[1]

安裝 fzf

fzf 是一款功能強大的命令行模糊搜索工具。安裝步驟如下:

# 下載 fzf
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf

# 安裝 fzf,執行後會詢問一些開關配置,都設置開啓即可
~/.fzf/install

# 重載配置文件
source ~/.bashrc

安裝 navi

fzf 安裝後,執行以下步驟安裝 navi:

# 下載 navi
git clone --depth 1 https://github.com/denisidoro/navi /opt/navi

# 安裝 navi
cd /opt/navi
sudo make install

# (可選)安裝到其它路徑,生成的文件相當於一個快捷方式
./scripts/install /some/path

使用方法

本章將會介紹 navi 的基本操作以及如何自定義備忘錄。

基本操作

安裝完成後,輸入 navi 就可以進入到交互界面。如下:

如果不希望直接運行命令,可以加上 --print 參數,終端將會打印命令行:

navi --print

如果需要預先過濾輸出結果,可以通過 query 子命令:

navi query <cmd>

如果本地丟失了默認的備忘錄,可以通過 search 子命令從線上倉庫搜索對應的備忘錄:

navi search <cmd>

其它的選項可以通過 --help 參數進行查詢。

自定義備忘錄

navi 已經集成了許多備忘錄。默認的備忘錄都放在 cheats 目錄下,一個 .cheat 文件即表示一張備忘錄:

cheats
├── android.cheat
├── brew.cheat
├── compression.cheat
├── crontab.cheat
├── docker.cheat
├── fly.cheat
├── git.cheat
├── gpg.cheat
├── javascript.cheat
├── k3d.cheat
├── keytool.cheat
├── kubernetes.cheat
├── misc.cheat
├── mysql.cheat
├── network.cheat
├── openssl.cheat
├── osx.cheat
├── systemctl.cheat
└── yum.cheat

自定義備忘錄是 navi 的核心功能。在編寫前,我們需要了解下備忘錄的語法:

%:以 % 開頭的行表示爲命令行添加特定的標籤,多個標籤以 , 分隔。
#:以 # 開頭的行表示對命令行的用途進行描述。
$:以 $ 開頭的行表示命令行參數的可選值。
<>:以 <> 包裹的字符串表示變量。

接下來我將自定義一張用戶相關的備忘錄,包含用戶的查詢、添加以及設置密碼。

首先,在 cheats 目錄下新建 user.cheat 文件,添加以下內容:

[root@localhost cheats]# vi user.cheat
% user, demo

# Active User List 
cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more

說明:.cheat 文件可以放到任意路徑下,然後通過 --path 參數去指定。但是,如果這張備忘錄裏只有一條命令則會直接執行。

上面的命令會顯示系統中的活躍用戶名、用戶ID以及組ID。運行結果如下:
活躍用戶

接着,新增添加用戶的命令:

# Add User
useradd <username>

運行時會要求輸入 username
添加用戶

最後,結合活躍用戶的命令,新增設置用戶密碼的命令:

# Reset User Password
passwd <user>
$ user: cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1 }'|more

添加 www 用戶後,設置密碼時就可以選中該用戶:
選擇用戶

再查看下活躍用戶,可以看到 www 用戶已在列表中:
活躍用戶

參考文檔:

[1] Github: https://github.com/denisidoro/navi

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章