粒子物理與核物理實(shí)驗(yàn)中的數(shù)據(jù)分析(同名62)課件_第1頁
粒子物理與核物理實(shí)驗(yàn)中的數(shù)據(jù)分析(同名62)課件_第2頁
粒子物理與核物理實(shí)驗(yàn)中的數(shù)據(jù)分析(同名62)課件_第3頁
粒子物理與核物理實(shí)驗(yàn)中的數(shù)據(jù)分析(同名62)課件_第4頁
粒子物理與核物理實(shí)驗(yàn)中的數(shù)據(jù)分析(同名62)課件_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

粒子物理與核物理實(shí)驗(yàn)中的數(shù)據(jù)分析楊振偉清華大學(xué)第一講:Linux環(huán)境下編程(1)2023/12/62本講摘要什么是Linux為什么使用Linux登陸和使用Linux服務(wù)器Linux簡介(內(nèi)核、shell以及目錄結(jié)構(gòu)等)Linux終端的常用命令(!!!)Linux終端的常用編輯器(vi,emacs,pico,etc)Linux環(huán)境變量與Shell腳本(!!!)Linux下編譯運(yùn)行c/c++,fortran程序2023/12/63什么是Linux(1)什么是Linux?

Linux是眾多操作系統(tǒng)的一種主要特點(diǎn)

源代碼開放,自由軟件/代碼眾多的不同發(fā)行版強(qiáng)大的shell指令以及shell編程功能:

cd,ls,grep,find,sed…大量的科學(xué)計(jì)算、數(shù)據(jù)分析處理的程序包

(CERN、FermiLab、KEK以及其它眾多機(jī)構(gòu)提供支持)2023/12/64什么是Linux(2)粒子與核物理界普遍使用的是

ScientificLinuxCERN(SLC)或ScientificLinux(SL),(1)Redhat發(fā)行RedhatEnterpriseLinux(RHEL)發(fā)行版(2)CERN與FermiLab基于RHEL內(nèi)核,聯(lián)合發(fā)行SL(3)CERN在SL的基礎(chǔ)上發(fā)行SLC主要定制了CERNLIB包。本課程服務(wù)器采用的是ScientificLinuxCERN3(SLC3)版本最新版為SLC5.4http://linux.web.cern.ch/linux/2023/12/65為什么使用Linux(1)為什么使用Linux?源代碼開放,自由軟件/代碼Linux的強(qiáng)勢不在桌面、游戲等方面Linux的強(qiáng)勢主要在于科學(xué)研究方面尤其是需要大量計(jì)算或編程進(jìn)行數(shù)據(jù)分析的科研工作

強(qiáng)大的shell命令和腳本,多任務(wù)長時(shí)間的運(yùn)算科研中可能會(huì)遇到的小問題(程序相關(guān)):1.在某文件夾下有很多文件和子文件夾,需要將所有的.cpp文件中的yang_int改成yang_float2.同樣該文件夾,有很多文件中可能包含某個(gè)函數(shù),比如Fit_Landau(),需要找到函數(shù)的定義及使用3.查看某個(gè)文本文件a.txt一共有多少行4.某程序,需要變更其中的參數(shù)進(jìn)行多次運(yùn)行。2023/12/66為什么使用Linux(2)問題1可以用下面一行命令解決:

find.-name"*.cpp"-execsed-i's/yang_int/yang_float/g'{}\;即用find命令在當(dāng)前目錄尋找(遞歸)所有的cpp文件,找到后執(zhí)行sed命令,其中-name和-exec是find命令的參數(shù),分別表示按文件名尋找和執(zhí)行指令。sed指令在文件中尋找(s)字符串“yang_int”,替換為“yang_float”。find后面的“.”表示在當(dāng)前目錄尋找,也可以改成其它想尋找的目錄,比如/home/yangzw/mywork問題2可以用grep命令解決:

grep-srn"Fit_Landau"/home/yangzw/mywork即用grep命令遞歸查找/home/yangzw/mywork目錄里面的所有文件,打印出所有包含“Fit_Landau”字符串的文件名稱,以及該字符串出現(xiàn)的行號(hào)和該行的內(nèi)容。其中-srn是grep的參數(shù),s表示忽略文件不存在或無法讀取等錯(cuò)誤信息,r表示在文件夾中遞歸查找,n表示打印出字符串出現(xiàn)的行號(hào)。這些參數(shù)可以組合使用。2023/12/67為什么使用Linux(3)問題3可以用下面一行命令解決:

