欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

  發(fā)布時間:2017-04-07 16:26:07   作者:佚名   我要評論
今天小編為大家?guī)淼氖菑腣im中訪問shell或者運行外部命令的方法,希望對大家會有幫助,有需要的朋友一起去看看吧

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

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

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

在 Vim 中執(zhí)行外部命令

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

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

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

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

:! wc %

這是一個例子:

填入的上面提及的命令行準(zhǔn)備執(zhí)行:

下面是終端上的輸出:

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

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

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

:read ! wc %

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

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

:2read ! wc %

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

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

:w ! sudo tee %

在 Vim 中訪問 shell

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

:shell

或者:

:sh

當(dāng)你執(zhí)行完了你的 shell 任務(wù),輸入 exit —— 這將帶你回到原來離開的 Vim 會話中。

要謹記的漏洞

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

總結(jié)

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

相關(guān)文章

  • linux系統(tǒng)下Centos中"vim配置"到底有多強大

    當(dāng)我們在linux系統(tǒng)中使用vim編輯器時,總感覺vim編輯器的界面不是太美觀,不能讓用戶使用的舒服,不僅僅頁面設(shè)置不習(xí)慣,沒有顯示的行號,也沒有自動的縮進,頁面的背景也
    2016-11-22
  • Linux系統(tǒng)中vim工具常用命令大全

    在linux下做開發(fā),甚至是只做管理維護工作,也少不了Vim的使用。作為一個新手,我也是剛剛接觸,本節(jié)將我日常使用或收集的Vim常用命令記錄下來
    2014-04-21
  • Linux中vi、vim命令大全

    vi 是 unix/linux 下極為普遍的一種文本編輯器. vi 有各種變種, 在不同的機器上有不同的變種軟件. 其中 vim 比較好用也用得比較廣泛. vim 是 Vi IMproved 的縮寫, 表示更好
    2014-03-13
  • ubuntu vim終端編輯命令小結(jié)

    ubuntu vim終端編輯命令小結(jié),方便以后查找
    2012-06-28
  • Linux Shell 常用命令與目錄分區(qū)的學(xué)習(xí)總結(jié)

    很早就想根據(jù)自己的學(xué)習(xí)規(guī)律和遺忘規(guī)律,自己總結(jié)一下Linux/Unix系統(tǒng)的Shell命令,一來便于自己時常查詢之用,二來也分享于各位博友,需要的朋友可以參考下
    2016-11-21
  • Linux系統(tǒng)Shell命令常用功能使用詳解

    Shell不僅僅是一個命令,而且是其他命令的解釋器可以調(diào)試其他命令,從而完成編譯,下面為大家介紹下Linux系統(tǒng)中Shell命令應(yīng)該怎么使用
    2015-05-28
  • Linux下最常用的Shell命令的介紹(圖文)

    本文介紹了linux下最常用的shell命令,圖文結(jié)合.介紹的不錯的
    2012-05-30
  • 非常好用的Linux Shell 命令集合PDF版

    本文編譯自 Catonmat 的系列文章 Top Ten One-Liners from CommandLineFu Explained ,作為一個由用戶推薦有用shell命令的網(wǎng)站,其記錄了數(shù)以萬計的各色shell命令,其中不乏
    2010-10-23
  • 常用的Linux shell命令詳解收集整理

    最近搞palm和Android都是基于Linux平臺的應(yīng)用,經(jīng)常要用到一些shell 命令,所以就將相關(guān)的命令整理了一下,便于記憶和查詢,部分內(nèi)容來源于網(wǎng)絡(luò)。
    2010-04-27
  • Windows 7 Shell 命令大名單

    對于熟悉了命令行的人而言,用鍵盤調(diào)用程序比鼠標(biāo)更快更省力,以下就是國外網(wǎng)站整理出來的有關(guān)Windows 7的Shell 命令大名單.
    2009-04-08

最新評論