一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - 從Vim中訪問shell或者運行外部命令的方法

從Vim中訪問shell或者運行外部命令的方法

2019-06-02 09:15腳本之家服務器之家 Linux

今天小編為大家帶來的是從Vim中訪問shell或者運行外部命令的方法,希望對大家會有幫助,有需要的朋友一起去看看吧

Vim——正如你可能已經了解的那樣——是一個包含很多特性的強大的編輯器。我們已經寫了好多關于 Vim 的教程,覆蓋了 基本用法、 插件, 還有一些 其他的 有用的 特性。鑒于 Vim 提供了多如海洋的特性,我們總能找到一些有用的東西來和我們的讀者分享。

在這篇教程中,我們將會重點關注你如何在編輯窗口執行外部的命令,并且訪問命令行 shell。

但是在我們開始之前,很有必要提醒一下,在這篇教程中提及到的所有例子、命令行和說明,我們已經在 Ubuntu 14.04 上測試過,我們使用的的 Vim 版本是 7.4 。

在 Vim 中執行外部命令

有的時候,你可能需要在 Vim 編輯窗口中執行外部的命令。例如,想象一下這種場景:你已經在 Vim 中打開了一個文件,并做了一些修改,然后等你嘗試保存這些修改的時候,Vim 拋出一個錯誤說你沒有足夠的權限。

從Vim中訪問shell或者運行外部命令的方法

現在,退出當前的 vim 會話,重新使用足夠的權限打開文件將意味著你會丟失所做的所有修改,所以,你可能贊同,在大多數情況不是只有一個選擇。像這樣的情況,在編輯器內部運行外部命令的能力將會派上用場。

稍后我們再回來上面的用例,但是現在,讓我們了解下如何在 vim 中運行基本的命令。

假設你在編輯一個文件,希望知道這個文件包含的行數、單詞數和字符數。為了達到這個目的,在 vim 的命令行模式下,只需要輸入冒號 :,接下來一個感嘆號 !,最后是要執行的命令(這個例子中使用的是 wc)和緊接著的文件名(使用 % 表示當前文件)。

:! wc %

這是一個例子:

填入的上面提及的命令行準備執行:

從Vim中訪問shell或者運行外部命令的方法

下面是終端上的輸出:

從Vim中訪問shell或者運行外部命令的方法

在你看到輸出之后,輸入回車鍵,你將會退回到你的 vim 會話中。

你正在編寫代碼或者腳本,并且希望盡快知道這段代碼或者腳本是否包含編譯時錯誤或者語法錯誤,這個時候,這種特性真的很方便。

繼續,如果需求是添加輸出到文件中,使用 :read ! 命令。接下來是一個例子:

:read ! wc %

read 命令會把外部命令的輸出作為新的一行插入到編輯的文件中的當前行的下面一行。如果你愿意,你也可以指定一個特定的行號——輸出將會添加到特定行之后。

例如,下面的命令將會在文件的第二行之后添加 wc 的輸出。

:2read ! wc %

注意: 使用 $ 在最后一行插入, 0 在第一行前面插入。

現在,回到最開始我們討論的一個用例,下面的命令將會幫助你保存文件而不需要先關閉文件(這將意味著沒有保存的內容不會丟失)然后使用 sudo 命令重新打開。

:w ! sudo tee %

從Vim中訪問shell或者運行外部命令的方法

在 Vim 中訪問 shell

除了可以執行單獨的命令,你也可以在 vim 中放入自己新創建的 shell。為了達到這種目的,在編輯器中你必須要做的是運行以下的命令:

:shell

或者:

:sh

當你執行完了你的 shell 任務,輸入 exit —— 這將帶你回到原來離開的 Vim 會話中。

要謹記的漏洞

雖然在真實世界中,能夠訪問的 shell 絕對符合它們的用戶權限,但是它也可以被用于提權技術。正如我們在早期的一篇文章(在 sudoedit 上)解釋的那樣,即使你提供給一個用戶 sudo 的權限只是通過 Vim 編輯一個文件,他們仍可以使用這項技術從編輯器中運行一個新的 shell,而且他們可以做 root 用戶或者管理員用戶可以做的所有內容。

總結

能夠在 Vim 中運行外部命令在好多場景中(有些場景我們已經在這篇文章中提及了)都是一個很有用的特性。這個功能的學習曲線并不麻煩,所以初學者和有經驗的用戶都可以好好使用它。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品国产福利片 | 亚洲卡一卡2卡三卡4麻豆 | 男人j放进女人的p免费看视频 | 免费真实播放国产乱子伦 | 青草青草久热精品视频在线网站 | 日本五级床片全都免费播放 | 福利视频久久 | 天天综合网天天做天天受 | 四虎伊人 | 双性总裁(h)| 水野朝阳厨房系列在线观看 | 免费看视频高清在线观看 | 日韩免费一级片 | 丝瓜茄子绿巨人秋葵榴莲污 | 天堂在线观看中文字幕 | 精品网站| 亚洲国产麻豆 | 强漂亮白丝女教师小说 | 国产美女久久精品香蕉69 | 国产精品久久久久久久久久久威 | 久9青青cao精品视频在线 | t66y地址一地址二地址三 | 欧美日韩精品一区二区三区高清视频 | 青青草原影院 | 成人免费在线视频观看 | 男女激情视频1000辣妞范 | 国产91精选在线观看麻豆 | 亚洲欧美国产自拍 | 跪趴好紧h | 日本videossexx日本人 | videos护士有奶水 | 激情五月开心 | a v在线男人的天堂观看免费 | 2020年精品国产午夜福利在线 | 被教官揉了一晚上的奶小说 | 欧美深夜在线 | 国产九九在线观看播放 | 国产精品亚洲午夜一区二区三区 | 俺去俺来也在线www色官网 | 日本中文字幕不卡在线一区二区 | 国产成人盗拍精品免费视频 |