Betty:和你的Linux說說話
Betty 是一個將類英語短語翻譯成Linux命令的開源工具。這個項目的主要目的是讓大家可以通過輸入自然語言來使用強(qiáng)大的Linux系統(tǒng)。讓我們來看一下它是怎么工作的。
安裝
Betty的安裝非常簡單直接。首先確認(rèn)你已經(jīng)安裝了下面這些依賴包[LCTT譯注,需要安裝至少Ruby1.9以上版本]。
對于基于Debian的系統(tǒng):
sudo apt-get install git curl ruby
對于基于RPM的系統(tǒng):
yum install git curl ruby
現(xiàn)在用git工具把Betty庫clone到你自定義的任何路徑。這里我克隆到我的home目錄,例如 /home/sk/.
git clone https://github.com/pickhardt/betty
添加betty的別名到你的bashrc配置文件。
sudo nano ~/.bashrc
將下列行添加到文件的末尾:
alias betty="/home/sk/betty/main.rb"
確保你已經(jīng)正確地設(shè)置好了betty的路徑。
好了,現(xiàn)在是時候和betty好好地玩耍了。
用法
你應(yīng)該在英語短語之前加上單詞“betty”[LCTT譯注,你自然可以用你的小甜心的名字來替換這個不是知道是誰的Betty :>]。你也許已經(jīng)知道,如果我們想知道在系統(tǒng)中我們的用戶名,應(yīng)該運(yùn)行下面的命令:
whoami
輸出是這樣的:
sk
如你所見,我當(dāng)前登錄的用戶名是 sk. 現(xiàn)在我也可以通過下面的betty命令獲取相同的結(jié)果。
betty whats my username
輸出是這樣的:
Betty: Running whoami sk
真的好酷,是不是?Betty理解我輸入的“whats my username”短語,然后運(yùn)行“whoami”命令,***輸出結(jié)果。
讓我們也來看其他命令。
如果你的輸入不夠準(zhǔn)確,Betty也能以多種方式回應(yīng)你。例如,我們運(yùn)行下面的命令:
betty whats my name
Betty不確定她應(yīng)該查找系統(tǒng)用戶名還是用戶全名。這種情況下,她會詢問你多個問題來找到準(zhǔn)確的結(jié)果。如你下面所見,Betty問我想要運(yùn)行哪一條命令(whoami 還是 finger $(whoami) | sed 's/.://;q')[LCTT譯注,需要你的系統(tǒng)已經(jīng)安裝finger]。我只想知道我的用戶名,所以我選擇數(shù)字1。
Betty: Okay, I have multiple ways to respond. Betty: Enter the number of the command you want me to run, or N (no) if you don't want me to run any. [1] whoami Gets your system username. [2] finger $(whoami) | sed 's/.*: *//;q' Gets your full name. 1 Betty: Running whoami sk
壓縮和解壓縮文件夾
如果你想要壓縮一個文件或者文件夾,用下面的命令。例如,我想壓縮我home目錄下的“test”文件夾。
betty compress test/ test.tar.gz
輸出是這樣的:
Betty: Running tar -czvf test.tar.gz test/ test/ test/home/ test/home/sk/ test/home/sk/test/ test/home/sk/test/sample
類似的,我們可以用下面的命令來解壓縮一個歸檔文件。
betty uncompress test.tar.gz
輸出是這樣的:
Betty: Running mkdir test &&tar -zxvf test.tar.gz -C test test/ test/home/ test/home/sk/ test/home/sk/test/ test/home/sk/test/sample
完整的Betty命令行列表
Betty工具有一些命令格式。如果你輸入“what is my user name”而不是“whats my username”,它是不能識別的。所以,你只能輸入Betty支持的英語短語。
下面給出一個Betty支持的完整的命令行列表。
Count: betty how many words are in this directory betty how many characters are in myfile.py betty count lines in this folder (Note that there's many ways to say more or less the same thing.) Config: betty change your name to Joe betty speak to me betty stop speaking to me Datetime: betty what time is it betty what is todays date betty what month is it betty whats today Find: betty find me all files that contain california Internet: betty download http://www.mysite.com/something.tar.gz to something.tar.gz betty uncompress something.tar.gz betty unarchive something.tar.gz to somedir (You can use unzip, unarchive, untar, uncompress, and expand interchangeably.) betty compress /path/to/dir iTunes: betty mute itunes betty unmute itunes betty pause the music betty resume itunes betty stop my music betty next song betty prev track betty what song is playing (Note that the words song, track, music, etc. are interchangeable) Fun: betty go crazy betty whats the meaning of life ...and more that are left for you to discover! Map: betty show me a map of mountain view Meta: betty what version are you (or just betty version) betty whats your github again Permissions: betty give me permission to this directory betty give anotheruser ownership of myfile.txt Process: betty show me all processes by root containing grep betty show me all my processes containing netbio Sizes: betty show size for myfile.txt Spotify: betty play spotify betty pause spotify betty next spotify betty previous spotify User: betty whats my username betty whats my real name betty whats my ip address betty who else is logged in betty whats my version of ruby Web queries: betty turn web on betty please tell me what is the weather like in London
對Linux初級使用者來說,Betty似乎是一個非常nice的工具。希望這個工具對你也會非常有用。
Cheers!
源代碼: