linux 文字編輯器

2022-07-01 06:33:14 字數 4521 閱讀 2126

檔案編輯

nano vi/vim emacs gedit

nano 記憶體臨時建立

vim 三種模式:

命令模式:複製、裁剪、刪除、跳轉、貼上

插入模式:編輯檔案

末行模式:退出、儲存、重新命名、讀入檔案、搜尋檔案、跳轉

vim 編輯的命令

命令模式:

游標定位: hjkl 游標上下左右

shift+^$ 跳轉到所在行首和行尾

gg g 跳到行首和行尾

4g 4gg 跳的第四行

d 刪除 dd 3dd dgg dg

d^ 刪除當前字元到行首

d$ 刪除當前字元到行尾

d 從游標處刪除到行尾

p 貼上

x 刪除游標所在字元

u 撤銷、

dd 刪除

ddp 剪下貼上

/^d 以d開頭

/n$ 以n結尾

r 可以用來修改乙個字元

命令模式切換插入模式:

i 當前位置插入

o 下一行插入

a 當前字元之後插入

i 跳轉到行首

a 跳轉到行尾

s刪除當前字元後插入

s刪除當前整行插入

從插入模式進入末行模式

escq 退出

w 儲存 (w 檔案命 = 重新命名)

wq 儲存退出

x 儲存退出

! 強制

q! 強制退出

wq! 強制儲存退出

:10 進入第10行

: r /etc/passwd 讀入etc/passwd檔案

r 進入替換模式

ctrl v 進入可視模組

v 整行

臨時設定:

:set nu 設定行號

:set ic 不區分大小寫

:set list 顯示控制字元

:set ai 自動縮排

:set nonu 取消行號設定

:set' noic 取消不區分大小寫

:set noai 取消自動縮排

製表符設定

:set tabstop = 4 設定tab鍵為4個空格原有tab空格數也改動

:set softtabstop =4 原有的tab空格數不變,新內容改變

永久環境

/etc/vimrc 影響所有系統使用者

~/.vimrc 影響當前使用者

vim -o 檔案 檔案

橫向同時開啟兩個檔案 eg:vim -o 1.txt 2.txt

vin -o 檔案 檔案

縱向開啟

ctrl w 切換

替換:s/ab/**/ 替換游標所在行的第乙個ad替換為i**

:s/ab/**/g 當前行所有的ab都替換** g代表全域性、當前行

:%s/ab/**/g 替換整個檔案的ab為**

:3,6s/ab/**/gc 替換3到6行內所有的ab為**

:%s/^/#/g 給所有行新增注釋 %s/^#//g 取消注釋

:%s/ // 刪除每行的第乙個空格

:%s//\t/g 空格替換成製表符 \t製表符

:g/^$/d 刪除空行

:g/^\s*$/d 刪除所有空行

:%s/\n//g 把所有檔案合併成一行 \n換行符

set list 顯示出的$是結尾的意思。

檢視檔案資訊 wc

檢視檔案行數 wc -l

檢視檔案字元數 wc -c

文字內容的過濾 grep

grep "root" /etc/passwd

擷取檔案中帶有root的內容

grep "r..t" /etc/passwd

擷取檔案中以r開頭

grep "r[abc]t" /etc/passwd

擷取以r開頭中間【abc】中任意乙個字元以t結尾

grep "r[a-z]t" /etc/passwd

擷取以r開頭中間a-z字元任意乙個字元以t結尾

[a-z][a-z][0-9]

grep "[^0-9]" 檔案 [^] 取反

擷取不是數字的內容

grep "^[^a-b]" 檔案 ^開頭 $結尾 ^$空行

擷取開頭不以a-z開頭的檔案

特殊字符集:

[[:digit:]] 任意單個數字

[[:alpha:]] 任意單個字母

[[:upper:]] 任意單個大寫字母

[[:lower:]] 任意單個小寫字母

[[:alnum:]] 任意單個數字、字母

[[:space:]] 任意單個空白字元

[[:punct:]] 任意單個標點

eg: grep "r[[:upper:]]t" /etc/passwd

匹配字元出現的次數

*前乙個字元出現任意次

eg:grep "ro*" /etc/passwd

\? 第乙個字元出現次或次 ,可有可無

eg:grep "ro\?" /etc/passwd

\+ 前一字元出現次或者多次

