1. 程式人生 > 實用技巧 >vue中的虛擬DOM

vue中的虛擬DOM

目錄

認識Linux系統及基礎命令

Linux中一切皆檔案
核心 + 檔案系統 + shell = Linux
 檔案系統結構:檔案進行讀寫
 Linux是一個樹形的檔案系統結構
 第一層目錄:/ 整個檔案系統的訪問入口

重要的二級目錄

bin:儲存Linux上常用的命令
dev:放置裝置的目錄
etc:Linux配置檔案目錄
home:普通使用者會在該目錄下建立屬於自己的目錄
root:管理員使用者家目錄
media:即插即用型的裝置的掛載目錄,光碟自動掛載到media目錄下
mnt:掛載目錄
將硬碟中的分割槽(C/D/E)與目錄進行關聯
/datas/cpan 《- C分割槽
/datas/Dpan 《- D分割槽
/datas/Epan 《- E分割槽
opt:可選目錄
usr:放安裝的應用程式
sbin:只有管理員才能執行的命令
var:Linux日誌預設儲存目錄

Linux 基礎命令

cd命令

用於切換當前目錄,它的引數是要切換到的目錄的路徑,可以是絕對路徑,也可以是相對路徑。
cd /root/Docements # 切換到目錄/root/Docements  
cd ./path          # 切換到當前目錄下的path目錄中,“.”表示當前目錄    
cd ../path         # 切換到上層目錄中的path目錄中,“..”表示上一層目錄  

ls命令

ls 用於列舉一個目錄或者檔案
ls -a 顯示所有檔案及目錄,包括隱藏檔案
ls -l 顯示檔案詳細資訊
eg. ls -a
  • grep命令

    該命令常用於分析一行的資訊,若當中有我們所需要的資訊,就將該行顯示出來,該命令通常與管道命令一起使用,用於對一些命令的輸出進行篩選加工等等,它的簡單語法為
    -a :將binary檔案以text檔案的方式查詢資料  
    -c :計算找到‘查詢字串’的次數  
    -i :忽略大小寫的區別,即把大小寫視為相同  
    -v :反向選擇,即顯示出沒有‘查詢字串’內容的那一行  
    # 例如:  
    # 取出檔案/etc/man.config中包含MANPATH的行,並把找到的關鍵字加上顏色  
    grep --color=auto 'MANPATH' /etc/man.config  
    # 把ls -l的輸出中包含字母file(不區分大小寫)的內容輸出  
    ls -l | grep -i file  
    

find命令

find是一個基於查詢的功能非常強大的命令,相對而言,它的使用也相對較為複雜,引數也比較多,所以在這裡將給把它們分類列出,它的基本語法如下:

find [PATH] [option] [action]  
  
# 與時間有關的引數:  
-mtime n : n為數字,意思為在n天之前的“一天內”被更改過的檔案;  
-mtime +n : 列出在n天之前(不含n天本身)被更改過的檔名;  
-mtime -n : 列出在n天之內(含n天本身)被更改過的檔名;  
-newer file : 列出比file還要新的檔名  
# 例如:  
find /root -mtime 0 # 在當前目錄下查詢今天之內有改動的檔案  
  
# 與使用者或使用者組名有關的引數:  
-user name : 列出檔案所有者為name的檔案  
-group name : 列出檔案所屬使用者組為name的檔案  
-uid n : 列出檔案所有者為使用者ID為n的檔案  
-gid n : 列出檔案所屬使用者組為使用者組ID為n的檔案  
# 例如:  
find /home/ljianhui -user ljianhui # 在目錄/home/ljianhui中找出所有者為ljianhui的檔案  
  
# 與檔案許可權及名稱有關的引數:  
-name filename :找出檔名為filename的檔案  
-size [+-]SIZE :找出比SIZE還要大(+)或小(-)的檔案  
-tpye TYPE :查詢檔案的型別為TYPE的檔案,TYPE的值主要有:一般檔案(f)、裝置檔案(b、c)、  
             目錄(d)、連線檔案(l)、socket(s)、FIFO管道檔案(p);  
