粒子物理与校物理奥验中的数据 分析 杨振伟 清华大学 第一讲: Linux环境下编程(2)
粒子物理与核物理实验中的数据 分析 杨振伟 清华大学 第一讲: Linux环境下编程(2)
上讲回顾(1) ■ Linux简介 发行版, Scientific LinUx cerM(SLC, 强大的命令行模式 ■登录 Linux服务器 从 Linux登录 ssh[-Xyangzi@training,hep.tsinghua.edu.cn 从 Windows登录: 使用SSh客户端程序( XManager, Securecrt, putty….) 2021/1/29
2021/1/29 2 上讲回顾(1) ◼ Linux简介 发行版,Scientific Linux CERN(SLC), 强大的命令行模式 ◼ 登录Linux服务器 从Linux登录: ssh [-X] yangzw@training.hep.tsinghua.edu.cn 从Windows登录: 使用ssh客户端程序(XManager,SecureCRT, putty...)
上讲回顾(2) ■ Linux常用命令 帮助、查找相关 man, find, grep, locate 目录相关 IS, cd, pwd, mkdir, rm, rmdir 复制、更名、压缩相关 cp. mv. tar 查看文件相关 less. more cat head tail 编辑文件相关: VI,emacs, nano, pIco 其它 echo, sed, wc, history, du, chmod, chown, date, file 2021/1/29
2021/1/29 3 上讲回顾(2) ◼ Linux常用命令 帮助、查找相关: man, find, grep, locate, ... 目录相关: ls, cd, pwd, mkdir, rm, rmdir,... 复制、更名、压缩相关: cp, mv, tar... 查看文件相关: less, more, cat, head, tail,... 编辑文件相关: vi, emacs, nano, pico,... 其它: echo, sed, wc, history, du, chmod, chown,date, file
上讲回顾(3) ■ Shell、环境变量、脚本编程 脚本中定义变量、判断语句、循环语句 PATH HOME. PWD. USER GROUP bash export MYDIR=/projects/yangzw/examples tcsh setenv Mydir /projects/yangzw/examples ■ Linux下的文本编辑器 emacs,vi,etc) 要学会熟练使用某种编辑器.不要把它们当成 己事本使用,编程与一般的文档输入不同.强 大的编辑器可以使编程变得高效 2021/1/29 4
2021/1/29 4 上讲回顾(3) ◼ Shell、环境变量、脚本编程 脚本中定义变量、判断语句、循环语句... PATH, HOME, PWD, USER, GROUP, ... bash export MYDIR=/projects/yangzw/examples tcsh setenv MYDIR /projects/yangzw/examples ◼ Linux下的文本编辑器(emacs, vi, etc) 要学会熟练使用某种编辑器,不要把它们当成 记事本使用,编程与一般的文档输入不同,强 大的编辑器可以使编程变得高效
http://hep.tsinghua.edu.cn/nt Course DataAna/examples/ SHELL例子回顾 #!/bin /bash to run:. /ex1 45. sh 5 指定bash,运行时需要加参数:#!开头 if [ $1 ]; then 如果没有指定参数,则退出:参数和分号的使用 echo para needed" exit 如果目录不存在,新建相应的目录。定义环境变 if [ -d/projects/sUSER/try ] then 量,进入该目录:目录判断和 mkdir-p的使用 mkdir-p/projects/USER/try export DR=/projects/USER/try: cd sDR 让变量在ls$DR的结果中循环,判断$是否为 ####for loop#### 文件,若是则修改文件权限为用户可rwx,其他 for i in Is sDR 人只能r:for循环,文件判断,修改权限的使用 do if -f si ]i then chmod 744 si; fi 强制删除try*htm文件。初始化变量n,N。让 done n从1循环到N,每次新建一个htm文件,比如 ####while loop### rm -f try * htmi n=l; N=$1 try1htm。往文件中写入4行信息。(注:\n表 while(($n<$ND) 示换行。)在文件所有行前面加上"//"(可用于 do c/C++程序的注释)。(注:"/"为特殊字符,在 NAME=trysn htm 正规表达式中要用Y"进行转义,比如"Y//” echo-e"$n:\nlop\nine3”>$NAME‖被解释为//")}: while循环,\n换行,sed用 cho line4.>> SNAME 法,特殊字符和转义符的使用 sed -i s/A/\\//g"$NAME let n+=1 done 将目录中所有htm文件改名为htm文件,显示 rename .htm html *k,htm 参数$0$1和系统时间: rename,date的使用 echo" parO: $ o par1: $1 i date 2021/1/29 注:脚本位于/ projects/ yangzi/ scripts
2021/1/29 5 #!/bin/bash SHELL例子回顾 # to run: ./ex1_45.sh 5 if [ ! $1 ]; then echo “para needed”; exit fi if [ ! –d /projects/$USER/try ]; then mkdir –p /projects/$USER/try fi export DR=/projects/$USER/try; cd $DR ####for loop#### for i in `ls $DR` do if [ -f $i ]; then chmod 744 $i; fi done ####while loop### rm –f try*.html; n=1; N=$1 while (( $n < $N )) do NAME=try$n.htm echo –e “$n:\nloop\nline3“ > $NAME echo “line4...” >> $NAME sed –i “s/^/\/\//g” $NAME let n+=1 done rename .htm .html *.htm echo “par0: $0 par1: $1”; date 指定bash,运行时需要加参数:#!开头 如果没有指定参数,则退出:参数和分号的使用 如果目录不存在,新建相应的目录。定义环境变 量,进入该目录:目录判断和mkdir –p的使用 让变量i在ls $DR的结果中循环,判断$i是否为 文件,若是则修改文件权限为用户可rwx,其他 人只能r:for循环,文件判断,修改权限的使用 强制删除try*.html文件。初始化变量n,N。让 n从1循环到N,每次新建一个.htm文件,比如 try1.htm。往文件中写入4行信息。(注:\n表 示换行。)在文件所有行前面加上”//”(可用于 C/C++程序的注释)。(注:”/”为特殊字符,在 正规表达式中要用”\”进行转义,比如”\/\/” 被解释为“//”):while循环,\n换行,sed用 法,特殊字符和转义符的使用 将目录中所有.htm文件改名为.html文件,显示 参数$0,$1和系统时间:rename, date的使用 注:脚本位于/projects/yangzw/scripts/ http://hep.tsinghua.edu.cn/~yangzw/ CourseDataAna/examples/