您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 基于操作系统的编程复习
基于操作系统的编程复习张玉宏yhily@126.com第一章•1Linux的特性•2.C语言的特点•3.LinuxShell的提示符及磁盘(U盘、光盘,硬盘等)的挂载•4.常用的Shell命令1.4.2LinuxShell•Shell有两种提示符:#和$。•图1-30所示的终端提示符是#。以“#”为提示符表明该终端是由root用户打开的,root用户具有系统最高权限,因此可以输入任何可用的命令1.4.2LinuxShell•Shell有两种提示符:#和$。•一般用户打开的终端的提示符是“$”•比如halt命令只能由root使用,普通用户在“$”提示符下输入halt命令,系统认为是一个无效命令。•提示符的其他部分分别表示[登录用户名@主机名当前目录]。1.4.2LinuxShell•Shell命令的基本格式是:•命令名[选项]参数1参数2……•其中方括号中的选项对命令来说是可选的,一条命令可以有0个或多个参数。•选项是对命令的特别定义,也可以理解为选项告诉命令具体做什么。•选项通常以“-”开始,后接一个或多个字母,如ls-al,有的选项以“--”开头,后面一般跟着一个单词,比如--number。•很多“--”格式的选项可以用“-”加上第一个字母来替代,如--number可以用-n来替代。掌握:Linux系统挂载U盘和硬盘光驱的问题•Linux挂载U盘:•1、插入u盘到计算机,如果目前只插入了一个u盘而且你的硬盘不是scsi的硬盘接口的话,那它的硬件名称为:sda1。•2、在mnt目录下先建立一个usb的目录(如:[root@localhostroot]#mkdir/mnt/usb)Linux系统挂载U盘•4、卸载U盘:umount/mnt/usb•5、删除usb目录:rm-rf/mnt/usb•在实际中操作中,直接加挂一个windows的分区,中文的文件名和目录名会出现乱码,为了避免这种情况可以指定字符集,命令如下:•mount-tvfat/dev/sdb1/mnt/usb-ocodepage=936,iocharset=cp936注意:cp936是指简体中文,cp950是指繁体中文。2.加挂NTFS文件系统•同样对于中文的文件名和目录名会出现乱码的问题可以指定字符集,不过和加挂vfat分区不同,实际中用以下命令是可行的:•mount-tntfs-oiocharset=cp936/dev/hda2/mnt/c-r•mount-tntfs-oiocharset=cp936,rw/dev/hda2/mnt/c•注意:cp936是指简体中文,cp950是指繁体中文。•卸载删除同上!三.Linux自动挂载硬盘•打开/etc找到里面的fstab文件进行编辑,如果你是以管理员身份登入的话,可以直接右键--打开方式--gedit,可以直接在后面追加行:•/dev/hda6/mnt/winevfatcodepage=936,iocharset=cp936,defaults,umask=000•/dev/hda5/mnt/windvfatcodepage=936,iocharset=cp93600四.Linux挂载光驱:•命令:mount-tiso9660/dev/hdc/mnt/cdrom•卸载删除同上!Linux系统中的虚拟终端Linux的字符界面称为虚拟终端或虚拟控制台,可为用户提供多个互不干扰、独立工作的工作界面。Linux的虚拟终端默认有7个,其中从第1个到第6个虚拟终端是字符界面而第7个则是图形化用户界面,虚拟终端之间可以相互切换Linux系统中的虚拟终端•在字符界面时Alt+F1-Alt+F7可从字符界面的虚拟终端切换到其他虚拟终端。•如果已经启动了X-Window,则可以使用Ctrl+Alt+F1(F2、F3、F4、F5、F6均可以)进入字符状态,按Ctrl+Alt+F7回到X-Window虚拟机下Linux的虚拟终端切换•vmware安装的linux9,一按下ctrl+alt,就回到windows平台/Virtualpc安装的linux9,一按下alt,就回到windows平台•在xwindow下输入init3,进入字符界面,在字符界面输入init5,回到xwindow•init0关机init3字符界面init5图形界面init6重启•在字符界面startx命令也可以回到x-window!Linux常用目录的含义•/bin存放着使用者最经常使用的命令,例如ls等。•/boot存放的是启动Linux时使用的一些核心文件。•/devdev是device(设备)的缩写。这个目录下是所有Linux的外部设备,在Linux中设备和文件是用同种方法访问的。例如:/dev/hda代表第一个物理IDE硬盘。•/etc这个目录用来存放系统管理所需要的配置文件和子目录。•/home用户的主目录,比如说有个用户叫wang,那他的主目录就是/home/wang。•/lib这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的.dll文件。几乎所有的应用程序都须要用到这些共享库。•/mnt这个目录是空的,系统提供这个目录是让用户临时挂载别的文件系统。常用的SHELL命令(重要:牢记)仅仅列几个…注销在字符界面下,注销可使用的方法有两种:输入“exit”或者使用Ctrl+D快捷键。重启当需要重新启动计算机时,输入“reboot”或者“shutdown–rnow”命令即可。ls命令•格式:ls[选项][文件|目录]•功能:用来列出目录的内容。•参数:-l(显示文件和子目录详细信息)-a(表示要列出所有的文件)-d(显示目录信息)-t(按照时间顺序显示)-R(递归地显示目录中的文件和子目录信息)常用的SHELL命令…mkdir命令•功能:建立目录。•参数:-p(建立所有不存在父目录的目录)•例1:$mkdir-pxnd/wll在当前目录下建立xnd和xnd下的wll的目录,也就是连续建立两个目录(xnd和xnd/wll)。(不带参数只能建一级目录)rmdir命令•功能:删除一个空的目录。•参数:-p(递归删除目录)•例1:$rmdir-pxnd/wll将删除xnd下的wll的目录,若xnd目录为空也删除它。注:不带参数是只是删除wllcp命令•功能:复制文件或目录。•参数:-f(强行覆盖)-i(覆盖时询问)-r(拷贝目录)•例1:$cp-r/usr/xu//usr/liu/将/usr/xu目录中的所有文件及其子目录拷贝到目录/usr/liu中。第二章•1.C语言关键的语法,熟练掌握面试题所涉及到的语法点。•2.掌握如果利用GCC编译一个C语言文件•3.掌握常用的vim命令•4.掌握Makefile的编写•4.掌握GDB调试程序的逻辑错误•(复习原则:看懂课件所所涉及到的例题)5、请找出下面代码中的所有点错误,并给出修改方案说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”1、#includestring.h2、main()3、{4、char*src=hello,world;5、char*dest=NULL;6、intlen=strlen(src);7、dest=(char*)malloc(len);8、char*d=dest;9、char*s=src[len];10、while(len--!=0)11、d++=s--;12、printf(%s,dest);13、return0;14、}方法1:intmain(){char*src=hello,world;intlen=strlen(src);char*dest=(char*)malloc(len+1);//要为\0分配一个空间char*d=dest;char*s=&src[len-1];//指向最后一个字符while(len--!=0)*d++=*s--;*d=0;//尾部要加\0printf(%s\n,dest);free(dest);//使用完,应当释放空间,以免造成内存汇泄露return0;}vim命令学习-1(仅列举部分)•1.欲进入vim编辑器(从命令行提示符),请输入∶vim文件名回车•2.光标在屏幕文本中的移动既可以用箭头键,也可以使用hjkl字母键。•h(左移)j(下行)k(上行)l(右移)•3.欲退出vim编辑器,请输入以下命令放弃所有修改∶•ESC:q!回车•或者输入以下命令保存所有修改∶•ESC:wq回车vim命令学习-2•4.在正常模式下删除光标所在位置的字符,请按∶x•5.在正常模式下要在光标所在位置开始插入文本,请按∶•i输入必要文本ESC•特别提示∶按下ESC键会带您回到正常模式或者取消一个不期望或者部分完成的命令vim命令学习-3•1.欲从当前光标删除至单字/单词末尾,请输入∶dw•2.欲从当前光标删除至当前行末尾,请输入∶d$•3.欲删除整行,请输入∶dd•vim命令学习-4•4.在正常模式下一个命令的格式是∶•[number]commandobject或者command[number]object•其意是∶•number-代表的是命令执行的次数•command-代表要做的事情,比如d代表删除.object-代表要操作的对象,比如w代表单字/单词,$代表到行末等等。$(totheendofline),etc.vim命令学习-4•dnw:删除n个单词•dne:也可,只是删除到单词尾•dnl:向右删除n个字母•dnh:向左删除n个字母•dnj:向下删除n行•dnk:向上删除n行•d$:删除当前光标到改行的行尾的字母•dd:删除一行vim命令学习-4•5.欲撤消以前的操作,请输入∶u(小写的u)•欲撤消在一行中所做的改动,请输入∶U(大写的U)•欲撤消以前的撤消命令,恢复以前的操作结果,请输入∶CTRL-R1.gcc编译器选项•-o选项,表示我们要求输出的可执行文件名.•-c选项表示我们只要求编译器输出目标代码,而不必要输出可执行文件.•-g选项表示我们要求编译器在编译的时候提供我们以后对程序进行调试的信息.1.gcc编译器选项•知道了这三个选项,我们就可以编译我们自己所写的简单的源程序了•如果你想要知道更多的选项,可以查看gcc的帮助文档,那里有着许多对其它选项的详细说明.3.Makefile的编写•假设我们有下面这样的一个程序,源代码如下:/*main.c*/#includemytool1.h#includemytool2.hintmain(intargc,char**argv){mytool1_print(hello);mytool2_print(hello);}3.Makefile的编写/*mytool1.c*/#includemytool1.hvoidmytool1_print(char*print_str){printf(Thisismytool1print%s\n,print_str);}/*mytool1.h*/#ifndef_MYTOOL_1_H#define_MYTOOL_1_Hvoidmytool1_print(char*print_str);#endif/*mytool2.h*/#ifndef_MYTOOL_2_H#define_MYTOOL_2_Hvoidmytool2_print(char*print_str);#endif/*mytool2.c*/#includemytool2.hvoidmytool2_print(char*print_str){printf(Thisismytool2print%s\n,print_str);}3.Makefile的编写•当然由于这个程序是很短的我们可以这样来编译gcc-cmain.cgcc-cmytool1.cgcc-cmytool2.cgcc-omainmain.omytool1.omytool2.o这样的话我们也可以产生main程序,而且也不时很麻烦.•但是如果我们考虑一下如果有一天我们修改了其中的一个
本文标题:基于操作系统的编程复习
链接地址:https://www.777doc.com/doc-3295932 .html