unix课上笔记整理.doc

上传人:飞****2 文档编号:78958533 上传时间:2023-03-19 格式:DOC 页数:25 大小:71.50KB
返回 下载 相关 举报
unix课上笔记整理.doc_第1页
第1页 / 共25页
unix课上笔记整理.doc_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《unix课上笔记整理.doc》由会员分享,可在线阅读,更多相关《unix课上笔记整理.doc(25页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、进入超级用户:su root密码:输入要新增的用户名:useradd 用户名1更改用户密码:passwd 用户名1输入密码:切换用户:su - 用户名2显示当前目录:pwdWhy: 程序简单文件系统 系统管理 (CD.USB.harddisk)What: 叶 结点:文件 根 结构:倒置的树 中间结点文件系统 边:文件之间的关联 行为(访问) 从根到结点的路径:/home/xy/a1 现在的位置Where:文件系统在哪:分区How:怎样去用访问文件系统 1.pwd:当前目录 创建用户即创建目录 2.mkdir:创建目录 在xy下创建a1文件: Mkdir /home/xy/a1 pwd已经知道当

2、前位置. Mkdir ./b1 或 mkdir b2 3.cd 进入目录目录(内部结点) 绝对 cd /home/xy/a1不能执行 相对 cd a1 或 cd ./a1只能进入和退出 4.返回(切换) 绝对 cd /home/xy/b1 相对 cd ./b1 5.删除目录 绝对 rmdir /home/xy/b1 相对 rmdir ./b1 或 rmdir b1 rm a* 把目录文件下所有a的文件删掉 目录非空无法删除 rmdir -r tmp1 tmp1 下所有目录文件删掉 1.touch 文件名 创建文件 2.ls -l 查看当前位置下所有文件 d开头:目录文件 - 开头:普通文件叶节

3、点(文件): 3.执行文件: ./a2 权限不够 rw- rw- r- 用户 组 其他组 u g o 对文件的权限 rw- 读 写 执行 给用户本人对a2增加执行的权限 chmod u+x a2 用二进制数 4.删除文件 rm a2 不能使用rm -r a1 5. 拷贝文件 cp 源 目标 把源节点拷到目标节点 cp a1 b1/a2 把a1拷到b1下再换名为a2把目录b1拷到b2:cp -r b1 b2改名:cp -r b1 b2/b3 在linux文本编程程序文件对应树上的节点Linux文本编辑器vi占用内存小运行快Vi 结构What 行为状态:初始 命令 插入 退出vi 程序名.cpp把

4、源程序转换为可执行程序。语法检查。g+ -o 可执行程序 源程序设定行号:se nu 取消行号:se nonu删除:在命令状态下:删除一个字符:x 删除3个字符:3x 删除一个单词:dw 删除n个单词:ndw 删除一行:dd 从当前光标删至此行最后:D 删除第2行:2 d 利用行号删除,从第2行删除到第7行:2,7 d 修改:命令状态下修改一个字符: r插入状态下修改一个单词: cw修改一行: cc从当前位置任意: R查找在命令状态下输/+要查找的字符运行完后还在命令状态下n光标指示开头 $结尾 /查找空白行复制粘贴在命令状态下先复制再粘贴执行完后还在命令状态复制n行:nyy粘贴到光标下面:p

5、粘贴到光标上面:P复制27行在8行下面:2,7 t 8复制单词:ywp粘贴到光标右面P粘贴到光标左面Make微语言自助编译语言可执行程序名与源程序名要相同:6 直接到第6行编译链接执行1. 问题vi编辑器2. g+ 转换为可执行程序(结构)3. 把可执行程序执行 ./mytest4. 自动化移动在命令状态下移动4.5.6行到8行下:4,6 m 84 m 8 把4行移动到8行替换在命令状态下替换替换完后还在命令状态下:S/include/INCLUDE/g 被替换 替换只替换找到的第一个从111行的include都替换1,11 S/incldue/INCLUDE/g从1到最后一行(1,$) S/

6、incldue/INCLUDE/g嵌入执行 在命令状态下:!pwd 在哪回车:! ls -l 把611行复制并保存在mytset2上:6,11 w mytest2.cpp程序设计程序:问题 算法(解决问题步骤) 程序 数据结构 属性 结构 对象 操作接口 面向对象 行为:提供服务,职责程序 对象的协作发送消息 脚本程序:面向命令看到mybintar cvfz _yangfan .tar.gz mybin字节数tar tvfz _yangfan .tar.gz解压tar xvfz _yangfan .tar.gz进程之间的关系:进程树 1.通过信号 kill -q 2407杀死 c退出进程间的协

7、作:进程间的通信 2.通过管道pwd|ls -l 查看进程树pwda.txt 在输入到a.txtShell脚本语言Why:Unix 系统维护:自动化BASH shell脚本语言特点:解释型:边解释边执行,不需像c/c+编译链接解释器:pwd,ls -l等都在解释器下存在解释器不一样,语言不一样 语用语言 语法 语意 变量 a=2+2(单个的3个字符) 所有的数据都是字符串 Shell脚本程序 命令:cd,mkdir,g+,vi等 算法:每一个步骤都是命令如何写脚本程序vi mytest.sh1.写解释器:#!/bin/bash2.directory=mybin3 read directory

8、echo “please input directory” pwd ls -l 命令 mkdir mybin2 cd $directory ls -l3. 存盘如何执行:不能直接运行,得改权限 ! rw-chmod u+x mytest.sh 764./mytest.sh1. 直接赋值 directory=mybin2. 从键盘上赋值 read directory 对象之间的关系:1. 包含(关联) 聚合 可单独存在 组合 不可单独存在 2. 继承(泛化)3. 依赖 1.a+b 一个个加 循环解决:算法 2.求和公式:n(n+1)/2bash中所有都是字符串a=2+2 2+2echo $aa=

9、$( 2 + 2 ) 4 echo $a#!/bin/bashNresulttemp1=$( $N + 1 )temp2=$( $N * $temp1 )result=$( $temp2 / 2 )echo “result=$result”while 循环while conditiondodone判断符-lt 小于-le 小于等于-gt 大于-ge大于等于-eq 等于-ne不等于#!/bin/basha=0b=1echo “please input N value”read Nwhile $b -le $N doa=$( $a + $b )b=$( $b+ 1 )doneecho “resul

10、t=$a”编译自动化#!/bin/bashg+ -c my_date.cppg+ -c test_my_date.cppg+ -o test_my_date test_my_date.o my_date.o./test_my_datev语言:一类问题只写一次v语言vi mymake.mktest_my_date:test_my_date.o my_date.og+ -o test_my_date test_my_date.o my_date.otest_my_date.o:test_my_date.cppg+ -c test_my_date.cppmydate.o:my_date.cppg+

11、-c my_date.cppmake -f mymake.mkbc从用户终端上输入结果输入到屏幕上输在终端文件输出到屏幕文件任意文件任意文件进程p 文件 bc进程 文件 管道 管道 echo “2.5*.35” | bc 在终端上输入 8.0 在屏幕输出a=$( echo “2.5*3.5” |bc )echo $a8.0a=$( echo “scale=6;2.3*3.5”|bc )ehco $a7.从文件中读取vi float.sh#!/bin/bashfile_name=float.txtfirst=0secondread a float.txt(可替换为$file_name)浮点数求和

12、vi adder.txt2.33.489.45345.8276.54vi float_sum.sh#!/bin/bashfile_name=add.txtresult=0.0while read adderdoresult=$( echo “$result + $adder” |ba )done file_nameecho “result=$result”chmod 764 float_sum.sh./float_sum.sh选择判断:if conditionthenelsefi#!/bin/bashfile_name=float.txtfirst=1flag=1secondwhile rea

13、d seconddoif $flag -eq 1)thenfirst=$secondflag=0elsefirst=$( echo “scale=6;$first - $second”|bc ) /定义浮点数精度为6位fidone $file_nameecho “result=$second”vi login.sh#!/bin/bashinput_userinput_pass直接设定用户名、密码store_user=xystore_pass=123从文件中读取用户名、密码file_name=user.txtflag=1while read vardoif flag -eq 1 thenstor

