380 likes | 599 Views
操作系统上机实验 1. Linux 基础. 主讲教师:王帅强 http://www2.sdufe.edu.cn/wangsq/ shqiang.wang@gmail.com. 提纲. UNIX 的发展历史 GNU 组织及 Linux 的历史 Linux 基本管理和常用命令 Linux shell 编程. UNIX 的历史. UNIX 最早产生在美国的 Bell 实验室 AT&T 1969 Ken Thompson, Dennis Ritchie 在 AT&T 写出第一个 UNIX
E N D
操作系统上机实验1. Linux基础 主讲教师:王帅强 http://www2.sdufe.edu.cn/wangsq/ shqiang.wang@gmail.com
提纲 • UNIX的发展历史 • GNU组织及Linux的历史 • Linux基本管理和常用命令 • Linux shell编程
UNIX的历史 UNIX最早产生在美国的Bell实验室 AT&T 1969 Ken Thompson, Dennis Ritchie在AT&T写出第一个UNIX 在AT&T公布了第一版的源代码后,被许多厂家和科研机构修改,各自都有自己的名字。 如:IBM 公司的AIX,HP公司的HP/UX,SUN公司的Solaris等。
POSIX标准 • 各种UNIX操作系统为了保持相互之间的兼容性,即保证程序的可移植性,共同遵守一个标准:POSIX标准。 • POSIX标准:指的是一套基本的应用程序接口,如果你写的程序遵循POSIX标准,可以运行在不同的UNIX平台上。
两大流派 • 但不同的操作系统为了保持各自的优势,在习惯上还是有很大区别的。 • 主要有两大流派: • System V5 • BSD(美国加州大学伯克利分校发布版) • 优点:很多(略) • 缺点:价格昂贵
GNU组织 • 1984年,由Richard Stallman组织成立了GNU组织。 • GNU工程:自由软件工程项目 • 最终的目标是创建一个类UNIX操作系统,取代昂贵的商用UNIX操作系统。 • 但直到1990年,才完成了基本的用户程序,如GCC编译器,emacs编辑器等,但内核一直不能发布。 • GNU组织开发软件所需要的资金全部由自由软件基金会(FSF)提供。FSF由各种商业公司赞助提供资金。
GPL(General Public License) • 为了保证GNU的软件可以自由使用和拷贝,GNU组织制订了一个新的法律许可协议:GPL协议。 • 该协议的主要特点: • 允许软件被自由地拷贝 • 允许软件被自由地修改 • 允许软件被修改后自由地传播,但必须提供源代码。 • 很多软件制作者都遵循GPL协议,无数的软件开发人员和软件爱好者将自己的软件通过GPL分布,公布在互联网上,从而形成了一个庞大的GNU社区。
Linux的历史 • Linux 发展的重要里程碑 • 1990, 芬兰的大学生Linus Torvalds 首次接触 MINIX • 1991 中, Linus Torvalds 开始在 MINIX 上编写各种驱动程序等操作系统内核组件 • 1991 底, Linus Torvalds 公开了 Linux 内核 • 这个LINUX内核后来加入了GNU项目,采用GPL协议发布。 • LINUX 内核的加入,大大加速了GNU组织的发展。
内核版本知识 • 内核版本号=主版本号.次版本号.修正次数 • 例如:2.6.5, 2.7.2 • 次版本号为偶数为稳定版 • 奇数为开发版本
GNU/Linux 的历史 有了Linux的GNU组织就完善了。 各种自由应用软件由GNU组织提供 Linus维护最新内核的开发 XFree86组织提供开放的XWindow图形应用系统,用来驱动显卡、显示器。 Knome和KDE组织提供图形桌面。 无数的爱好者提供测试和技术支持。
Linux发布版本 • 由商业公司将LINUX内核和各种应用程序打包,编译成二进制代码,提供给用户安装。 • 1994, Linux 的第一个商业发行版 Slackware 问世 • 1996, 美国国家标准技术局的计算机系统实验室确认Linux 版本 1.2.13(由 Open Linux 公司打包)符合 POSIX 标准。 • 1999, Linux 的简体中文发行版相继问世。 • 流行的分布版本: • Slackware , Fedora (Red hat), Ubuntu • 由自由社区维护的版本debian
Linux环境 用户 图形用户界面 SHELL 内核 硬件
Linux环境 • 内核:内存、进程和设备的管理,调度和执行所有命令,容纳控制系统的驱动程序等。 • SHELL层:接收用户命令并启动进程执行命令。SHELL还允许将进程放到后台运行以及运行SHELL程序。 • 图形用户界面:例如GNOME和KDE图形用户界面系统
Linux的基本管理和常用命令 • 用户管理 • Linux下的用户可以分为三类:超级用户、系统用户和普通用户。 • 超级用户用户名:root, 具有一切权限。一般只有在进行系统维护(如创建用户)和其它必要的情况下才使用超级用户身份登录,以避免系统出现安全问题。 • 系统用户:是Linux系统正常工作所必须的内建的用户,主要是满足相应的系统进程对文件属主的要求而建立的,系统用户不能用来登录。 • 普通用户:大多数用户属于此类。
用户UID 每个用户都有一个数值与之对应,称为UID。 超级用户UID:0 系统用户UID:1---499 普通用户UID:500---60000 关于用户的信息,Linux放在文件/etc/passwd中 可以用cat命令查看该文件的内容。 cat /etc/passwd
组的管理 • Linux的组有私有组、系统组、标准组。 • 私有组:建立用户帐号时,若没有指定帐号所属的组,系统会建立一个组名和帐号名相同的组,称为私有组。该组只容纳一个用户。 • 标准组可容纳多个用户。 • 系统组是Linux系统正常运行所必须的,安装系统或添加新的软件包会自动建立系统组。 • Linux关于组的信息放在文件/etc/group中 可以用cat命令查看group文件的内容:cat /etc/group
其它命令 • 改变用户身份 su
练习 • 添加一个新组:groupadd 命令 • 组属性的修改:groupmod 命令 • 显示/etc/group文件的内容,解释每一行每一列的含义 • 创建新的用户 useradd • 修改用户密码passwd • 修改用户的shell设置 • 改变用户的属性 usermod • 显示/etc/passwd文件,解释每一行每一列的含义 • 注:这些命令都可以通过查看联机帮助学习 • man 命令
实验要求 • 自己设计实验用例,将以上命令掌握,并完成实验报告。
文件系统的安全和存取权限 • Ls –l命令显示的文件列表中-rw-r--r-- • 第1位d/-:文件夹/文件 • 2-4位:owner • 5-7位:group • 8-10位:others • 命令:chmod • 改变文件存取权限的用户只能是root用户或文件主用户 • 符号模式:chmod [who] operator [pemission] filename • 绝对模式:chmod mode filename • Who:u, g, o (owner, group, others) • Operator:+, -, = (add, remove, assign) • Pemission:r, w, x (read, write, execute)
chmod举例 • chmod u=rwx, g+w, o+r myfile • 文件拥有者可读、写、执行; • 同组用户可以写; • 其他用户只能读 • chmod 664 myfile • rwx三位布尔值组成二进制数 • 6 = 110 = rw- • 4 = 100 = r--
改变文件所属用户和组 • chown:改变文件或目录的拥有者或所属组 • chown root testdir,将testdir 的拥有者改为root用户 • chgrp group filename改变文件或目录的所属组 • chgrp root testdir,将testdir 的所属组改为root组
改变文件缺省权限 • 当文件新创建时,有一个缺省的权限,如何改变缺省权限? • umask命令!!! • 直接运行umask命令,得到当前缺省的权限 • 例:umask 022 == umask u=rwx, g=rx, o=rx
关于文件和目录的命令 文件的复制、删除和移动 cp(复制),rm(文件和目录的删除),mv(文件和目录的移动) 目录的浏览、创建与删除 ls (列出文件目录),cd(更改路径),pwd(显示当前工作目录) mkdir,rmdir 定义命令别名alias 例如:alias ll=‘ls –l’ ll unalias ll
实验要求 • 自己设计实验用例,掌握有关文件和目录的基本命令
文件的打包和压缩 • 从internet上下载文件时,很多文件都是打包或压缩文件,例如:wb.txt.gz, longkey.tar.gz • 相关命令:zip ,gzip, tar • 上网找一些打包压缩文件,试着用tar解压释放。 • 将自己的若干文件打包压缩成tar.gz文件。
举例 • 把/home/longkey目录下的所有文件和子目录备份到longkey.tar文件中。 tar –cvf longkey.tar /home/longkey 从longkey.tar文档中恢复数据,放在当前目录下。 tar –xzf longkey.tar.gz • 把/home/longkey目录下的所有文件和子目录以gzip压缩文件的形式备份到longkey.tar.gz文件中。 tar –czvf longkey.tar.gz /home/longkey 从longkey.tar.gz文档中恢复数据,放在当前目录下。 tar –xzf longkey.tar.gz 注意:在释放文件时,若要指定目录,可加-C 目录名选项
Linux常用命令 cat命令 用来将文本文件的内容显示在屏幕上。 如:cat /etc/passwd 在linux系统中,执行一个终端命令行时,通常会自动打开三个文件:标准输入文件(stdin,通常对应键盘)、标准输出文件(stdout)和标准错误输出文件(stderr),后两个文件通常对应屏幕。 cat命令通常会从命令行给定的文件中读取内容显示在屏幕上,但当命令行没有给出文件时,它将从标准输入文件,即键盘输入中读取信息显示在屏幕上。 如:cat
输出重定向和管道 • 输出重定向:就是把命令的标准输出重新定向到指定的文件中。 例如 ls >d.out (输出) 或ls >>d.out (追加) • 管道 |:将一个程序或命令的输出作为另一个程序或命令的输入。 例如:cat sample.txt|grep “High”|wc –l 管道将cat的输出送给grep命令,该命令在输入中查找包含单词“High”的行,这个输出又送给WC命令,该命令统计输入中的行数。
Linux 文件系统 • 文件类型 文本文件 数据文件 源程序文件 可执行文件 Shell程序文件 设备文件 链接文件:指向文件存储位置的指针 file 文件名:该命令可列出指定文件的文件类型
ls –l 命令可以长格式列出文件列表,用不同的字符表示不同的文件类型。 • -:表示常规文件 • d:表示目录 • b:表示块特殊设备 • p:表示有名管道 • s:表示信号灯 • m:表示共享存储器
Linux文件系统布局 • 统一的多级目录结构
Vi 编辑器 • 是unix系统一种功能强大、界面友好的编辑器。 • Vi的两种工作模式: 编辑模式和指令模式,两种模式可相互切换 • 指令模式:运行vi后,首先进入指令模式,用来编辑、存盘和退出文件的模式,按下insert键(或者i)可切换到编辑模式 • 编辑模式:用来输入和编辑文本的模式,按下Esc键可切换到指令模式。 • 状态行:屏幕底部一行,用来反馈编辑操作结果。 • http://news.cnblogs.com/n/114383/
退出vi 在指令模式下键入: :wq 保存并退出 :q! 不保存退出
环境变量 • 命令env:查看系统的环境变量设置 • 查看某个指定的环境变量的值 echo $环境变量名 如:echo $PATH 或echo $HOME • 改变环境变量的值 export 环境变量名=value 例如:export PATH=“$PATH:/home/dyb:.”
Linux常用命令 编程工具 gcc,gdb 例如:将test.c文件编译成可执行文件test gcc –o test test.c 运行可执行文件test ./test
Linux shell编程 • Shell是什么 • Shell本身是一个程序,而不是内核的一部分 • Shell是一种特殊的命令解释器,还是一种编程语言 • 常见shell bsh, csh, bash
Linux shell编程 • Shell脚本类似dos批处理文件,但是功能强大的多。 • 可以有变量,可以有条件语句,循环语句等。