1、ppt课件.1Welcome!嵌入式Linux系统培训Linux操作系统入门ppt课件.2一周课程安排一、Linux操作系统结构;常用的Linux Shell命令二、开发环境使用(ultraedit、nfs、samba、超级终端(wins)、 minicom(linx) Shell编程实验三、编译器GCC使用;调试器GDB; 项目管理工具MAKE 标准I/O开发,文件I/O操作编程四、实验:设置编译环境; 文件I/O实验(包括如何实验GCC,MAKE)ppt课件.3Linux是什么? Linux是一种计算机操作系统和它的内核的名字。它也是自由软件和开放源代码发展中最著名的例子。ppt课件.4L
2、inux是一种?Linux是一种Unix类操作系统Unix类?ppt课件.5Linux的诞生1991年,Linus Torvalds还是芬兰赫尔辛基大学的一名学生,最初用汇编语言写了一个在80386保护模式下处理多任务切换的程序,后来从Minix中得到灵感,发誓要写一个比Minix更好的Minix,于是开始写了一些硬件的设备驱动程序、一个小的文件系统这样0.0.1版本的Linux就出来了,但是他必须在有Minix的机器上编译以后才能玩,这时候的Linus已经完全“走火入魔”了,决定完全脱离Minix,于是在1991年10月5号发布了Linux0.0.2版本,这个版本已经可以运行bash(一种用
3、户与操作系统内核通讯的软件)和gcc(GNU C编译器)了ppt课件.6Linux的编年史11991年11月,芬兰赫尔辛基大学的学生Linus Torvalds写了个小程序,取名为Linux,放在互联网上。1993年,在一批高水平黑客的参与下,诞生了Linux1.0版21994年,Linux的第一个商业发行版Slackware问世31996年,美国国家标准技术局的计算机系统实验室确认Linux版本1.2.13(由Open Linux公司打包)符合POSIX标准41999年起,多种Linux的简体中文发行版相继问世。国内自己创建的有Blue Point Linux、Flag Linux、Xter
4、m Linux等,美国有Xlinux、TurboLinux等52001年,Linux2.4版内核发布62003年,Linux2.6版内核发布7现在i市场上出现多种Linux发行版iiLinux广泛用于桌面系统、嵌入式系统、网络服务器系统iii众多大厂商参与Linux的开发工作,Linux可用软件越来越多ppt课件.7开启你的Linux旅途ppt课件.8第一步如何使用Vmware打开RedHat Linux演示.ppt课件.9Linux的启动与初始化Linux Boot StopBIOSopen the powerkernel/bootlilo/grabmingettyinitshelllogi
5、n-linux perationLogon program引导启动第一个进程ppt课件.10第二步:登陆Linux系统终端模式 Linux Login Password: 终端提示符 $ #Xwindow模式Red Hat Linux release 7.3(Valhalla)Kernel 2.4.18-3 on an 1686localhost login: rootPassword: 123456localhost login: rootPassword:_Last Login: Sun Sep 11 20:You have new mail.rootlocalhost root#_loc
6、alhost login: sunkangPassword:_sunkanglocalhost sunkang$ppt课件.11Linux:登陆与退出logout:退出登录(exit)reboot:重启系统shutdown:关闭系统poweroff:关闭系统halt:系统挂起 ppt课件.12第三步:如何启动终端在菜单中,选择“系统设置”-”终端”ppt课件.13开始使用“终端”下面将介绍的是:1、 Linux操作系统的根文件系统(目录)2、 Linux操作系统的系统文件结构3、常用的Linux操作系统shell命令ppt课件.141、 Linux操作系统的根文件系统FHS:Filesyste
7、m Hierarchy StandardFHS: 规范档案目录的命名及存放标准大多数Linux系统遵循FHSLinux:目录&路径目录:Directory.路径 -绝对路径例:/usr/src/linuxppt课件.15根文件系统基本文件系统结构至少含有以下目录:/dev、/proc、/bin、/etc、/lib、/usr、/tmp最基本的应用程序,如sh、ls、cp、mv等最低限度的配置文件,如rc.d、inittab、fstab等设备:/dev/hd*、/dev/tty*、/dev/fd0基本程序运行所需的库函数ppt课件.161、 Linux操作系统的根文件系统以Redhat为例/bin
8、 -linux常用的命令,如cp, ls, ping, mount, vi, tar, kill, grep, rpm, dd, ps, ln, gzip, cat等/boot-启动文件,如vmlinuz/dev-设备文件,如fd0(软盘), hda (第一硬盘), hdal, hdb, sda, sdal, cdrom(hdc), mouse(psaux), 等;hd-harddisk;sd-scsi/etc-配置文件,如hosts, lilo.conf, inittab, rc,d(dir), samba/smd.conf等ppt课件.17根文件系统/home,/root -每个用户在ho
9、me下有一个自己的目录。 -root的在/root -权限和保护/lost+found-Lost? found!一些丢失的文件可能可以在这里找到/lib-共享库相关文件/mnt-mount文件系统到这个目录如cdrom,floppyppt课件.18根文件系统/var-执行中记录数据/proc-内存文件,报告程序执行的在线动态信息-如进程id数字目录,sys, net 等 (/proc/sys/net/目录主要包括了许多网络相关的主题,例如:appletalk/,ethernet/,ipv4/,ipx/,及ipv6/。通过改变这些目录中的文件,网络管理员能够在系统运行时调整相关网络参数)/sbi
10、n-启动时需要,系统管理员程序工具、配置等-如fsck(修复分区), lilo(安装引导程序), init(内核启动的第一个用户进程), fdisk等/tmp-临时文件夹/usr-用户应用程序和文件ppt课件.192、 Linux文件系统结构应用程序应用程序存储设备存储设备RelserFSVFS文件访问请求文件访问请求文件系统文件系统EXT3设备驱动程序设备驱动程序NTFSISO9660nVirtual File System是Linux内核中的一个软件层,用于给用户空间的程序提供文件系统接口。n它提供了内核中的一个抽象功能,允许不同的文件系统共存。nVFS提供统一的接口(open,read,
11、write.)访问不同的实际文件系统,所以Linux系统可以同时支持多种文件系统n一个文件系统通常占用一个逻辑分区ppt课件.20EXT2 -The Second Extended File SystemEXT2文件系统的整体结构和布局启动扇区启动扇区块组块组块组块组M块组块组N超级块超级块文件系统组文件系统组描述符表描述符表块位图块位图inode位图位图inode表表数据块数据块n超级块:文件系统基本信息的描述,包括文件系统大小,状态n组描述符:描述每个块组的控制和统计信息nI节点:用于描述一个文件或目录、模式、拥有者信息、文件大小、时间标志、数据块指针ppt课件.21EXT3EXT2的加强
12、版本:EXT3EXT3是一种日志文件系统:它会将磁盘的写入动作完整记录在磁盘的某个区域上,以免突然情况下发生不一致现象。资料有效性资料完整性tune2fs:将ext2文件系统的分区转移成ext3文件系统的分区ppt课件.22设备也是一个文件设备设备命名命名第一个第一个软驱软驱/dev/fd0第二个软驱第二个软驱/dev/fd1第一个第一个硬盘硬盘/dev/hda第一个硬盘第一个分区第一个硬盘第一个分区/dev/hda1第一个硬盘第二个分区第一个硬盘第二个分区/dev/hda2第一个硬盘第三个分区第一个硬盘第三个分区/dev/hda3第一个硬盘第四个分区第一个硬盘第四个分区/dev/hda4第一
13、个硬盘第一个逻辑分区第一个硬盘第一个逻辑分区/dev/hda5第一个硬盘第二个逻辑分区第一个硬盘第二个逻辑分区/dev/hda6依次类推依次类推.第二个第二个硬盘硬盘/dev/hdb依次类推依次类推.ppt课件.233、常用的Linux操作系统shell命令n内核信息n关于当前内核的基本信息- uname命令:uname a (显示内核基本信息) :例如:2.4.18n内核版本- major.minor.patchlevel 核心版本.主号(偶数为稳定版本).第几次的修改(从0开始)n内核源文件所在目录-内核源码通常被置于:/usr/src/linux下ppt课件.24目录相关的命令cd:ch
14、ange directory,切换到其他目录格式:cd directory 例:# cd /usrpwd:present working directory,显示当前路径 格式:pwdppt课件.25实例进入/usr进入/usr/src/linux1、cd src/linux2、cd ./src/linux3、cd src; cd linux回到 /usr1、cd/usr2、cd ./. (回到根目录)进入/home1、cd ./homeppt课件.26lsls命令用于显示目录内容,类似DOS下的dir。ls optionsfilename主要参数:-a,-all:列出所有文件,包括隐藏文件;
15、-l:使用较长格式列出信息;-m:所有项目以逗号分隔,并填满整行行宽;-R,-recursive:同时列出所有子目录层;蓝色表示是目录,绿色表示是可执行文件,红色表示是压缩文件,浅蓝色 表示是链接文件,灰色表示是其他格式文件。ls最常使用的是ls -l。其别名为ll。ppt课件.27文件操作相关的命令mkdir: make directory,创建一个文件夹-如 mkdir temprmdir:remove directory, 删除目录(要求目录是空的)-如 rmdir tempppt课件.28cp and mvcp option (可有可无) 源地址 目的地址如:cp file1 file
16、2 将文件file1复制成file2。cp file1 dir1 将文件file1复制到目录dir1下。cp /tmp/file1 file2cp r dir1 dir2 复制整个目录。mv option 源地址 目的地址mv file1 file2 将文件file1更名为file2。mv file1 dir1 将文件file1移到目录dir1下。mv dir1 dir2 将目录dir1更改为目录dir2。 ppt课件.29rmrm file1删除文件名为file1的文件。rm file?删除文件名中有五个字符且前四个字符为file的所有文件。 rm f*删除文件名中以f为字首的所有文件。rm
17、 r dir1删除目录dir1及其子目录下所有文件。rm rf dir1不须确认,-force(强制)ppt课件.30file file通过探测文件内容判断文件类型。fileoption文件名使用file命令可以知道某个文件究竟是二进制的可执行文件,还是Shell Script文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。file grapgrap: English textfile命令不能探测包括图形、音频、视频等多媒体文件类型。ppt课件.31帮助命令man:用户手册(mannual)手册
18、的章节格式:man command man man man -S 2 readinfo:读取info版的帮助文档格式:info command info infowhatis:从whatis数据库里找某个命令的简单描述 格式:whatis command whatis manApropos:从whatis数据库中找某个字符串格式:apropos keyword apropos print-help:命令参数,显示简单的用户帮助格式:command - - help ppt课件.32lnln命令用来在文件之间创建链接lnoption源文件链接名 -s :进行软链接(Symbolic Link)
19、链接有两种,硬链接(Hard Link)(缺省),符号链接(Symbolic Link)硬链接指通过索引节点来进行的连接。每个文件都有一个编号,称为索引节点号(Inode Index) ppt课件.33ln符号连接(Symbolic Link),也叫软连接。类似于Windows的快捷方式。实际上是一个文本文件,包括有另一文件的位置信息。如:$ ln -s /usr/local/httpd/htdocs gg这样每次进入gg目录就可以访问Web服务器的文档,以后如果不再访问Web服务器的文档时,删除gg即可,而真正的Web服务器的文档并没有删除。ppt课件.34时间设置修改系统时间rootdel
20、l vick# dateTue Mar 28 19:20:31 CST 2006rootdell vick#date -s “Mar 28 19:19”rootdell vick #date -s “2006-3-28 19:19” -s,表示修改日期修改后执行clock -w 或clock -systohc到硬件时钟,也可以用hwclock命令。ppt课件.35Linux的ShellShell:外壳,也就是界面Shell的作用接受输入解释接受到的输入信息输出结果ppt课件.36Linux的ShellLinux下常见的Shell-Sh:Bourne shell-Bash:Bourne Agai
21、n Shell,最常用-Csh:C Shell,加州大学伯克利分校,与 Bourne Shell基本兼容,但是程序设计界面有很大不同-Ksh:Korn Shell,Unix系统下最普遍的-Tcsh:C Shell的加强版-Zsh:Z Shell,最新的Shell,与Bourn Shell兼容ppt课件.37bourne shellV7时发布,作者是AT&T贝尔实验室的stephen bourne,替代了thompson的sh,成为unix的缺省sh,位于bin/sh.the Boutne Again Shell(1),它们是由FSF员工Brian Fox开发的。ppt课件.38BASH she
22、ll特点bash 是大多数linux系统的缺省外壳,提供以下一些服务:补全命令行:按Tab键输入/输出重定向:重定向用于改变命令的输入输出方向。输出重定向用于将命令的结果输入到文件中,而不是屏幕上。输入重定向的命令是。通配符:在bash下可以使用通配符*和?; *可以替代多个字符,而?则替代一个字符。ppt课件.39BASH shell特点管道:用于将一系列的命令连接起来。也就是把前面的命令的输出作为后面的命令的输入。作业控制:可以挂起一个正在执行的进程,并在以后恢复该进程的执行。按下Ctrl+Z挂起正在执行的进程,用bg命令使进程恢复在后台执行,用fg命令使进程恢复在前台执行。设置/删除环境
23、变量 设置:export 变量名=变量值 #TEST=haha; export TEST 查看变量值:#echo $TEST 删除:unset 变量名 #echo $TEST #unset TESTppt课件.40管道符号:|管道符号是什么?|管道符号的作用?将一个命令的输出定向成另一个命令的输入,如:command1|command2,command1的输出将成为command2的输入通常结合more&less使用ls-R1 | morecat file1 | moreppt课件.41启动文件/etc/rc.d/rc.local (init)/etc/profile (可设置环境变量)/.b
24、ash profile(环境变量,登录后仅一次)/.bashrc (由/.bash profile调用,每次打开新的 shell时,该文件被运行)/etc/bashrc(/.bashrc调用,所有用户) 如果没有/.bash profile文件时,bash会查找 /.bash_login,如果也不存在,bash会查找 /.profile文件。 /.bash_logout会在用户logout时被运行,如清除屏幕和临时文件等。ppt课件.42Shell常用键Ctrl+H: 退格Ctrl+C: 中断当前程序Ctrl+Z:暂停程序,使用fg重新启动程序Ctrl+S:停止输出(STOP)Ctrl+Q:启
25、动输出Ctrl+D:in shell log out 等同于在shell里键入exitCtrl+L:清屏clear screenCtrl+M:回车r 0 x0DCtrl+J: 换行n 0 x0Appt课件.43进程管理ps:显示系统中的进程kill:杀掉进程fg:将后台的进程放到前台运行bg:将某个进程放到后台运行ppt课件.44ps and kill ps 查看系统中属于自己的进程。ps aux 查看系统中,包含系统内部的及所有用户的进程。(ps -aef)kill PIDPID:利用ps 命令所查出的进程号。kill 456 终止进程号为456的进程。在后台执行进程的方式语法:命令&例如:
26、gcc file1.c &将编译file1.c文件的工作置于后台执行。ppt课件.45bg and fg按下Ctrl+Z键,暂停正在执行的进程。bg命令,暂停的进程置于后台继续执行。如:gcc sample_1.c(在homebcfile-progarm)ZStoppedbgfg命令,将后台执行的进程置于前台jobs查看正在后台中执行的进程ppt课件.46备份与压缩压缩工具-gzip 和gunzip:压缩&解压缩,其实是同一个文件,系统通过分辨命令名来区分是压缩还是解压缩(压缩文件,不压缩目录)(在homebcfile-progarm) # gzip sample_1.c 得到sample_1
27、.c.gz (see if the original file.) # gunzip sample_1.c.gz得到sample_1.cppt课件.47tar将多个文件(包括目录)打包(可压缩)成一个文件。打成的包常被称为tarball。最常用的命令tar zcvf 1.tar.gz *.gif(或1.tgz也表明是tar.gz格式)tar zxvf 1.tar.gz dir1(dir是一个目录)z:使用gzip压缩 x:解开包 c:生成包f:指定文件名 v:显示详细信息 注意:tar的选项z可以不使用ppt课件.48tar对于.tar.bz2格式使用bunzip2,可以先解压为.tar格式
28、# bunzip2 foo.tar.bz2得foo.tar # tar xvf foo.tartar jxvf*.tar.bz2 注意:j代表bunzip2ppt课件.49locate通过文件名搜索文件,前提是需要通过updatedb建立索引数据库;rootlocalhost#updatedb(需要一定的时间)举例:要找samba.conf文件都位于哪些位置:#locate samba.confppt课件.50whereis用来寻找命令及其帮助文件。比如你想知道fdisk工具放在哪里,就可以用whereis fdisk来查找;#whereis fdiskfdisk:/sbin/fdisk/us
29、r/share/man/man8/fdisk.8.gzppt课件.51whichwhich和where相似,只是在设置的环境变量PATH中寻找;比如;#which fdisk/sbin/fdiskppt课件.52grepgrep:在指定的文件中查找一个字符串例如:-rootbc#grep “add” *.c bar.c:int add(int x,int y) foo.c: printf(“x+y=%3dn”,add(x,y);注意:在文件所在的当前目录查找ppt课件.53find根据给定的参数在指定目录中查找文件 findpath.expression -find /usr/include
30、-name ”stdio.h” -find . mtime +6 mtime -86天以前8天以内修改过的文件。 +n,great than n,-n less than n,n exactly n. -find . -size +10c -size -20c 搜索文件介于10byte到20byte之间。 -size nbckwppt课件.54用户管理useradduseradd,adduser:adduser:添加用户添加用户 - useradd ahkang- useradd ahkangpasswd:passwd:添加用户密码添加用户密码-#-#passwd ahkangpasswd a
31、hkanguserdeluserdel-#userdel ahkang -#userdel ahkang groupadd groupadd :添加组:添加组#groupadd voip#groupadd voipgroupdelgroupdel-# groupdel voip-# groupdel voipUsermodUsermod:修改用户名:修改用户名-#-#usermod usermod G voip ahkangG voip ahkang(在管理员身份下才可进行)(在管理员身份下才可进行)ppt课件.55文件系统的挂载与卸载mount:挂载文件系统格式:mount -t fstyp
32、e device mount-point例:mount -t vfat/dev/sda1 /mnt/usbdiskumount:卸载文件系统格式:umount device OR umount mount-point例:umount/dev/sda1系统启动时自动挂载文件系统:/etc/fstabppt课件.56-t typeminix, ext2, msdos, vfat(win95/98)nfs, iso9660, ntfs(winNT), hpfs(OS/2),auto(自动检测文件系统)列出目前加载的ext2文件系统mount -t ext2模拟加载,查看mount的执行过程,配合-v
33、ppt课件.57文件系统的挂载与检查Linux下使用光盘挂载:mount t iso9660/dev/cdrom/ mnt/cdrom 卸载:umount/dev/cdrom $eject $eject-t (弹出和收回光驱)检查与修复文件系统命令:fsck t type device 例:fsck t ext2/dev/hda2ppt课件.58/proc文件系统一种虚拟文件系统:内核和内核模块用来向进程(process)发送信息的机制(所以叫做/proc)访问方式:基于文件的接口,与其他文件系统一样,只是访问的内容由内核提供,而不是由存储介质提供ppt课件.59/proc文件系统用途查看计算
34、机信息查看内核状态查看运行中的进程信息运行中改变系统设置驱动调试查看/proc文件系统ppt课件.60/proc文件系统cat /proc/cpuinfo CPUcat /proc/interrupts 中断cat /proc/ioports 设备IO端口cat /proc/meminfo 内存信息cat /proc/partitions 所有设备的所有分区cat /proc/pci PCI设备的信息cat /proc/swaps 所有Swap分区的信息cat /proc/versionLinux的版本号uname a 看系统内核等信息ppt课件.61最基本的网络管理netconfig:进行网
35、络配置改动的是/etc/sysconfig/network-scripts/ifcfg-eth?ping:用于网络检测#ping ifconfig:网络配置和网络参数查看# ifconfignetstat 查看网络状况ppt课件.62如果你碰到这些问题?实际使用中需要两台机器,但是现实太残酷,只有一台配置较好的机器,怎么办?需要同一时间使用两个操作系统,如一个Windows和一个Linux,怎么办?如果你想安装一个不熟悉的操作系统,但是对于硬件(特别是硬盘)的操作不熟悉时,为了防止损坏数据,怎么办?其他问题.ppt课件.63常用服务器Apache (外部服务器)(/usr/local/apac
36、he/conf/目录下,三个配置文件httpd.conf, access.conf和srm.conf,来配置Apache服务器的行为. httpd.conf提供了最基本的服务器配置,是对守护程序 httpd怎么样运行的技术描述;srm.conf是服务器的资源映射文件 )FTPSambaNFS SSHD(网络文件系统)TelnetdDHCPNamedSendmailppt课件.64如何配置文件共享服务(Samba)(1)检查Samba服务是否打开?ppt课件.65点击系统设置,选择服务器设置,最后选择服务。检查samba是否打开,如勾上,就代表打开了。如没有就把smb勾上,再点击“重启”。ppt
37、课件.66如何打开tftp服务ppt课件.67如何 打开NFS服务(网际文件共享)如sambappt课件.68软件安装1. 获取源码包2. 配置编译选项3. 编译4. 安装 通常软件会给出自己的安装说明。tar xvfz aaa.tar.gz; cd aaa;./configure; make;make installppt课件.69RPMnRPM是Redhat Package Manager的缩写,是由RedHat公司开发的软件包安装和管理程序。nRPM虽然是为Linux而设计的,但是它已经移植到 SunOS、Solaris、AIX、Irix等其它UNIX系统上了。ppt课件.70RPM的使
38、用两种类型的RPM包src rpm与二进制rpm,前者含有项目的源代码,后者主要为项目的可执行程序。如:tftp-0.28-2.src.rpm tftp-0.28-2.i386.rpm项目名-版本号-修改次数.rpm包类型.rpmppt课件.71rpm命令的使用rpm命令的基本模式安装:rpm i 查询:rpm q验证:rpm V删除:rpm e制作:rpm b一般选项:-v 显示信息-h 用“#“显示完成的进度-vv 显示调试信息ppt课件.72常用的命令形式以tftp软件包tftp.-0.28.2.i386.rpm为例安装一个软件包rpm-ivh tftp-0.28-2.i386.rpm卸
39、载一个软件包rpm e tftp查询一个包内的信息rpm qiq tftp-0.28-2.i386.rpm查询一个包内有哪些文件rpm qlq tftp-0.28-2.i386.rpmppt课件.73常用的命令形式查询一个包是否被安装rpm q tftp查询一个被安装包的信息rpm qi tftp rpm ql tftp查询一个包是否被正确安装rpm V tftp查询某个文件是被哪个包安装的rpm qf usr/bin/tftpppt课件.74ppt课件.75参考资料Linux一句话精彩问答Linux权威指南第四版,MATT Welsh等著,洪峰译精通LinuxStan Kelly-Bootl
40、e著,电子工业出版社Unix入门与提高徐锦波 朱文章,清华大学出版社Linux入门到精通Arman Danesh著 电子工业出版社RPM命令大全http:/ 毛德操/胡希明 浙江大学出版社Unix环境高级编程 Richard Stevens 机械工业出版社Unix网络编程卷一套接口API和X/Open传输接口APIRichard Stevens 清华大学出版社Unix网络编程卷二 进程间通讯Richard Stevens清华大学出版社ppt课件.76Thanks!谢谢 谢谢 !ppt课件.77vi主讲老师:邓耀华ppt课件.78演示用vi写一个“hello world”过程vi hello.c
41、iinput some c text按ESC键:wqppt课件.79Vi与VIM什么是Vi&VIM?Vi:“Visual”,操作过程中可以立即看到结果VIM:“Vi Improved”,与Vi兼容,更适于程序员使用在很多发行版中,VIM已经替代了Vippt课件.80启动和退出如何启动和退出vi&vim?启动:vioptionsfilename:w 将编辑缓冲区的内容写入文件:wq 保存文件并退出:w!强行写入。:q!强行退出vi,不保存修改的内容w:write, q:quite! 重新编辑,放弃缓冲区里的内容ppt课件.81编辑与非编辑模式进入vi的初始模式是非编辑模式(操作模式)可以移动光标
42、,删除、复制和粘贴内容如何进入编辑模式?在非编辑模式下输入i i或或a a或或o o可以进入编辑模式(还有其他一些键)。如何回到操作模式按ESCppt课件.82Vi的使用新建文件:vi 文件名编译: gcc o hello(要输出的文件名) hello.c输出:./ 文件名 例如./helloppt课件.83命令模式如何进入命令模式在操作模式下,输入:或/或?进入该模式,可以实现查找替代内容,读取,存档,退出等功能;如何退出命令模式执行命令即自动退出命令模式,回到操作模式。ppt课件.84模式之间的转换/,?,:ESCi,I,a,Ar,R,o,O编辑模式编辑模式指令列命令模式指令列命令模式操作
43、模式操作模式ppt课件.85编辑方式a将输入文本插入在光标之后(append)A将输入文本插入在当前行的行尾i将输入文本插入在光标之前(insert)I将输入文本插入在当前行的开始o 将在当前行的下一行处打开一新行(open)O将在当前行的上一行处打开一新行r 替换当前字符,不需按ESC。(replace)R 从当前字符开始进行替换,至ESC键为止。ppt课件.86剪切、复制、粘贴如何剪切一行? dd (delete)如何复制一行?yy (yank)如何粘贴? p或者P (paste)剪切和复制n行? ndd nyyppt课件.87有很多细节.如以y与Y命令为例yy 复制当前行;(*)nyw复
44、制从当前字符开始的n个字;(*)ny$ 复制从当前字符开始的n行字符; (*)Y与y$同义;y)复制到下一句的开始:y复制到下一段的开始;nyy 复制从当前行开始的n行;(*)y 回车复制两行;(*)ppt课件.88光标的定位 或k向上移一行 或j向下移一行 或h左移一个字符 或l右移一个字符CTRL+f 向前(上)移动一满屏幕(forward)CTRL+b 向后(下)移动一满屏幕(backward)CTRL+d 向前(上)移动半屏幕(down)CTRL+u 向后(下)移动半屏幕(up)0 移到当前行的开始$移到当前行的结尾回车符移到下一行的开始可在命令前加入数字n作为前缀,使相应命令执行n次
45、。ppt课件.89光标的定位nG使光标定位在第n行。gg光标移动到文件的开头G光标移动到文件的结尾:0光标移动到文件的第1行:n光标移动到文件的第n行: $光标移动到文件的最后一行ppt课件.90回顾如何由编辑模式进入一般模式?-按ESC如何移动到一行的开始和结尾?-在一般模式下按0和$如何移动到文档的开头和结尾?-移动到开头gg或:1-移动到结尾G或:$ppt课件.91回顾如何向前或向后翻一页?-Page Down/Page Up-Ctrl+f/Ctrl+b检索和替换的命令格式?-:addrs/s1/s2/option如何undo和redo-u,ctrl+rppt课件.92参考文献入门学习V
46、im Tutor(运行vimtutor命令)最快捷的帮助Online HelpDoc:-Vim User ManualWebsites:-VIM homepagehttp:/www.vim.org-水木社区VIM版ppt课件.93谢谢 谢谢 !ppt课件.94Welcome!Linux 下的C/C+编译器主讲老师:邓耀华ppt课件.95GCC编译器ppt课件.96示例great.c#includevoid main(void)printf(“hello,how are youn”);vicknec gcc-lab$ gcc o hello hello.cgreat.c:In functionm
47、ain:great.c:3:warning:return type of main is not intppt课件.97GCC GCC是什么? -GCC:GNU Compiler Collection; -GCC支持多种硬件平台和操作系统,能编译多种语言 (C,C+,Java,Ada95,Objective C, .ect);-GCC与G+的关系:GCC用于编译多种语言编写的程序,主要是C;G+用于编译C+程序,以GCC为基础,编译过程中加入了C+的支持库,参数与GCC基本一致;可以利用GCC编译C+程序,但是需要在参数中加入引用的C+库,比如;libstdc+(如gcc o out -lst
48、dc+ main.cc)。ppt课件.98编译器与库PreprocessorCompiler前端前端后端后端OptimizerAssemblerLinker.o.sa.out.cC预处理预处理汇编汇编优化优化语法语义分析语法语义分析代码生成代码生成链接链接GCC编译C源码步骤:预处理- 编译 - 汇编 - 链接ppt课件.99后缀.c C源代码.hC头文件.o目标代码(obj).s汇编代码文件C+文件-file.hh,file.HC+头文件-file.C,file.cc,file.cxx等C+源文件ppt课件.100选项-E输出预处理结果(输出终端)-S 输出汇编代码(great.s)-c输出
49、目标代码(great.o)-o file 输出名为file的可执行文件名 (缺省为a.out)-O O2 优化编译-g: 产生可用于调试的输出ppt课件.101示例gcc o main I./include -DDebug g main.c 输出文件输出文件 头文件搜索目录头文件搜索目录 定义宏定义宏 用于调试用于调试 源文件源文件ppt课件.102预处理(Pre-processing)在该阶段,编译器将C源代码中的包含的头文件如stdio.h编译进来,用户可以使用gcc的选项”-E”进行查看。用法:#gcc -E hello.c -o hello.i作用:将hello.c预处理输出hello
50、.i文件。ppt课件.103root# gcc -E hello.c -o hello.iroot# lshello.c hello.iroot# vi hello.in# 1 hello.c# 1 # 1 # 1 hello.c# 1 /usr/include/stdlib.h 1 3# 25 /usr/include/stdlib.h 3# 1 /usr/include/features.h 1 3# 291 /usr/include/features.h 3# 1 /usr/include/sys/cdefs.h 1 3# 292 /usr/include/features.h 2 3#