14、e_user=$varflag=0elsestore_pass=$varfidone $file_name输入密码echo “please input user_name”read input_userecho “please input password”read input_passif $input_user = $store_user & $input_pass = $store_pass thenecho”logging”elseecho”wrong”输入数据:在文件中数据输出数据算法:+.-.*./while循环,从文件当中获取数据while read adderdodone ad

15、der.txt 替换为 done $1 命令行参数#!/bin/bashfile_name=add.txt文件名为固定换为参数 file_name=$1执行时:./vector.sh add.txt 利用参数传入文件名if $# -ne 1 thenecho”Usage:$0 file_name”exit 1fi多项选择:case exp(待判断的变量) in$flag0)result=$adderflag=1;1)result=$( echo”scale=20;.)flag=2;2).;*) /其余情况.;easc数据不是一行一个的数据23.4545.5432.21678.839.23789

16、3.2121.21for var in setdo.donewhile read line /一行一行读取dofor item in line /每一行,一个词一个词读取doif $flag -eq 0thenresult=$itemflag=1elseresult=$( echo “scale=20;$result - $item)fidonedone $1 A c b p=(a+b+c)/2 S=B a C1.triangle 接口:area triangle.h triangle.cpp triangle.o2. line 接口: length line.h line.cpp line.

17、o3. point 接口: x,y point.h point.cpp point.omain.cpplinux下做c+1.vi triangle_test.cpp#include#include”triangle.h”using namespace std;int main()double x_A,y_A,x_B,y_B,x_C,y_C;cout”input A,B,C”endl;point A,B,C;line AB(A,B),BC(B,C),AC(A,C);triangle tri(AB,BC,AC);cout”Area=”tri.area();return 0;2.vi triangl

