❶ linux下怎麼運行perl程序
1、perl解釋器基本在所有的linux平台上都是自帶的,用戶可以通過如下命令判斷是否有perl解釋器:
which perl
2、如果自己的linux系統上沒有perl解釋器,可以去其官網下載安裝。
3、在具備perl解釋器的情況下,可以參考如下運行步驟:
1)、用vim編寫test.pl,代碼如下:
#!/usr/local/bin/perl
print "HellonWorld!
";
2、編寫完成後,直接執行如下命令即可:
perl test.perl
3、有時候需要一些許可權,自己可以通過su、sudo等命令提示許可權。
❷ linux下運行perl文件
第一是,perl文件逗梁的第一行要指定perl解釋器的位置,典型的如下
#!/usr/bin/perl
第二是,perl文件的許可權要有可執行的許可權,可通過右鍵->屬性->許可權,勾選來添加可執行許可權(當然緩如,你本身也應該有擾指啟修改該文件許可權的許可權),也可以通過在命令行上執行chmod +x <perlfile>來添加執行許可權。
❸ linux中怎樣用命令運行.pl文本可執行文件
以ubuntu系統為例:
1,首先去運耐喚野行perl-v命令查看您的linux系統上面是否安裝了perl工具,如果已安裝的話,會輸出版本號,如果沒有安裝,則安裝perl。
sudo apt-get install perl
(3)linux運行perl腳本擴展閱讀
Perl,一種功能豐富的計算機程序語言,運行在超過100種計算機平台上,適用廣泛,從大型機到便攜設備,從快速原型創建到大規模可擴展開發。
Perl借取了C、sed、awk、shell腳本語言以及很多其他程序語言的特性,其中最重要的特性是它內部集成了正則表達式的功能,以及巨大的第三方代碼庫CPAN。簡而言之,Perl像C一樣強大,像awk、sed等腳本描述語言一樣方便,被Perl語言愛好者稱之為「一種擁有各種語言功能鏈清的夢幻腳本語言」、「Unix中的王牌工具」。
Perl一般被稱為「實用報表提取語言」昌喊(),你也可能看到「perl」,所有的字母都是小寫的。一般,「Perl」,有大寫的P,是指語言本身,而「perl」,小寫的p,是指程序運行的解釋器。
❹ linux如何調試perl腳本
可以在對應的位置兄孝者增加print列印相關參數慎模。
也可以安裝IDE如Eclipse、VSCode。直接就可以運行羨薯調試了。
❺ linux下 如何用perl腳本給程序傳參(argv)
把執行perl腳本的指令放在反引號之間
./test `perl -e 'print "A"x128'`
`這個符號在鍵盤tab的上邊,1的左邊
還可以放在$()中
./test $(perl -e 'print "A"x128')
這個test是一個linux命令,最好不要用作程序名
❻ linux上連資料庫,除了jdbc
1. 運行SQL查詢:可以使用MySQL命令行客戶端,phpMyAdmin等工具來運行SQL查詢,禪拿從而訪問資料庫。
2. 使用ODBC:可以使用ODBC(Open Database Connectivity)來連接Linux上的資料庫,這種方式可以讓你在Linux上使用ODBC驅動程序,從而訪問資料庫。
3. 使用Perl:可以使用Perl腳本來連接Linux上的資料庫彎襲缺,這種方式可以使用Perl DBI模塊,從而訪問資料庫。
4. 使用Python:可以使用Python腳本來連接Linux上的資料庫,這種方式可以使用Python DB-API介面埋辯,從而訪問資料庫。
❼ perl腳本在linux里,只顯示帶顏色的命令
對於Linux管理員來說,grep是日常最常用的命令,可以把匹配的字元輸出,同樣可以輸出顏色。
# grep --color 'test' /var/log/maillog
無聊練功:用perl 實現grep --color
# vi colorgrep
#!/usr/bin/perl
use Term::ANSIColor;
my $test;
if (@ARGV != 2){
die "Please use (colorgrep 'some key word' filename)\n";
}
$test = shift @ARGV;
while(<>){
if(/$test/i){
print "$`";
print color "bold red";
print "$&";
print color 'reset';
print "$'";
}
}
這里調用了Term::ANSIColor 函數 color 有以下的參數:
clear, reset, dark, bold, underline, underscore, blink, reverse, concealed, black, red, green, yellow, blue, magenta, cyan, white, on_black, on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, and on_white
還有以下的簡化使用方法
2) use Term::ANSIColor qw(:constants);
如果使用這種方法,可以直接把顏色屬性放在要輸螞稿旅出的問題前面,從而簡化輸出步驟。這些悶凳顏色屬性有:
CLEAR, RESET, BOLD, DARK, UNDERLINE, UNDERSCORE, BLINK, REVERSE, CONCEALED, BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, ON_BLACK, ON_RED, ON_GREEN, ON_YELLOW, ON_BLUE, ON_MAGENTA, ON_CYAN, and ON_WHITE
等。
例如:
print BOLD BLUE ON_WHITE 「Text」, RESET, 「\n」;
如果你列印完之後想清除掉字元串的格式,一定要記得在最後加上一個RESET的屬性值。
例如:
use Term::ANSIColor qw(:constants);
print BOLD, BLUE, 「This text is in bold blue.\n」, RESET;
3) $Term::ANSIColor::AUTORESET = 1;
對於2)的方法,如果你不想在每條列印語句後面加上RESET的話,你可以直接把$Term::ANSIColor::AUTORESET的值設敬頃為true。這樣每次列印完字元,只要你的屬性值之間沒有逗號,系統將自動幫你清除掉顏色屬性。
看一個完整的例子:
use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;
print BOLD BLUE 「This text is in bold blue.\n」;
print 「This text is normal.\n」;
這三種方法,使用起來各有千秋,可根據要列印的復雜程度選用。
❽ Linux下的並行神器——parallel
GNU Parallel的輸入源支持文件、命令行和標准輸入(stdin或pipe)。
當然,若不想像上面那樣進行組合,可使用 --xapply 參數從每一個源獲取一個參數(或文件一行),這個參數有些類似R中的函數,具有廣播作用——如果其中一個輸入源的長度比較短,它的值會被重復。
GNU Parallel可以通過 --arg-sep 和 --arg-file-sep 指定分隔符替代 ::: 或 ::::,當這兩個符號被其它命令佔用的時候會特別有用。
GNU Parallel默認把一行做為一個參數:使用 \n 做為參數定界符。可以使用 -d 改變:
GNU Parallel支持通過 -E 參數指定一個值做為結束標志:
GNU Parallel使用 --no-run-if-empty 來跳過空行:
如果parallel之後沒有給定命令,那麼這些參數會被當做命令:
此外,命令還可以是一個腳本文件,一個二進制可執行文件或一個bash的函數(須用 export -f 導出函數)
GNU Parallel支持多種替換字元串,默認使用 {},使用 -I 改變替換字元串符號 {}。其最常見的字元串替換包括以下幾種: {.} ,去掉擴展名; {/} ,去掉路徑,只保留文件名; {//} ,只保留路徑; {/.} ,同時去掉路徑和擴展名; {#} ,輸出任務編號。同時對於每一個字元串替換都可以自己指定符號: -I 對應 {} ; --extensionreplace 替換 {.} ; --basenamereplace 替換 {/} ; --dirnamereplace 替換 {//} ; --basenameextensionreplace 替換 {/.} ; --seqreplace 替換 {#} 。
同時,如果有多個輸入源時,可以通過 {編號} 指定某一個輸入源的參數:
使用 --header 把每一行輸入中的第一個值做為參數名。
使用 --colsep 把文件中的行切分為列,做為輸入參數。
--xargs 會在一行中輸入盡可能多的參數(與參數字元串長度有關),通過 -s 可指定一行中參數的上限。
為了獲得更好的並發性,GNU Parallel會在文件讀取結束後再分發參數。
GNU Parallel 在讀取完最後一個參數之後,才開始第二個任務,此時會把所有的參數平均分配到4個任務(如果指定了4個任務)。
第一個任務與上面使用 --xargs 的例子一樣,但是第二個任務會被平均的分成4個任務,最終一共5個任務。(奇怪的是我的結果與官網教程的結果不一樣)
替換字元串可以是輸出字元的一部分,使用 -m 參數表示每個job不重復輸出「背景」(context), -X 則與 -m 相反,會重復輸出「背景文本」,具體通過下面幾個例子進行理解:
使用 -N 限制每行參數的個數,其中 -N0 表示一次只讀取一個參數,且不輸入這個參數(作為計數器來使用)。
如果命令行中包含特殊字元,就需要使用引號保護起來。
perl腳本 'print "@ARGV\n"' 與linux的 echo 的功能一樣。
使用GNU Parallel運行這條命令的時候,perl命令需要用引號包起來,也可以使用 -q 保護perl命令:
使用 --trim 去除參數兩頭的空格:
使用 --tag 以參數做為輸出前綴,使用 --tagstring 修改輸出前綴:
--dryrun 作用類似於echo:
--verbose 則在運行之前先列印命令:
一般來說,GNU Parallel 會延遲輸出,直到一組命令執行完成。使用 --ungroup ,可立刻列印輸出已完成部分。
使用 --ungroup 會很快,但會導致輸出錯亂,一個任務的行輸出可能會被另一個任務的輸出截斷。像上例所示,第二行輸出混合了兩個任務: '4-middle' '2-start'。使用 --linebuffer 避免這個問題(稍慢一點):
強制使輸出與參數保持順序 --keep-order/-k :
GNU Parallel可以把每一個任務的輸出保存到文件中,臨時文件默認保存在 /tmp 中,可以使用 --tmpdir改變(或者修改 $TMPDIR):
輸出文件可以有結構的保存 --results ,輸出文件不僅包含標准輸出(stdout)也會包含標准錯誤輸出(stderr):
在使用多個變數的時候會顯示很有用:
使用 --jobs/-j 指定並行任務數。
通過使用 --interactive 在一個任務執行之前讓用戶決定是否執行。
當job有大量的IO操作時,為避免 「驚群效應」 ,可使用 --delay 參數指定各個job開始的時間間隔。
若已知任務超過一定時間未反應則為失敗則可以通過 --timeout 指定等待時間避免無謂的等待。GNU parallel能計算所有任務運行時間的中位數,因此可以指定時間為中位數的倍數關系。
GNU parallel有多種方式可用來動態的顯示任務進度信息,如:
使用 --joblog 參數能夠生成各個任務的日誌文件:
通過 --resume-failed 參數可以重新運行失敗的任務; --retry-failed 的作用與 --resume-failed 類似,只是 --resume-failed 從命令行讀取失敗任務,而 --retry-failed 則是從日誌文件中讀取失敗任務:
GNU parallel支持在某一情況下(如第一個失敗或成功時,或者20%任務失敗時)終止任務,終止任務又有兩種類型,其一為立即終止(通過 --halt now 指定),殺死所有正在運行的任務並停止生成新的任務,其二為稍後終止(通過 --halt soon 指定),停止生成新任務並等待正在運行任務完成。
GNU parallel還支持在任務失敗後重試運行 --retries :
關於終止信號的高級用法參考 官方入門文檔 。
GNU parallel能夠在開始一個新的任務前檢查系統的負載情況防止過載(通過 --load 可指定負載),同時還能檢查系統是否使用了交換空間(swap)(通過 --noswap 限制使用swap)。
同時,對於某些佔用內存較多的程序,parallel會檢查內存只有內存滿足時才啟動任務(通過 --memfree 指定需要內存大小),而且在啟動任務後內存不夠50%時會殺掉最新開始的任務,直到這個任務完成再重新開始那些殺死的任務。
還可以通過 --nice 來指定任務的優先順序。
可使用 -S host 來進行遠程登陸:
parallel -S username@$SERVER1 echo running on ::: username@$SERVER1
GNU parallel 文件傳輸使用的是rsync。
更多遠程操作參見入門文檔。
--pipe 參數使得我們可以將輸入(stdin)分為多塊(block),然後分配給多個任務多個cpu以達到負載均衡,最後的結果順序與原始順序一致。使用 --block 參數可以指定每塊的大小,默認為1M。
如果不關心結果順序,只想要快速的得到結果,可使用 --round-robin 參數。沒有這個參數時每塊文件都會啟動一個命令,使用這個參數後會將這些文件塊分配給job數任務(通過 --jobs 進行指定)。若想分配更為均勻還可同時指定 --block 參數。
參考:
官方文檔
GNU Parallel指南
❾ Linux (GNU/Linux)下如何執行perl程序
你那個aa.pl並不是可執行文件,它只是個文本文件。
你要執行它需要調用perl,在終端用perl aa.pl就可以執行了。
aa.pl就是個perl腳本。和shell腳本執行差不多。