shell腳本ide
⑴ linux上啟動python程序,shell腳本服務怎麼編寫
1. 只能夠輸入Python命令 。
在Python交互模式下輸入Python代碼,而不要輸入系統的命令。
2. 在交互模式下列印語句不是必須的 。
在交互模式下不需要輸入完整的列印語句,解釋器自動列印表達式的結果,但是在文件中則需要寫print 語句來列印結果。
3. 提示符的變換和復合語句 。
當在交互模式下輸入兩行或多行的復合語句時,提示符會由>>> 變成 …;如果要結束復合語句的輸入並執行它,那麼必須按下Enter鍵兩次,復合語句才會被執行。
4. 交互提示模式一次運行一條語句 。
當你想測試某一條命令的時候,交互模式是一個很好的測試方法,輸入然後回車即可看到執行結果,非常方便,當然對於復合語句來說,只要最後按兩次Enter鍵即可運行代碼,看到執行結果。
具體如下:
1、簡介
Linux操作系統是基於UNIX操作系統發展而來的一種克隆系統,它誕生於1991 年的 [Linux桌面] 10 月5 日(這是第一次正式向外公布的時間)。以後藉助於Internet網路,並通過全世界各地計算機愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統,並且使用人數還在迅猛增長。
2、基本信息
Linux[2]操作系統是UNIX操作系統的一種克隆系統,它誕生linux系統於1991 年的10 月5 日(這是第一次正式向外公布的時間)。以後藉助於Internet網路,並通過全世界各地計算機愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統,並且使用人數還在迅猛增長。
3、分區規定
設備管理在 Linux 中,每一個硬體設備都映射到一個系統的文件,對於硬碟、光碟機等,IDE 或 SCSI 設備也不例外。Linux 把各種 IDE 設備分配了一個由 hd 前綴組成的文件;而對於各種 SCSI 設備,則分配了一個由 sd 前綴組成的文件。
用shell腳本怎樣編譯java工程
編譯java工程一般直接用IDE或者用Ant、Maven之類的工具,很少有人用純shell來編譯java工程。正好遇到這樣一個應該,用這篇博文做一下記錄。
案例:用eclipse寫了一個java project,然後編譯打成jar包。
這個可以採用eclipse自帶的Export就可以導出jar了。但是為了軟體自動化等巴拉巴拉的原因,採用存shell腳本編譯。
就是制定了運行的main-class(有public static void main(String args[])的類)。
將這個文件拷貝到iec104的根目錄下,然後執行腳本compile.sh,內容如下:
#!/bin/bash
cur_dir=$(pwd)
echo $cur_dir
function do_compile_iec104(){
# echo $cur_dir
iec104=$cur_dir/iec104
iec104_src=$cur_dir/iec104/src
iec104_bin=$cur_dir/iec104/bin
# echo $iec104_src
# echo $iec104_bin
iec104_class=$cur_dir/iec104/class
# 將iec104的src目錄下的所有java文件的名稱存入到iec104/src/sources.list文件中
rm -rf $iec104_src/sources.list
find $iec104_src -name "*.java" > $iec104_src/sources.list
cat $iec104_src/sources.list
# $iec104_class是存放編譯的class文件的目錄
rm -rf $iec104_class
mkdir $iec104_class
# 這里開始編譯java文件,注意這里的-encoding utf-8,剛開始並沒有加入這個,然後就報了一堆錯誤,糾結了很久才發現,這里給各位提個醒了。
javac -d $iec104_class -encoding utf-8 -classpath $iec104_bin/classes12.jar:$iec104_bin/junit-4.10.jar:$iec104_bin/log4j-1.2.17.jar:$iec104_bin/mysql-connector-java-5.0.5-bin.jar:$iec104_bin/RXTXcomm.jar -g -sourcepath $iec104_src @$iec104_src/sources.list
# 由於用到了log4j,所以要將log4j的配置文件一並放入,如果沒有用到,可以忽略這句
cp $iec104_src/log4j.properties $iec104_class
# 如果原來在iec104目錄下有jar報就刪除掉,因為要生成新的
rm $iec104/iec104.jar
# 這里要cd到存放class的目錄,否則如果採用絕對路徑編譯,編譯出來的jar包裡面就是絕對路徑了,這樣就會有問題
# jar -cvfm $iec104/iec104.jar $iec104/MANIFEST.MF $iec104_class/*這樣是錯誤的
cd $iec104_class
jar -cvfm $iec104/iec104.jar $iec104/MANIFEST.MF *
# 賦予可執行許可權
sudo chmod a+x $iec104/iec104.jar
}
do_compile_iec104
exit 0
運行這個腳本(linux下)就可以編譯並且在iec104的目錄下就可以看到iec104.jar文件了。
這里補充下java命令的基本知識:
javac 用於編譯Java文件,格式為:
java [options] [sourcefiles] [@files]
其中:
options:命令行選項;
sourcefiles:一個或多個要編譯的源文件;
@files:一個或多個對源文件進行列表的文件,有時候要編譯的文件很多,一個個敲命令會顯得很長,也不方便修改,可以把要編譯的源文件列在文件中,在文件名前加@,這樣就可以對多個文件進行編譯,對編譯一個工程很有用,方便,省事。
有幾個比較重要的選項:
-d 用於指定編譯成的class文件的存放位置,預設情況下不指定class文件的存放目錄,編譯的class文件將和源文件在同一目錄下;
-classpath 可以簡寫成-cp,用於搜索編譯所需的class文件,指出編譯所用到的class文件的位置,如jar、zip或者其他包含class文件的目錄,指定該選項會覆蓋CLASSPATH的設定;
-sourcepath用於搜索編譯所需的源文件(即java文件),指定要搜索的源文件的位置,如jar、zip或其他包含java文件的目錄;
需要注意windows下和linux下文件路徑分隔符和文件列表(即-classpath和-sourcepath指定的文件)分隔符的區別:
windows下文件路徑分隔符用 ,文件列表分隔符用分號 ;
linux下文件路徑分隔符用 / ,文件列表分隔符用冒號 :
⑶ 如何系統地學習Shell編程
步驟/方法
資料庫管理系統(DBMSes)
諸如PostgreSQL、 Oracle、Microsoft SQL Server,以及Informix這種專業、耐用的資料庫管理系統通過存儲過程或存儲函數提供了腳本功能。最受廣泛認可的語言選項也許是Microsoft SQL Server和Sybase所使用的TransactSQL,以及Oracle所使用的PL/SQL。 PostgreSQL提供了一個名為PL/pgSQL的類PL/SQL的程序擴展到SQL里,但它也提供了包括PL/Perl、PL/Python、PL/Ruby和 PL/Tcl在內的其他語言的選擇范圍。
這種編程機會雖然限定於一組特定的問題領域,但如果你是一名DBA(資料庫管理員)或你的工作涉及資料庫開發報告,將會親身體驗到這是非常有用的。
插件
許多新的電腦游戲提供了編寫和載入插件的功能。例如,「魔獸世界(World of Warcraft)」提供了一個使用Lua腳本語言的插件系統。隨著Firefox聲名鵲起和廣泛使用,現代網頁瀏覽器往往也提供靈活的插件系統;在最簡單的情況下,Firefox的插件都是用JavaScript編寫的。開放源碼的瀏覽器在插件開發方面往往比封閉源代碼的瀏覽器更具吸引力,並且Chromium瀏覽器的插件系統,很可能成為插件開發者們的第二大目標,這是因為谷歌Chrome瀏覽器高調的營銷策略以及不設限的許可證(permissive licensing)政策。
其他許多應用程序具有插件和擴展系統,可以提供充分的機會來培養這些迅速發展的編碼技能,甚至包括一些終端模擬器(terminal emulators)和基於控制台的文本編輯器,如Vim。(透露一點好消息:我貢獻了一點代碼到urlpicker項目。)
實踐問題
您可以嘗試解決代碼任務中的通用清單所提供的問題,代碼任務是特別為了給程序員提供實習機會而專業設計的。歐拉(Project Euler)是一個比較流行的、不論編程語言的項目,包括「一系列具有挑戰性的數學/計算機編程問題」。歐拉項目收集了上百個問題,這些問題一般從易到難,足以讓你忙碌很長一段時間。
其他例子包括RubyQuiz,它多年來一直在ruby-talk的郵件列表中廣受歡迎。另外還有CodeKata,它是Dave Thomas的一個規模較小、壽命較短的項目。Dave Thomas是《The Pragmatic Programmer(程序員修煉之道)》一書的合著者之一。
這些選項不適合用作自我激勵型探索性學習的任務,因為它們會讓人撓破頭皮,但如果發現其中的樂趣,它們可以和其它方法一樣用於編程實踐教育。
智能手機(Smartphones)
應用程序開發行業中最大的新熱潮是智能手機的應用程序。這種裝置通常需要開發人員使用一種可將裝置的功能發揮到極至的特定語言作為應用平台,至少要以官方認可的方式進行。
智能手機開發體系的一個新興產業正在崛起,即允許開發人員用非智能手機平台原生的其它語言編寫自己的代碼,然後轉化為原生語言的應用程序。 因為不需要學習任何特定的智能手機平台的官方應用程序開發語言,Web應用程序也沾了光,成為智能手機應用程序開發的一種方法。選擇語言甚於平台的另一個方案是使用像諾基亞的N900這樣的設備,它運行Debian發行的Linux系統,可以運行的軟體范圍很寬——包括很多不是為智能手機設計的軟體。
側重於多種方法開發智能手機應用程序的書籍和在線教程紛紛出現,特別是Android和iPhone的設備。一些第三方框架將可以從HTML + JavaScript 到 Ruby 或 Python編寫的代碼「編譯」為多種平台的「本地」應用程序,有時不僅包括智能電話平台,而且包括桌面系統。對這種情況也許最令人興奮的是,這些框架和相關的IDE不傾向於試圖解決所有的編程問題,這與同樣出色的編程方式的主要框架,如Visual Studio和.NET框架有所不同。這使得人們有可能通過縮小選項至一個易於管理的問題領域來顯著地簡化開發過程。其結果是軟體開發風格令初學者感到非常易於接受。
不足之處是,在學習如何編程時,你可能很難每天都編寫新的智能手機應用程序。但是,如果您的智能手機的操作系統是類Unix系統(如N900的),同樣的小工具開發項目在工作站和伺服器中都非常有用。
電子表格
如果使用了附帶強大宏系統的電子表格程序,你將擁有一個快速的方法來閱讀其他人(或物)代碼,並編寫自己的代碼。首先,將你執行次數多、通常需要採取數個繁瑣步驟的任務記錄成一個宏。接下來,打開宏的源代碼,閱讀並進行編輯,使之更適合於一般用途。這是一個非常有限的方法,不會帶來多大的長進,但可能會幫助你上路,自然地喜歡上簡單的腳本代碼。
使用此類腳本的最常見的電子表格程序可能是微軟Excel。Excel所使用的VBA是一種貧乏的語言,但是如果你在日常工作中大量使用Excel,這可能是無論如何你都該掌握的一種技能。OpenOffice.org使用了類似的宏系統,使用方法大致相同,LibreOffice也像微軟Office一樣,提供了學習代碼的機會。
在任何情況下,編寫程序的門坎都比編寫簡單的命令行shell腳本代碼稍高,因為菜單選項和按鈕需要點擊才能啟用。入門的成本類似於用市場上的一種主要IDE開始一個新項目,但是一個大幅縮水的「項目」。這會是一個不錯的主意,可以確保這不僅僅是在日常開發環境中編寫腳本的機會,甚至是加以利用就會很有幫助的。
Unix
如果你定期使用一些類UNIX系統,在尋找鍛煉初期編程技能的方式時就具有巨大的優勢。UNIX在簡單腳本自動化方面提供了比任何其他家庭通用操作系統的更多的使用機會,這要感謝平台上管理腳本的極大靈活性。在最不復雜的情況下,一個管理腳本可能只不過是將一系列shell命令保存到一個文件中。在此基礎上,可以利用簡單的循環和條件結構、輸入輸出處理、文件讀寫、計劃任務來進行擴展。
通過編寫簡單shell腳本爽過一把後,花一段時間來學習如何用Perl、Python和Ruby編寫管理腳本對任何一個Unix系統管理員都是值得的。在Unix環境使用這些語言的關鍵技能包括通過UNIX管道和重定向訪問文本流,處理命令行選項,讀寫文件,使用正則表達式搜索和操作文本。管理員也想知道編程的公共基礎知識,比如處理輸出,循環(或在某些情況下遞歸),以明確界定的標准為基礎,通過使用條件判斷結構編程來作出決策。
編寫Unix命令行工具是一塊沃土,有許多機會將腳本語言的巨大能力用於編程。由於管理腳本開發的靈活性和簡約性要求,編寫工具的范圍可以從一些有用工具的最簡例子到強大的伺服器進程,甚至大規模並行任務自動化,負載平衡,啟發式過濾,和一些其他有趣的問題解決作業,這些問題激起了世界上最好的程序員的興趣。
雖然幾乎所有通用操作系統都具有一些使用管理腳本的能力,其中相當一部分用途比較窄,另一些操作系統則比較均衡。Unix在管理腳本的適用條件方面高人一等,因為諸如主要Linux發行版和BSD Unix系統等Unix類系統共享相同的基本運行環境設計,他們都可以從管理腳本和腳本平台之間的可移植性中受益 - 只要你按可移植性要求來寫這些腳本(如通過使用sh或Perl而不是bash,選擇系統標准sysctl值而不是數據源的proc文件系統)。
這些工作也適用於除開非常高級,動態,解釋型語言之外的其它語言。C,C++,Haskell,Objective-C,Objective Caml,以及大量其他選項正好合適各類簡單Unix工具的編寫任務。對於其中的許多語言,即使要完成像小型管理工具的這樣簡單的工程項目,也必須學會更廣泛的技能,這一要求比Perl,Ruby和Bourne shell的這樣的語言高。但這些任務與GUI應用程序開發、系統編程、其它經常使用(特別是在其他平台上的)的任務比起來,其艱巨性對編程初學者來說要小得多。
實際上,鑒於Unix哲學多年來提供了大量常用工具,這些工具嚴格分工(大部分),並工作良好,類UNIX環境對編程新手的價值中有一部分是充分利用Unix命令行環境力量,鼓勵用戶像程序員那樣去思考,而非觀眾。
Web網頁
這是一個危險的建議,通過玩JavaScript來學習編程。這不是因為JavaScript是一種不好的語言,而是因為追求動態用戶體驗的緣故,網頁已經被不加限制地濫用JavaSciprt弄得亂七八糟,因而在網頁上放縱程序員新手可能會被認為是不負責任的。在網頁中JavaScript也有一些積極用法,而且可以讓新手們對編寫在瀏覽器中運行的桌面應用程序的想法愈來愈感興趣,這給了我們在程序員職業生涯中盡早開始學習JavaScript的很多理由。
事實上,JavaScript是一種最常見的、單獨的客戶端網頁腳本,這也意味著JavaScript可能是最簡單的語言,通過閱讀別人的代碼就能學習。找到具有客戶端動態元素的任何網頁,然後右鍵單擊並選擇查看頁面源代碼的選項,你就會發現它布滿了JavaScript的散落片段。對於更復雜的動態頁面,(X)HTML的網頁甚至可能引用一個純代碼的單獨.js文件。
在把代碼上傳到公共訪問的Web伺服器前要細心檢查;確保它是好的。如果你想讓更多的有用腳本以本地方式來啟動,瀏覽器擴展性可以讓你將任意腳本應用到你查看的網頁上——而且只適用於你個人的瀏覽體驗。Firefox的Greasemonkey是一個例子。
⑷ shell腳本解釋器環境可以寫什麼
解釋型語言,只有解釋器,不用編譯 另外eclipse只是java的一個IDE,不是java編譯器或者java位元組碼解釋器 linux有很多種類的shell,例如最常用的bash,語法和c很像的csh,甚至連python這樣的腳本語言都可以作為linux的系統shell
⑸ 如何寫一個設shell腳本獲得git的每一條commit修改了多少行代碼
不知道你的文本格式是怎麼樣的...我猜想是像上面的文本內容連續輸出在一個文本中,一開始是用「files changed」來匹配需要的行,然後用awk來取添加行的值和刪除行的值,並分別輸出到abc.txt和bcd.txt,lines是統計行數,最後再一個while循環...
隨便寫的,所以很難看,你看哪裡需要改就自己改一下...
#!/bin/bash
ins=$(grep "files changed" test.txt | awk -F" " '{print $4}' > abc.txt)
del=$(grep "files changed" test.txt | awk -F" " '{print $6}' > bcd.txt)
lines=$(grep "files changed" test.txt | wc -l)
INS() {
local sum=0
local i=1
while [ "$i" -le "$lines" ]
do
b=$(sed -n "$i p" abc.txt)
sum=$(($sum+$b))
i=$(($i+1))
done
echo $sum
}
DEL() {
local sum=0
local i=1
while [ "$i" -le "$lines" ]
do
c=$(sed -n "$i p" bcd.txt)
sum=$(($sum+$c))
i=$(($i+1))
done
echo $sum
}
INS
DEL
⑹ win10中的Windows PowerShell是什麼有哪些作用
即開發代號為monad的命令行外殼和腳本系統管理工具。
作用:
powershell是一個基於.net的命令行管理端,它像是一個極度增強版的cmd.exe,之前曾在windows
server
2008中包含,它擁有較高的管理能力,並可以直接代替遠程管理工具。
第二版的powershell擁有增強的內置visual
studio腳本開發環境(ide),可以讓管理更為方便和人性化,並且在擴展性,數據監測,授權上也作出了改進。
怎樣卸載windows
powershell
1.0:
1.windows
xp-sp2和windows
server
2003:
在添加/移除程序中,選擇顯示更新。刪除適用於您系統的powershell更新:
kb926139
(en-us),kb926140
(localized),
kb926141
(mui
pack),
2.windows
vista:
控制面板->程序和功能->安裝更新。卸載powershell更新:
kb928439,
3.windows
server
2008:
從windows
server
2008的beta3起,powershell
1.0作為內置可選組建。
如果你激活了powershell
1.0,在你安裝powershell
v2
ctp之前必須關閉此特性。啟動server
manager選擇刪除features的選項。從列表中選擇powershell,禁用此特性。