18、e.h#include”line.h”class trianglepublic:trianle(line l1,line l2,line l3);double area();private:line _l1,_l2,_l3;vi triangle.cpp#include#include”triangle.h”triangl:triangle(line l1,lne l2,line l3);_l1(l1),_l2(l2),_l3(l3);duoble triangle:area()double p=(_l1.get_len()+_l2.get_len()+_l3.get.len()/2;retu

19、rn sqrt(p*(p-_l1.get_len()*(p-_l2.get_len()*(p-_l3.get_len();vi line.hclass linepublic:line(point p1,point p2);double get_len();private:point _p1,_p2;vi line.cpp#include”line.h”#include”point.h”line:line(point p1,point p2):_p1(p1),_p2(p2);double line:get_len()return sqrt(pow(_p1.get_x()-_p2.get_x(),

20、2)+pow(_p1.get_y()-_p2.get_y(),2);vi point.hclass pointpublic:point(double x,double y);double get_x();double get_y();private:double _x;double _y;vi point.cpp#include”point.h”point:point(double x,double y):_x(x),_y(y);double point:get_x()return _x;double point:get_y()return _y;编译g+ -c point.cppg+ -c

21、line.cppg+ -c triangle.cppg+ -c triangle_test.cpp链接g+ -o test.triangle trianle_test.o triangle.o line.o point.o写make文件vi triangle.mktest_triangle: triangle_test.o triangle.o line.o point.o 目标文件和o文件g+ -o test_triangle triangle_test.o triangle.o line.o point.otriangle_test.o: triangle_test.cppg+ -c tr

22、iangle_test.cpptriangle.o:triangle.cppg+ -c triangle.cppline.o:line.cppg+ -c line.cpppoint.o:point.cppg+ -c point.cpprm *.omake -f triangle.mkvi triangle.mkGCC=g+CFLAG=-cOFLAG=-oOBJ=triangle_test.o triangle.o line.o point.oEXE=triangle_test$EXE:$OBJ$(GCC) $(OFLAG) $ $%.o:%.cpp$(GCC) $(CFLAG) $ =计算3次

23、:M! N! (M-N)!把通用的用函数调出脚本中的函数:先定义再使用,先看主程序需要什么,再去看定义计算fac#!/bin/bash#function defintionUsage()echo “Usage:$0 n”exit 1fac()local input resultinput=$1result=$1if $input -eq 1 thenresult=1elseinput=$( $input - 1 )result=$( $result * $(fac $input) )fiecho $result#main programif $# -ne 1 thenUsagefifac $1

24、chmod 764 fac.sh$./fac.sh 5语意的错误调试 运行时如何调试:1. 收集信息如何收集2. 调试3. OFLAG= -g -o CFLAG= -g -c 收集信息的作用1. gdb ./test.classes 调试器2. l (列出程序) 显示3. 设定断点 b 7(第7行)4. 运行程序 r(run)5. 进行调试 s(step)6. p(print)shell编写菜单程序vi menu.sh#!/bin/bash#fuction definitionedit_fun()echo “please input filename”read filenamevi $file

25、namecompile_fun()echo “please input source target”read sourceread targetg+ -o $source $targetquit_fun()exit 1err()echo “wrong please try again”show_menu()clear /清屏echo “ “echo ” 1.edit file “echo ” pile file “echo “ 3.exit “get_choice()read choicedo_command()case $1 in1)edit_fun;2)comile_fun;3) quit

