LINUX教案(newls).doc_第1页
LINUX教案(newls).doc_第2页
LINUX教案(newls).doc_第3页
LINUX教案(newls).doc_第4页
LINUX教案(newls).doc_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Unix/ Linux 程序开发环境 第1章 LINUX和UNIX概述 linux的几种版本red hat(小红帽):安装简单,功能全,RPM结构,文档全。slackware:tgz包,做服务器比较好,协议多。Tourbolinux:多语言支持,最先支持日语。flag :国产版本,全汉语界面。xteam :北京冲浪平台公司产品。软件的分类商业软件(付费,然后获得服务)共享软件,试用,自由软件(完全免费,任意修改,但无权限制使用) linux的特点完全免费真正多用户多任务多进程的操作系统支持多种硬件平台,Intel,Alpha,powerpc,sparc等等虚拟内存Swap分区具有出色的稳定性和速度性能。提供了丰富的网络功能。可靠的系统安全。 GNU计划许多技术人员认为,源码是人类共同的财富,美国麻省理工大学的Stallman教授在1983年提出GNU计划。(Gnu is Not Unix)一个完全基于自由软件的软件体系。并拟定了一份通用公共版协议GPL(General Public License)。POSIX标准(Portable Operating System Interface for Computing Systems),是由IEEE(Institute of Electrical & Electronic Engineers)和ISO/IEC(International Electric Company) 开发的一簇标准。POSIX 1003.1 标准定义了一个最小的UNIX操作系统接口,任何操作系统只有符合这一标准,才有可能运行UNIX程序。Linux在这个标准的指导下进行开发。做到与绝大多数UNIX系统兼容。 UNIX和LINUX的区别1 UNIX产生于1969年贝尔实验室,Linux于1991年在芬兰。2 UNIX是商业软件升级需要一定费用,而LINUX是自由软件。3 在内核实现方面不完全相同,UNIX 下进程状态和LINUX下进程状态不同,调度方式和调度算法也不尽相同。 LINUX&UNIX下我们的目标Installation, Using and ManagementSystem & Network AdministrationProgramming Environment Advanced Programming in the UNIX/LINUX EnvironmentKernel Internal Architecture & Implementation 这门课我们学习的主要内容LINUX下的安装常用的文件处理命令文件安全LINUX&UNIX下的进程LINUX&UNIX下的程序开发工具:Vi - screen editor,Gcc GNU下的C编译和链接程序的使用Makefile - make;Ar 库的开发和管理程序Gdb - break, step, continue,print, listl shell编程l 读源码Source Code ls ,pwd 等命令的实现。 l UNIX&LINUX下的IPC和多线程动画编程,选择其一进行编程,调试。安装l 设光驱启动l 系统信息收集(Windows)与系统备份 (CPU,内存,声卡,显卡,网卡,网络系统:IP,gateway,DNS,netmask, DHCP)安装类型 (软盘,光盘,硬盘ISO,服务器:ftp,www)l 系统类型与引导方式 (工作站,服务器,笔记本;软盘,硬盘)l 硬盘分区与文件系统挂载 硬 盘linux下的fdisk中,m 显示所有可用命令列表,p 弄出当前分区,n 创建一个分区,d 删除一个分区。t 设置分区类型,l 列出已知分区,v 校验分区,w 存盘退出,q 退出 LINUX系统的组成LINUX一般有4个主要部分:内核、Shell、文件系统和实用工具。1.内核(kernel):是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它从用户那里接受命令送给内核去执行。2Shell:是系统的用户界面。提供了用户与内核进行交互的一种接口,它接收用户输入的命令并把它送入内核去执行,Shell是一个命令解释器,不仅如此,Shell有自已的编程语言,用这种语言编写的Shell程序与其它应用程序具有同样效果。(1) UNIX和LINUX下的常见的Shell:Bash( Bourne Again Shell)是GNU系统默认的Shell。TC Shell和 C shell等(是SUN公司开发的Shell版本)。(2)Shell命令可分为 :内部的命令代码是Shell进程的一部分。比如:ls,pwd,cp等。外部的:是以二进制可执行程序文件或Shell脚本形式驻留在一个文件中。Shell在解释命令时,认为命令行的第一个单词是要执行的命令,把-(连字符)开始其他单词作为选项,剩余的作为命令参数。 比如 ls aF(3) Shell的搜索路径:在Shell下执行一个外部命令,或可执行文件时,shell将搜索文件系统结构中的多个目录,这些目录名被存储在一个环境变量中,该变量叫PATH, 可以用echo $PATH 来查看其值。也可用 PATH=/bin:$PATH:.和 export PATH(4) 显示或更改LINUX系统下SHELL:chsh l 或 cat /etc/shells显示各种shell的位置。还可通过 whereis bash tcsh 来显示两种shell的位置及它们的手册页。更改你系统上所使用的SHELL(Bash 比TC Shell 具有更高级的编程特性。)chsh 输入/bin/tcsh改变默认shell. (5) Shell启动文件每个linux/unix系统都有一个初始的系统启动文件,一般是/etc/profile,这个文件包括了对shell和其他一些实用程序起作用的重要的环境变量的初始设置。另外特定的shell还有一些隐藏的文件或点文件在启动shell时执行。这些文件也称为Shell的启动文件,通常在用户主目录()下.profile及.login文件。当用户登录shell且为Bash时,Bash首先执行/etc/profile文件中命令。然后它顺序寻找/.bash_profile,/.bash_login或/.profile文件。并执行找到第一个可读文件中的命令。在shell登录后自动执行/.bashrc。当Bash退出时,它将执行/.bash_logout文件中的命令。还有一个点文件/.history 记录上次会话的命令。3.Linux下的文件系统 / mntusrdevroothomemeetc bininclude用户2用户1 分区下目录的作用:/root 超级用户,只此一个。所有用户配置文件都在此目录下。/etc 放置所有机器配置文件/boot 引导和存放映象文件/dev 设备(linux下设备当文件用)/bin 目录是用来放对系统最重要的基本命令,如mount,cp,ls而sbin目录存放跟系统管理有关的指令,只有ROOT才可以执行的指令。/home 用户的工作目录/lib 共享库,开机时必要的一些动态连结函数库。/tmp 临时文件/usr 用户软件,用rpm装上去的程序几乎都放在/usr底下。/usr/bin 放置主要的系统程序。/usr/include放置系统的头文件。/usr/src 放置程序的源码。/mnt 挂载地,此目录下有cdrom和floppy两个目录,cdrom用来挂光驱,floppy用来挂软盘。/proc 状态目录,反应进程状态,不占空间,为虚假目录,实际上是在内存里面。 第2章 Linux常用命令 linux下的命令命令的帮助usr share man man 1 系统调用的核心函数文档 man 2库文档 man 3dev中文件的帮助 man 4文件格式 man 5游戏 man 6宏命令 man 7系统管理 man 8例程 man 91列出文件 ls -l (加上-l为长格式,) ls -l /dev/hda* 查看第一块硬盘 ls -l /proc/1 观察1号进程的情况读出的文件分类 - 普通文件 d 目录 b 块设备文件 c 字符设备文件 l 链读,写,执行。三种文件有三类用户,主人,同组人,他人。Unix中无扩展名,如在文件名前加.则为隐藏文件。2.建目录 mkdir 格式:mkdir 文件名(可同时跟多个目录名,同时建立)3.删除目录 rmdir 目录名4移动目录 mv 源目录 目地5显示当前工作目录 pwd6复制目录 cp -r 源 目地7建立文件 touch 文件名(在已有文件时重复使用可更改文件创建时间)8文件拷备 cp 源 目的(也可同时多个文件进行拷备)9删除文件 rm 文件名(rm后加-i为一定询问,-f为不询问)10rm -r 目录名(不管有没有子目录,一律进行删除)11关机 pwoeroff12重启 reboot13定时关机 shutdown now(立刻关机,把now改为时间可定时关闭)14历史 history15清屏幕 clear16移动文件 mv 源 目的(在原目录的移动其实际作用为改名,如目的为目录名为移动)17修改链接数命令 ln 源 目的,改变链接数的另几种方式:(ln -s 源 目地)18确定文件类型 file 文件名文件类型:directory(目录) empty(空) ASCII text (文本) c program (C源程序) date (数据文件) executable (可执行文件) shell(批处理文件) archive (存档文件) block specral (块文件) character special (字符文件)19改变文件权限 chmod 命令格式:chmod 谁 操作符 许可权限 文件名 O(他人) + R U(主人) - W G(同组) = X A(所有)20查看文件内容 cat 文件名(在文件内容过长的情况下,一般使用 less 文件名 的格式,它的作用是每页暂停,按回车下翻一行,按空格下翻一页,如果只查看前几行,可以用head -2 文件名来进行操作,查看最后两行可以用 tail -2 文件名 来进行操作) cat /proc/1/status 查看init进程的情况 cat /usr/src/linux/CREDITS 查看开发者名单21写文件内容 cat 文件名(回车) 输入内容(回车) Ctrl D退出22合成文件: cat 文件名 文件名 新文件名23追加(合并)文件: cat 文件名 新文件名 24查找命令: whereis 命令25改变主人: chown 所有者 文件名26压缩文件: gzip 文件名(加 -l 得到相关数据,加-t进行测试,正常时无反馈 (-l,-t针对压缩后的文件)例:gzip a1.cgzip *.cgzip l a1.c.gzgzip t a1.c.gz27gzip -d 已被压缩的文件名(此命令为解压缩)28解压缩: gunzip 文件名29文件系统的装载命令格式:mount -参数 设备名称 装载点参数-t 指定设备的文件系统的类型。常见的有:ext2 linux目前常用的文件系统。msdos Ms-dos的FAT ,就是fat16vfat windows 98 常用的fat32.nfs 网络文件系统。iso9660 光盘的标准文件系统。ntfs windows NT 2000的文件系统。auto 自动检测文件系统。-o 指定装载文件系统时的选项 ,常见的选项如下:codepage=xxx 如936 代码页。iocharset=gb2312 字符集。设备名称:fd0 软盘cdrom 光盘例:l 挂载光盘: mount /dev/cdrom /mnt/cdrom卸载光盘:umount /mnt/cdrom弹出光盘:ejectl 挂载软盘 mount /dev/fd0 /mnt/floppy卸载软盘:umount /mnt/floppyl 挂载USB:mount -t vfat o codepage=936, iocharset=gb2312 /dev/sda1 /mnt/usb或 mount /dev/sda1 /mnt/usb31.查找:格式:find 路径 -name 文件名 操作 find / -name n* -printfind / -name n*(寻找所有目录下的n打头的文件) find / -name n* -type x(寻找规定类型,x为类型,d是目录,f为普通) find 目录 -name n*(寻找指定目录下的文件) find . -links n(寻找链接数为N的文件) find / -perm nnn(找权限为nnn的文件) find . -name -user username(找主人为username的) find -name -group groupname(找组为groupname的) find -size n(n后加c,为n个字节,n后加k为nk个字节也可以为-size +n或-n,+为大于, -为小于) find / -atime n(n天前访问过的) find / -mtime n(n天前修改过的。例:find / -mtime +18为找所有超过18天没改过的文件) find / -newer file(找在file时间后修改过的) find / -newer 文件名(找比某文件更新的文件) find -name 文件名 -exec 命令 ;执行一个命令 find -name 文件名 -ok 命令 ;在执行命令前进行询问 find -name 文件名 -ok rm -f ;找到某个文件并删除,删除前进行询问。32.模式匹配: 格式: grep 模式 文件名显示带有模式的行: grep -i 模式 文件名(忽略大小写) grep -n 模式 文件名(加行号) grep -c 模式 文件名(显示匹配行数) grep -v 模式 文件名(显示不匹配的行) grep -l 模式 文件名,显示匹配的文件名)33.统计:wc 文件名(统计文件的行,语句,和字符数) wc 文件名 -l(行数) wc 文件名 -W(单词数)wc 文件名 -c(字符数) 34. diff 文件1 文件2,结果如果为 n1an2,n3则表示第二个文件中第n2到n3行的内容加到第一个文件n1行后,此后用开头列出第二个文件n2到n3行内容,如果结果为n1dn2则是第一个文件中第n1行到n2行内容删除才与文件2相同,此后用 开头弄出第一个文件内容,如果结果为n1,n2cn3,n4则表示第一 个文件中第n1行到第n2行内容要用第2个文件的n3到n4行内容替代,用开头弄出第2个文件内容)-i 忽略大小写 -b 忽略Tab健造成的差别35. adduser 用户名36userdel 用户名 37passwd 用户名 省略用户名,改当前登录用户的。38. finger 用户名 查询用户的资料。39. chfn 用户名 更改用户的资料。40. su 改变用户身份su 用户名,表示激活的环境跟用户登录的一样。41groupadd 组名 新增组名。42gpasswd -adr 用户 组名 管理群组与群组密码。-a 将用户加到组名中-d 从组中删除用户。-r 取消群组密码。gpasswd 只有 root 或群组管理员才可以执行,可以用来作群组的管理。43 . newgrp 群组名 登陆到新的群组中44. groupdel群组名 删除群组。例子:#chmod o-rw /dev/fd0#su zfm$mdir a:$su root#gpasswd a zfm floppy#su zfm$mdir a:$newgrp floppy$cat aa.txtaddfldjfdlk ctrl+D$ ls l aa.txt(1)在linux系统下,OS预设只有root和floppy群组可以用软盘,;普通的用户无法查看软盘的内容。转换到root身份之后,用gpasswd a zfm floppy 将zfm加入到floppy群组中,所以对于zfm以后就可以查看软盘内容了。(2) 用newgrp floppy登录到新的群组之后,以后在用户目录下再创建文件或子目录,相应的同组名会发生变化。第3章 文件安全一、 多用户系统下文件保护的方法1 给每个用户一个登录名和一个密码。2 加密需要保护的文件。3 给文件关联访问权限,只有用户的子集可以访问文件操作的子集。二、基于访问权限的文件保护。基于访问权限的文件保护防止用户以非文件所有者登录时的文件互访,做为文件的所有者,具有一定的文件访问权利,可以根据各种文件操作系统规定谁可以或不可以访问某些文件。这种基于用户类型、访问权限类型以及文件操作权限类型的保护策略,是多用户系统下基本的文件保护方法。1用户类型:在LINUX/UNIX系统下用户分为两种,一种是超级用户,以root身份登录,可以访问系统中所有的文件。另一种是普通用户,在LINUX/UNIX系统中每个用户都属于一个用户组,当用户被分配到一个系统帐户后,系统管理员为其设定所属的组。/etc下的group文件包含系统中所有的组和它们的成员。普通用户的类型又分为三种,文件的所有者(user),同组人(group),还有其他人(other)。2文件操作/访问权限的类型在LINUX/UNIX系统下,一个文件有三种权限,r(读),w(写)和x(执行)。对目录而言,具有读权,可以用ls查看其内容,具有写权,可以在它下面创建下一级目录或存放文件,具有执行权,可以用cd命令进入目录。表一文件权限用户类型许可类型读(r)写(w)执行(x)用户(u)110组(g)100其他人(o)000 表二:权限值RwX八进制用rwx和-表示的权限值含义0000-无权限0011-x只执行0102-w-只写0113-wx写和执行1004r-只读1015r-x读执行1106rw-读写1117rwx读写执行4 文件访问权限当新建一个文件或目录时,LINUX根据umask命令的参数设定文件的访问权限。(1) umask 显示当前的掩码。(2) umask 掩码文件的访问权限=默认权限-掩码。其中可执行文件或目录的默认权限是777,文本文件的默认权限权限为666。常用的掩码值是022。例:$umask $umask 022$touch lx1$mkdir a1$umask 077$touch lx2$ ls l lx1 a1 lx25.显示文件访问权限ls l 路径ls -ld 目录 查看指定目录的访问权限6 更改文件的访问权限格式:chmod 选项 八进制模式 文件列表 chmod 选项 符号模式 文件列表选项:-R 递归下降,指定目录下所有文件和子目录的目录设置权限。 -f 强制指定访问权限。例:chmod 700 * chmod 700 chmod 740 a1.cchmod 660 a1.cchmod u=rwx a1chmod ugo-rw a1chmod 6 a1.c 将a1.c 文件的其他人设置为读和写。chmod 60 a1.c 将a1.c 文件的同组人设置为读写,其他人无任何权限。chmod 600 a1chmod 500 c1chmod 300 b1ls -ldmkdir c1/cc2cd a1ls l b1二、 高级文件保护1 SUID位。每个LINUX/UNIX文件都有一个附加的保护位,称之为SUID(set-user-ID)位。如果该附加位是为某个文件而设置的(该文件包含了一个命令的可执行程序,那么当命令执行时,该命令就具有该文件所有者的权限。所以如果一个文件属于根用户并具有SUID位,它就以超级用户的权限运行,比如在/etc/passwd文件设置了SUID位,所以即使普通用户没有写操作权限,运行passwd命令时,也可以对/etc/passwd文件进行写操作。ls /usr/bin/passwd设置用户标识位:chmod 4xxx 文件列表chmod u+s 文件列表。例:ls l a1.cchmod 4700 a1.cls l a1.cchmod u-s a1.cchmod u-x a1.cls l a1.cchmod u+s a1.cls l a1.c2 SGID位组标识位。同SUID一样,允许用户执行一些可以访问重要系统资源的命令,例如,passwd,mkdir 以及ps,当一目录设置了组标识位以后,在此目录下建立的文件或子目录,都采用此目录的组标识符,如果不设置谁在这个目录中建立文件或子目录,这个文件的组标识就是谁的。格式:chmod 2xxx 文件列表chmod g+s 文件列表例1:ls l a1.cchmod 2751 a1.cls l a1.cchmod g-s a1.cchmod g-x a1.cls l a1.cchmod g+s a1.c例2:mkdir lx newgrp floppy mkdir lx1 chmod g+s lx1 su yyyy su zfm cd lx cataa 输入内容,存盘。 cd . cd lx1 cataa 输入内容,存盘。 观察两个文件aa 组标识是不同的。其中设置了组识位的lx1目录下的文件和子目录具有继承性,与lx1的组标识符是相同的。 3 t粘滞位。为目录设置粘滞位可保证无权限的用户不能删除或重命名该目录中其他用户的文件。只有目录的所有者或有足够权限的人才能设置目录的粘滞位。粘滞位通常用于共享目录,该目录中的文件是几个人共有的。历史上,粘滞位是用于经常访问的文件,LINUX将其保留在内存中或外存的交换空间,使得以后在访问这些文件时速度更快。格式:chmod 1xxx 文件chmod +t 文件例1:chmod 1775 a1.cls lchmod 760 a1.cchmod +t a1.cls l例2:su rootcd /homechmod o+rx zfmsu zfmchmod o+rwx f3su zfmchmod +t f3su yyyycd /home/zfm/ffrm -rf *.* 无法删除练习: 1 用户yyyy用命令chmod 700 /home/yyyy为他的主目录设置访问权限。如果yyyy的主目录中的文件cp.new读权限被设置为777,那么任何人都可以对该文件进行读操作?为什么?2 下面的命令有什么作用?chmod 776 a1.cchmod 751 /f3.cchmod u+rx ff/a1.txtumask 0077umaskchmod u+s a1.cchmod 4751 a2.cchmod 2700 a1.cchmod 1750 a1.cchmod +t aaa 3. 要将权限掩码设置为037,应执行什么命令,这样新建文件时其访问权限是什么?4用一个命令设置默认访问模式。在该模式下,你具有读、写和执行权限。与你同组的个具有读和执行权限,其他所有人对于新建可执行文件或目录没有任何权限。如何测试它是否正常工作。 第4 章 LINUX/UNIX进程一、 进程、作业及守护进程1.为什么要引入进程:假设A和B两个进程都要使用同一个外设,当B请求使用时A正在使用,B不得不等待.当多道程序并发执行时,程序的活动与资源的关系变得复杂,为描述系统中各程序活动及其相互关系,引入进程.2.进程的五大特征:(1) 从创建、推进到撤消的过程叫进程的生命周期.(2) 并发:在一个进程结束前允许另一个进程开始运行,各个进程轮流使用资源.为了对各用户公平合理,系统给每一个用户分配一个时间片,对于某一个进程不能总占用CPU,一旦给他分配的时间片用完,CPU就通过中断的办法从一个进程切换到另一个进程.(3) 独立:每个进程独立的申请资源,独立的分配资源.(4) 异步:各进程按自己的需求,各自的速度推进.(5) 结构:一个进程分三部分,程序,数据,进程控制块(PCB块),这三部分统称为进程的实体.小结:OS通过PCB的存在感知进程的存在,当系统创建一个进程就是建立一个PCB,当系统撤消PCB就是进程结束.3PCB的内容:1、进程的ID.2、进程中程序和数据的地址.3、进程现行的状态.4、申请和使用资源的登记.5、进程间相互通讯的关系.6、进程使用CPU的优先级.7、CPU的现场保护.4进程的类型、作业及守护进程(1) 进程根据运行的优先级可分为前台进程和后台进程,其中前台进程的优先级较高,后台进程的优先级较低。在命令或程序运行时后面加&,使之成为后台进程。(2) 一个挂起进程或后台进程称之为作业。(3) 守护进程:就是运行在后台的系统进程,LINUX和UNIX经常用守护进程为用户提供各种类型的服务以处理系统管理任务,比如,打印、电子邮件、远程登录、WEB浏览和查询服务都是由守护进程提供的。打印守护进程即lpd,查询服务finger,电子邮件服务smtpd,Web服务由守护进程httpd处理。二、 进程的控制1、查看进程命令: (1) ps ps -a 显示所有用户进程 ps -u 用户格式 ps -l 长格式 ps -x 没有控制终端的进程 ps -r 正在运行的进程 ps aux 它显示所有具有用户名的进程的详细信息。(2) pstree 显示进程树(3)显示进程属性 ulimit 显示一个用户可同时运行进程的最大数量。Ulimit a 显示系统中所有进程的属性。2.前台、后台和悬挂进程相互转换(1) fg %作业号当命令fg不带作业号执行时,它将当前作业切换到前台。(2) bg %作业号将之前执行挂起的进程转移到后台。当命令不带数时,将当前挂起进程切换到后台继续执行。 例:分别挂起两个进程,然后用bg或bg % 作业号,使之成为后台进程。(3) 显示作业 : jobs(4) 按序运行命令或同时运行命令。 一组命令可作为一个进程运行,也可以一组隔离的进程运行。在一个命令行中可运行多个命令。这些命令可作为独立的进程,并用分号作为命令分隔符,命令用圆括号括起来时可作为一个进程执行。用“&”作为命令

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论