1 / 45

第十三章    Linux

第十三章    Linux. 第一节  Linux 简介 第二节  Linux 的特点 第三节 Linux 的命令 第四节 Shell 简介 第五节 Shell 编程. 第一节  Linux 简介. 引子

oistin
Télécharger la présentation

第十三章    Linux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第十三章    Linux • 第一节  Linux简介 • 第二节  Linux的特点 • 第三节 Linux的命令 • 第四节 Shell简介 • 第五节 Shell编程

  2. 第一节  Linux简介 • 引子 1991年Linux出现,最早开始于一位名叫Linus Torvalds的芬兰赫尔辛基大学的学生。他的目的是想设计一个代替Minix(是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统示教程序)的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有 Unix操作系统的全部功能,因而开始了Linux雏形的设计。

  3. 历史 • 1991年10月,脱离Minix的Linux0.02版发布,可以运行bash和gcc。 • 1994年初Linux 1.0 诞生,功能已经完备。 • 1.3版开始向其它硬件平台移植。 • 2.1版开始Linux走向高端。 • 2.4.17开始支持超线程。 • 最新版2.4 2.6(内核版本号)。

  4. FreeBSD和Linux FreeBSD和Linux 是可在i386上运行的免费的操作系统,我们能够使用的也基本上只有这两个UNIX系统: 1. FreeBSD是由最初的BSDUNIX一路发展下来的正统的 UNIX系统,而linux是一个遵循POSIX标准所有系统代码 全部重新编写了的操作系统。 2. FreeBSD是完整的一个操作系统,而linux只是一个内核, 加上各种GNU软件构成的操作系统,所以,才会有很多 的linux系统,如RedHat Linux ,Tubro Linux,兰点linux 等,redhat linux 就是redhat公司对linux内核作必要的修 改,加上redhat挑选的GNU程序构成。

  5. 商业版本的Linux操作系统 Redhat Linux :世界上最流行的Linux发行版之一。 Mandrake Linux:贴近用户的Linux。 Turbo Linux :最早支持中文的Linux 。 Xteam Linux:第一个国产Linux 。 红旗 Linux:中国自己的Linux,政府支持。 蓝点 Linux:中美共同开发的。 Linuxware:易于安装 , 极其类似于Unix。

  6. 第二节  Linux特点 1. 多用户多任务的操作系统。 2. Linux是一款免费的操作系统,基于GPL(General Public License)的架构之下,用户可以通过网络或其他途径免费获 得,并可以任意修改其源代码。 3.完全兼容POSIX 1.0(Portable Operating System Interface for UNIX 一组 OSI 与 IEEE 的规格,用来定义程序与操作系 统 (OS) 之间的接口 (interface),使符合规范的程序能在所有 符合规范的操作系统上执行)标准,这使得可以在Linux下通 过相应的模拟器运行常见的DOS、Windows的程序。

  7. 4. 采用页式存储管理。页式存储管理使Linux能更有效地利用 物理存储空间,页面的换入换出为用户提供了更大的存储空 间。 5. 架构开放,核心程序和系统支持软件大多用 C语言编写。 6. 稳定的系统。Linux 本来就是建立在 Unix 上面发展出来的操 作系统,因此,Linux 具有与 Unix 系统相似的的程序接口跟 操作方式,当然也继承了 Unix 稳定并且有效率的特点。 7. 支持多种文件系统。目前支持的文件系统有:EXT2、 EXT、XIAFS、ISOFS、HPFS、MSDOS、UMSDOS、 PROC、NFS等。Linux最常用的文件系统是EXT2,它的文 件名长度可达255字符,并且还有许多特有的功能,使它比 常规的Unix文件系统更加安全。

  8. Linux环境的建立

  9. 第三节 Linux的命令 1.Linux进入与退出系统 1.1 必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号:1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。2.普通用户--这个帐号供普通用户使用,可以进行有限的操作。 • 当用户正确地输入用户名和口令后,就能合法地进入系统。屏幕显示: [root@loclhost /root] # • 这时就可以对系统做各种操作了。注意超级用户的提示符是“#”,其他用户的提示符是“$”。 1.2 虚拟控制台 Linux是一个真正的多用户操作系统,它可以同时接受多个用户登录,还允许一个用户进行多次登录,按一下Alt-F2键,用户又可以看到"login:"提示符,说明用户看到了第二个虚拟控制台。然后只需按Alt-F1键,就可以回到第一个虚拟控制台。 1.3 退出系统 不论是超级用户,还是普通用户,需要退出系统时,在shell提示符下,键入exit(logout,login,halt,reboot)命令即可。

  10. 2. Linux文件的复制、删除和移动命令 文件系统概述 1 2 3 4 5 6 7

  11. 1.文件类型 d 目录。 l 符号链接(指向另一个文件)。 s 套接字文件。 b 块设备文件。 c 字符设备文件。 p 命名管道文件。 - 普通文件,或者更准确地说,不属于以上几种类型的文件。 文件权限 r 读权限 w 写/更改权限 x 执行该脚本或程序的权限 (第一个字符) - 普通文件 (接下来的三个字符) r w - 文件属主的权限 (再接下来的三个字符) r- - 同组用户的权限 (最后三个字符) r- - 其他用户的权限

  12. 2. 该文件硬链接的数目 1 。 3. 文件的属主 root 。 4. 文件的属主root所在的缺省组(也叫做root ),组名称 root。 5. 用字节来表示的文件长度,记住,不是K字节 836。 6. 文件的更新时间 May 28 04:15。 7. 文件名 anaconda-ks.cfg。

  13. 2. Linux文件的复制、删除和移动命令 2.1 cp命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中 : 语法:cp [选项] 源文件或目录 目标文件或目录 例如:cp data1.txt data2.txt 2.2 rm命令 删除档案: 参数: -i 删除前逐一询问确认。 -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。 -r 将目录及以下之档案亦逐一删除。 语法:rm [options] name... 例如:将 Finished 子目录及子目录中所有档案删除 : rm -r Finished

  14. 2.3 mv命令 将一个文件改名成另一文件,或将数个文件移至另一目录。 : 参数:-i 若目的地已有同名文件,则先询问是否覆盖旧文件。 语法:mv [options] source dest mv [options] source... directory 例如:将档案 aaa 更名为 bbb : mv aaa bbb 将所有的C语言程式移至 Finished 子目录中 : mv -i *.c

  15. 3. Linux目录的操作 3.1 创建目录 mkdir [参数] 目录名 3.2 列出目录和文件 ls 格式:ls [-alrtAFR] [name...] 说明:显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。 参数: -a 显示所有档案及目录 (ls内定将档案名或目录名称开头为“.”的视为隐藏档,不会列出) 。 -l 除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出。

  16. 3.3 目录切换 cd 变换工作目录至 dirName。 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home directory (也就是刚 login 时所在的目录)。 使用方式 : "~" 也表示为 home directory 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。 语法:cd [dirName] 例如: 跳到 /usr/bin/ : cd /usr/bin 跳到自己的 home directory : cd ~ 跳到目前目录的上一层 : cd .. 3.4 删除目录 rmdir。

  17. 4. Linux文本的操作 4.1 连接文件 cat 说明:把文件串连接后传到基本输出(屏幕或加 > fileName 到另一个文件) 例子:cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里。cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档 案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。

  18. 4.2 显示文件内容 more 例子:more -s testfile 逐页显示 testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。 more +20 testfile 从第 20 行开始显示 testfile 之档案内容。 4.3 查找文件内容的命令是grep命令 例如:grep test *.conf 4.4 显示目前登入系统的用户信息 who,whoami,pwd

  19. 4.5 变更文件或目录的权限 chmod 格式如下 : [ugoa...][[+-=][rwxX]...][,...] 其中 u 表示该档案的拥有者 g 表示与该档案的拥有者属于同一个群体(group)者 o 表示其他以外的人 a 表示这三者皆是+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。-c : 若该档案权限确实已经更改,才显示其更改动作 -f : 若该档案权限无法被更改也不要显示错误讯息 -v : 显示权限变更的详细资料 -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

  20. 例如:将档案 file1.txt 设为所有人皆可写 : chmod o+w file1.txt 通过键入 go-rw,告诉系统删除文件 file1.txt 中组群和其它人的读取和写入权限 chmod go-rw file1.txt 4.6 显示目录或文件的大小 du 参数: -a或-all   显示目录中个别文件的大小。 -b或-bytes   显示目录或文件大小时,以byte为单位。 -c或--total   除显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 例如: du –ab test1

  21. 4.7 文件打包 tar 格式: tar 选项 文件目录列表 功能: 对文件目录进行打包备份 选项: -c 建立新的归档文件 -r 向归档文件末尾追加文件 -x 从归档文件中解出文件 -O 将文件解开到标准输出 -v 处理过程中输出相关信息 -f 对普通文件操作 -z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩 -Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩 例如: tar –cvf t1bak.tar /root/test/t1 tar -xvf filename.tar这个命令不会删除 tar 文件,但是它会把被解除归档的内容复制到当前的工作目录下,并保留归档文件所使用的任何目录结构。

  22. 4.8 文件压缩与解压 gzip,unzip 参数: -q或--quiet  不显示警告信息。  -r或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。 例子: 1.压缩一组文件为tar.gz后缀。# tar cvf backup.tar /etc#gzip -q backup.tar或# tar cvfz backup.tar.gz /etc/ 2.释放一个后缀为tar.gz的文件。#gunzip backup.tar.gz#tar xvf backup.tar或# tar xvfz backup.tar.gz 课后练习: zip 和 unzip

  23. 5. Linux文件系统 5.1 关键目录结构 /bin 这个目录存放着最经常使用的命令。 /boot 这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。 /dev 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 /etc 这个目录用来存放所有的系统管理所需要的配置文件和子目录。 /home 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 /lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 /mnt 在这里面中有四个目录,系统提供这些目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/cdrom上,然后进入该目录就可以查看光驱里的内容了。

  24. /proc 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 /root 该目录为系统管理员,也称作超级权限者的用户主目录。 /sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 /tmp 这个目录是用来存放一些临时文件的。 /usr 我们要用到的很多应用程序和文件几乎都存放在usr目录下。

  25. /usr/X11R6 存放X-Window的目录; /usr/bin 存放着许多应用程序; /usr/sbin 给超级用户使用的一些管理程序就放在这里; /usr/doc 这是Linux文档的大本营; /usr/include Linux下开发和编译应用程序需要的头文件,在这里查找; /usr/lib 存放一些常用的动态链接共享库和静态档案库; /usr/local 这是提供给一般用户的/usr目录,在这里安装软件最适合; /usr/man man在Linux中是帮助的同义词,这里就是帮助文档的存放目录; /usr/src Linux开放的源代码就存在这个目录; /var 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

  26. 5.2 inode和EXT2,EXT3 Ext2的特点 1.Ext2 可以支持256字节的长文件名 2.簇最大为 4KB, 则单一文件大小上限为 2048GB, 而文件系统的容量上限为 6384GB 3.ext2在写入文件内容的同时并没有同时写入文件的meta-data(和文件有关的信息,例如:权限、所有者以及创建和访问时间)。换句话说,Linux先写入文件的内容,然后等到有空的时候才写入文件的meta-data。这样若出现写入文件内容之后但在写入文件的meta-data之前系统突然断电,就可能造成在文件系统就会处于不一致的状态。在一个有大量文件操作的系统中出现这种情况会导致很严重的后果。 4.另外但由于目前核心 2.4 所能使用的单一分割区最大只有 2048GB,尽管文件系统的容量上限为 6384G但是实际上能使用的文件系统容量最多也只有 2048GB。 ext3的优点:安全性,完整的日志系统(ext2区别)

  27. inode(index node)文件结构:记录文件的类型、大小、权限、所有者等属性,以及指向数据块(block)的指针。

  28. Inode相关命令: ls –i df -i

  29. 6. 组和用户系统 6.1 创建用户 useradd(adduser) 用户名 passwd 用户名 账号名称 用户口令 用户标识符 组标识符 用户相关信息 用户目录 用户环境 6.2 停用或删除用户 停用用户 vi /etc/passwd中的用户注释掉(#) Userdel –r 用户名 (删除用户的所有目录)

  30. 6.1 创建组 groupadd 组名 组名称;加入该组的口令;组标识符(0~499系统用);用户账号(自建组一般是空白的) 6.2 删除组 groupdel 组名

  31. 7. 挂接及mount,umount的使用 • 在Linux下使用优盘 • 在Linux下使用光驱 1)创建一个目录,用来挂上光盘目录树: mkdir /mnt/cdrom 目录名可以根据你自己的习惯命名; 2)插入光盘,执行“mount –t iso9660 /dev/hdc /mnt/cdrom”命令; 注意:如果你的光驱接在第一硬盘线的从盘上,需将/dev/hdc改为/dev/hdb;3)然后你就可以通过访问/mnt/cdrom来实现对光盘访问; 4)当你不使用时,执行“umount /mnt/cdrom”<必须不在/mnt/cdrom 目录下>,再取出光盘。 • 在Linux下使用软驱 1) 与光盘类似,创建floppy目录; 2) 软盘插入后,执行“mount –t msdos /dev/fd0 /mnt/floppy”命令 注意:若是软盘中是长文件名格式的,将上条命令中的“msdos”改为“vfat”, 若是 Linux文件格式,则去掉“-t msdos”;3) 当你不使用时,执行“umount /mnt/floppy” ”<必须不在/mnt/ floppy 目录下>,再取出软盘。

  32. 8. 管理进程 如何管理进程? 进程是程序的一次执行。可以使用“ps –auxw”列出在当前正在执行的进程的详细信息,包括每个进程都有的进程ID号。你可以通过“kill 进程ID号”来终止这个进程。

  33. 9. vi编辑器(全屏幕编辑器) 另一种是emacs编辑器。 vi的三种操作模式 • 编辑模式 • 插入模式 • 命令模式

  34. 1.进入和退出 :q; :q!; :wq 2.复制和粘贴 nyy ;nyw;p 3.查找和替换 在命令模式下,“/查找的字符串” / 字符串在光标之后寻找该字符串 ? 字符串在光标之前寻找该字符串 n 往下继续查找下一个相同的字符串 N 往上继续查找下一个相同的字符串 4.上下左右 h(左)l(右)j(下)k(上)

  35. 多文档编辑 • 编辑其它文档:edit foo.txt • 编辑下一个文档:next • 编辑前一个文档:previous • 如果你想查看整个列表中就有哪些文件, 使用命令 :args

  36. 第四节  Shell简介 • Shell是什么 Shell是一种具备特殊功能的程序,它是介于使用者和 UNIX/Linux 操 作系统之核心程序(kernel)间的一个接口。其实shell 也是一支程序,它 由输入设备读取命令,再将其转为计算机可以了解的机械码,然后执行它。 ● 用户与Linux的接口 ● 命令解释器 ● 支持复杂的编程语言(通过在多条命令的序列中使用变量和流程控制,Shell可以作为一名复杂的编程语言。) Shell有很多种,如:csh,tcsh,pdksh,ash,sash,zsh,bash等。Linux的缺省Shell为bash(Bourne Again Shell)。

  37. 各种操作系统都有它自己的 shell,以 DOS 为例,它的 shell 就是 command.com 檔。如同 DOS 下有 NDOS,4DOS,DRDOS 等不同的命令解译程序可以取代标准的 command.com ,UNIX 下除了 Bourne shell(/bin/sh) 外还有 C shell(/bin/csh)、Korn shell(/bin/ksh)、Bourne again shell(/bin/bash)、Tenex C shell(tcsh) … 等其它的 shell。 • UNIX/Linux 将 shell 独立于核心程序之外,使得它就如同一般的应用程序,可以在不影响操作系统本身的情况下进行修改、更新版本或是添加新的功能。

  38. 第五节 Shell编程 • 编写Shell的工具 Linux下的文本编辑器vi等。 • 执行Shell的方法 一、设定权限 # chmod u+x hello # ./hello 二、bash内建的指令 # source hello # . hello 三、解释器执行 # sh hello或bash hello

  39. Shell下的变量赋值 • 用户定义的变量 变量名=值 例子: $myname=gyl $echo $myname gyl $echo myname myname • 位置变量 $0 $1 $2……

  40. Shell下的特殊字符 • 特殊字符 ‘:取代命令字符。Alias dir=‘ls -al’ *:对应任何字符串,字符或空字符串。 ?:对应任何单一字符 .:当前目录 ..:上层目录 ;:多命令分割 >:把执行结果输入到一个文件中,若该文件已经存在,则原来内容会被删除 >>:把执行结果附加到一个已存在的文件后面 \:转义字符,解除特殊符号的含义 |:管道,前一个命令的结果给下一个命令用 ||:OR运算 []:对应括号中任意范围的字符 [!]:排除对应括号中任意范围的字符

  41. Shell下的特殊字符 • 特殊指令 test指令:有关文件方面的测试 -f 文件名 若文件存在并且是普通文件,则测试条件为真 -d文件名 若文件存在并且是目录文件,则测试条件为真 • 特殊字符 “” 内的是普通字符(除了$,倒引号,反斜杠外) ‘’ 普通字符 `` 被shell当命令对待

  42. Shell下的控制结构 • If语句 if 测试条件 then 命令表1 else 命令表2 fi 例子: #!/bin/bash # filename=ifdemo if test –d “$1” then echo $1 else mkdir $1 fi

  43. Shell下的控制结构 • 循环语句(while,until,for) 1. while 测试条件 do 命令表 done 2. until 测试条件 do 命令表 done 3. for 变量 in 参数表 do 命令表 done

  44. Shell下的控制结构 • 循环语句例子 #!/bin/bash # filename=whiledemo while test –d $1 do sleep 5 done echo dir $1 does not exist…

  45. Shell编程的用例 • 永远的Hello World #!/bin/sh # Filename=Hello echo “Hello World!” • 新建和移动 #!/bin/bash # filename tt srccp=$1’/*’ paracp=‘-fr’ if test –d $2 then # rm ‘-fr’ $2 # mkdir $2 cp $paracp $srccp $2 else mkdir $2 cp $paracp $srccp $2 fi

More Related