wc-la.txt即用wc命令,計(jì)算a.txt文件有多少行,其中-l參數(shù)表示計(jì)算行號(hào)。如果改成-w,則表示計(jì)算有多少word。問題4可以用shell腳本快速解決,詳見shell腳本編程。這僅僅是幾個(gè)簡單的例子,Linux提供的這種指令不計(jì)其數(shù)。一般通過baidu或者google都可以查到如何實(shí)現(xiàn)你需要的功能。如何獲取更多關(guān)于Linux的使用信息?不得不說的一句:搜索引擎是個(gè)好東西?。?!思考題:如果在linux下獲得系統(tǒng)當(dāng)前時(shí)間并截取時(shí)間中的月份?可以baidu試一下。2023/12/68登錄和使用Linux前提:擁有帳號(hào)(包括密碼),知道服務(wù)器的域名或ip

課程服務(wù)器的域名/ip是:1

某用戶的用戶名為:yangzw登錄遠(yuǎn)程服務(wù)器一般用ssh方式:1)從Linux終端登錄

sshyangzw@2)Windows下用ssh客戶端軟件登錄putty,SecureCRT,Xmanager,…登錄之后就進(jìn)入服務(wù)器的term終端,然后可以在提示行中鍵入shell

指令輸入服務(wù)器域名,用戶名,密碼選擇ssh方式登錄目錄名提示行和提示符2023/12/69Linux

簡介(1)-內(nèi)核和shellUNIX/Linux的任務(wù)可以簡單地分為兩部分:

承擔(dān)操作系統(tǒng)與計(jì)算機(jī)之間的互動(dòng)工作--內(nèi)核(kernel),

承擔(dān)操作系統(tǒng)與用戶之間的互動(dòng)工作--shell.目前廣泛應(yīng)用的幾大類shell(即指令集):

sh,csh,tcsh,bash,…目前一般系統(tǒng)默認(rèn)的是bash,高能物理里常用的為tcsh。語法稍微有些區(qū)別,大同小異。用自己習(xí)慣的就可以,無所謂優(yōu)劣。2023/12/610Linux簡介(2)-目錄UNIX/Linux對(duì)文件與目錄的管理,整體呈樹狀(tree)結(jié)構(gòu):/

←根(root)目錄usr/bin/home/sys/tmp/...chensm/zhanghb/yangzw/...WWW/code/thesis/...←操作系統(tǒng)設(shè)定←系統(tǒng)管理員設(shè)定←用戶自己設(shè)定Linux:public_html/2023/12/611Linux簡介(3)-文件所有者和權(quán)限所有者與權(quán)限:Linux文件都有特定的所有者和所有組。文件具有3類權(quán)限:可讀(r)、可寫(w)、可執(zhí)行(x)所有者有權(quán)規(guī)定3類用戶對(duì)該文件的權(quán)限:所有者自己(owner)、所有者同組成員(group)、其它用戶(other)最前面的字母”d”表示這是個(gè)目錄”-”表明沒有該位置對(duì)應(yīng)的權(quán)限2023/12/612一個(gè)完整文件名應(yīng)指定出其所處在的路徑(path),路徑有相對(duì)路徑和絕對(duì)路徑絕對(duì)路徑:/home/chensm/geom/geom.dat(都是以”/”開始)一個(gè)‘~’符號(hào)可以用來簡單表示home:(相對(duì)路徑的例子)

~/geom/geom.dat

←所登錄的用戶(e.g.chensm)

~zhanghb/geom/result.dat

←不同的用戶單個(gè)點(diǎn)‘.’表示當(dāng)前目錄,兩個(gè)點(diǎn)“..”表示上一層目錄

/home/chensm/geom

當(dāng)前目錄

../geom

←表示/home/chensm/geom這種文件技巧對(duì)以后編寫通用的

shell腳本文件很有用。Linux簡介(4)-絕對(duì)和相對(duì)路徑2023/12/613Linux終端的常用命令(1)pwd

顯示當(dāng)前目錄(printworkingdir)passwd

修改當(dāng)前用戶的密碼ls[-lahrt]

列出當(dāng)前目錄中的文件(list)cd[dir]

進(jìn)入指定目錄或從當(dāng)前目錄回到用戶的home目錄

cd,cdfoo,cd../cd/home/zhanghb/mkdirdfoo

生成名為

dfoo的子目錄rm[-rf]foo

刪除文件

foo(參數(shù)rf表示強(qiáng)制刪除文件夾,慎用)rmdirfoo

刪除名為

foo的子目錄(foo應(yīng)已經(jīng)為空目錄)cpfoobar

拷貝文件foo到另一文件barmvfoobar

更改文件foo的名稱為barman<command>

顯示

command指令說明man-k<keyword>

尋找“keyword”指令說明頁history

列出最近使用過的指令很有用du

