1. 程式人生 > >Linux基礎命令詳解(二)————Vim文字編輯

Linux基礎命令詳解(二)————Vim文字編輯

shell:殼,命令直譯器

cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

man bash

man cd

man ls

type 檢視命令是file、alias還是builtin

內建命令 (shell內建)。

外接命令:在檔案系統的某個目錄下,有個與命令名稱相同的檔案。

區別:      shell為了完成自我管理和基本的管理,不同的shell內建不同的命令,但是大部分都差不多。

-t              僅列出命令執行時的依據

-a             列出當前命令可以如何執行

那命令怎麼知道是那個路徑下的命令呢?系統為了讓使用者在命令列快速方便地執行命令,用一種機制來實現,這種機制就叫做環境變數。

變數是什麼? 變數是命名的記憶體空間。

shell的變數功能:

變數簡單說就是讓某一個特定字串代表不固定的內容。

設定變數(變數名的規則:用“=”連線;等號兩邊不能有空格符;只能使用數字和字母,且不能用數字開頭;):

myname=redhat(變數宣告的過程就是申請記憶體使用的過程)

環境變數

定義當前使用者工作環境屬性的變數

PATH

取消變數:unset 變數名稱

/bin/bash優點:

命令與檔案補全功能

命令別名設定功能

命令記憶功能

萬用字元等等

history  命令歷史

命令歷史檔案為~/.bash_history

n            列出目前最近的n條資訊

-c          清除命令歷史

!!      執行上一個命令

!         number 執行命令歷史中第幾條命令

 

shell中的萬用字元:bash中常用的萬用字元有”*“,”?“,”[]“

*           表示匹配任意零個或多個字元

?         表示匹配任意單一字元

[]          匹配任何包含在方括號內的單字元

 

shell中的引用:在bash中有很多特殊字元,這些特殊字元就具有特殊含義。引用就是通知shell將這些特殊字元當作普通字元來處理。

轉義字元“\”:如果將\放到特殊字元前面,shell就忽略這些特殊字元的原有含義,把它們當作普通字元對待。

mkdir  1*

ls -ld 1*

ll -d  1\*

單引號: 如果將字串放到一對單引號之間,那麼字串中所有字元的特殊含義被忽略。

ll -d  1'*'

