中文字幕亚洲第一精品|精品国产免费一区二区|久久婷婷五月六月综合版|中文字幕熟妇久久久人妻|久久综合精品国产一区无码|国产成人精品永久免费视频|午夜亚洲国产精品理论片a级|久久精品一区二区三区无码护土

 訪問手機版  

Linux常用命令|Linux培訓學習|考試認證|工資待遇與招聘,認準超級網工!

招聘|合作 登陸|注冊

網絡工程師培訓

當前位置:網絡工程師 > 技術課程 > linux > 熱點關注 > linux常用命令

linux系統(tǒng)下的實現(xiàn)我們自己的命令行補全

時間:2019-08-11

linux重啟命令_linux 關機命令_linux命令

當進入某個目錄下面的時候,如果忘記名字或者怎么進入的,可以連按兩下tab鍵,這個時候linux會為我們列出來到底有哪些目錄,哪些文件。

而這不是linux系統(tǒng)天生就有的,而是需要complete這個自動補全工具。我們用的linux大多數(shù)都已經安裝。

因為目前我維護10幾臺服務器,經常會進行登陸。雖然我之前使用了別名的方式,但依然不夠靈活,時間長了還是會忘記服務器的名字linux命令,通常還需要看一下記錄別名的文件。這是很麻煩的一件事情。

于是我google了一下,發(fā)現(xiàn)網上關于complete的資料挺多的。我完成了關于我服務器的命令提示linux命令,同時也完成了ssh,scp的命令行提示。這里做一個記錄,供大家參考。

直接上結果:

complete -W "$(echo $(grep '^ssh ' .bash_history | sort -u | sed 's/^ssh //'))" ssh
complete -W "$(echo $(grep '^scp ' .bash_history | sort -u | sed 's/^scp //'))" scp

linux重啟命令_linux命令_linux 關機命令

后臺登陸新增上一次登陸時間與登陸ip記錄,方便用戶查看是否有異常登陸。1、記錄服務器共享文件夾或共享文件的訪問情況,包括讀取、拷貝、修改、刪除、重命名、打印等情況,可以記錄訪問者采用的登錄賬戶、ip地址、mac地址、時間、訪問時長、具體操作情況等。三、功能介紹1、記錄服務器共享文件夾或共享文件的訪問情況,包括讀取、拷貝、修改、刪除、重命名、打印等情況,可以記錄訪問者采用的登錄賬戶、ip地址、mac地址、時間、訪問時長、具體操作情況等。

先看 "$(echo $(grep "^ssh " .bash_history | sort -u | sed 's/^ssh //'))"

這個里面就是執(zhí)行了獲取歷史命令里面以ssh開頭的,排序并去重,然后去掉開頭的ssh.

-W 的意思是 wordlist分割 wordlist 中的單詞,作為候選的補全結果

而最后的ssh,就是執(zhí)行ssh后,觸發(fā)前面的匹配規(guī)則。

當然,scp也是如此。那如果一堆需要管理的服務器呢?

linux命令_linux 關機命令_linux重啟命令

我們可以手寫的方式,一個一個的寫進去,這個完全沒毛病。但是,如果增加了一個服務器,或者你需要直接連接某個數(shù)據(jù)庫或者mongodb/redis呢?可能每次都得添加,還比較麻煩。

這里使用case,esac就是特別好的解決辦法。

舉個例子

我在我的家目錄下創(chuàng)建了一個文件,名字是goto.

里面是一個case語句。

#!/bin/bash
case $1 in
    a)
    ssh a@example.text.com ;;
    b)
    ssh b@example.text.com ;;
    c)
    ssh b@example.text.com ;;
esac

linux命令_linux 關機命令_linux重啟命令

寫完之后,chmod +x goto. 讓文件可以執(zhí)行。然后進入到/etc/bash_completion.d/下,創(chuàng)建一個goto.bash文件,然后寫入

_goto() {
    local cur="${COMP_WORDS[COMP_CWORD]}"
    local pro=$(echo $(grep ")" /home/guo/goto | cut -f 1 -d ")" ))
    COMPREPLY=( $(compgen -W "$pro" -- $cur ) )
}
complete -F  _goto goto

其實這個可以像上面的ssh,scp一樣寫到shell里面,但是這里正常情況下一個這些這里。因為/etc/bash_completion.d是專門管理提示腳本的。

 上一個教程:linux 自定義命令