linux操作--常用命令- 檔案檢視/編輯方法
1.cat 命令介紹 cat 命令的原含義為連線 concatenate 用於連線多個檔案內容並輸出到 標準輸出流中 標準輸出流預設為螢幕 實際運用過程中 我們常使用它 來顯示檔案內容 如果您熟悉 MS-DOS下的 type命令 相信不難掌握 cat命 令 該命令的常用示例如下 cat file1.txt 顯示 file1.txt 檔案的內容 cat file1.txt file2.txt 顯示 file1.txt 和 file2.txt 檔案的內容 cat -n file1.txt 顯示 file1.txt 檔案的內容 同時顯示行號 2 vi命令介紹 vi是 Visual Interface 的簡稱 它在 Linux上的地位就彷彿 Edit程式在 DOS 上一樣 它可以執行輸出 刪除 查詢 替換 塊操作等眾多文字操作 而 且使用者可以根據自己的需要對其進行定製 這是其他編輯程式所沒有的 vi不是一個排版程式 它不象 Word或 WPS那樣可以對字型 格式 段落等 其他屬性進行編排 它只是一個文字編輯程式 vi 沒有選單 只有命令 且命令繁多 限於篇幅 本文只介紹常用的命令 Vi有三種基本工作模式 命令列模式 文字輸入模式和末行模式 命令列模式 任何時候 不管使用者處於何種模式 只要按一下 ESC 鍵 即可使 vi 進入 命令列模式 當在 shell環境下輸入 vi命令啟動 vi編輯器時 也是處於該模式 下 在該模式下 使用者可以輸入各種合法的 vi 命令 用於管理自己的文件 此時 從鍵盤上輸入的任何字元都被當作編輯命令來解釋 若輸入的字元是合法的 vi 命令 則 vi 在接受使用者命令之後完成相應的動作 但需注意的是 所輸入 的命令並不在螢幕上顯示出來 若輸入的字元不是 vi 的合法命令 vi 會響 鈴報警 文字輸入模式
在命令模式下輸入插入命令 i 附加命令 a 開啟命令 o 修改命令 c 取代 命令 r或替換命令 s都可以進入文字輸入模式 在該模式下 使用者輸入的任何 字元都被 vi 當做檔案內容儲存起來 並將其顯示在螢幕上 在文字輸入過程 中 若想回到命令模式下 按 ESC 鍵即可 末行模式 在命令模式下使用者按 : 鍵即可進入末行模式下 此時 Vi會在顯示視窗的最 後一行 通常也是螢幕的最後一行 顯示一個 : 作為末行模式的提示符 等待使用者輸入命令 多數檔案管理命令都是在此模式下執行的 如把編輯緩 衝區的內容寫到檔案中等 末行命令執行完後 vi自動回到命令模式 若在末行模式下輸入命令過程中改變了主意 可按 ESC 鍵 或用退格鍵 將輸入的命令全部刪除之後 再按一下退格鍵 即可使 vi回到命令模式下
2.1 vi 的進入與退出
在 shell模式下 鍵入 vi及需要編輯的檔名 即可進入 vi 例如 vi example.txt 即可編輯 example.txt 檔案 如果該檔案存在 則編輯介面中會顯示該檔案的 內容 並將游標定位在檔案的第一行 如果檔案不存在 則編輯介面中無任 何內容 如果需要在進入 vi 編輯介面後 將游標置於檔案的第 n 行 則在 vi 命令後面加上 +n 引數即可 例如需要從example.txt 檔案的第 5行開始顯 示 則使用如下命令 vi +5 example.txt 退出 vi時 需要在末行模式中輸入退出命令 q 如果在文字輸入模式下 首先按 ESC 鍵進入命令模式 然後輸入 : 進入末行模式 在末行模式 下 可使用如下退出命令 :q 直接退出 如果在文字輸入模式下修改了文件內容 則不能退出 :wq 儲存後退出 :x 同 wq :q! 不儲存內容 強制退出
2.2 vi 中顯示行號 在末行模式下 輸入如下命令 set number
可使 vi在編輯介面中顯示行號 此外 在末行模式下 可使用如下 nu 命令 number的簡寫 來顯示游標 所在行的行號及該行的內容
2.3 游標移動操作 全螢幕文字編輯器中 游標的移動操作無疑是最經常使用的操作了 使用者只 有熟練地使用移動游標的這些命令 才能迅速準確地到達所期望的位置處進 行編輯 vi中的游標移動既可以在命令模式下 也可以在文字輸入模式下 但操作的方 法不盡相同 在文字輸入模式下 可直接使用鍵盤上的四個方向鍵移動游標 在命令模式 下 有很多移動游標的方法 不但可以使用四個方向鍵來移動游標 還可以 用 h j k l這四個鍵代替四個方向鍵來移動游標 這樣可以避免由於不同機 器上的不同鍵盤定義所帶來的矛盾 而且使用熟練後可以手不離開字母鍵盤 位置就能完成所有操作 從而提高工作效率 以下命令均在命令列模式下完成游標移動 h 游標左移 如果在按 h命令前輸入數字n 則游標左移 n個字元 l 游標右移 如果在按 l命令前輸入數字 n 則游標右移n個字元 j 游標上移 如果在按 j命令前輸入數字 n 則游標上移n個字元 k 游標下移 如果在按 k命令前輸入數字 n 則游標 xia移 n個字元 0 零 游標移到行首 $ 游標移到行尾 H 游標移到螢幕上顯示的第一行 並不一定是檔案頭 L 游標移到螢幕上顯示的最後一行 並不一定是檔案尾 M 游標移到螢幕的中間一行 nG 游標移到第 n行 w或 W 將游標右移至下一個單詞的詞首 e或 E 如果游標起始位置處於單詞內 即非單詞尾處 則該命令將把光 標移到本單詞詞尾 如果游標起始位置處於單詞尾 則該命令將把游標移動 到下一個單詞的詞尾
b或 B 如果游標處於所在單詞內 即非單詞首 則該命令將把游標移至 本單詞詞首 如果游標處於所在單詞的詞首 則該命令將把游標移到上一個 單詞的詞首 Ctrl+G 狀態命令 顯示當前編輯文件的狀態 包括正在編輯的檔名 是 否修改過 當前行號 檔案的行數以及游標之前的行佔整個檔案的百分比 此外 也可以通過以下末行模式下的命令完成游標在整個檔案中的移動操作 :n 游標移到檔案的第 n行 :$ 游標移到檔案的最後一行
2.4 文字插入操作
在命令模式下 使用者輸入的任何字元都被 vi 當作命令加以解釋執行 如果用 戶要將輸入的字元當作是文字內容時 則首先應將 vi 的工作模式從命令模式 切換到文字輸入模式 切換的方式是使用下面的命令 1. 插入 Insert 命令 vi提供了兩個插入命令 i和 I 1 . i命令 插入文字從游標所在位置前開始 並且插入過程中可以使用 <Backspace>鍵刪除錯誤的輸入 此時 vi 處於插入狀態 螢幕最下行顯示 --INSERT-- 插入 字樣 2 . I命令 該命令是將游標移到當前行的行首 然後在其前插入文字 2. 附加 append 命令 vi提供了兩個附加插入命令 a和 A 1 . a命令 該命令用於在游標當前所在位置之後追加新文字 新輸入的 文字放在游標之後 在游標後的原文字將相應地向後移動 游標可在一行的 任何位置 2 . A命令 該命令與 a命令不同的是 A命令將把游標挪到所在行的行 尾 從那裡開始插入新文字 當輸入 A命令後 游標自動移到該行的行尾 a和 A命令是把文字插入到行尾的唯一方法
3. 開啟 open 命令 不論是 Insert命令也好 還是 append命令也好 所插入的內容都是從當前行 中的某個位置開始的 若我們希望在某行之前或某行之後插入一些新行 則 應使用 open命令 vi提供了兩個開啟命令 o和 O 1 . o命令 該命令將在游標所在行的下面新開一行 並將游標置於該行 的行首 等待輸入文字 要注意當使用<Backspace>刪除字元時只能刪除從 插入模式開始的位置以後的字元 對於以前的字元不起作用 2 . O 命令 和 o命令相反 O命令是在游標所在行的上面插入一行 並 將游標置於該行的行首 等待輸入文字
2.2.5 文字修改操作
在命令模式下可以使用 vi 提供的各種有關命令對文字進行修改 包括對文字 內容的刪除 複製 取代和替換等 1. 文字刪除/移動 在編輯文字時 經常需要刪除一些不需要的文字 我們可以用<Backspace> 鍵將輸錯或不需要的文字刪除 但此時有一個限制就是當刪到行頭之後 再 想刪上面那行的內容是不可能的 在命令模式下 vi提供了許多刪除命令 這些命令大多是以 d開頭的 常用的 有 1 . 刪除單個字元 x 刪除游標處的字元 若在 x之前加上一個數字 n 則刪除從游標所在位置 開始向右的 n個字元 X 刪除游標前面的那個字元 若在 X之前加上一個數字 n 則刪除從游標 前面那個字元開始向左的 n個字元 顯然這兩個命令是刪除少量字元的快捷方法 2 . 刪除多個字元 dd 刪除游標所在的整行 在 dd前可加上一個數字 n 表示刪除當前行及 其後 n-1行的內容 D或 d$ 兩命令功能一樣 都是刪除從游標所在處開始到行尾的內容
d0 刪除從游標前一個字元開始到行首的內容 dw 刪除一個單詞 若游標處在某個詞的中間 則從游標所在位置開始刪至 詞尾 同 dd命令一樣 可在 dw之前加一個數字 n 表示刪除n個指定的單 詞 如果使用者不小心進行了誤刪除操作 也不要緊 vi提供了恢復誤操作的命令 並且可以將恢復的內容移動 放在文字的任何地方 恢復命令用 np 其 中 n為需要恢復的次數 例如使用 dd命令刪除了一行內容 然後使用 2p 命令 則被刪除的內容會被重新插入兩遍 通過 dd命令及 p命令的結合使用 可以很方便的實現文字行的移動操作 2. 文字複製命令 yy 複製游標所在的整行 在 yy前可加上一個數字 n 表示複製當前行及其 後 n-1行的內容 文字行復制後 通過使用上面介紹的 p 命令 可以將文字行貼上到任何地 方 dd yy及 p命令在 vi中的作用 類似於 Windows 中圖形編輯程式的 剪下 複製 及 貼上 命令 3. 取消上一命令 Undo 取消上一命令 Undo 也稱復原命令 是非常有用的命令 它可以取消前 一次的誤操作或不合適的操作對檔案造成的影響 使之回覆到這種誤操作或 不合適操作被執行之前的狀態 取消上一命令有兩種形式 在命令模式下鍵入字元 u 和 U 它們的功能都是 取消剛才輸入的命令 恢復到原來的情況 小寫 u 和大寫 U在具體細節上有 所不同 二者的區別在於 大寫 U命令的功能是恢復到誤操作命令前的情況 即如果插入命令後使用 U 命令 就刪除剛剛插入的內容 如果刪除命令後使 用 U 命令 就相當於在游標處又插入剛剛刪除的內容 這裡把所有修改文字 的命令都視為插入命令 也就是說 U 命令只能取消前一步操作 如果用 U 命令撤消了前一步操作 當再按 U 鍵時 並不是撤消再前一步的操作 而是 撤消了剛才 U命令執行的操作 也就是又恢復到第一次使用 U命令之前的狀 態 結果是什麼都沒做 而小寫 u 命令的功能是把當前行恢復成被編輯前的 狀態 而不管此行被編輯了多少次
4. 重複命令 Redo 重複命令也是一個非常常用的命令 在文字編輯中經常會碰到需要機械地重 復一些操作 這時就需要用到重複命令 它可以讓使用者方便地再執行一次前 面剛完成的某個複雜的命令 重複命令只能在命令模式下工作 在該模式下按 . 鍵既可 執行一個重複 命令時 其結果是依賴於游標當前位置的
2.6 文字搜尋與替換操作
在進行文字編輯的時候 您可以需要搜尋或定位特定的單詞或單詞的一部分 vi編輯器有向前或向後搜尋指定模式的功能 / 是 vi編輯器的模式搜尋命令 鍵入 / 後 螢幕的底部會出現一行 同 時一個斜扛會出現在底行的行首上 且游標被放置在斜扛之後 此時 您可 以在游標位置鍵入你需要搜尋的模式 輸入完成並按下 ENTER鍵後 編輯器 將開始從游標所在的位置起向檔案尾部搜尋你鍵入的模式 如果輸入的模式 被找到 游標將停留在找到的模式上 在找到一個匹配的模式後 如果您還 需要搜尋下一個匹配的模式 使用命令 n 即可 如果需要找到上一個匹配 的模式 則使用 N 命令即可 此外 ? 命令也是模式搜尋命令 與 / 的區別在於 / 是從游標當 前所在位置向檔案尾部搜尋 而 ? 命令則是由游標當前所在位置向檔案頭 部搜尋 文字替換操作需要使用末行模式進行操作 即所有文字替換操作命令均以 : 開頭 文字替換命令的格式為 :s/text1/text2 用於將游標所在段落搜尋到的第一個 text1 替換為 text2 :s/text1/text2/g 用於將游標所在段落的所有 text1 替換為 text2 :m,ns/text1/text2/g 用於將從 m行開始至 n行結束的所有搜尋到的 text1 替換為 text2 其中可以使用$表示末行 即 1,$ 表示替換文件中的所 有符合條件的字元