顯示當(dāng)前目錄所用空間大小注意指令字母大小寫。實(shí)際上Linux區(qū)分一切大小寫,指令,文件名,目錄名2023/12/614Linux終端的常用命令(2)morefoo

顯示名為foo的文件(按空格鍵換頁)lessfoo

與morefoo類似,但可以往回翻頁(按q退出)emacsfoo&

用emacs編輯名為foo的文件(&為提交后臺(tái)進(jìn)程)vi,pico,nano,…這些命令都以可編輯方式打開文件ps

顯示正在運(yùn)行的進(jìn)程kill345

刪除進(jìn)程345(如果不行可嘗試使用kill-9)./foo

在當(dāng)前目錄運(yùn)行可執(zhí)行文件

fooctrl-c

中斷目前在前臺(tái)執(zhí)行的進(jìn)程ln–ssourcelinkname為source建立一個(gè)符號(hào)鏈接linknamelocatefoo

在所有目錄中尋找有文件名

foo

的路徑find.–namefile1在當(dāng)前目錄中尋找文件名為file1的路徑grepTH1Ffoo

顯示文件

foo中含“TH1F”

的每一行sed–e“s/str1/str2/g”

foo

>bar

將文件foo中字符串“str1”改為“str2”并將修改后的文件寫到新文件bar,foo保持不變。2023/12/615Linux終端的常用命令(3)chmod755<file>

更改文件file的屬性,1:x

2:w4:r

5:rx7:rwxchmodug+xfoo

使文件

foo對(duì)用戶與同小組成員增加執(zhí)行權(quán)限difffile1file2比較文件file1和file2的不同tar–zcvf1.tgzfile1file2壓縮file1,file2為1.tgztar–zxvf1.tgz解壓縮1.tgzgcctest.c–otry1

用C編譯器編譯test.c,生成可執(zhí)行文件tryg++test.cpp–otry2

用C++編譯器編譯程序date

顯示系統(tǒng)當(dāng)前時(shí)間sleep10

暫停10秒鐘wc[–lw]file

顯示file的行數(shù)/字?jǐn)?shù)等信息echo“WelcometoLinuxWorld!”

屏幕顯示指定字符串filefile1顯示文件file1的屬性注:Linux有些特殊字符,比如>,|,&等符號(hào)ls>hehe.txt將ls的結(jié)果寫入hehe.txt,即重定向psaux|grepyangzw顯示跟用戶yangzw有關(guān)的進(jìn)程,即通道2023/12/616Emacs、Vi編輯器的基本指令emacs:很好很強(qiáng)大打開文件emacs[filename]保存文件^x^s退出文件^x^c

vi(vim):古老,不過也很強(qiáng)大打開文件vi[filename]保存文件:w(注意:是輸入冒號(hào)然后輸入w或q或q!)退出文件:q不存退出:q!注:vi有兩種模式,命令模式和輸入模式按小寫字母”i”進(jìn)入輸入模式,按”esc”鍵進(jìn)入命令模式在命令模式中可以輸入命令很方便的進(jìn)行編輯修改

講義最后列了一些vi的常用命令

熟練使用任何一種編輯器都可以極大提高工作效率,建議多多練習(xí)。nano(pico):簡單文本編輯打開文件nano[filename]保存文件^o退出文件^x2023/12/617Shell、環(huán)境變量和腳本(1)承擔(dān)操作系統(tǒng)與用戶之間的互動(dòng)工作--shell.常用的shell(即指令集):tcsh,bash,…chsh該命令改變shell,輸入密碼后輸入/bin/tcsh或/bin/bashshell中有很多環(huán)境變量,有的是系統(tǒng)的環(huán)境變量,有的是用戶自己定義的環(huán)境變量,為系統(tǒng)和用戶程序服務(wù)。環(huán)境變量一般用大些字母定義(有些類似于C語言的宏定義)比如PATH,PWD,USER,GROUP等都是系統(tǒng)環(huán)境變量。查看所有環(huán)境變量:env或者printenv查看環(huán)境變量PATH的值:echo$PATH或printenvPATH定義環(huán)境變量exportYANGDIR=/home/yangzw(bash)setenvYANGDIR/home/yangzw(tcsh)取消環(huán)境變量unsetYANGDIR2023/12/618Shell、環(huán)境變量和腳本(2)什么是腳本(script):

腳本就是用于實(shí)現(xiàn)某種目的的命令集合。這些命令集合放在一個(gè)文件中,由shell來解析執(zhí)行。為什么需要用腳本:很多工作是重復(fù)性的,腳本可以讓你更高效。比如用腳本循環(huán)修改程序的某一部分,自動(dòng)運(yùn)行。

