shell在線編譯
① 《linuxShell編程與編輯器使用詳解》epub下載在線閱讀全文,求百度網盤雲資源
《LinuxShell編程與編輯器使用詳解》(劉麗霞楊宇)電子書網盤下載免費在線閱讀
鏈接:https://pan..com/s/151RTHrTqpJGGj6VyQQkDQA
書名:LinuxShell編程與編輯器使用詳解
作者:劉麗霞/楊宇
出版社:電子工業出版社
出版年:2013-7
頁數:424
內容簡介
本書由淺入深,全面、系統地介紹了Linux技術,書中提供了大量實例,供讀者實戰演練。另外,本書有很多關於Linux下的命令操作內容,所以對於每個命令、每個管理設置,作者都實際運行了一遍,供讀者參考,在後面的Shell編程中,作者詳細介紹了Shell變數、函數、語法、控制結構等重要內容,最後一章中介紹綜合實例,使讀者對於Shell編程的理解進一步加深。
本書共分5篇。第1篇介紹Shell編程基礎、系統管理與設置;第2篇介紹常用的系統管理命令、系統維護命令、正則表達式;第3篇介紹vi編輯器、emacs編輯器;第4篇介紹grep命令、gawk與sed;第5篇介紹其他常用的文本編輯命令、Shell變數及相關操作、條件測試、Shell的控制結構、函數、Shell編程實例。
作者簡介
劉麗霞:畢業於西安電子科技大學,獲博士學位,現就職於武警工程大學。長期從事計算機信息工程專業的教學與科研工作,主要設計開發各種資料庫管理信息系統和以面向對象技術為主的大型應用軟體。熟悉Java、C++等開發語言和Linux、Windows CE等操作系統,精通SQL Server、Oracle等資料庫。
② linux shell 用sed命令在文本的行尾或行首添加字元
最後還是想用簡單的腳本解決,發現使用 sed 命令可以方便得在文件每一行後添加一個字元。首先看一下 sed 命令。
sed 是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為「模式空間」 (pattern space) ,接著用 sed 命令處理緩沖區中的內容,處理完成後,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容並沒有 改變,除非你使用重定向存儲輸出。 Sed 主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等。
假設處理的文本為 test.file ,在每行的頭添加字元,比如 HEAD ,命令如下:
在每行的行尾添加字元,比如 TAIL ,命令如下:
幾點說明:
這樣就處理完了!總之恰當使用sed命令是可以避免來回打開文件造成的時間浪費,可以使用sed命令在linux腳本中做一些更好玩的事情。希望這篇文章可以給你一些幫助~
③ Linux Shell 教程——想玩轉linux就請一直看下去
Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋梁。Shell 既是一種命令語言,又是一種程序設計語言。
Shell 是指一種應用程序,這個應用程序提供了一個界面,用戶通過這個界面訪問操作系統內核的服務。
Ken Thompson 的 sh 是第一種 Unix Shell,Windows Explorer 是一個典型的圖形界面 Shell。
Shell 在線工具
Shell 腳本(shell script),是一種為 shell 編寫的腳本程序。
業界所說的 shell 通常都是指 shell 腳本,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。
由於習慣的原因,簡潔起見,本文出現的 "shell編程" 都是指 shell 腳本編程,不是指開發 shell 自身。
Shell 編程跟 JavaScript、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。
Linux 的 Shell 種類眾多,常見的有:
在一般情況下,人們並不區分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh ,它同樣也可以改為 #!/bin/bash 。
#! 告訴系統其後路徑所指定的程序即是解釋此腳本文件的 Shell 程序。
打開文本編輯器(可以使用 vi/vim 命令來創建文件),新建一個文件 test.sh,擴展名為 sh(sh代表shell),擴展名並不影響腳本執行,見名知意就好,如果你用 php 寫 shell 腳本,擴展名就用 php 好了。
輸入一些代碼,第一行一般是這樣:
#!/bin/bash
echo "Hello World !"
運行實例 »
#! 是一個約定的標記,它告訴系統這個腳本需要什麼解釋器來執行,即使用哪一種 Shell。
echo 命令用於向窗口輸出文本。
1、作為可執行程序
將上面的代碼保存為 test.sh,並 cd 到相應目錄:
注意,一定要寫成 ./test.sh ,而不是 test.sh ,運行其它二進制的程序也一樣,直接寫 test.sh,linux 系統會去 PATH 里尋找有沒有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的當前目錄通常不在 PATH 里,所以寫成 test.sh 是會找不到命令的,要用 ./test.sh 告訴系統說,就在當前目錄找。
2、作為解釋器參數
這種運行方式是,直接運行解釋器,其參數就是 shell 腳本的文件名,如:
這種方式運行的腳本,不需要在第一行指定解釋器信息,寫了也沒用。
④ shell腳本獲取參數&在線執行shell腳本
本文介紹以下升攜伏2個知識點,為後後續在工作過程中安裝一吵攜鍵安裝腳本打好基礎:
如下shell腳本中傳入的參隱鏈數依次值如下:
如腳本 getopts.sh
執行 ./getopts.sh -a dd -b ,列印如下結果
如腳本 for.sh
有時候shell腳本可以放在http頁面上,不用download,可以直接執行。
https://www.cnblogs.com/klb561/p/8933992.html
https://www.cnblogs.com/faberbeta/archive/2004/01/13/13559686.html
⑤ 如何編寫一個shell腳本
問題:
1、請求在線api, 獲取json格式的返回結果
2、解析json裡面的一個值
3、將該值存儲到文件
開發准備:
1、shell
快速入門:
#!/bin/sh
cd ~
mkdir shell_tut
cd shell_tut
for ((i=0; i<10; i++)); do
touch test_$i.txt
done
創建一個文件夾, 並在裡面新建10個文件
2、curl
使用curl請求網路, 並獲取返回值
curl基本用法:
$ curl www.sina.com
直接返回網頁內容
$ curl -o [文件名] www.sina.com
將網頁內容存儲到文件中, 相當於wget命令
賦值操作:
response=$(curl www.sina.com)
echo $response
注意: =前後沒有空格
jq
jq是命令行解析json的很好的工具
安裝
直接到官網下載Linux64版本(我是用本地下載好後傳上伺服器的, 之前直接在伺服器用wget下載一直報錯Segmentation fault, 折騰好久~)
將其到bin目錄
cp jq-linux64 /usr/bin/jq
使用
然後就可以愉快的使用jq命令了:
可直接查看官網Tutorial
curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5'
返回的是一個json數組列表
curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.'
使用.直接指向json的根節點
curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.[0]'
[0]為取數組的第0位的對象
jq '.[0] | {message: .commit.message, name: .commit.committer.name}'
可用過連續的.操作獲取對應json對象中的屬性值, 上面的命令將會生成一個{message: "....", name: "...."}的json對象.
shell文件讀寫
1、寫
方式一:
將ll的內容寫入fileName這個文件中
>是覆蓋, >>是在後面追加
ll >fileName
但是在書寫.sh腳本的時候, 需要增加echo
echo ll>fileName
2、讀
while read LINE
do
echo $LINE
done<fileName
fileName是即將讀取的文件名