雙引號: 雙引號的引用與單引號基本相同,包含在雙引號內的大部分特殊字元可以當作普通字元處理,但是仍然有一些特殊字元保留自己的特殊含義,比如”$“和“\”以及“ ` ”

ll -d 1"*"

myname=redhat

echo “$myname”

echo   “\$$myname”

echo    "`date` "

文字編輯vim:

命令模式:按esc鍵可回到命令模式

dd                 刪除當前行      數字+dd刪除的行數

dw                按單詞刪除

u                  撤銷當前操作

ctrl+r            重做

yy                複製游標所在行

2 yy             複製游標所在行和游標下一行

p                 貼上到游標下一行

cc               剪下

行數cc        剪切當前行開始的幾行

x                 刪除游標所在位置的內容

w,b           按單詞進行移動游標

gg               跳轉到文件首部行首

dgg             刪除游標至文件首部

G                跳轉到文件尾部行首

/字串1      查詢字串1

$                 行尾

^                 行首

h                 往左按字元移動游標

j                  往下(後)按行移動游標

k                 往上(前)按行移動游標

l                  往右按字元移動游標

H                跳轉到當前螢幕輸出的最上面一行

L                跳轉到當前螢幕輸出的最下面一行

M              跳轉到當前螢幕輸出的中間那一行

 

插入模式:

i                在游標前插入

I                在游標所在行行首插入

a               在游標後插入

A               在游標所在行末尾插入

s               刪除游標所在位置字元並插入

S              刪除游標所在行並插入

o              在游標所在行下一行插入

O             在游標所在行上一行插入

 

末行模式:

:wq                               儲存退出

:q                                  退出(未修改檔案內容才可以退出)

:wq!                            強制儲存退出

:q!                                 強制退出,不儲存

:set nu                           顯示行號

:set nonu                        不顯示行號

:行號                           跳轉到指定行號

:3,5 d                             刪除3-5行

:r 檔名1                       讀出檔案1的內容到當前檔案裡

:%s/字串2/字串3         字串3替換字串2

:%s/1/2/g                        將1替換為2,全域性修改

:w 檔名1                      另存為檔名1

文字檢視命令:

連線並顯示檔案內容到標準輸出:            cat

顯示檔案內容並顯示行號:                      cat -n 檔名

黑洞機制                                               (shell腳本里面經常用)

將檔案內容重定向到/dev/null:                    cat 檔案 >/dev/null

不帶任何選項時,從標準輸入接收輸出到標準輸出

逆序顯示檔案:                                         tac

從頭開始逐行檢視:                                   more /var/log/messages

在沒有翻到最後一屏時支援向前翻

前後檢視檔案內容:                                   less /var/log/messages

man手冊檢視命令用法預設用less開啟

預設檢視檔案前10行:                               head /etc/passwd

指定檢視前5行:                                        head -5 /etc/passwd

預設檢視後10行:                                      tail /etc/passwd

檢視後5行:                                               tail  -5 /etc/passwd

 

文字處理:

文字切割顯示:

cut -d                    指定分隔符 -f 指定第幾列 被切割檔案

-f 1,3                    第一列和第三列

-f 1-3                    第一列到第三列

-c 1-4                   指定第一到第四個字元

指定分隔符的時候空格需要用單引號或雙引號引起來

cut -d : -f 1-3 [email protected] /etc/passwd

文字排序顯示:

排序顯示(預設根據字元在ASCII碼中的升序排序):sort 檔名

按照數值大小排序:sort -n 檔名

排序並去掉重複的:sort -u 檔名

逆序排序:sort -r 檔名

按照使用者uid數字大小排序顯示:

sort -t                指定分隔符 -k 指定第幾列 -n /etc/passwd

 -f                     排序時忽略字元大小寫

去掉重複的行,重複的行必須相鄰:uniq 檔名

-d                    只顯示重複的行

-D                  顯示所有重複的行

-c                  顯示重複行重複的次數

 

文字統計:wc——word count

顯示檔案行數、單詞數、位元組數和檔名:wc 檔名

###在UTF-8編碼格式裡面,顯示時一個字元佔一個位元組,一箇中文字佔用3個位元組

只顯示單詞數:wc -w 檔名

只顯示位元組數:wc -c 檔名

只顯示行數:wc -l 檔名

只顯示字元數:wc -m 檔名

顯示最長的一行的字元數:wc -L 檔名

 

統計當前目錄下的檔案數:

ls -l | wc -l

ls | wc -l

 

文字過濾:grep可以根據指定的字串,對檔案的每一行進行搜尋,如果找到了這個字串,就輸出該行的內容

查詢檔案裡的字元和字串:

查詢檔案裡有字元h的字串:                 grep h 檔名

匹配整個單詞:                                       grep -w 單詞 檔名

匹配以q開始的行:                                  grep ^[q] 檔名

匹配以q和a開始的行:                             grep ^[qa] 檔名

匹配以q結束的行:                                  grep q$ 檔名

匹配以q和a結束的行:                             grep [qa]$ 檔名

匹配以數字開頭的行:                              grep ^[0-9] 檔名

匹配以q或者f開頭的行:                           grep ^[qf] 檔名

匹配以#號開頭的行:                               grep "^#"

過濾空白行:                                           grep "^$"

如果要明確搜尋子目錄:                           grep -r h ./* (有h的檔案)

忽略子目錄:                                            grep -d skip h ./*

 搜尋時忽略大小寫:                                 grep  -i

搜尋時顯示沒有匹配到的行:                     grep    -v  

搜尋時顯示匹配到的那一行以及下2行:      grep -A  2  

搜尋時顯示匹配到的那一行以及上2行:      grep  -B  2

 搜尋時顯示匹配到的那一行以及上下2行:  grep  -C   2

 

 

 

管道符:|   管道符左邊命令的輸出作為管道符右邊命令的輸入。

tee命令:在輸出到檔案的同時輸出到螢幕,既想把輸出儲存到檔案中,又想在螢幕上看到輸出內容。

 

檔案搜尋:

查詢檔案路徑:

find 路徑 -name 檔名:find / -name passwd