版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
粒子物理与核物理实验中的数据分析杨振伟清华大学第一讲:Linux操作系统与Linux环境下编程2023/1/131本讲摘要介绍Linux操作系统登陆和使用Linux服务器Linux终端的常用命令Linux终端的常用编辑器(vi,emacs,pico,etc)Linux环境变量与Shell脚本Linux下编译运行c/c++,fortran程序如何获取更多关于Linux以及Linux下编程的信息(不得不说的一句:搜索引擎是个好东西)2023/1/132Linux简介为什么选择Linux:
源代码开放,自由软件/代码大量的科学计算、数据分析处理的程序包包括了大量简短的隐含指令:
cd,ls,grep,…Linux有很多不同的发行版:
redhat,fedora,suse,debian,ubuntu,红旗,…
粒子与核物理界普遍使用的是
ScientificLinuxCERN(SLC)CERN与FermiLab联合发行ScientificLinux(SL),基于redhat企业版的内核
CERN在SL的基础上发行SLC,主要定制了CERNLIB包。本课程服务器采用的是ScientificLinuxCERN3(SLC3)版本http://linux.web.cern.ch/linux/2023/1/133UNIX/Linux
基础UNIX/Linux的任务可以简单地分为两部分:
承担操作系统与计算机之间的互动工作--内核(kernel),
承担操作系统与用户之间的互动工作--shell.目前广泛应用的几大类shell(即指令集):sh,csh,tcsh,bash,…目前一般系统默认的是bash,高能物理里常用的为tcsh。语法稍微有些区别,大同小异。用自己习惯的就可以,无所谓优劣。2023/1/134登录Linux前提:拥有帐号(包括密码),知道服务器的域名或ip
课程服务器的域名/ip是:4
某用户的用户名为:yangzw登录远程服务器一般用ssh方式:1)从Linux终端登录
sshyangzw@2)Windows下用ssh客户端软件登录putty,SecureCRT,Xmanager,…登录之后就进入服务器的term终端,然后可以在提示行中键入shell
指令输入服务器域名,用户名,密码选择ssh方式登录目录名提示行和提示符2023/1/135UNIX/Linux
的文件结构UNIX/Linux对文件与目录的管理,整体呈树状(tree)结构:/
←
根(root)目录usr/bin/home/sys/tmp/...chensm/zhanghb/yangzw/...WWW/code/thesis/...←操作系统设定←系统管理员设定←用户自己设定Linux:public_html/2023/1/136UNIX/Linux文件的所有者和权限所有者与权限:Linux文件都有特定的所有者和所有组。文件具有3类权限:可读(r)、可写(w)、可执行(x)所有者有权规定3类用户对该文件的权限:所有者自己(owner)、所有者同组成员(group)、其它用户(other)最前面的字母”d”表示这是个目录”-”表明没有该位置对应的权限2023/1/137几个LINUX的文件技巧一个完整文件名应指定出其所处在的路径(path),路径有相对路径和绝对路径绝对路径:/home/chensm/geom/geom.dat(都是以”/”开始)一个‘~’符号可以用来简单表示home:(相对路径的例子)
~/geom/geom.dat
←
所登录的用户(e.g.chensm)
~zhanghb/geom/result.dat
←不同的用户单个点‘.’表示当前目录,两个点“..”表示上一层目录
/home/chensm/geom
←
当前目录
../geom
←表示/home/chensm/geom这种文件技巧对以后编写通用的
shell脚本文件很有用。2023/1/138一些常用的LINUX指令(1)pwd
显示当前目录(printworkingdir)Passwd
修改当前用户的密码ls[-lahrt]
列出当前目录中的文件(list)cd[dir]
进入指定目录或从当前目录回到用户的home目录
cd,cd
foo,cd../cd/home/zhanghb/mkdir
dfoo
生成名为
dfoo
的子目录rm[-rf]foo
删除文件
foo(参数rf表示强制删除文件夹,慎用)rmdir
foo
删除名为
foo的子目录(foo
应已经为空目录)cpfoobar
拷贝文件foo
到另一文件barmv
foobar
更改文件foo
的名称为barman<command>
显示
command指令说明man-k<keyword>
寻找“keyword”指令说明页history
列出最近使用过的指令很有用du
显示当前目录所用空间大小注意指令中的字母大小写。实际上Linux区分一切大小写,指令,文件名,目录名2023/1/139一些有用的UNIX指令(2)morefoo
显示名为foo的文件(按空格键换页)lessfoo
与morefoo类似,但可以往回翻页(按q退出)emacsfoo&
用emacs编辑名为foo的文件(&为提交后台进程)vi,pico,nano,…这些命令都以可编辑方式打开文件ps
显示正在运行的进程kill345
删除进程345(如果不行可尝试使用kill-9)./foo
在当前目录运行可执行文件
fooctrl-c
中断目前在前台执行的进程ln–ssourcelinkname为source建立一个符号链接linknamelocatefoo
在所有目录中寻找有文件名
foo
的路径find.–namefile1在当前目录中寻找文件名为file1的路径grepTH1Ffoo
显示文件
foo中含“TH1F”的每一行sed–e“s/str1/str2/g”
foo
>bar
将文件foo中字符串“str1”改为“str2”并将修改后的文件写到新文件bar上,foo保持不变。2023/1/1310一些有用的UNIX指令(3)chmod755<file>
更改文件file的属性,1:x
2:w4:r
5:rx7:rwxchmodug+xfoo
使文件
foo对用户与同小组成员增加执行权限difffile1file2比较文件file1和file2的不同tar–zcvf1.tgzfile1file2压缩file1,file2为1.tgztar–zxvf1.tgz解压缩1.tgzgcctest.c–otry1
用C编译器编译test.c,生成可执行文件tryg++test.cpp–otry2
用C++编译器编译程序date
显示系统当前时间sleep10
暂停10秒钟wc[–lw]file
显示file的行数/字数等信息echo“WelcometoLinuxWorld!”
屏幕显示指定字符串filefile1显示文件file1的属性注:Linux有些特殊字符,比如>,|,&等符号ls>hehe.txt将ls的结果写入hehe.txt,即重定向psaux|grepyangzw显示跟用户yangzw有关的进程,即通道2023/1/1311Emacs、Vi编辑器的基本指令emacs:很好很强大打开文件emacs[filename]保存文件^x^s退出文件^x^c
vi(vim):古老,不过也很强大打开文件vi[filename]保存文件:w退出文件:q不存退出:q!注:vi有两种模式,命令模式和输入模式按小写字母”i”进入输入模式,按”esc”键进入命令模式在命令模式中可以输入命令很方便的进行编辑修改
熟练使用任何一种编辑器都可以极大提高工作效率,建议多多练习。nano(pico):简单文本编辑打开文件nano[filename]保存文件^o推出文件^x2023/1/1312Shell、环境变量和脚本(1)承担操作系统与用户之间的互动工作--shell.常用的shell(即指令集):tcsh,bash,…chsh该命令改变shell,输入密码后输入/bin/tcsh或/bin/bashshell中有很多环境变量,有的是系统的环境变量,有的是用户自己定义的环境变量,为系统和用户程序服务。环境变量一般用大些字母定义(有些类似于C语言的宏定义)比如PATH,PWD,USER,GROUP等都是系统环境变量。查看所有环境变量:env或者printenv查看环境变量PATH的值:echo$PATH或printenvPATH定义环境变量exportYANGDIR=/home/yangzw(bash)setenvYANGDIR/home/yangzw(tcsh)取消环境变量unsetYANGDIR2023/1/1313Shell、环境变量和脚本(2)什么是脚本(script):
脚本就是用于实现某种目的的命令集合。这些命令集合放在一个文件中,由shell来解析执行。为什么需要用脚本:很多工作是重复性的,脚本可以让你更高效。
目标:1)知道什么是shell脚本(script),如何写自己的脚本
2)可以看懂别人的脚本执行shell脚本,比如有脚本test.sh:./test.sh
注:运行前确保用户对test.sh有可执行权限,否则,chmodu+xtest.sh2023/1/1314Shell、环境变量和脚本例:最简单的一个脚本编写一个shell脚本test.sh:#!/bin/bash#Thisisasimpletestshellscriptecho“Helloeveryone!”echo“`ls/projects/$USER`”dateecho$PWD注:1)标准的脚本都以“#!”开头,后面跟随bash/tcsh或其它脚本程序的路径(用whichbash指令可以查看bash的路径)2)注释行以“#”开头(第一行的#!除外)3)需要执行的指令(一般每行一个指令)2023/1/1315Shell、环境变量和脚本脚本中变量和循环的例子:bashvstcsh#!/bin/bash#Anothertestshellscript####for循环####foriin`ls/home/yangzw`doecho$idone####while循环###num=1DIR=“testDir”while(($num<5))doif[-d$DIR$num];thenecho“$DIR$numexist!!“elsemkdir$DIR$numfiletnum+=1done#!/bin/tcsh#Anothertestshellscript####for循环####foreachi`ls/home/yangzw`echo$iend####while循环###num=1DIR=“testDir”while($num<5)if(-d$DIR$num)thenecho“$DIR$numexist!!“elsemkdir$DIR$numendifsetnum=`expr$num+1`end2023/1/1316练习到/projects目录下建立自己的用户$USER,在$HOME目录下建立一个符号链接“workdir”,链接到/projects/$USER然后到$USER目录下建立目录dir1,dir2,dir3,以及文件file1,file2,index1.htm,index2.htm,test1.txt
设定环境变量名WORKDIR=/projects/$USERMYNAME=${USER}_${GROUP}2.编写脚本myscript1.sh,要求:
1)显示开始运行的时间;
2)显示出当前目录,当前用户名以及SHELL类型
3)显示WORKDIR与MYNAME的值
4)显示当前$WORKDIR目录所用磁盘空间
5)间隔5秒钟之后再显示出当前时间3.编写脚本looptest.sh,要求:
1)将练习1中所有文件属性改成只有自己可以读/写/执行,其他人只能读2)将$WORKDIR目录中*.htm文件改成*.html2023/1/13174.将/projects/yangzw/Lec_materials/test1.txt拷贝到自己的工作目录,再把test1.txt备份成test1.txt.bak。练习用sed修改其中的字符串,用grep查找其中的字符串,比如:1)查找其中包含”Vim”的行,并将结果写入final1.txt
2)不区分大小写查找包含”vim”的行,显示查找出多少行3)用sed将其中的”vim”修改成”Vim”4)比较test1.txt与test1.txt.bak的差别
5)删除final1.txt
……5.练习使用其它常用的Linux命令练习2023/1/1318总结介绍Linux操作系统以及常用命令Linux终端的常用编辑器(vi,emacs,pico,etc)介绍shell、环境变量和脚本介绍Linux下c/c++程序的编译目的:熟练掌握Linux操作系统的常用命令的使用和脚本编程2023/1/1319参考资料Linux从入门到精通,PhilCornes著;童寿彬等译RedHatLinux9系统管理,李蔚泽编著精通Shell编程,SrirangaVeeraraghavan著;卢涛译Linux命令、编辑器与Shell编程,MarkSobell著,杨明军等译/~yangzw/CourseDataAna/(一些Shell脚本编程的资料)Googleand/orBaidu!!!!2023/1/1320备用vi的常用技巧1.显示行号:senu2.移动光标到第5行
:53.移动光标到行首
^4.移动光标到行尾
$5.移动光标到文件头
gg6.移动光标到文件尾
G7.向后移动3个字
3w8.向前移动4个字
4b9.删除光标所在字
dw10.删除光标所在字符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会计师事务所兼职合同范本:工作职责与权益保障
- 2024解除劳动合同的问题
- 国家级代理授权经营合同范本
- 2024新版广告合同格式
- 医院与社区合作协议
- 2024年度别墅电梯定制安装合同
- 2024建筑材料的购销合同范本
- 2024年专用电缆采购合同
- 2024苗圃土地承包合同模板
- 工程项目协作股权协议范例
- 2015-2024北京中考真题语文汇编:记叙文阅读
- 2024年湖南土建中级职称-建筑工程《法律法规及技术标准》考试题库(含答案)
- 旅游景区消防安全培训
- 《创意改善生活》课件 2024-2025学年湘美版(2024)初中美术七年级上册
- 2024-2025学年 浙教版七年级数学上册期中(第1-4章)培优试卷
- 个人简历模板(5套完整版)
- CHT 1027-2012 数字正射影像图质量检验技术规程(正式版)
- 劳务派遣劳务外包服务方案(技术方案)
- (完整版)装修主要材料一览表
- 排球正面下手发球教学设计
- 给4S店精品销售的几点建议
评论
0/150
提交评论