26、_fun;*)err;esacwait_fun()echo “please input any key to continue”read keymenu()while truedo show_menuget_choicedo_command $choicewait_fundone#main programmenuc+模拟出题 + - * /vi test_iminate.cpp#includeexam.h#includeusing namespace std;int main() exam ju; ju.iminate(); coutiminate test grades :; ju.get_

27、grade(); return 0;vi exam.h#includeitem.hclass exampublic:exam();void iminate();void get_grade();private:item _item11;int grade;vi exam.cpp#includeexam.h#include#include#includeusing namespace std;exam:exam() srand(time(0);int i=0;int left; int right; char oper; int answer; int lf; int rg;int op; fo

28、r(i=0;i10;i+) for(;) lf=rand()%10; rg=rand()%10; op=rand()%4; if(lf!=0&rg!=0) left=lf;right=rg; if(op=0) oper=+;answer=left+right; else if(op=1) oper=-; answer=left-right; else if(op=2) oper=*; answer=left*right; else if(op=3) oper=/; answer=left/right; break; item temp(left,right,oper,answer); _ite

29、mi=temp; void exam:iminate() int i=0; int answer;for(i=0;i10;i+)coutti mu wei : ;cout_itemi.get_left()_itemi.get_oper()_itemi.get_right() right: 10 fen,wrong: 0 fen . endl;coutplese input answer :answer;if(answer=_itemi.get_answer()_itemi.input_score(10);else_itemi.input_score(0);void exam:get_grade

30、() grade=0; int i=0; for(i=0;i10;i+) grade+=_itemi.get_score(); coutgradeendl;vi item.hclass itempublic: item();item(int left,int right,char oper,int answer);void input_score(int sc);int get_left(); int get_right();char get_oper();int get_answer();int get_score();private:int _left;int _right;char _o

31、per; int _answer;int score;vi item.cpp#includeitem.h#includeusing namespace std;item:item()item:item(int left,int right,char oper,int answer) _left=left; _right=right; _oper=oper; _answer=answer;void item:input_score(int sc) score=sc;int item:get_left()return _left;int item:get_right()return _right;char item:get_oper()return _oper;int item:get_answer()return _answer;int item:get_score() return score;vi test.mkGCC=g+CF

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com