-perm mode :查詢檔案許可權剛好等於mode的檔案,mode用數字表示,如0755;  
-perm -mode :查詢檔案許可權必須要全部包括mode許可權的檔案,mode用數字表示  
-perm +mode :查詢檔案許可權包含任一mode的許可權的檔案,mode用數字表示  
# 例如:  
find / -name passwd # 查詢檔名為passwd的檔案  
find . -perm 0755 # 查詢當前目錄中檔案許可權的0755的檔案  
find . -size +12k # 查詢當前目錄中大於12KB的檔案,注意c表示byte  

cp命令

該命令用於複製檔案,copy之意,它還可以把多個檔案一次性地複製到一個目錄下,它的常用引數如下:

-a :將檔案的特性一起復制  
-p :連同檔案的屬性一起復制,而非使用預設方式,與-a相似,常用於備份  
-i :若目標檔案已經存在時,在覆蓋時會先詢問操作的進行  
-r :遞迴持續複製,用於目錄的複製行為  
-u :目標檔案與原始檔有差異時才會複製
eg. 
cp -a file1 file2 #連同檔案的所有特性把檔案file1複製成檔案file2  
cp file1 file2 file3 dir #把檔案file1、file2、file3複製到目錄dir中 

mv命令

該命令用於移動檔案、目錄或更名,move之意,它的常用引數如下:

-f :force強制的意思,如果目標檔案已經存在,不會詢問而直接覆蓋  
-i :若目標檔案已經存在,就會詢問是否覆蓋  
-u :若目標檔案已經存在,且比目標檔案新,才會更新 

mv file1 file2 file3 dir # 把檔案file1、file2、file3移動到目錄dir中  
mv file1 file2 # 把檔案file1重新命名為file2  

rm命令

該命令用於刪除檔案或目錄,remove之間,它的常用引數如下:

-f :就是force的意思,忽略不存在的檔案,不會出現警告訊息  
-i :互動模式,在刪除前會詢問使用者是否操作  
-r :遞迴刪除,最常用於目錄刪除,它是一個非常危險的引數
eg.
rm -i file # 刪除檔案file,在刪除之前會詢問是否進行該操作  
rm -fr dir # 強制刪除目錄dir中的所有檔案  

ps命令

該命令用於將某個時間點的程序執行情況選取下來並輸出,process之意,它的常用引數如下:

-A :所有的程序均顯示出來  
-a :不與terminal有關的所有程序  
-u :有效使用者的相關程序  
-x :一般與a引數一起使用,可列出較完整的資訊  
-l :較長,較詳細地將PID的資訊列出  
eg.
ps aux # 檢視系統所有的程序資料  
ps ax # 檢視不與terminal有關的所有程序  
ps -lA # 檢視系統所有的程序資料  
ps axjf # 檢視連同一部分程序樹狀態  

kill命令

該命令用於向某個工作(%jobnumber)或者是某個PID(數字)傳送一個訊號,它通常與ps和jobs命令一起使用,它的基本語法如下:

kill -signal PID  
1:SIGHUP,啟動被終止的程序  
2:SIGINT,相當於輸入ctrl+c,中斷一個程式的進行  
9:SIGKILL,強制中斷一個程序的進行  
15:SIGTERM,以正常的結束程序方式來終止程序  
17:SIGSTOP,相當於輸入ctrl+z,暫停一個程序的進行
eg.