目標(biāo):1)知道什么是shell腳本(script),如何寫自己的腳本

2)可以看懂別人的腳本執(zhí)行shell腳本,比如有腳本test.sh:./test.sh

注:運(yùn)行前確保用戶對(duì)test.sh有可執(zhí)行權(quán)限,否則,chmodu+xtest.sh2023/12/619Shell、環(huán)境變量和腳本例:最簡單的一個(gè)腳本編寫一個(gè)shell腳本test.sh:#!/bin/bash#Thisisasimpletestshellscriptecho“Helloeveryone!”ls/projects/$USERdateecho$PWD注:1)標(biāo)準(zhǔn)的腳本都以“#!”開頭,后面跟隨bash/tcsh或其它腳本程序的路徑(用whichbash指令可以查看bash的路徑)2)注釋行以“#”開頭(第一行的#!除外)3)需要執(zhí)行的指令(一般每行一個(gè)指令)2023/12/620Shell、環(huán)境變量和腳本腳本中變量和循環(huán)的例子:bashvstcsh#!/bin/bash#Anothertestshellscript####for循環(huán)####foriin`ls/home/yangzw`doecho$idone####while循環(huán)###num=1DIR=“testDir”while(($num<5))doif[-d$DIR$num];thenecho“$DIR$numexist!!“elsemkdir$DIR$numfiletnum+=1done#!/bin/tcsh#Anothertestshellscript####for循環(huán)####foreachi`ls/home/yangzw`echo$iend####while循環(huán)###num=1DIR=“testDir”while($num<5)if(-d$DIR$num)thenecho“$DIR$numexist!!“elsemkdir$DIR$numendifsetnum=`expr$num+1`end2023/12/621練習(xí)到/projects目錄下以$USER為名建立自己的工作目錄,在$HOME目錄下建立一個(gè)符號(hào)鏈接“workdir”,鏈接到/projects/$USER

(提示:可以用echo或printenv看看USER和HOME兩個(gè)環(huán)境變量的值)然后到workdir中創(chuàng)建目錄dir1,dir2,dir3,以及文件file1,file2,index1.htm,index2.htm,test1.txt

(提示:創(chuàng)建文件有多種方法,簡單的方法是用touch命令)

設(shè)定以下兩個(gè)環(huán)境變量WORKDIR和MYNAME,讓它們分別等于/projects/$USER${USER}_${GROUP}2.編寫腳本myscript1.sh,要求:

1)顯示開始運(yùn)行的時(shí)間;

2)在屏幕上打印出當(dāng)前目錄,當(dāng)前用戶名以及SHELL類型

3)顯示W(wǎng)ORKDIR與MYNAME的值

4)顯示當(dāng)前$WORKDIR目錄所用磁盤空間

5)間隔5秒鐘之后再顯示出當(dāng)前時(shí)間2023/12/6223.編寫腳本looptest.sh,要求:

1)將練習(xí)1中所有文件屬性改成只有自己可以讀/寫/執(zhí)行,其他人只能讀2)將$WORKDIR目錄中*.htm文件改成*.html(提示,可以用rename命令,也可以用for循環(huán))4.將/projects/yangzw/Lec_materials/test1.txt拷貝到自己的工作目錄,再把test1.txt備份成test1.txt.bak。練習(xí)用sed修改其中的字符串,用grep查找其中的字符串,比如:1)查找其中包含”Vim”的行,并將結(jié)果寫入final1.txt

2)不區(qū)分大小寫查找包含”vim”的行,顯示查找出多少行3)用sed將其中的”vim”修改成”Vim”4)比較test1.txt與test1.txt.bak的差別

5)刪除final1.txt

……5.練習(xí)使用其它常用的Linux命令練習(xí)2023/12/623總結(jié)介紹Linux操作系統(tǒng)以及常用命令Linux終端的常用編輯器(vi,emacs,pico,etc)介紹shell、環(huán)境變量和腳本介紹Linux下c/c++程序的編譯指令目的:了解Linux操作系統(tǒng)的基本概念熟練掌握Linux操作系統(tǒng)的常用命令了解Shell腳本編程的基本概念2023/12/624參考資料Linux從入門到精通,??PhilCornes著;童壽彬等譯RedHatLinux9系統(tǒng)管理,李蔚澤編著精通Shell編程,SrirangaVeeraraghavan著;盧濤譯Linux命令、編輯器與Shell編程,MarkSobell著,楊明軍等譯/~yangzw/CourseDataAna/(一些Shell腳本編程的資料)Googleand/orBaidu!!!!2023/12/625備用(vi常用指令)vi的常用技巧1.顯示行號(hào):senu2.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論