Linux管理輸入輸出與vim命令
一. 管理輸入與輸出
在系統中用普通使用者執行 find /etc -name passwd 時,因為許可權的問題,所以會出現正確輸出和錯誤輸出。在Linux系統中,正確輸出的編號為1,錯誤輸出編號為2
在student使用者下執行該命令後,會發現有兩個正確輸出,其他都是Permission denied沒有許可權。
重定向正確輸出: find /etc -name passwd > file (這個命令的意思就是把上面執行命令後的正確輸出放入檔案file中)
當執行這條命令之後,正確的輸出會被放到file檔案中。
重定向錯誤輸出: find /etc -name passwd 2> file(這個命令的意思是把上面執行的find命令後的錯誤輸出放到file檔案中)
重定向所有輸出: find /etc -name passwd &> file(這個命令的意思是把上面執行的find命令後的所有輸出放到file檔案中)
注意: >, 2> ,&> 都會覆蓋原始檔內容
附加:>file 清除file檔案裡的內容
如果想要不覆蓋原始檔內容,可以執行以下三條命令:
find /etc -name passwd >> file 在file內容後面加上find的正確輸出
可以看到,我在執行>>命令之前,先給file檔案裡寫入了123 456,然後執行>>命令後,正確輸出加在了123 456之後,並沒有覆蓋掉原始檔。
find /etc -name passwd 2>> file 在file內容後面加上find的錯誤輸出
可以看到,我在執行2>>命令之前,先給file檔案裡寫入了123 789,然後執行2>>命令後,錯誤輸出加在了123 789之後,並沒有覆蓋掉原始檔。
find /etc -name passwd &>> file 在file內容後面加上find的所有輸出
可以看到,我在執行&>>命令之前,先給file檔案裡寫入了qwe abc,然後執行&>>命令後,錯誤輸出加在了qwe abc之後,並沒有覆蓋掉原始檔。
注意:>> 2>> &>> 不會覆蓋原始檔內容,會把相應的輸出字元方到檔案的最後
管道 |:管道的作用是將上一條命令中的輸出變成下一條命令的輸入 注意:執行管道命令必須要有輸出
例如: ls /bin | wc -l 統計ls /bin 命令的輸出行數
注意:系統中的錯誤輸出是無法通過管道的,但是可以用 2>&1 命令將錯誤輸出編號由2變成1
可以看出,當我用管道命令把find命令的輸出變成wc -l命令的輸入時,還是會有錯誤輸出和一個數字2,這就表示,只有正確輸出才能通過管道,所以當所有輸出結果通過管道時,錯誤輸出被拒之門外,正確輸出執行了wc -l統計行數的命令。但是當我用2>&1命令後,所有輸出都可以通過管道了,它其實是把錯誤輸出的編號由2變成了1,從而順利的通過管道,執行了wc -l的命令。
tee 複製輸出到指定的位置
格式:date |tee file tee命令複製date命令的輸出到file中
可以看出,tee命令也會i覆蓋file檔案裡的內容。
同樣,可以用>>命令,如上圖,這樣就不會覆蓋原始檔的內容了
管道命令可以重複多次使用,例如:date |tee file |wc -l tee命令複製date命令的輸出到file中,並統計輸出行數
二. vim命令
1.vim 異常退出
在vim一場退出時,系統中會在所編輯的檔案目錄中生成.file.swp,vim再次編輯此檔案時會出現相應提示
按 "o" open 開啟
按 "e" edit 編輯
按 "r" recover 覆蓋
按 "d" delete .swap file 刪除
按 "q" quit 放棄
2.vim的基本配置
在vim進入一個內容較多的檔案時,是沒有行號的,可能看起來非常難受,所以我們可以新增行號,在vim檔案後 按 : set nu,然後回車就可以看到行號了。
如果想要取消行號,按: set nonu
如果要新增滑鼠選擇,按: set mouse=a
這個時候就可以用滑鼠選擇了。
如果要顯示下劃線,按:set cursorline
以上的設定方式都是臨時的,永久的設定方式為:vim /etc/vimrc(此檔案為vim的配置檔案,在此檔案最後加入以上引數,就可以永久設定)
3.vim關鍵字搜尋
如果vim開啟一個檔案,而這個檔案又非常大,找自己想要找的東西就會非常困難,那麼此時就可以用關鍵字搜尋
在vim開啟檔案後,輸入/關鍵字就可以找到自己想要找的東西了,n是向下匹配,N是向上匹配。
4.vim下字元的管理
複製: (複製完成後按p貼上)
yl 複製一個字母
y2l 複製兩個字母
yw 複製一個單詞
y3w 複製三個單詞
yy 複製一行
y3y 複製三行
刪除:
dl 刪除一個字母
d3l 刪除三個字母
dw 刪除一個單詞
d3w 刪除三個單詞
dd 刪除一行
d3d 刪除三行
剪下: (剪下完後會進入插入模式,然後按esc退出插入模式後按p貼上)
cl 剪下一個字母
c3l 剪下3個字母
cw 剪下一個單詞
c3w 剪下3個單詞
cc 剪下一行
c3c 剪下3行
與複製和刪除命令類似,這裡就不放圖了。
5.vim的視覺化模式
vim進入檔案後在,在命令模式下按 ctrl+v 進入視覺化模式,在視覺化模式下可以區域選擇字元
可視模式下批量新增字元:
ctrl+v 選中要加入字元所在列
按“I”進入插入模式,寫入要加入的字元(注意:這裡是大寫I)
按esc
可視模式下批量修改字元
:%s/原有字元/替換後字元 只替換每一行中出現的第一個原有字元
:%s/原有字元/替換後字元/g 替換所有原有字元
:14,17s/原有字元/替換後字元/g 替換14-17行
6.vim的分屏功能
ctrl+w s 上下分屏
ctrl+w v 左右分屏
ctrl+w c 關閉游標所在螢幕
ctrl+w 上下左右 游標移動到指定螢幕
:sp file2 同時編輯當前檔案和file2
7.vim游標移動
在命令模式下
:數字 移動到指定的行
G 檔案最後一行
gg 檔案第一行
在插入模式下
i 游標所在位置插入
I 游標所在行行首
a 游標所在字元的下一個位置
A 游標所在行行尾
o 游標所在行下一行
O 游標所在行上一行
s 刪除游標所在字元插入
S 刪除游標所在行插入
這些命令放圖也看不出效果,所以這裡就不放了,一般最常用的就是 i 游標所在位置插入,然後上下左右移動游標
8.vim的退出模式(這裡用:wq舉個例子 )
:q 如果沒有對字元作任何操作時可直接q退出
:q! 如果有操作,放棄所有操作退出
:wq 儲存退出
首先我vim一個檔案,然後向檔案裡寫入了字元,然後:wq儲存退出。當我再次開啟這個檔案時,裡面的字元都在。
:wq! 強行儲存退出,對超級使用者及檔案所有人生效
9.vim手冊
vimtutor vim的手冊,如果有vim命令不懂的地方,可以檢視手冊。
附加:gedit (gedit也是開啟檔案,但是需要圖形化介面)
ctrl+n 在gedit中開啟一個新的tab
ctrl+s 儲存檔案
ctrl+o 開啟檔案
ctrl+x 剪下字元
ctrl+v 貼上字元
ctrl+c 複製字元
以上三個命令與windows下的命令相同
yelp help:gedit gedit的圖形手冊