1. 程式人生 > >linux基礎知識總結(三)

linux基礎知識總結(三)

界面 當前日期 ech sed文本處理 時間 sed 簡單的 編寫 代碼

第三周學習總結

目錄

一.知識脈絡圖
二.shell腳本
三.shell登錄方式
四.文件查找和壓縮及tar
五.簡單的sed文本處理

一.知識脈絡圖

技術分享圖片

二.shell腳本

1.shell腳本簡介

            linux下經常會遇到重復輸入大量重復命令的問題,如果只是在命令行界面執行,就會顯得很繁瑣。
            而shell腳本就解決了這個問題,他是一個可以經過解釋執行的文件,在其中保存我i們要執行的命令,
            下次僅僅執行這個腳本就可以了,為我們節省裏大量的時間。

2.shell腳本內容

          shell腳本是一個需要解釋後才能執行的文件,不同於Java,c等語言需要編譯器來進行編譯,她所需要的
            是一個腳本解釋器,例如/bin/bash
            所以我們要在shell腳本裏的第一行寫入所需調用的解釋器:
            通常為:#!/bin/bash 
            而後加入我們所需執行的命令即可,非常方便,如果會命令就可以寫出腳本
            例如:

            寫一個生成腳本的腳本,/root/bin/createsh.sh當執行如/root/bin/createsh.sh  test.sh時,
            會自動在/root/bin下新建一個名為test.sh的新文件,
            該文件會自動給上執行權限,同時自動在文件頭加上shabang及註釋信息,註釋信息如下:
            #!/bin/bash
            # ------------------------------------------
            # Filename:    test.sh(此處會根據文件名自動更換)
            # Revision:    1.0
            # Date:        2017-01-22(此處會自動變換為當前日期)
            # Author:      Nanyibo
            # Email:       [email protected]
            # ------------------------------------------
            # Copyright:   2017 nanyibo
            # License:     GPL
            之後,自動使用vim打開,等待用戶開始編寫腳本正文。

下面是代碼:

            #!/bin/bash
            touch  /root/bin/$1
            chmod +x /root/bin/$1
            echo "#!/bin/bash
                        # ------------------------------------------
                        # Filename:    $1
                        # Revision:    1.0
                        # Date:        $(date +%F)
                        # Author:      xiaoyu
                        # Email:       [email protected]
                        # ------------------------------------------
                        # Copyright:   2018 xiaoyu
                        # License:     GPL" > /root/bin/$1
            vim /root/bin/$1

技術分享圖片

shell腳本註意事項:

        當shell腳本非正常退出時,會生成一個以.swp結尾的後綴文件。

技術分享圖片

這個swp文件保存著改動信息,當你編輯一個shell腳本時會自動生成,當你編輯完正常退出後,這個文件會自動消失。
但是當你非正常退出時,這個文件不會消失,所以當你下次編輯腳本時檢測到了此文件就會報錯
所以他會給你兩個提示:第一種是詢問你是否在另外一個終端或bash在操作這個文件,或者是有不正常退出的行為。
這裏的策略有兩種:
1.直接刪除swp文件,但是shell腳本會回到上次編輯的初始狀態,你所進行的所有編輯都會丟失
2.輸入R修復shell腳本,繼續編輯,編輯完之後保存退出,再將swp文件刪除掉,這樣就解決這個問題了。

三.shell登錄方式

shell登陸方式有兩種:交互式登錄與非交互式登錄

交互式登錄

    1)直接通過終端輸入賬號密碼登錄
    2)使用“su - username” 切換
    在使用交互式登錄的過程中,會按照以下的順序來執行這些配置文件,沒有的會加上,有的話會進行覆蓋
    /etc/profile --> /etc/profile.d/*.sh  --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非交互式登錄

    1)su username
    2)圖形界面寫打開的終端
    3)執行腳本
    4)任何其他的bash
    在使用交互式登錄的過程中,會按照以下的順序來執行這些配置文件,沒有的會加上,有的話會進行覆蓋
    ~/.bashrc --> --> /etc/bashrc --> /etc/profile.d/*.sh

小總結

    二者都會執行~/.bashrc --> --> /etc/bashrc --> /etc/profile.d/*.sh這些文件,所以要進行某些用戶個性化設置
    時,這三個文件需要特別註意。
    配置文件分為兩類:profile 和 bashrc

    profile : 為交互式登錄的shell提供配置
    全局作用範圍的:/etc/profie, /etc/proflile.d/*,sh
    個人作用範圍的:~/.bash_profile
    用於定義環境變量

    bashrc:為非交互式和交互式登錄的shell提供配置
    全局:/etc/bashrc
    個人:~/.bashrc
    用於定義別名和函數,定義本地變量

    修改配置文件後不會自動生效:
    需要重新啟動shell進程或.或source

四.文件查找和壓縮及tar

    這部分之前已經整理過了,
    [文件查找] (http://blog.51cto.com/13572413/2065735) 
    [文件的壓縮和解壓縮] (http://blog.51cto.com/13572413/2065805)

五.簡單的sed文本處理

    sed 是一種常用的處理文本內容行的方式

sed命令的工作原理

    sed命令通過讀取文件將文件的一行放置固定的空間,經過處理後顯示在終端屏幕上
    而不會改動源文件。

sed命令的參數

        -n:不輸出內容,不自動打印(sed默認方式為自動打印)
        -e:多點編輯
        -f:/...../path/filename 從指定文件中讀取編輯腳本
        -r:支持使用擴展正則表達式
        -i.bak

sed地址定界

        1)默認為全文
        2)單地址:
                    #:指定的行
                    /pattern/:被匹配到的每一行
        3)地址範圍:
                    #,#
                    #,+#
                    /part1/,/part1/
                    #,/part1/
        4)~:步進
                    1~2 奇數行
                    2~2 偶數行

linux基礎知識總結(三)