4.28k likes | 4.82k Views
Linux 操作系统. 吴翔虎. 第一章 Linux 概述. Linux 是一套免费使用和自由传播的类 Unix 操作系统,它主要用于基于 Intel x86 系列 CPU 的计算机上。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的 Unix 兼容产品。 Linux 最早由一位名叫 Linus Torvalds 的计算机爱好者开发,他的目的是设计一个代替 Minix 的操作系统,这个操作系统可用于 386 、 486 或奔腾处理器的个人计算机上,并且具有 Unix 操作系统的全部功能。. Linux 概貌.
E N D
Linux操作系统 吴翔虎
第一章 Linux概述 Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 Linux最早由一位名叫Linus Torvalds的计算机爱好者开发,他的目的是设计一个代替Minix的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能。
Linux概貌 Linux以它的高效性和灵活性著称。它能够在个人计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux可在GNU(“不是UNIX”工程的缩写)公共许可权限下免费获得,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。
Linux概貌 Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改和无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。
Linux的主要特点 • 开放性:指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。 • 多用户:是指系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。 • 多任务:它是指计算机同时执行多个程序,而且各个程序的运行互相独立。 • 良好的用户界面 :Linux向用户提供了两种界面:用户界面和系统调用。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。
Linux的主要特点 • 设备独立性:是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。 Linux是具有设备独立性的操作系统,它的内核具有高度适应能力 • 提供了丰富的网络功能:完善的内置网络是Linux一大特点。 • 可靠的安全系统:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。 • 良好的可移植性:是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。
Linux的组成 • LINUX的内核:内核是系统的核心,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。 • LINUX SHELL: Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。 • LINUX文件系统:Linux文件系统是文件存放在磁盘等存储设备上的组织方法。Linux能支持多种目前浒的文件系统,如EXT2、EXT3、FAT、VFAT、ISO9660、NFS、SMB等。 • LINUX应用系统:标准的Linux系统都有一整套称为应用程序的程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。
Linux的主要版本 红旗Linux 冲浪Linux 中软Linux Red Hat Linux Mandrake Linux TurboLinux
文件系统的特点 • 层次结构 • 文件数据的一致对待 • 建立、删除文件的能力 • 文件的动态增长 • 文件数据的保护 • 把外围设备(如终端及磁盘等)作为文件看待
处理环境 • 1、程序与进程 • 程序是一个可执行文件, • 进程是一个执行中的程序的实例; • 2、子进程与父进程 • 一个进程可通过系统调用fork创建一个新进程,称创建的进程为子进程,而创建它的进程称为父进程。 • 3、系统调用的执行—shell命令解释程序 • shell允许三种类型的命令: • 可执行文件; • 包含一系列shell命令的可执行文件; • 一个内部shell命令。
Linux操作系统的服务 • 通过允许进程的创建、终止、挂起及通信来控制进程的执行 • 对进程在CPU上的执行进行公平调度 • 对正在执行的进程分配主存 • 为实现用户数据的有效存储和检索而分配二级存储 • 允许进程对I/O设备进行有控制的存取
Linux对硬件的要求 • 1、用户进程的执行状态:用户态和核心态 • 2、中断与异常 • 中断:允许I/O外设或系统时钟异步终端CPU • 例外:指的是有一个进程引起的非期望事件,如:非法存储寻找,执行特权指令等 • 3、存储管理 • 核心永远驻留在主存中 • 编译程序产生的是虚地址,核心与机器硬件一起协作,建立虚地址到物理地址的转换
第二章 Shell及常用命令 shell是一种命令解释器,它提供了用户和操作系统之间的交互接口。shell是面向命令行的,而X Window 则是图形界面。你在命令行输入命令,shell进行解释,然后送往操作系统执行。shell可以执行Linux 的系统内部命令,也可以执行应用程序。你还可以利用外壳编程,执行复杂的命令程序。shell也可以说是一种程序设计语言。
Shell的类型 Linux 提供几种shell程序以供选择。常用的有Bourne shell( b s h )、C shell( c s h )和Korn shell( k s h )。各个shell都能提供基本的功能,又有其各自的特点。 • Bourne shell是由Steven Bourne 编写的,是UNIX 的缺省shell。Bourne shell编程能力很强。但它不能处理命令的用户交互特征。bash 是Bourne 外壳的增强版。
Shell的类型 • C shell是由加利福尼亚大学伯克利分校的Bill Joy编写的。它能提供Bourne shell所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。很多人认为, C shell的编程能力不如Bourne shell ,但它的语法和C语言类似,所以C程序员将发现C shell很顺手。tcsh 是C shell的增强版本和C shell完全兼容。 • K o r n shell是由Dave Korn 编写的。Korn shell融合了C shell和Bourne shell的优点,并和Bourne shell完全兼容。Korn shell的效率很高,其命令交互界面和编程交互界面都很不错。Public Domain Korn shell( p d k s h )是Korn shell的增强版。
bash shell bash 是大多数L i n u x系统的缺省外壳。它克服了Bourne 外壳的缺点,又和Bourne 外壳完全兼容。ba s h有以下的特点: • 补全命令行。当你在bash 命令提示符下输入命令或程序名时,你不必输全命令或程序名,按Tab 键,b a s h将自动补全命令或程序名。 • 通配符。在b a s h下可以使用通配符* 和?。*可以替代多个字符,而?则替代一个字符。
bash shell • 历史命令。bash 能自动跟踪你每次输入的命令,并把输入的命令保存在历史列表缓冲区。缓冲区的大小由HISTSIZE 变量控制。当你每次登录后,home 目录下的.bash_history 文件将初始化你的历史列表缓冲区。你也能通过history 和fc 命令执行、编辑历史命令。 • 别名。在b a s h下,可用alias 和unalias 命令给命令或可执行程序起别名和清除别名。这样你可以用自己习惯的方式输入命令。
bash shell • 输入/输出重定向。输入重定向用于改变命令的输入,输出重定向用于改变命令的输出。输出重定向更为常用,它经常用于将命令的结果输入到文件中,而不是屏幕上。输入重定向的命令是<,输出重定向的命令是>。 • 管道。管道用于将一系列的命令连接起来。也就是把前面的命令的输出作为后面的命令的输入。管道的命令是|。
bash shell • 提示符。bash 有两级提示符。第一级提示符就是你登录外壳时见到的,缺省为$。你可以通过重新给p s 1变量赋值来改变第一级提示符。当b a s h需要进一步提示以便补全命令时,会显示第二级提示符。第二级提示符缺省为>,你可以通过重新给p s 2变量赋值来改变第二级提示符。一些特殊意义的字符也可以加入提示符赋值中。 • 作业控制。作业控制是指在一个作业执行过程中,控制执行的状态。你可以挂起一个正在执行的进程,并在以后恢复该进程的执行。按下Ctrl+Z 挂起正在执行的进程,用b g命令使进程恢复在后台执行,用f g命令使进程恢复在前台执行。
登陆和退出 Linux 启动后,给出login 命令,等待用户登录。 Login: <输入用户名> Password: <输入密码> 如果是正确的用户名和密码,那么你就会进入Linux 的shell, shell给出命令提示符,等待你输入命令(不要随意以r o o t身份登录,以避免对系统造成意外的破坏)。 使用l o g o u t命令退出外壳。
更改账号密码 语法: p a s s w d Old password: <输入旧密码> New password: <输入新密码> Retype new password: <再输入一次密码>
联机帮助 语法: man 命令 例如: man ls
远程登录 语法:rlogin 主机名[-1 用户名] 例如: rlogin doc 远程登录到工作站doc 中。 rlogin doc -l user 使用user 帐号登录到工作站doc 中。 语法:telnet 主机名或telnet IP地址 例如: telnet doc telnet 140.109.20.251
文件或目录处理 列出文件或目录下的文件名。 语法: ls [-atFlgR] [name] name :文件名或目录名。 例如: ls 列出目前目录下的文件名。 ls -a 列出包括以.开始的隐藏文件的所有文件名。 ls -t 依照文件最后修改时间的顺序列出文件名。
文件或目录处理 ls -F 列出当前目录下的文件名及其类型。以/ 结尾 表示为目录名,以* 结尾表示为可执行文件, 以@ 结尾表示为符号连接。 ls -l 列出目录下所有文件的权限、所有者、文件大 小、修改时间及名称。 ls -lg 同上,并显示出文件的所有者工作组名。 ls -R 显示出目录下以及其所有子目录的文件名。
改变工作目录 语法:cd [name] n a m e:目录名、路径或目录缩写。 例如: cd 改变目录位置至用户登录时的工作目录。 cd dir1 改变目录位置至d i r 1目录下。
改变工作目录 cd ~user 改变目录位置至用户的工作目录。 cd .. 改变目录位置至当前目录的父目录。 cd ../user 改变目录位置至相对路径user 的目录下。 cd /../.. 改变目录位置至绝对路径的目录位置下。 cd ~ 改变目录位置至用户登录时的工作目录。
复制文件 语法: cp [-r] 源地址目的地址 例如: cp file1 file2 将文件file1 复制成f i l e 2。 cp file1 dir1 将文件file1 复制到目录dir1 下,文件名 仍为f i l e 1。
复制文件 cp /tmp/file1 . 将目录/tmp 下的文件file1 复制到当前 目录下,文件名仍为f i l e 1。 cp /tmp/file1 file2 将目录/tmp 下的文件file1 复制到 当前目录下,文件名为f i l e 2。 cp -r dir1 dir2 复制整个目录。
移动或更改文件、目录名称 语法: mv 源地址目的地址 例如: mv file1 file2 将文件f i l e 1更名为f i l e 2。 mv file1 dir1 将文件f i l e 1移到目录dir1 下,文件名 仍为f i l e 1。 mv dir1 dir2 将目录dir1 更改为目录d i r 2。
建立新目录 语法: mkdir 目录名 例如: mkdir dir1 建立一新目录d i r 1。
删除目录 语法: rmdir 目录名或rm 目录名 例如: rmdir dir1 删除目录d i r 1,但dir1 下必须没有文件 存在,否则无法删除。 rm -r dir1 删除目录d i r 1及其子目录下所有文件。
删除文件 语法: rm 文件名 例如: rm file1 删除文件名为file1 的文件。 rm file? 删除文件名中有五个字符且前四个字符为 file 的所有文件。 rm f* 删除文件名中以f 为字首的所有文件。
列出当前目录 语法: p w d
查看文件内容 语法: cat 文件名 例如: cat file1 以连续显示方式,查看文件名file1 的内 容。
分页查看文件内容 语法: more 文件名或cat 文件名| more 例如: more file1 以分页方式查看文件名file1 的内容。 cat file1 | more 以分页方式查看文件名file1 的内 容。
查看目录所占磁盘容量 语法: du [-s] 目录 例如: du dir1 显示目录dir1 的总容量及其子目录的容量 (以KB 为单位)。 du -s dir1 显示目录dir1 的总容量。
文件传输 1. 拷贝文件或目录至远程工作站 语法: rcp [-r] 源地址主机名:目的地址 例如: rcp file1 doc:/home/user 将文件f i l e 1拷贝到工作站 doc 路径/home/user 下。 rcp -r dir1 doc:/home/user 将目录d i r 1拷贝到工作 站doc 路径/home/user 下。
文件传输 2. 自远程工作站,拷贝文件或目录 语法: rcp [-r] 主机名:源地址目的地址 例如: rcp doc:/home/user/file1 file2 将工作站d o c路径 /home/user 下的文件file 1,拷贝到当前工作站的 目录下,文件名为file 2。 rcp -r doc:/home/user/dir1 . 将工作站doc 路径 /home/user 下的目录d i r 1,拷贝到当前工作站的目 录下,目录名仍为d i r 1。
文件传输 3. 本地工作站与远程工作站之间的文件传输 必须拥有远程工作站的帐号及密码,才可进行传输工作。 语法: ftp 主机名或ftp ip地址 例如: ftp doc 与远程工作站doc 之间进行文件传输。 Name (doc:user-name): <输入帐号> Password (doc:user-password): <输入密码> ftp> help 列出ftp 文件传输时可使用的命令。 ftp> !ls 列出本地工作站当前目录下的所有文件名。 ftp> !pwd 列出本地工作站当前所在的目录位置。 ftp> ls 列出远程工作站当前目录下的所有文件名。
文件传输 ftp> dir 列出远程工作站当前目录下的所有文件名。 ftp> dir . |more 分页列出远程工作站当前目录下的所有文件 名。 ftp> pwd 列出远程工作站当前所在的目录位置。 ftp> cd dir1 更改远程工作站的工作目录位置至dir1 之下。 ftp> get file1 将远程工作站的文件f i l e 1拷贝到本地工作站 中。 ftp> put file2 将本地工作站的文件f i l e 2拷贝到远程工作站 中。 ftp> mget *.c 将远程工作站中扩展文件名为c 的所有文件拷 贝到本地工作站中。
文件传输 ftp> mput *.txt 将本地工作站中扩展文件名为txt 的所有文件 拷贝到远程工作站中。 ftp> prompt 切换交互式指令(使用mput/mget 时不是每个文 件皆询问y e s / n o )。 ftp> quit 结束ftp 工作。 ftp> bye 结束ftp 工作。 注意从PC与工作站间的文件传输也可透过在PC端的FTP指 令进行文件传输,指令用法与上述指令大致相同。
文件权限设定 1. 改变文件或目录的读、写、执行权限 语法:chmod [-R] mode name n a m e :文件名或目录名。 mode: 3个8位数字或r w x的组合。 r- r e a d (读),w - w r i t e (写) x - e x e c u t e (执行) u - u s e r (当前用户),g - g r o u p(组) o - o t h e r(其他用户)。
文件权限设定 chmod 755 dir1 对于目录d i r 1,设定成任何使用者 皆有读取及执行的权利,但只有所有者可做修改。 chmod 700 file1 对于文件f i l e 1,设定只有所有者 可以读、写和执行的权利。 chmod u+x file2 对于文件f i l e 2,增加当前用户可 以执行的权利。 chmod g+x file3 对于文件f i l e 3,增加工作组使用 者可执行的权利。 chmod o-r file4 对于文件f i l e 4,删除其他使用者 可读取的权利。
文件权限设定 2.改变文件或目录的所有权 语法:chown [-R] 用户名 name n a m e:文件名或目录名。 例如: chown user file1 将文件file1 改为用户user 所有。 chown -R user dir1 将目录d i r 1及其子目录下面的 所有文件改为用户user 所有。
检查自己所属的工作组 语法:g r o u p s
改变文件或目录工作组所有权 语法:chgrp [-R] 工作组名 name n a m e:文件名或目录名 例如: chgrp vlsi file1 将文件file1 的工作组所有权改为vlsi 工作组所有。 chgrp -R image dir1 将目录d i r 1及其子目录下面的 所有文件,改为image 工作组所有。
改变文件或目录最后修改时间 语法:touch name n a m e:文件名或目录名。