linux基礎知識總結(三)
阿新 • • 發佈:2018-01-27
界面 當前日期 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基礎知識總結(三)