1. 程式人生 > >VI編輯器、ipython、jupyter及程序知識總結

VI編輯器、ipython、jupyter及程序知識總結

一、VI編輯器

1、三種模式

  一般模式(normal mode 預設) 

  插入模式(insert mode) 

  末行模式(last line mode)

2、模式切換

  一般模式------------------------------------------->插入模式: i,a,o,O,A,I

   i:當前游標處輸入內容

      I:在當前游標所在行的行首

      a:在當前游標所在處的後面

      A:在當前游標所在行的行尾輸入

      o:在游標所在行的下方新增一行空白行

   O:在游標所在行的上方新增一行空白行

  插入模式---------------------------------------------->一般模式: Esc

  一般模式---------------------------------------------->末行模式: 輸入冒號:

  末行模式---------------------------------------------->一般模式: Esc

3、模式操作

  一般模式:

    dd刪除:  從當前行一直刪除到行尾:  :.,$d 回車

            yy複製:  複製15到17行:      :15,17y  回車

            p/P貼上

            r替換:替換游標所在字元

            x清除:刪除游標所在字元,後位補齊

            G:跳轉至最後一行行首

    gg:跳轉至第一行行首  23gg    跳轉到23行

            /或?:查詢   /root  查詢root

     n/N:查詢到後上下翻

            v:視覺化模式

      進入視覺化模式後可以,移動游標選擇文字,鍵入y可以把選擇的複製,鍵入d可以刪除選擇的內容,再次鍵入v回到一般模式

            u:撤銷上一次操作

    ZZ:儲存退出

  插入模式:

    i:當前游標處輸入內容

       I:在當前游標所在行的行首

       a:在當前游標所在處的後面

       A:在當前游標所在行的行尾輸入

       o:在游標所在行的下方新增一行空白行

    O:在游標所在行的上方新增一行空白行

  末行模式:

    退出:

      q!強制退出,不儲存並退出

        wq 儲存修改並退出

        x,儲存並退出

      s:替換字元

二、I/O重定向

1、預設輸入輸出

  輸入:鍵盤

  輸出:顯示器

2、輸入重定向符 < , << 

  <:把一個檔案內容作為輸入  <file

    例如:wc <output.txt,把output.txt檔案的內容輸入給wc命令  

  <<:在命令列中輸入的內容重新定向輸入給一個命令,而不是把檔案中的內容重定向輸入,這種方式必須指定一個文字標記來標識輸入內容的開始和結束

    例如:EOF(end of file)是開始和結束標誌,可以是任意字元

      wc <<EOF

        data.......   

        EOF

3、輸出重定向符 >,>>

  >:> file  (輸出的內容放到file中,file中原來的內容被覆蓋)  檔案不存在,會自動建立;如果檔案有內容,會把內容清空以後,重新寫入

  >>:>> file (輸出的內容追加到file的行尾,file中原來的內容不覆蓋)  檔案不存在,會自動建立;如果檔案有內容,不會把內容清空,會把新資料附加到檔案末尾

三、檔案描述符重定向

  標準描述字 0:標準輸入 stdin

  標準描述字 1:標準輸出 stdout

  標準描述字 2:錯誤輸出 stderr

1、> 只重定向標準輸出,錯誤輸出會顯示到螢幕上

2、標準輸出寫入ok.txt 錯誤輸出寫入 err.txt

3、錯誤輸出寫到檔案裡面,標準輸出輸出到螢幕上

4、錯誤輸出輸出到螢幕上,標準輸出輸出檔案裡面

5、混合輸出符:& (stdout和 stderr輸出到同一處)

  兩種方式:

    &>filename

    2>&1

6、特殊裝置:/dev/null 黑洞

  有時我們關心的是命令是否執行成功了,而不是命令執行後輸出的結果,可以把輸出結果丟棄到黑洞裝置裡

四、 echo命令

  -n:去掉換行符

  -e:保留特殊意義的字元有特殊意義,例如:換行符\n,製表符\t

五、ipython

  1、簡介

    ipython:屬於互動式的加強型的python的直譯器,高效能的平行計算工具。比Python自帶的直譯器好用,功能更加的強大。

    ipython優勢:

       ①支援變數自動補全,自動縮排

              ②內建很多功能模組和函式(很好用)

              ③可以靈活的嵌入shell直譯器

   通常Python程式設計過程中,我們一般使用Python的IDE工具(例如pycharm),

   但在實際的Python實際簡單測試中(小單元或程式碼段),通常開啟ipython,速度和效率比較高。

   在生產環境,模組化開發,程式碼多了測試不方便,就在ipython進行測試和查詢幫助。

  2、安裝

    sudo apt-get install ipython  安裝ipython2版本

    sudo apt-get install ipython3  安裝ipython3版本

    sudo apt-get install python3-pip   安裝pip工具

  3、幫助檢視

    ?:ipython的概述和簡介

    help(name):檢視幫助,要檢視的名字要在括號裡

    obj?:檢視幫助,中間不要有空格

  4、特殊變數

    _:前一次輸出

    __:倒數第二次輸出

    ___:倒數第三次輸出

    _dh:目錄歷史

    _oh:輸出歷史

  5、ipython下執行shell命令(依賴於當前shell環境提供的命令)

    有些命令需要加!才可使用,有些不用

六、jupyter

  1、安裝

    sudu apt-get install jupyter

    sudo apt-get install jupyter-core

  2、設定配置檔案

    sudo jupyter-notebook --generate-config

  3、設定web登入密碼

    sudo jupyter-notebook password

  4、登入  jupyter notebook

    遇到PermissionError: [Errno 13] Permission denied: '/home/guo/.jupyter/jupyter_notebook_config.json',就去修改相應的檔案許可權就可以了

    chmod 777 /home/guo/.jupyter/jupyter_notebook_config.json,修改後就可以輸入登入了

七、程序管理

1、概念

  程式:儲存在可儲存介質中的可執行的程式碼和資料,屬於靜態儲存的程式碼

       程序:在CPU和記憶體中執行的副本程式程式碼,屬於動態執行的程式碼,每個程序可能都有父程序和子程序。

2、檢視靜態程序

  ps -ef 檢視所有程序

  ps -aux 檢視所有程序

  ps -aux --sort=-%mem | head -5  按照記憶體順序從大到小檢視前五個程序

  ps -aux --sort=-%cpu | head -5  按照cpu順序從大到小檢視前五個程序

3、程序狀態

  ①執行狀態:running

        ②準備狀態:ready

        ③睡眠狀態:可中斷睡眠狀態interruptable

                              不可中斷uninterruptable

        ④停止狀態:暫停在記憶體中,不會被排程,除非手動啟動

        ⑤僵死狀態:zombie

4、檢視動態程序   top

5、檢視程序PID  pgrep -l 程序名

6、檢視程序樹 pstree

  -p 顯示程序號

  -h 高亮顯示當前pstree命令的程序資訊

7、殺死程序

  kill PID 

  kill 程序名

  kill -9 PID 強制殺死

  killall 程序名  殺死指定名稱的所有程序

  killall -9 程序名  強制殺死指定名稱的所有程序

  ctrl + c  終止程式

  ctrl + \  退出程式

  ctrl + z  放置後臺執行

  fg  從後臺提到前臺