eg:grep "r\+" /etc/passwd

\ 重複字元出現的次數精確 4次 \ \

eg:grep "o\" /etc/passwd

分組 \(ab\)

grep "\(ab\)\" /usr/share/dict/words

-i 忽略大小寫

eg:grep -i "^r" /etc/passwd

-o 僅顯示符合pattern的內容

eg:grep -o "r..t" /etc/passwd

-e 同時根據多個條件過濾內容

eg:grep -e "^#" -e "^$" /etc/fstab

-v 反向過濾

eg:grep -v "^#" /etc/fstab

grep -v -e "^#" -e "^$" /etc/fstab

-e 支援正規表示式

eg: grep -e "(ab)" /usr/share/dict/words

grep -e "bin|sbin" /etc/passwd

-a n 顯示符合條件的後n行內容 -b n 顯示後n行的內容

ip addr show ens33 | grep -a 1"ether"

查詢檔案目錄

find

-name 按檔名稱查詢

eg:find /etc/ -name passwd=(檔名)

find /etc/ -name "passwd$"

-size 按檔案大小查詢

eg:find /etc/ -size +15m=(檔案大小) +大於多少 -小於多少

建立檔案指定大小

dd if=/dev/zero of=/tmp/dd bs=1m count=20 建立乙個大小為20m的dd檔案

dd 建立指定大小的檔案

if=/dev/zero 零發生檔案

of=/tmp/dd 建立檔案的位置和名字

bs=1m 指定大小單位 m k g

count=20 塊 (塊*大小)

du -h 檢視指定檔案大小

du -sh 檢視指定目錄的大小

-type 按檔案型別查詢

eg:find /dev/ -type d=(檔案型別)

p 管道

f 普通檔案

d 目錄

s 套接字

b 塊裝置

| 鏈結

c 字元裝置

-mtime 按時間查詢檔案

eg:find / -mtime +5 》5天前

find / -mtime -5 》最近5天

-exec 對查詢的檔案執行操作

eg:find /test/ -name "*.txt" -exec rm -f {} \;

find /etc/ -size +2m -exec cp {} /tmp/ \;

將查詢的檔案發在{}裡對檔案執行操作

sort 對指定字段排序

sort -t 指定字段分隔符 eg:sort -t":"

sort -k 指定列排序 eg:sort -t":" -k3

sort -n 按數值,預設按字元排序 eg: sort -t":" -k3 -n

sort -r 逆序 eg:sort -t":" -k3 -n -r

eg:cut 取出指定字段

cut -d 指定分隔符

cut -f 指定字段 cut -d: -f1 /cut -d: -f1-3 /cut -d: -f1,3,5,7

cut -c 指定字元 cut -c 1 / cut -c 1,2,3 /cut -c 1-2,7

uniq 去重

uniq -u 只顯示沒有重複的值

uniq -d 顯示連續重複的值

uniq -c 統計重複次數

uniq -i 忽略大小寫

awk 列印指定字段

awk -f"" '' /路徑

-f 指定分隔符

$1 第乙個字段

$nf 最後乙個字段

$(nf-1)倒數第二個字段

linux 文字編輯器

vi編輯器 vi vim 命令模式 輸入模式 末行模式 命令模式 輸入模式 插入i 從游標的位置前面開始插入,並且游標隨著插入的內容向後移動 i從游標所在行的第乙個非空字元前面開始插入 新增a 從游標所在位置後面開始新增,游標隨著插入內容向後移動 a從游標所在行的最後的地方開始新增 開始o 從游標所...

Linux文字編輯器

一 命令列模式 任何時候,不管使用者處於何種模式,只要單擊 esc 鍵,即可使vi 進入命令列模式。使用者在shell環境下輸入並啟動vi 命令,進入編輯器時,也是處於該模式下。在該模式下,使用者可以輸入各種合法的 vi 命令用於管理自己的文件 二 文字輸入模式 在命令列模式下輸入 插入命令 i 附...

Linux 文字編輯器

vi o 可以同時開啟多個檔案 o 豎排多個檔案 ctrl ww切換不同檔案 不能鎖住介面。只有選單 命令模式 vi filename預設進入 所有鍵盤鍵入的字元,都有可能是命令iao iao可進入插入模式 i 游標前插入文字 i 在本行游標前插入文字 a 在游標後附加文字 a 在本行末附加文字內容...