资源描述
Linux 系统应用与程序设计,Linux的发音,A:linju:ks B:links C:links D:liniks 正确发音 GO,“hello,this is linus torvalds and i pronounce linux as linux”,Linux 入门 历史、背景、版本、安装 Linux系统管理 基本操作、各类服务的架设 Linux程序设计 Vi、SHELL、C、可视化程序,课程介绍,什么是UNIX,UNIX是有OPEN GROUP管理的一个商标,它指的是一个遵循特定规范的计算机操作系统 这个规范称为单一UNIX规范(The Single UNIX Specification) UNIX的源代码属于SCO公司,类UNIX系统,多数为商用,如SCO的Unixware、IBM的AIX、HP的HP-UX和Sun的Soloris 免费的有FreeBSD和Linux,认识Linux,什么是Free Software? Shareware/Freeware 不提供Source Code 无法让使用者自由更改或散播,认识Linux,什么是 自由软件Opensource? Freedom(自由)/Open(开放) Source Code必须公开 任何人都可以自由传播、下载、使用或改写,什么是Linux,是一个类UNIX内核的可以自由发布的实现版本,是一个操作系统的底层核心 可以获得内核源代码,编译并安装,然后获得并安装许多其他自由发布的软件,从而创建一个完整的Linux,通常称为Linux系统 Linux发行版,发行版简介,Linux操作系统(kernel+ultiliteies):专家才会用 Linux发行版(Distribution):整合更多配套软件,普通用户也能用,LINUX源起,1991 年 8 月 芬兰的一个学生在comp.os.minix 新闻组贴上了以下这段话: 你好,所有使用 minix 的人 -我正在为386 ( 486 ) AT 做一個免费的操作系統 ( 只是为了爱好 ),不会像 GNU 那样很大很专业。,1990年秋,Linus修读Unix课程,基于minix编写仿真程序 1991年10月发布linux0.02版本 1993年发布linux0.99版本 1994年3月发布linux1.0版本 1994年加入GNU组织,GNU计划,1983 年 Richard Stallman(自由软件业的精神教父) 创办 GNU(GNUs not Unix)计划 开始于1984年,旨在发展一個类-Unix 且为 自由软件 的完整操作系統 http:/www.gnu.org/,自由软件基金会,GNU计划的赞助单位 FSF(Free Software Fundation)提倡免费软件 FSF自由使用权的三個意义: 可自由复制GNU的软件 可自由修改源代码 可自由散布修改过的源代码,但不得收取任何版权费用,GNU General Public License,大众公有版权/通用公共版权 官方翻译:自由文件许可 Copyleft(是copyright的反话,就是防止有人给自由软件的使用加上限制) http:/www.linux.org.tw/CLDP/GNU/licences/fdl.zh.html http:/www.gnu.org/copyleft/gpl.html,在GPL条款下发布的主要GNU项目软件,GCC G+ GDB GNU make Bash GNU Emacs,GNU与Linux,GNU 仍自行发展Hurd Kernel 开发许多以GPL发行的应用程序与工具程序 Linux(Linuss Unix) 由网络上热心的朋友一起发展Linux Kernel 采用GNU发展的许多应用程序与工具 应该称作GNU/Linux,Linux品牌,RedHat Linux SuSE Linux Mandrake Linux Caldera Linux Turbolinux Debian GNU/Linux Gentoo Linux Linpus Linux,内核版本号与发行版本号,内核版本号:由Linus等人制定和维护,全球统一 发行版本号:由各个发行公司或者组织自行制定,不同公司的发行版本号之间无可比性 内核版本号格式:x.y.zz-www,x为主版本号,y为次版本号,zz为次次版本号,www发行号,Linux Kernel现状与认证,Kerenl 版本 http:/www.kernel.org 主版本号、次版本号、次次版本号 稳定版本2.6.12 Linux认证 RedHat RHCE LPI Level one/two/three http:/www.lpi.org,Linux产业现状,国内Linux市场普及度越来越高 银行、证券、电信、邮政、税务、航空等对稳定性、安全性要求颇高的领域应用广(服务器端) 手机软件也用到了Linux嵌入式开发平台 桌面市场不成熟,Linux人才现状,Linux在中国前景光明,但缺少这方面的人才已成为其发展的瓶颈 国内熟练的Linux开发人员只有3000人左右,而且有很大一部分都是自由软件的爱好者,并没有经过专业的课程培训 根据EvansData发表的有关Linux开发状况的调查结果,目前Linux应用软件开发人员中,有52%是从Windows应用软件开发领域转行过来的,另外还有30%曾经从事过UNIX的应用开发,人才问题,其一,人才培养跟不上。企业能直接从学校或社会上招聘到的Linux人才少,一般只能招到公司后再慢慢培训; 其二,高层次的Linux技术人才少。很多人对Linux都是一知半解,只懂点皮毛,对内核级别有研究的更是凤毛麟角; 其三,Linux企业以外的Linux人才少。,薪水如何?,Linux普通网络管理人员的月薪大约5000元左右 负责编程的Linux软件工程师月薪大约在800012000元之间 近年来特别红火的Linux嵌入式软件开发人员的月薪大约在1.2万元以上 项目经理的工资可能更高 在美国的一些大城市,经验丰富的Linux管理人员的薪金待遇普遍比Unix和Windows同行高出20%30%,man 男人?,在线查詢 man page # man ls # man 1 ls # info ls info也可以,系統关机,关机 shutdown h now halt poweroff init 0 重新启动 shutdown r now reboot init 6,Linux与XP双系统,参考资料: 要点: 硬盘中有独立的分区留出来 先装XP后装Linux,否则XP会吃掉 linux的引导 双系统是由linux的GRUB来引导启动,关于课本,linux系统应用与开发教程 机械工业出版社 刘海燕等编著 ftp dns dhcp telnet,Linux 系统应用与程序设计,主讲:邝颖杰 电邮:,Linux终端使用基础,Linux终端也称为虚拟控制台 .一台计算机的输入输出设备就是一个物理的控制台 . 如果在一台计算机上用软件的方法实现了多个互不干扰独立工作的控制台界面,就是实现了多个虚拟控制台。 Linux终端的工作方式是字符命令行方式,用户通过键盘输入命令进行操作,可以通过Linux终端对系统进行控制。,什么是shell,Shell是一个作为用户与linux系统间接口的程序,它允许用户向操作系统输入需要执行的命令 在linux中可有多种shell Linux是高度模块化的 可用多个shell,内核,csh,bash,xwindow,其他程序,shell的基本形式,shell的种类 : ash:是贝尔实验室开发的shell,bsh是对ash的符号链接。 bash:是GNU的Bourne Again shell,是GNU操作系统上默认的shell。sh以及bash2都是对它的符号链接。 tcsh:是Berkeley UNIX C shell。csh是对它的符号链接,shell命令的基本格式是: 命令名 选项 命令自动补齐与历史记录 shell提示符 :# $,我们用的shell,GNU工具中的bash 作为/bin/sh被默认安装 大多数linux发行版中,shell程序/bin/sh实际上是对程序/bin/bash的一个连接 /bin/sh -version,Linux文件,链接数,所属组,所属用户,文件属性,文件大小,修改时间,文件名,文件与目录的基本概念,文件是Linux用来存储信息的基本结构,它是被命名的存储在某种介质上的一组信息的集合。 Linux系统中有三种基本的文件类型. 普通文件:又分为文本文件和二进制文件; 目录文件:目录文件存储了一组相关文件的位置、大小等与文件有关的信息; 设备文件:Linux系统把每一个I/O设备都看成一个文件,与普通文件一样处理,这样可以使文件与设备的操作尽可能统一 ;,文件系统概念,文件系统是磁盘上有特定格式的一片区域,操作系统通过文件系统可以方便地查询和访问其中所包含的磁盘块 文件:文件系统中存储数据的一个命名对象 目录:文件系统中的每个文件都登记在一个或多个目录中,文件结构,文件的成分:无论文件是一个程序、一个文档、一个数据库、一个目录,都有以下同样的结构 索引节点,又称I节点,存放文件的状态信息 数据,Linux 文件种类,正规文件( regular file ) 第一个属性为 - 纯文字文件(ascii) 二进制文件(binary) 目录 (directory): 第一个属性为 d 链接文件 (link): 第一个属性为 l 设备文件 (device): 区块 (block) 设备文件,第一个属性为 b ; 字符 (character) 设备文件,第一个属性为 c 。,Linux程序,Linux中的应用程序有两种类型 可执行文件(相当于windows中的.exe文件) 脚本文件(相当于windows中的.bat .cmd文件) Linux并不要求应用程序具有特殊的文件名或扩展名,Linux 文件属性,可读 可写 可执行 无此属性,文件类型 拥有者属性 组属性 其他人对该文件属性,目录,Linux系统以目录的方式来组织和管理系统中的所有文件 Linux系统通过目录将系统中所有的文件分级、分层组织在一起,形成了Linux文件系统的树型层次结构。以根目录“/”为起点,所有其他的目录都由根目录派生而来。 特殊目录:“.”代表该目录自己, “.”代表该目录的父目录,对于根目录,“.”和“.”都代表其自己。,观察目录文件的信息,目录文件也包含数据,它与普通文件的差别是:内核对这些数据进行结构化处理,它是由成对的“I节点号/文件名”构成的列表 当把文件添加到一个目录中时,该目录的尺寸会增大,以便容纳新文件名。当删除文件时,目录的尺寸并不减小,而是内核对该目录项做上特殊标记,以便下次添加一个文件时重新使用它。,Linux 目录结构,/bin:常用系統程序目录 /boot:开机设定目录,也是摆放核心 vmlinuz 的地方 /dev:摆放系统设备装置文件的目录 /etc:系统配置文件,尤其 passwd, shadow /etc/rc.d/init.d:系統开机的時候载入服务的 scripts 的摆放地点 /home:系統使用者的目录,Linux 目录结构,/lib:Linux 执行或编译程序函数库目录 /mnt:软驱与光驱接入挂载的地方 /proc:系统核心与执行程序的一些信息 /root:系统管理员的目录 /usr/bin, /bin:一般执行文件摆放的地方 /usr/sbin, /sbin:系统管理员常用指令集 /var:摆放系统日志文件的地方 /lost+fount:摆放系统不正常产生错误时遗失的片段,工作目录:用户登录到Linux系统后,每时每刻都处在某个目录之中,此目录被称为“工作目录” 或“当前目录” 用户主目录(Home Directory):是系统管理员在增加用户时为该用户建立起来的目录,每个用户都有自己的主目录。 使用符号表示。,路径是指从树型目录结构中的某个目录到某个文件的一条道路。此路径的主要构成是目录名称,中间用“/”分开。 绝对路径是指从“根”开始的路径,也称为完全路径; 相对路径是指从用户工作目录开始的路径。 通配符 通配符* 通配符? 字符组模式:通配符“”、“”、“-”用于构成字符组模式。 转义字符,Linux用正斜线(/)分隔文件名里的目录名 Windows用反斜线()分隔,目录和文件的基本操作,文件列表ls -a -l -i 文件查看和连接命令cat cat 选项 分屏显示命令more more 选项 按页显示命令less less 选项 ,复制、删除和移动命令,复制命令cp cp 选项 或者 cp 选项 . 删除命令rm rm 选项 . 移动或重命名命令mv mv 选项 或者 mv 选项 . ,创建和删除目录命令,创建目录命令mkdir mkdir -p 删除空目录命令rmdir rmdir -p ,切换工作目录和显示目录命令,切换工作目录命令cd cd 显示当前路径命令pwd pwd 查看目录命令ls ls 选项 .,查找与定位命令,查找文件或者目录命令find find path expression 文件定位命令locate/slocate locate 选项 ,链接ln ln 选项 硬链接hard link 软链接symbolic link 改变文件或目录时间的命令touch touch 选项 file2 .,压缩解压缩命令,命令格式为: tar 辅选项 压缩和解压命令gzip gzip 选项 解压命令unzip unzip 选项 ,常用命令,显示文字命令echo echo -n 显示日历命令cal cal 选项 月 年 日期时间命令date 显示日期和时间的命令格式为: date 选项 +FormatString 设置日期和时间的命令格式为: date 清除屏幕命令clear,软件包管理命令rpm,安装软件 rpm -i ( 或者 -install) 安装选项 . 删除 rpm -e (或者-erase) 删除选项 pkg1 . pkgN 升级 rpm -U ( 或者-upgrade) 升级选项 file1.rpm . fileN.rpm 查询 rpm -q ( 或者 -query) 查询选项 pkg1 . pkgN 校验已安装的软件包 rpm -V ( 或者 -verify) 校验选项 pkg1 . pkgN,公共邮箱,scau_ 密码:123456 课件、资料,Linux 系统应用与程序设计,主讲:邝颖杰 电邮:,更改 Linux 文件属性命令,u g o a,+(加入) -(除去) =(设定),r w x,文件或目录,chmod,r=4,w=2,x=1,# chmod 770 test,owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others = - = 0+0+0 = 0,练习,系统中有用户user1和user2,同属于users组。在user1用户目录下有一文件file1,它拥有644的权限,如果user2用户想修改user1用户目录下的file1文件,应拥有 权限。 A 744 B 664 C 646 D 746,Linux上的X Window系统,整个X Window由三个部分组成: X Server:是控制输出及输入设备并维护相关资源的程序,它接收输入设备的信息,并将其传给X Client,而将X Client传来的信息输出到屏幕上(在屏幕上构造方块(窗口),然后画出里面的元素 )。 X Client:是应用程序的核心部分,它与硬件无关,每个应用程序就是一个X Client。X Client可以是终端仿真器(Xterm)或图形界面程序,它不直接对显示器绘制或者操作图形,而是与X Server通信,由X Server控制显示。 X protocol:X Client与X Server之间的通信协议。,X服务程序响应X客户程序的请求,直接与图形设备通信,负责打开和关闭窗口,控制字体和颜色等底层的具体操作。每一个显示设备只有一个惟一的X服务程序。,X客户程序是使用系统窗口功能的一些应用程序,无法直接影响窗口或显示,它们只能请求X服务程序,并通过X服务程序提供的服务在指定的窗口中完成特定的操作 X协议是一个抽象的应用服务协议,包括了终端的输入请求和对X服务程序发出的屏幕输出命令,不包括对底层硬件的访问和控制。X协议是X服务程序和X客户程序进行通信的途径,X Window的特点,良好的网络支持:X Window采用了C/S网络结构,X Client和X Server可以通过网络来通信,而且有良好的网络透明性。 个性化的窗口界面:X Window并未对窗口界面作统一的规范,程序员可以根据需求自行设计,其中最有名的就是后面将要介绍的GNOME与KDE。 不内嵌于操作系统:X Window只定义了一个标准,而不属于某个操作系统,因此可在不同的操作系统上运行相同的X Window软件,在Mac OS和Windows,构件图形界面的功能都做在了操作系统里面,你只能使用那些。这个方法很简单,但是却不灵活。Unix和类Unix的操作系统没有内建这个功能,要使用GUI你就不得不使用窗口系统(X Window)。,GNOME:GNOME项目有两个目标:提供一个完整的、易学易用的桌面环境-GNOME桌面环境,为程序设计人员提供强大的应用程序开发环境GNOME开发平台,用于建立桌面上的应用。 KDE:其目的是在X Window上建立一个与MacOS或者微软的Windows类似的完整易用的桌面环境,从而使UNIX更接近广大普通用户。KDE不仅提供了一个方便易用的超级桌面环境,而且还提供了一套免费的计算开发平台。,总结几个概念,DE(Destop Environment):桌面环境 GNOME、KDE(必须在X Winodw上运行) 窗口管理器(必须在X Winodw上运行) GNOME的Enlightenment KDE的KVM TWM:Tab Window Manager for the X Window System,注意,X Winodw里的X Server只负责显示窗口画面 窗口管理器负责选择在哪里放置窗口、移动、改变大小、最大化、最小化等,窗口管理器,窗口 主题 工作区菜单 终端窗口,GNOME 桌面环境,GNOME是GNU网络对象模型环境(GNU Network Object Model Environment)的缩写,它是GNU项目的一部分 GNOME操作界面由GNOME面板(Panel)和桌面组成,GNOME面板的组成,主菜单:主菜单是系统中所有应用程序的起点。 程序启动器:是Linux应用程序的启动链接,如同Windows中的快捷方式。 工作区切换器:可以将GNOME的桌面分为相互独立的工作区,每个工作区是桌面的一部分. 窗口列表:窗口列表显示了当前工作区上运行着的应用程序的名称。 通知区域:Red Hat网络更新通知工具是通知区域的一部分。它提供了一种简捷的系统更新方式,确保系统时刻使用Red Hat的最新勘误和错误修正来更新。 插件小程序(Applets):插件小程序是完成特定任务的小程序。GNOME有很多十分有用并且非常有趣的插件小程序,例如,电子邮件检查器、时钟日历、CPU和内存情况查看器等。,组合面板的内容元素,主菜单、程序启动器、工作区切换器、窗口列表、通知区域、插件小程序都可以看成是GNOME面板上的内容元素,它们可以自由组合和排列 ; 组合主菜单 组合程序启动器 使用抽屉组合,组合面板的属性元素,GNOME有边缘面板、角落面板、浮动面板、滑动面板和菜单面板5种不同属性的面板 设置边缘面板、角落面板、浮动面板、滑动面板和菜单面板的属性.,GNOME桌面,初始桌面 :初始桌面包括 “的主目录”、“从这里开始”和“回收站”。 root用户桌面上所保存的所有项目都保存在目录/root/.gnome-desktop/下,其它用户的桌面上所保存的所有项目都位于该用户主目录下的.gnome-desktop目录中.该目录是个点文件,一般隐藏显示。,GNOME桌面,将程序启动器拖放到桌面上 把项目从文件管理器窗口拖放到桌面上 建立链接:两种方法 桌面菜单 桌面属性的设置 :背景、屏幕保护程序. 工作区切换器属性设置,GNOME的窗口管理器,调整窗口大小、移动窗口、最大化、最小化、关闭窗口等操作与Windows的对应操作几乎一样 与Windows下的窗口不同的操作有: 卷起:窗口卷起后只剩下窗口标题栏可见,GNOME默认将鼠标在窗口标题栏上双击作为窗口的卷起操作,也可以右单击窗口标题栏,选择【卷起】命令。对于卷起以后的窗口,鼠标双击标题栏或者右单击窗口标题栏,选择【展开】命令可使窗口恢复原样。 移动到别的工作区:右单击窗口标题栏,选择“移动到工作区 ”,可将该窗口移动到指定的工作区,同时该窗口从原来的工作区消失。 复制到别的工作区:右单击窗口标题栏,选择“放在所有工作区上”命令,将该窗口在各个工作区生成一个备份。,GNOME的文件管理器,Nautilus文件管理器主要由菜单栏、工具栏、位置栏、状态栏、侧栏和浏览窗格等组成 。,文件管理器的基本操作,选择文件 打开文件 更改文件名 移动和复制文件 给文件建立链接 删除文件 :文件被删除后都暂时存放到回收站中,回收站的内容存放在用户主目录下的.Trash目录下中 定位 改变文件查看方式 排列和布局文件,文件管理器的个性化设置,改变鼠标动作的关联,文件管理器的个性化设置,改变鼠标动作的关联 给文件增加徽标,文件管理器的个性化设置,改变鼠标动作的关联 给文件增加徽标 改变侧栏和浏览窗格的背景或者颜色,KDE桌面环境,KDE从外表上看同GNOME几乎相同,也是由面板和桌面组成 KDE是遵守GNU的自由软件。在LGPL下所有KDE库都允许开发KDE桌面的程序,所 有KDE应用程序得到GPL许可,KDE使用 Qt C+ 跨平台工具包,有各自的授权。 Qt的授权允许你免费使用Qt来开发 X Windows下的软件,只要你的原始代码也自由地 被使用。,KDE桌面环境,如果你希望你的原始代码不允许修改,你必须获得Qt的商业授权 Qt是建造使用者接口的C+基类库。它提供大多数widgets、菜单、按钮、sliders等 等。Qt是一个跨平台库,写的代码可在Unix编译,也可在 Windows编译。,KDE面板的组成,KDE面板,组合KDE面板内容元素:可以将KDE面板上的内容分为小程序、应用程序按钮、特殊程序按钮和扩展4大类。用户可以对这4类元素自由组合。 设置KDE属性 : KDE面板设置控制模块 改变KDE面板的布局和大小 隐藏KDE面板和添加隐藏按钮 淡化小程序面板把手,KDE主菜单,菜单编辑器 菜单的编辑 为程序定义快捷键 菜单的其它属性设置,KDE桌面,初始桌面图:包括起点目录、floppy、从这里开始和回收站 。Floppy图标用来对软驱进行操作。 拖放操作 :拖放操作的来源分为菜单、面板和文件夹。 桌面快捷菜单 桌面属性的设置 :外观、桌面行为、背景,KDE的文件管理器Konqueror,文件导航系统,1)目录树导航 2)多视图导航 3)标签导航 4)书签导航,Konqueror 的其它功能,Konqueror和终端的紧密结合 Konqueror的网络功能,桌面切换,在字符终端下切换桌面: 命令:switchdesk KDE|GNOME 在X Window下切换桌面: 在桌面环境中完成切换选择 “主菜单/系统工具/更多系统工具/Desktop Switching tool ” 在登录界面实现选择 Ctrl+alt+backspace,重新进入登录界面 主题的切换与安装 http:/www.gnome-look.org http:/art.gnome.org,vi,文本编辑器 vi 管理员至少一定要会一种编辑器 vi 的使用: 一般模式:移动、复制、删除、黏贴 编辑模式:插入与取代文件 命令模式:查询、自动取代、保存等,vi help,h,j,k,l 移动 yy 复制 dd 刪除 p 黏贴 o,i,a 插入 R,r 取代 u 回复,/ 查询 :%s/x/y/g 自动取代 :w 保存 :q 退出 :wq! 保存強制退出,账号,Linux系统的账号分为用户账号和组账号两类: 用户账号:通常一个操作者拥有一个用户账号,每个用户账号有唯一的识别号UID(User ID)和自己所属组的识别号GID(Group ID)。 Linux系统中可以有两类用户账号:root用户和普通用户。 组账号:是一组用户账号的集合。通过使用组账号,可以设置使一组用户对文件具有相同的权限。,用户和组的配置信息保存在以下三个文件中: /etc/passwd 对所有用户都可读 /etc/shadow /etc/group,/etc/passwd文件,每一行存储一个用户的账号信息,每一行可以包含如下域,各域之间以冒号分隔: 登录名:即用户账号 口令:通常是一个“x”,表示口令已被加密,加密后的口令存储在/etc/shadow文件中。如果是“*”,则表示该账号已被停用。 UID:每个用户账号都有一个不同的ID,它是一个整数。 GID:用户所属的组的ID,每个组也都具有不同的ID。 用户信息:这是账号附加的信息,如用户名、电话、住址等,可以使用命令finger和chfn查询和修改这些信息。 主目录:在默认状态下,每个用户都有一个主目录,root用户的主目录是/root,管理员新建立的用户的主目录默认为/home/。 登录shell:设置用户在登录时使用的shell,系统默认使用/bin/bash。 例如:root:x:0:0:root:/root:/bin/bash,伪 用 户 含 义 bin 拥有可执行的用户命令文件sys 拥有系统文件 adm 拥有帐户文件 uucp UUCP使用 lp lp或lpd子系统使用 nobody NFS使用,/etc/shadow,etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间: 失效时间:标志,/etc/shadow,是根据/etc/passwd文件产生的,一行存储一个用户的信息,各域之间以冒号分隔: 用户账号 加密的口令密文 最后一次修改时间,从1970年1 月1日到上次口令修改日期的天数。 最小间隔时间,口令上次修改后,要过多少天才能再修改。若为0表示没有时间限制。 最大间隔时间 警告时间,如果口令有期限限制,要过期前多少天向用户示警。一般系统默认为7天。,/etc/group存储所有组账号的数据,一行表示一个组的信息,各域之间以冒号分隔,包括: 组名 x表示加密的组口令,口令的相关信息存储在/etc/gshadow文件中,其形式与/etc/shadow相似。 组ID(GID),系统生成的组ID小于500,管理员新建的第一个组ID为500,以后依次递增。 该组包含的用户账号列表,以逗号分隔。 例如:bin:x:1:root,bin,daemon,用户管理/命令,增加用户: adduser 选项 -d :指定用户主目录,默认情况下,将会在/home目录下新建一个与用户名相同的用户主目录。 -s :指定用户登录时使用的shell,默认的shell为/bin/bash。 -g :指定用户归属的组名。默认地,每当创建一个新用户的时候,一个与用户名相同的组就会被创建,而这个用户就是该组的成员。(UPG方案) -G :在Linux系统中,一个用户可以属于一个组,也可以属于多个组,其中用户在初始化时属于的组称为主组。如果要让用户属于其它的组,应该使用选项-G。 -u :指定新用户的UID。,设置和修改口令 :passwd 用户名 只有超级用户可以使用“passwd 用户名”修改其他用户的口令,普通用户只能用不带参数的passwd命令修改自己的口令,演示,添加一用户,用户名为user2008 修改某密码,删除用户的命令为userdel,该命令的格式为:userdel 如果系统不要保存这些文件,可以使用带选项的命令:userdel -r ,修改用户属性 usermod g -G -d -s 增加用户组 groupadd 删除用户组 groupdel 修改组成员:直接编辑/etc/group文件,将用户名写到对应的组名的后面。,图形界面的用户管理,账号管理和查看命令,whoami命令的功能在于显示用户自身的用户名。 who 选项:该命令主要用于查看当前在线的用户情况 w命令 :用于显示登录到系统的用户情况 finger命令可用于查找和显示用户信息,并且在查找后显示指定账号的相关信息 chfn命令能够改变系统存储的用户信息 切换用户身份:su - 用户名,更改 Linux 文件拥有者命令,语法: chown -R 帐号名称 文件或目录 chown -R 帐号名称:组名 文件或目录 示例: roottest root# chown games test roottest root# ls -l test drw-r-r- 1 games root 0 Jun 20 14:36 test roottest root# chown R root:root tmp,更改 Linux 文件所属群组,语法: chgrp 群组名 文件或目录 示例: roottest root# chgrp users test roottest root# ls -l drw-r-r- 1 root users1 Jun 20 14:36 test,系统安全设置/系统管理,BIOS安全设置 安全分区 系统文件的权限 限制用户资源 系统升级,系统安全设置/用户安全管理,账号安全管理 suid程序 口令安全管理 自动注销账号,suid程序就是在运行的时候可以拥有比自己用户高的权限的用户的权限。 假设你有一个程序是属于nobody这个用户的,这个程序的功能是要修改一个文件,而这个文件的属性是只有root才能修改。所以如果这个程序在以写方式打开该文件的时候肯定出错,提示没有权限。 因此使用chmod u+s 命令给程序授权,这样程序在运行后就会得到root的权限,从而就可以修改那个文件了。最常用的就是ping这个命令,就是suid程序。任何用户都可以使用这个命令,但是ping里面实际上是使用了raw_socket,而raw_socket只有root用户才可以创建。所以ping命令大都放在/bin下,而不是/usr/bin下而且使用ls -l 察看ping的权限,是-r-sr-xr-x,系统安全设置/网络服务安全管理,关闭不必要的服务 禁止响应ping命令 屏蔽系统信息,上机实验,实验内容:书本219页实验1 上机地点:院楼801,803 用户名:root 密码:xxxyjsjx,实验参考,一、修改配置文件的方法 (一)、修改系统级的PATH环境变量1,编辑 /etc/profile,文件,添加下面一行export PATH=$PATH:/path1:/path2:/pahtN2,运行该文件source /etc/profile (二)、修改用户级别的PATH环境变量 先进入用户目录:#cd /home/aaa#vi .bash_profile添加同样一行存盘退出# souce .bash_profile 以上一个是全局的PROFILE一个是单独用户的profile 二、命令行状态下直接修改环境变量 修改环境变量,在bash下用export,在csh下用setenv。比如: export PATH=$PATH:/usr/local/bin,Linux 系统应用与程序设计,主讲:邝颖杰 电邮:,用户管理/命令,增加用户: adduser 选项 -d :指定用户主目录,默认情况下,将会在/home目录下新建一个与用户名相同的用户主目录。 -s :指定用户登录时使用的shell,默认的shell为/bin/bash。 -g :指定用户归属的组名。默认地,每当创建一个新用户的时候,一个与用户名相同的组就会被创建,而这个用户就是该组的成员。(UPG方案) -G :在Linux系统中,一个用户可以属于一个组,也可以属于多个组,其中用户在初始化时属于的组称为主组。如果要让用户属于其它的组,应该使用选项-G。 -u :指定新用户的UID。,设置和修改口令 :passwd 用户名 只有超级用户可以使用“passwd 用户名”修改其他用户的口令,普通用户只能用不带参数的passwd命令修改自己的口令,演示,添加一用户,用户名为user2008 修改某密码,删除用户的命令为userdel,该命令的格式为:userdel 如果系统不要保存这些文件,可以使用带选项的命令:userdel -r ,修改用户属性 usermod g -G -d -s 增加用户组 groupadd 删除用户组 groupdel 修改组成员:直接编辑/etc/group文件,将用户名写到对应的组名的后面。,图形界面的用户管理,更改 Linux 文件拥有者命令,语法: chown -R 帐号名称 文件或目录 chown -R 帐号名称:组名 文件或目录 示例: roottest root# chown games test roottest root# ls -l test drw-r-r- 1 games root 0 Jun 20 14:36 test roottest root# chown R root:root tmp,更改 Linux 文件所属群组,语法: chgrp 群组名 文件或目录 示例: roottest root# chgrp users test roottest root# ls -l drw-r-r- 1 root users1 Jun 20 14:36 test,账号管理和查看命令,whoami命令的功能在于显示用户自身的用户名。 who 选项:该命令主要用于查看当前在线的用户情况 w命令 :用于显示登录到系统的用户情况 finger命令可用于查找和显示用户信息,并且在查找后显示指定账号的相关信息 chfn命令能够改变系统存储的用户信息 切换用户身份:su 用户名,用户的安全管理,限制用户使用资源 编辑/etc/security/limits.conf 自动注销账号 编辑/etc/profile,设置tmout变量的数值 Suid程序,suid程序就是在运行的时候可以拥有比自己用户高的权限的用户的权限。 假设你有一个程序是属于nobody这个用户的,这个程序的功能是要修改一个文件,而这个文件的属性是只有root才能修改。所以如果这个程序在以写方式打开该文件的时候肯定出错,提示没有权限。 因此使用chmod u+s 命令给程序授权,这样程序在运行后就会得到root的权限,从而就可以修改那个文件了。最常用的就是ping这个命令,就是suid程序。任何用户都可以使用这个命令,但是ping里面实际上是使用了raw_socket,而raw_socket只有root用户才可以创建。所以ping命令大都放在/bin下,而不是/usr/bin下而且使用ls -l 察看ping的权限,是-r-sr-xr-x,如何去掉程序的suid位,find / -perm -4000 查找 chmod s filename 去掉文件的suid位,存储设备,计算机系统中,所有的存储设备都是以目录树的形式对文件进行管理的 . 在Linux系统中,所有的文件都是在以“/”目录为根的一棵“大”目录树中进行管理。 如果要使用USB存储设备、光盘或软盘等存储设备,必须将这些设备中的“小”目录树像嫁接一样挂载(mount)到Linux系统的“大”目录树中。,挂载的文件系统类型,ext、FAT、ext2(extended file system )、ext3、MINIX、MSDOS、SYSV Linux系统的第一个文件系统是Minix(文件名不能超过14个字符,文件大小不能超过64MB) ext:1992年设计,是第一个专为linux设计的文件系统,文件大小可到2GB,文件名支持255字符,性能不佳 ext2: 1993年设计,提高性能 ext3:采用日志式文件系统技术(Journalling Filesystem),目前各个linux发行版使用,Linux引进ext文件系统时有了一个重大的改进:真正的文件系统从操作系统和系统服务中分离出来,在它们之间使用了一个接口层虚拟文件系统VFS(Virtual File System),VFS,Linux系统可以支持多种文件系统,为此,必须使用一种统一的接口,这就是虚拟文件系统(VFS)。通过VFS将不同文件系统的实现细节隐藏起来,因而从外部看上去,所有的文件系统都是一样的。,VFS并不是一个实际的文件系统 只存在于内存,系统启动时建立,系统关闭时消亡 VFS功能包括: 记录可用文件系统的类型 将设备同对应的文件系统联系起来 处理面向文件的通用操作 涉及到针对文件系统的操作时,把他们映射到相关的物理文件系统,确定挂载信息,挂载对象的文件系统类型; vfat ext2 ext3 iso9660 挂载对象的设备名称; 在Linux系统中,设备名称通常都在/dev目录下,设备名称的命名是有规则的 ; /dev/hda1 /dev/sda2 /dev/fd0 /dev/cdrom 设备挂载到哪一目录,即挂载点。 Linux系统中有一个/mnt目录,专门用作挂载点(mount Point)目录 在挂载设备时首先查看挂载点目录是否存在,如果不存在必须首先创建该目录,否则mount命令无法正常执行。,挂载命令mount,mount 选项 选项: -t 挂载的文件系统 例如: mount t ext2 /dev/fd0 /mnt/floppy -o 参数=值 ,对于挂载的不同类型的设备可以使用一组不同的参数。 mount -o iocharset=cp936 /dev/sda1 /mnt/usb,挂载设备的过程,查看设备:使用命令“fdisk l”可以查看系统的存储设备 挂载设备 :首先使用mkdir命令建立挂载点目录,然后再使用mount命令挂载相关设备 访问设备 卸载设备 :用户在使用完挂载设备后,不能直接将挂载设备从系统拔出,否则会出现问题,严重的会导致系统崩溃。用户必须先执行卸载命令然后再该设备拔出 umount 挂载点或设备名,自动挂载,使用配置文件/etc/fstab来自动挂载存储设备。 文件/etc/fstab存放的是系统中的文件系统信息。每个文件系统在文件中都对应一个独立的行 。fsck、mount、umoun t的等命令都利用这个文件 。 fstab每一行为一个分区记录,包含六个域: 例如: /dev/hda1 /mnt/c vfat iocharset=cp936 0 0,mount命令,利用fstab文件,mount还有另外两种使用格式 : mount a 该命令将文件/etc/fstab中提到的所有文件系统,凡没使用noauto选项的,一律按照指定的方式自动挂载。该命令一般在系统的启动脚本中执行。 mount 或者 mount 当挂载fstab中提到的文件系统时,可以只指定挂载设备或者只指定挂载点即可完成挂载。,图形化挂载工具,执行【主菜单/系统工具/磁盘管理】,磁盘格式化,mkfs 选项-t 设备名称 区块数 说明:把指定的设备格式为指定的文件系统。 例如格式化硬盘时: mkfs t ext3 /dev/hda4 格式化软盘时,需要指定设备名和区块数,每个区块大约1000个字节,一张1.44MB的软盘对应1440个区块。格式化指令为: mkfs t ext3 /dev/fd0 1440 执行菜单【主菜单/系统工具/软盘格式化器】,打开“floppy formatter”窗口 。图形化的格式化界面。,声卡,用户可以从声卡的生产厂商获取相应的驱动程序,并按相应的要求进行安装。 如果用户无法获取正确的驱动程序,也可以使用两种通用的驱动程序 : OSS(开放声音系统),它是一个商业声卡驱动程序,需要花钱购买,否则每次启动后,只可以免费使用240分钟; ALSA(高级Linux声音架构),是自由软件,可以免费使用。,安装OSS声卡驱动程序,可以从 解压缩源文件: 运行安装文件:以root用户身份运行oss-install文件 声卡驱动命令:安装完毕后,在默认的安装目录/usr/local/bin里有一个soundon命令,它用来打开oss驱动,命令soundoff用于关闭oss驱动。,安装ALSA声卡驱动程序,ALSA源程序文件需要如下4个软件包,用户可以到 alsa-driver-0.5.9.tar.gz:驱动程序包,包括所支持的声卡的驱动程序。 alsa-conf-0.4.3b.tar.gz:配置工具包,能够自动配置软件包中的配置文件。 alsa-lib-0.5.9.tar.gz:专用库函数包。 alsa-utils-0.5.9.tar.gz:工具软件包,提供支持混音调制的工具软件。,安装声卡驱动程序库:对文件alsa-driver-0.5.9.tar.gz ,依次执行: 1)解压缩 2)./configure#自动配置命令 3)make install#安装声卡驱动库 4)./snddevices #这是一个脚本程序,在/dev目录下自动创建相关的声卡设备。 配置声卡驱动程序 安装混音程序,鼠标 :在终端输入命令/usr/sbin/mouseconfig,可以打开鼠标配置界面 在X Window下,选择【主菜单/系统设置/鼠标】打开图形界面的鼠标配置窗口,显卡,首先找到显卡支持Linux的驱动程序,绝大多数的3D显卡都已有了支持Linux的驱动程序,用户可以从各显卡厂商的网站或Linux的相关站点上去寻找。 如果用户能够进入X Window,但是无法使用显卡的特殊功能,那么可以通过图形界面的配置工具配置显卡。 选择【主菜单/系统配置/显示】,弹出显示设置窗口 。,打印机,获取打印机驱动程序 阅读安装文档 安装驱动程序 配置打印机 ,向系统添加打印机 测试打印机,上机实验,开机、登录 重启 ls查看目录,进入tmp目录,在tmp下创建test目录,进入test目录,用touch创建一个文件,以自己学号命名,用ls查看该文件属性 压缩以上文件 解压以上文件 删除以上文件,删除以上目录,上机实验,创建一个用户,以自己的学号为用户名,密码自由设定。 在linux中使用U盘 把任意一个文件copy进U盘,使用usb参考,P79,Linux 系统应用与程序设计,主讲:邝颖杰 电邮:,关于硬连接、软连接、复制,硬连接:给文件一个副本(别名),同时建立两者之间的连接关系,修改其中一个,与其连接的文件同时被修改,如果删除其中一个,其余的文件不受影响。磁盘上只有一份数据。 软连接:只是一个快捷方式,删除了原文件,这个连接文件就没用了 复制:磁盘上会多一份数据,网络接口配置,配置网络接口可以使用三种不同的工具来完成: 使用网络接口配置程序netconfig 使用图形配置工具 使用终端命令ifconfig,使用网络接口配置程序netconfig,在终端中输入命令netconfig,使用图形配置工具,【主菜单/系统工具/网络设备控制】,使用终端命令ifconfig,ifconfig netmask 例如: ifconfig eth0 192.168.15.11 netmask 255.255.255.0 fconfig eth1 21.156.299.13 netmask 255.255.255.0 ifconfig eth0:0 192.168.17.21 netmask 255.255.255.0,网络接口的启动与禁用,在网络配置界面中,通过“激活”或者“解除”按钮可以启动或者禁用网络接口, 网络控制程序network /etc/rc.d/init.d/network start|stop|restart 命令ifconfig : ifconfig up|down 命令ifup/ifdown ifup eth0 ifdown eth0,网络接口的启动与禁用,执行【主菜单/系统工具/网络设备控制】,打开 “网络设备控制”窗口,网络接口的查看,使用终端命令ifconfig方便地查看系统目前所有活跃的网络接口的详细信息 例如: ifconfig ifconfig eth0,常用网络命令,网络测试命令 : ping 选项 ping大数据包 -c num 发送num个数据包后停止 -s bytes 默认值是64字节 显示数据包经过路由的命令traceroute traceroute ,管理路由表命令route,显示路由表内容:不加任何参数的route命令显示本机路由表的内容, 添加/删除路由记录 route add|del net netmask dev route add net 200.1.1.0 netmask 255.255.255.0 dev eth0 添加或者删除默认网关: route add|del default gw 例如: route add default gw 200.1.1.254 route del default gw 200.1.1.254,远程登录命令 telnet rlogin ,网络相关配置文件,/etc/sysconfig/network,对本机的网络进行配置,常见的几个配置项如下: NETWORKING:值为yes或no,表示主机是否支持网络功能。 HOSTNAME:主机名(即域名)。 GATEWAY: 默认网关。 FORWARD_IPV4:设置本机是否允许转发IPV4的数据包。 DOMAINNAME:此台主机所属的网络域。 GATEWAYDEV:连接网关的设备,例如eth0,如果是拨号用户则设为ppp0。,/etc/sysconfig/network-scripts/,DEVICE=eth0 /设备名称 ONBOOT=yes /起动时是否起动该设备,省略该行表示yes BOOTPROTO=none /启动协议,none表示使用用户设置的ip地址,dhcp表示从dhcp获得ip地址。省略该行表示使用设置的IP地址。 IPADDR=192.168.14.11 /IP地址 NETMASK=255.255.255.0/子网掩码 BROADCAST=192.168.14.255/广播地址, NETWORK=192.168.14.0/网络地址,域名解析配置文件 /etc/host.conf,order hosts,bind multi on nospoof on,主机名列表文件/etc/hosts,IP地址主机名别名 例如: qq,域名服务器设置文件 /etc/resolv.conf,nameserver domain search ,协议定义文件/etc/protocols,协议名称 协议号 别名 例如: tcp 6 TCP udp 17 UDP,网络服务列表文件 /etc/services,列出了系统支持的服务名称、服务使用的端口号和协议类型、服务的别名、功能注释等。 例如 http 80/tcp www www-http #WorldWideWeb HTTP,Linux 系统应用与程
展开阅读全文