# 以正常的結束程序方式來終於第一個後臺工作,可用jobs命令檢視後臺中的第一個工作程序  
kill -SIGTERM %1   
# 重新改動程序ID為PID的程序,PID可用ps命令通過管道命令加上grep命令進行篩選獲得  
kill -SIGHUP PID  
  • killall命令

    該命令用於向一個命令啟動的程序傳送一個訊號,它的一般語法如下:

    -i :互動式的意思,若需要刪除時,會詢問使用者  
    -e :表示後面接的command name要一致,但command name不能超過15個字元  
    -I :命令名稱忽略大小寫  
    # 例如:  
    killall -SIGHUP syslogd # 重新啟動syslogd  
    
  • file命令

    該命令用於判斷接在file命令後的檔案的基本資料,因為在Linux下檔案的型別並不是以後綴為分的,所以這個命令對我們來說就很有用了,它的用法非常簡單,基本語法如下:

    file filename  
    #例如:  
    file ./test 
    
  • tar命令

    該命令用於對檔案進行打包,預設情況並不會壓縮,如果指定了相應的引數,它還會呼叫相應的壓縮程式(如gzip和bzip等)進行壓縮和解壓。它的常用引數如下:

    -c :新建打包檔案  
    -t :檢視打包檔案的內容含有哪些檔名  
    -x :解打包或解壓縮的功能,可以搭配-C(大寫)指定解壓的目錄,注意-c,-t,-x不能同時出現在同一條命令中  
    -j :通過bzip2的支援進行壓縮/解壓縮  
    -z :通過gzip的支援進行壓縮/解壓縮  
    -v :在壓縮/解壓縮過程中,將正在處理的檔名顯示出來  
    -f filename :filename為要處理的檔案  
    -C dir :指定壓縮/解壓縮的目錄dir  
    
    壓縮:tar -jcv -f filename.tar.bz2 要被處理的檔案或目錄名稱  
    查詢:tar -jtv -f filename.tar.bz2  
    解壓:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄  
    
  • cat命令

    該命令用於檢視文字檔案的內容,後接要檢視的檔名,通常可用管道與more和less一起使用,從而可以一頁頁地檢視資料。例如:

    cat text | less # 檢視text檔案中的內容  
    # 注:這條命令也可以使用less text來代替  
    
  • chgrp命令

    該命令用於改變檔案所屬使用者組,它的使用非常簡單,它的基本用法如下:

    chgrp [-R] dirname/filename  
    -R :進行遞迴的持續對所有檔案和子目錄更改  
    # 例如:  
    chgrp users -R ./dir # 遞迴地把dir目錄下中的所有檔案和子目錄下所有檔案的使用者組修改為users  
    
  • chown命令

    該命令用於改變檔案的所有者,與chgrp命令的使用方法相同,只是修改的檔案屬性不同,不再詳述。

  • chmod命令

    該命令用於改變檔案的許可權,一般的用法如下:

    chmod [-R] xyz 檔案或目錄  
    -R:進行遞迴的持續更改,即連同子目錄下的所有檔案都會更改  
    
  • vim命令

    該命令主要用於文字編輯,它接一個或多個檔名作為引數,如果檔案存在就開啟,如果檔案不存在就以該檔名建立一個檔案。

    1. vim模式
    
    正常模式(按Esc或Ctrl+[進入) 左下角顯示檔名或為空
    
    插入模式(按i進入) 左下角顯示--INSERT--
    
    可視模式(按v進入) 左下角顯示--VISUAL--
    
    替換模式(按r或R開始) 左下角顯示 --REPLACE--
    
    命令列模式(按:或者/或者?開始)
    
    ex模式 沒用過,有興趣的同學可以自行了解
    
    2. 開啟檔案
    
    # 開啟單個檔案
    
    vim file   
    
    # 同時開啟多個檔案
    
    vim file1 file2..
    # 在vim視窗中開啟一個新檔案
    
    :open [file]      
    
    【舉個例子】
    
    # 當前開啟1.txt,做了一些編輯沒儲存
    
    :open!         放棄這些修改,並重新開啟未修改的檔案
    
    # 當前開啟1.txt,做了一些編輯並儲存
    
    :open 2.txt    直接退出對1.txt的編輯,直接開啟2.txt編輯,省了退出:wq再重新vim 2.txt的步驟
     
    
    # 開啟遠端檔案,比如ftp或者share folder
    
    :e ftp://192.168.10.76/abc.txt
    
    :e \qadrive\test\1.txt
    
    
    # 以只讀形式開啟檔案,但是仍然可以使用 :wq! 寫入
    
    vim -R file
    
    # 強制性關閉修改功能,無法使用 :wq! 寫入
    
    vim -M file
    
    3. 插入命令
    
    i 在當前位置生前插入
    
    I 在當前行首插入
    
    a 在當前位置後插入
    
    A 在當前行尾插入
    
    o 在當前行之後插入一行
    
    O 在當前行之前插入一行
    
    4. 查詢命令
    
    最簡單的查詢
    
    /text  查詢text,按n健查詢下一個,按N健查詢前一個。
    
    ?text  查詢text,反向查詢,按n健查詢下一個,按N健查詢前一個。
    
    vim中有一些特殊字元在查詢時需要轉義  .*[]^%/?~$
    
    :set ignorecase  忽略大小寫的查詢
    
    :set noignorecase  不忽略大小寫的查詢
    
    快速查詢,不需要手打字元即可查詢
    
    *        向後(下)尋找遊標所在處的單詞
    
    #        向前(上)尋找遊標所在處的單詞
    
    5. 替換命令
    
    ~  反轉游標字母大小寫
    
    r<字母>           將當前字元替換為所寫字母
    
    R<字母><字母>...  連續替換字母
    
    cc    替換整行(就是刪除當前行,並在下一行插入)
    
    cw    替換一個單詞(就是刪除一個單詞,就進入插入模式),前提是遊標處於單詞第一個字母(可用b定位)
    
    C     (大寫C)替換至行尾(和D有所區別,D是刪除(剪下)至行尾,C是刪除至行位並進入插入模式)
    
    :s/old/new/    用old替換new,替換當前行的第一個匹配
    
    :s/old/new/g   用old替換new,替換當前行的所有匹配
    
    :%s/old/new/   用old替換new,替換所有行的第一個匹配
    
    :%s/old/new/g  用old替換new,替換整個檔案的所有匹配
    
    :10,20 s/^/ /g 在第10行至第20行每行前面加四個空格,用於縮排。
    
    ddp    交換游標所在行和其下緊鄰的一行。
    
    xp  交換相鄰兩個字母的順序
    
    6. 撤銷與重做
    
    u 撤銷(Undo)
    
    U 撤銷對整行的操作
     
    Ctrl + r 重做(Redo),即撤銷的撤銷。
    
    7. 刪除命令
    
    需要說明的是,vim 其實並沒有單純的刪除命令,下面你或許理解為剪下更加準確。
    
    以字元為單位刪除
    
    x   刪除當前字元
    
    3x  刪除當前字元3次
    
    X   刪除當前字元的前一個字元。
    
    3X  刪除當前游標向前三個字元
    
    dl  刪除當前字元, dl=x
    
    dh  刪除前一個字元,X=dh
    
    D   刪除當前字元至行尾。D=d$
    
    d$  刪除當前字元至行尾
    
    d^  刪除當前字元之前至行首
    
    以單詞為單位刪除
    
    dw  刪除當前字元到單詞尾
    
    daw 刪除當前字元所在單詞
    
    以行為單位刪除
    
    dd  刪除當前行
    
    dj  刪除下一行
    
    dk  刪除上一行
    
    dgg  刪除當前行至文件首部
    
    d1G  刪除當前行至文件首部
    
    dG   刪除當前行至文件尾部
    
    kdgg  刪除當前行之前所有行(不包括當前行)
    
    jdG   刪除當前行之後所有行(不包括當前行)
    
    10d     刪除當前行開始的10行。
    
    :1,10d  刪除1-10行
    
    :11,$d  刪除11行及以後所有的行
    
    :1,$d   刪除所有行
    
    J     刪除兩行之間的空行,實際上是合併兩行。
    
    8. 複製貼上
    
    普通模式中使用y複製
    
    yy   複製遊標所在的整行(3yy表示複製3行)
    
    y^   複製至行首,或y0。不含游標所在處字元。
    
    y$   複製至行尾。含游標所在處字元。
    
    yw   複製一個單詞。
    
    y2w  複製兩個單詞。
    
    yG   複製至文字末。
    
    y1G  複製至文字開頭。
    
    普通模式中使用p貼上
    
    p(小寫):代表貼上至游標後(下邊,右邊)
    
    P(大寫):代表貼上至游標前(上邊,左邊)
    
    9. 剪下貼上
    
    dd    其實就是剪下命令,剪切當前行
    
    ddp   剪切當前行並貼上,可實現當前行和下一行調換位置
    
    正常模式下按v(逐字)或V(逐行)進入可視模式
    
    然後用jklh命令移動即可選擇某些行或字元,再按d即可剪下
    
    ndd 剪切當前行之後的n行。利用p命令可以對剪下的內容進行貼上
    
    :1,10d 將1-10行剪下。利用p命令可將剪下後的內容進行貼上。
    
    :1, 10 m 20 將第1-10行移動到第20行之後。
    
    10. 退出儲存
    
    :wq 儲存並退出
    
    ZZ 儲存並退出
    
    :q! 強制退出並忽略所有更改
    
    :e! 放棄所有修改,並開啟原來檔案。
     
    ZZ 儲存並退出
    
    :sav(eas) new.txt  另存為一個新檔案,退出原檔案的編輯且不會儲存
    
    :f(ile) new.txt    新開一個檔案,並不儲存,退出原檔案的編輯且不會儲存
    
    以字元為單位移動
    
    h   左移一個字元
    
    l   右移一個字元
    
    k   上移一個字元
    
    j   下移一個字元
    
     
    
    # 【定位字元】f和F
    
    fx    找到游標後第一個為x的字元
    
    3fd   找到游標後第三個為d的字元
    
     
    
    F   同f,反向查詢。
    
    以行為單位移動
    
    # 10指代所有數字,可任意指定
    
    10h  左移10個字元
    
    10l  右移10個字元
    
    10k  上移10行
    
    10j  下移10行
     
    
    $   移動到行尾
    
    3$  移動到下面3行的行尾
    
    以單詞為單位移動
    
    w  向前移動一個單詞(游標停在單詞首部)
    
    b  向後移動一個單詞
    
    e,同w,只不過是游標停在單詞尾部
    
    ge 同b,游標停在單詞尾部。
    
    以句為單位移動
    
    (   移動到句首
    
    )   移動到句尾
    
    跳轉到檔案的首尾
    
    gg  移動到檔案頭。 = [[  == ``
    
    G   移動到檔案尾。 = ]]
    
    其他移動方法
    
    ^   移動到本行第一個非空白字元上。
    
    0   移動到本行第一個字元上(可以是空格)
    
    使用 具名標記 跳轉,個人感覺這個很好用,因為可以跨檔案。
    
    使用 ma ,可以將此處標記為 a,使用 'a 進行跳轉
    
    使用 :marks 可以檢視所有的標記
    
    使用 :delm!可以刪除所有的標記
    
    當在檢視錯誤日誌時,正常的步驟是,vim開啟檔案,然後使用 shift+g 再跳轉到最後一行,這裡有個更簡單的操作可以在開啟檔案時立即跳到最後一行。只要在 vim 和 檔案 中間加個 + 即可。
    
    vim + you.log
    
    舉一反三,當你想開啟檔案立即跳轉到指定行時,可以這樣
    
    # 開啟檔案並跳轉到 20 行
    
    vim you.log +20
    
    當你使用 / 搜尋定位跳轉或者使用 :行號 進行精準跳轉時,有時我們想返回到上一次的位置,如何實現?
    
    只要使用 Ctrl+o 即可返回上一次的位置。
    
  • gcc命令

    對於一個用Linux開發C程式的人來說,這個命令就非常重要了,它用於把C語言的源程式檔案,編譯成可執行程式

  • time命令

    該命令用於測算一個命令(即程式)的執行時間。它的使用非常簡單,就像平時輸入命令一樣,不過在命令的前面加入一個time即可,例如:

    time ./process  
    time ps aux