linux 操作系统初级培训

Post on 18-Jan-2016

112 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Linux 操作系统初级培训. DSC 认证培训体系. 课程时间: 180 分钟 更新日期: 2007 年 11 月. 课程简介. 本课程为 Linux 操作系统 培训课程之一 课程内容: Linux 操作系统的初级培训 培训对象: 参加曙光 DCSA 认证的技术人员 能力要求:初步了解 Linux 操作系统的相关知识 培养目标:此培训纲要针对 Linux 入门级学习,使大家能够独立安装 Linux ,并进行简单的系统维护;掌握 Linux 操作系统的相关基础知识及一些常用的命令。. 目录. 第一章: Linux 操作系统简介 1.1 Linux 操作系统起源 - PowerPoint PPT Presentation

TRANSCRIPT

Linux操作系统初级培训DSC认证培训体系

课程时间: 180分钟更新日期: 2007年 11月

• 本课程为 Linux 操作系统培训课程之一• 课程内容: Linux 操作系统的初级培训• 培训对象:

– 参加曙光 DCSA 认证的技术人员• 能力要求:初步了解 Linux 操作系统的相关知识• 培养目标:此培训纲要针对 Linux 入门级学习,使

大家能够独立安装 Linux ,并进行简单的系统维护;掌握 Linux 操作系统的相关基础知识及一些常用的命令。

课程简介

目录

• 第一章: Linux 操作系统简介– 1.1 Linux 操作系统起源– 1.2 Linux 操作系统特性– 1.3 Linux 操作系统结构– 1.4 Linux 操作系统内核版本– 1.5 Linux 操作系统发行版本– 1.6 Linux 操作系统特点

• 第二章: Linux 操作系统安装和基本配置• 第三章: Linux 操作系统的文件系统结构• 第四章: Linux 操作系统的用户管理• 第五章: Linux 操作系统常用命令详解• 第六章: Linux 操作系统的进程管理

第一章: Linux 操作系统简介• Linux 以它的高效性和灵活性著称。具有多任务、多用户的能力。 •Linux 之所以受到广大计算机爱好者的喜爱,其主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改。另一个原因是,它具有 Unix 的全部功能,任何使用 Unix 操作系统或想要学习 Unix 操作系统的人都可以从 Linux 中获益。

1.1 Linux 操作系统起源• Linux 是一个诞生于网络、成长于网络且成熟于网络的操作系统。• 1991 年,芬兰大学生 Linus Torvalds 萌发了开发一个自由的 UNIX 操作

系统的想法,当年 Linux 诞生,为了不让这个羽毛未丰的操作系统夭折, Linus 将自已的作品 Linux 通过 Internet 发布。从此一大批知名的、不知名的 hack 、编程人员加入到开发过程中来, Linux 逐渐成长起来。

• Linux 一开始是要求所有的源码必须公开,并且任何人均不得从 Linux 交易中获利。然而这种纯粹的自由软件的理想对于 Linux 的普及和发展是不利的,于是 Linux 开始转向 GPL ,成为 GNU 阵营中的主要一员。

• Linux 凭借优秀的设计,不凡的性能,加上IBM、 INTEL、 CA、 ORACLE 等国际知名企业的大力支持,市场份额逐步扩大,逐渐成为主流操作系统之一。

• Linux 只是内核,即操作系统中允许用户的软件与硬件通信的那部分。• Linux产商借网络爱好者升级的内核,通过优化、增加功能出售各个版本的 linux 操作系统

1.2 Linux 操作系统特点• 开放性:指系统遵循世界标准规范,特别是遵循开放系统互连( OSI)国际标准。

• 多用户:是指系统资源可以被不同用户使用,每个用户对自己的资源(例如:文

件、设备)有特定的权限,互不影响。• 多任务:它是指计算机同时执行多个程序,而且各个程序的运行互相独立。• 良好的用户界面 : Linux 向用户提供了两种界面:用户界面和系统调用。 Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面

• 设备独立性:是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。 Linux 是具有设备独立性的操作系统,它的内核具有高度适应能力

• 提供了丰富的网络功能:完善的内置网络是 Linux 一大特点。 • 可靠的安全系统: Linux采取了许多安全技术措施,包括对读、写控制、带保护

的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。

• 良好的可移植性:是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。 Linux 是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。

1.3 Linux 操作系统结构

hardware

multitasking

deviceinterfaces

vi

sh

ls

bashkernel

TCP/IPstack

shell

gcc

diff grep

wc

who

cat

utilities

• Kernel– 系统启动时将内核装

入内存– 管理系统各种资源

• Shell– 用户界面,提供用户

与内核交互处理接口– 是命令解释器,提供强大的编程环境

– bash,ash,pdksh,tcsh,ksh,sh,csh,zsh….

• Utility– 提供各种管理工具,应用程序

1.4 Linux 操作系统内核版本

版本号码

稳定版本 开发版本 2.4.32 2.6.19-6

主版本号 . 稳定 ( 偶) / 开发版本(奇) . 发布号 -patch 号

http://www.kernel.org/pub/linux/kernel/

当前最新版本linux-2.6.23.tar.gz

1.5 Linux 操作系统发行版本

目录

• 第一章: Linux 操作系统简介• 第二章: Linux 操作系统安装和基本配置

– 2.1 Linux 系统安装前的准备– 2.2 Linux 系统安装方式的选择– 2.3 Linux 系统安装内容的选择– 2.4 服务器磁盘控制器类型 – 2.5 Linux 系统磁盘分区– 2.6 Linux 系统分区优点– 2.7 Linux 系统分区识别– 2.8 Linux 系统主要分区介绍– 2.9 Linux 操作系统安装简解– 2.10 Linux 系统基本配置

• 第三章: Linux 操作系统的文件系统结构• 第四章: Linux 操作系统的用户管理• 第五章: Linux 操作系统常用命令详解• 第六章: Linux 操作系统的进程管理

第二章: Linux 操作系统安装和基本配置

2.1 Linux 系统安装前的准备• Linux 安装前须知 安装前要了解所安装服务器的硬件配置方面的信息,主要包括磁盘控制器型号、网卡型号、内存大小及 CPU类型等,根据相关信息和用户使用情况安装合适的 Linux 操作系统。在安装 Linux前要了解 Linux 的一些基础知识。

• 服务器硬盘分区要求 根据需要,硬盘的分区可以自己定义,建议最少安装三个分区: /根分区、 /swap 交换分区、 /boot引导分区。

• 多操作系统的安装 可以在硬盘上安装一个以上的操作系统,不同的操作系统必

须有自己的分区,在安装 Windows及 Linux双操作系统时,请先安装 Windows再安装 Linux 。

2.2 Linux 系统安装方式的选择

• 通过光盘介质引导安装 CD、 DVD• 通过网络引导安装 NFS, HTTP, FTP• 通过软盘( DOS)引导安装 需将操作系统拷贝到硬盘某个分区• 通过网络传输镜像文件安装 曙光公司 DCIS采用的方式

2.3 Linux 系统安装内容的选择• 根据实际需要来选择将要安装的软件包 作为网络服务器专用,提供用户服务 作为办公专用,处理日常事务 作为企业工作站专用,提供内部资源管理 如果将来有别的需要,可以很方便的安装相应软件,实现各

种所需功能

2.4 服务器磁盘控制器类型

•磁盘类型: SATA, SCSI, SAS• RAID卡型号: Adaptec:www.adaptec.com LSI :www.lsilogic.com

2.5 Linux 系统磁盘分区• 磁盘分区: 主分区:最多 4 个主分区,其中一个主分区必须被标志为是“活动的”,而且包含一个引导装入程序

扩展分区:将主分区之一转换成一个扩展分区,然后将扩展分区再细分成任意个逻辑分区,不可将目录安装在扩展分区上

逻辑分区:每个物理驱动器上最多只能有 11 个逻辑分区

2.6 Linux 系统分区优点

增强可用性:如果系统一个分区由于故障而不能使用,其余好的分区仍然可以使用;

减少关闭时间:如果系统故障只影响一部分分区,那么只有这部分分区需要修复,故能比整个分区修复花的时间更少;

维护轻松:如果需要修复分区,单独修复每个分区比修复整个大分区要轻松得多;

均衡 I/O: 可以把分区分配到不同的磁盘来平衡 I/O 改善性能; 分区对用户透明,最终用户感觉不到分区的存在。

2.7 Linux 系统分区识别

•第一 SCSI/SATA/SAS 的主盘: /dev/sda 分区: /dev/sda1、 /dev/sda2 、 /dev/sda3 ……..

•第二 SCSI/SATA/SAS 的从盘: /dev/sdb 分区: /dev/sdb1、 /dev/sdb2 、 /dev/sdb3 ……..

•第三 SCSI/SATA/SAS 的主盘: /dev/sdc 分区: /dev/sdac1、 /dev/sdc2 、 /dev/sdc3 ……..

•主分区被命名为 sda1-sda3 ,如超过 3 个分区,则 /dev/sda4被定义为扩展分区,在 /dev/sda4下生成 /dev/sda5逻辑分区, Linux 操作系统最多能分 11 个逻辑分区

2.8 Linux 系统主要分区介绍— /boot• /boot引导分区: 该目录放置系统内核及驱动模块引导程序,需要独立分区:1 独立有利于避免文件系统损坏造成的无法启动问题,如果独立出来,而 /根

文件系统因为别的原因损坏了,可以正常引导进入 linux 内核,并有很大几率进入一个可用的 shell 来修复系统,如果不独立,则很可能 /文件系统损坏导致找不到 /boot下的内核镜像,从而无法引导内核。

2 若使用 lilo 作为引导,避免 1024柱面问题。使用 grub引导不存在该问题。3 文件系统支持问题。若安装多操作系统, /boot 分区独立可以很方便的管

理多系统引导• /boot 修复 若由于操作或别的原因导致系统引导损坏,可以通过以下方法修复: 进入 grub模式grub> find /boot/grub/stage1 注:找到 /boot 分区位置返回 (hd0,0) 注:说明 /boot 分区在第一块硬盘的第一个分区 grub>root (hd0,0) 注:这是 /boot 所在的分区;grub>setup (hd0) 注:把 GRUB写到 MBR 上;

2.8 Linux 系统主要分区介绍— /swap• Swap空间的作用 当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,

以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到 Swap空间中,等到那些程序要运行时,再从 Swap 中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行 Swap 交换。

有一点要声明的是,并不是所有从物理内存中交换出来的数据都会被放到 Swap中(如果这样的话, Swap会不堪重负),有相当一部分的数据直接交换到文件系统

• 分区规则:

Swap space 比内存要慢 5-6 个数量级

在安装时,系统会尝试将交换分区安装到磁盘外端

当有多个磁盘控制器时,在每个磁盘上都建立交换分区

尽量将交换分区安装在访问最频繁的数据区附近

2.8 Linux 系统主要分区介绍— /swap• 创建 Swap 文件 1. 以超级用户( root)身份登陆 

# dd if=/dev/zero of=swapfile bs=1024 count=32000  创建一个有连续空间的交换文件。大小为 1024*32000=32G2.激活 Swap 文件 #/usr/sbin/swapon swapfile swapfile指的是上一步创建的交换文件。

3. 在 /etc/fstab /path/swapfile none Swap default 0 0 

4.检验 Swap 文件是否加上 /usr/sbin/swapon -s  

• 删除多余的 Swap空间。 1. 成为超级用户 2. 使用 Swapoff 命令收回 Swap空间。 #/usr/sbin/swapoff swapfile  3. 编辑 /etc/fstab 文件,去掉此 Swap 文件的实体。 4. 从文件系统中回收此文件。 #rm swapfile

2.8 Linux 系统分区介绍— /

/— 根目录 /root — 超级用户主目录 /bin -基本命令/boot- kernel 和 boot 配置文件 /etc -各种配置文件 /usr -用户程序 /opt--- 附加的应用软件包/home -用户目录   /mnt--- 设备 / 文件系统挂载点/tmp -临时文件/var -可变信息区( file spool,logs,requests,mail,etc.)/proc -进程信息 /dev -设备 /sbin -系统管理员执行程序 /lib--- 基本的共享库和核心模块

2.9 Linux 操作系统安装简解• 以光盘介质安装简解

•若加载软盘驱动, 输入 linux dd•若进入修复模式, 输入 linux rescue•若进入单用户模式, 输入 linux single

2.9.1 Linux 系统安装分区

• 自动分区:默认为自动分区,系统会分三个分区 /boot 、 /swap、 /根• 手工分区:根据应用分区, /boot、 /swap 为独立分区,可以定义

2.9.2 Linux 系统手工分区

2.9.2 系统安装需关闭的服务

•配 置 防 火 墙 及SElinux 选择无防火墙 no firwallSelinux 不活跃 disable SElinux

2.9.3 系统安装完毕后的工作• 在系统安装的过程中,按需求选择,无要求的默认即可,

根据系统安装提示将系统安装完毕• 系统安装完毕重新启动后,进行用户登录

2.9.4 系统安装完毕后用户的登录

• 超级用户 root (password 在安装时已设定)– root 为系统管理员,可以完成任何事情,建议不用 root登录

– login: rootpassword: ******[root@localhost root]#

• 普通用户同样需要输入 name &password [xyz@localhost xyz]$

2.10 Linux 系统基本配置 -网络配置• 网络的配置 #cd /etc/sysconfig/network-scripts #vi ifcfg-eth0 写入网络 IP 等 #vi ifcfg-eth1 写入网络 IP 等 设置完 IP后,重启网络系统 # /etc/init.d/network restart 网关:在 ifcfg-eth0 、 ifcfg-eth1 添加 GATEWAY= 网关 IP DNS : 在 ifcfg-eth0 、 ifcfg-eth1 添加

NAMESERVER=DNSIP• 网络相关配置文件

2.10 Linux 系统基本配置 -网络文件• /etc/hosts 如果系统的 IP 不是动态获取,简单的主机名解析 文件格式 : ip地址 主机名 cat /etc/hosts : 127.0.0.1 localhost.localdomain localhost • /etc/services Internet 网络服务文件,将网络服务名转换为端口号/协议。由

inetd、 telnet、 tcpdump 和一些其它程序读取。文件中的每一行对应一种服务,它由 4 个字段组成,中间用 TAB 或空格分隔,分别表示“服务名称”、“使用端口”、“协议名称”以及“别名”。

文件格式 : 服务 端口 /端口类型 别名 • /etc/sysconfig/network(redhat linux)、 /etc/hostname(suse) 主机名配置文件 , 记录着本机的主机名• /root/.rhosts 网络名认证

2.10 Linux 系统基本配置 -服务的管理

• 服务的启动 chkconfig 服务名称 on• 服务的关闭 chkconfig 服务名称 off• 服务关于运行级别的定义 chkconfig --level 35 服务名称 on/off• 服务的察看 chkconfig --list |grep 服务名称

2.10 Linux 系统基本配置 -运行级别的定义

• runlevel 运行级别 runlevels : 定义在 /etc/inittab 中的不同模式。

• Linux Runlevels0 Bootstrap or power-down

levels1 Administration mode2 Basic multiuser level (no

networking)3 Multiuser with DFS and

networking4 Not used5 XII mode: log in and out from

X prompts/S Single-user mode

第三章: Linux 系统的文件系统及其结构

3.1 文件与目录的基本概念• 文件:是用来存储信息的基本结构,它是被命名(文件名)

的存储在某种介质(磁盘,光盘,磁带等)上的一组信息的集合。

• 从技术上讲,文件不能存贮任何数据,它只是一个用来指向它们相应的索引节点 (inode) 的名字,索引节点包含了文件的真正信息。

• 文件名:是文件的标识,由字母,数字,下划线,圆点组成。• 扩展名:为了便于识别和管理,用扩展名作为文件名的一部

分,中间用 . 隔开• 目录文件:用来管理和组织大量的文件,常称为目录

3.2 文件系统基本概念• 文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)

或分区的目录结构;一个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统,首先您要做的是挂载(mount)文件系统;为了挂载(mount)文件系统,您必须指定一个挂载点;

• 文件系统是在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区组织文件的方法,如 NTFS或 FAT ;

• 文件系统是文件的数据结构或组织方法。在 Linux 中,文件系统涉及两个非常独特的事情,目录树或在磁盘或分区上文件的排列;文件系统是基于操作系统的,建立在磁盘媒质上的可见体系结构,例如这种结构对于一个 Linux 用户来说可以用 ls 或其它工具可以看到;

• 文件系统是基于被划分的存储设备上的逻辑上单位上的一种定义文件的命名、存储、组织及取出的方法;

• 在计算机业,一个文件系统是有组织存储文件或数据的方法,目的是易于查询和存取。文件系统是基于一个存储设备,比如硬盘或光盘,并且包含文件文件物理位置的维护;也可以说文件系统也是虚拟数据或网络数据存储的方法,比如 NFS 。

3.3 Linux 文件系统类型

•ext2 文件系统 ext2 文件系统应该说是 Linux正宗的文件系统,早期的 Linux 都是用 ext2 ,但随着技术的发展,大多 Linux 的发行版本目前并不用这个文件系统了;比如 Redhat和 Fedora 大多都建议用 ext3 , ext3 文件系统是由 ext2 发展而来的。对于Linux新手,我们还是建议您不要用 ext2 文件系统; ext2 支持 undelete(反删除),如果您误删除文件,有时是可以恢复的,但操作上比较麻烦; •ext3 文件系统:是由 ext2 文件系统发展而来 ext3 is a Journalizing file system for Linux( ext3 是一个用于 Linux 的日志文件系统), ext3 支持大文件;但不支持反删除( undelete)操作; Redhat和Fedora 都力挺 ext3 ;•reiserfs 文件系统 reiserfs 文件系统是一款优秀的文件系统,支持大文件,支持反删除( undelete);操作反删除比较容易; reiserfs 支持大文件;

3.4 常用文件系统比较Filesystem File Size Limit

Filesystem Size Limit

ext2/ext3 with 1 KiB blocksize16448 MiB (~ 16 GiB)

2048 GiB (= 2 TiB)

ext2/3 with 2 KiB blocksize 256 GiB 8192 GiB (= 8 TiB)

ext2/3 with 4 KiB blocksize2048 GiB (= 2 TiB)

8192 GiB (= 8 TiB)

ext2/3 with 8 KiB blocksize (Systems with 8 KiB pages like Alpha only)

65568 GiB (~ 64 TiB)

32768 GiB (= 32 TiB)

ReiserFS 3.5 2 GiB16384 GiB (= 16 TiB)

ReiserFS 3.6 (as in Linux 2.4) 1 EiB16384 GiB (= 16 TiB)

XFS 8 EiB 8 EiB

JFS with 512 Bytes blocksize 8 EiB 512 TiB

JFS with 4KiB blocksize 8 EiB 4 PiB

NFSv2 (client side) 2 GiB 8 EiB

NFSv3 (client side) 8 EiB 8 EiB

1024 Bytes = 1 KB; 1024 KB = 1 MB; 1024 MB = 1 GB; 1024 GB = 1 TB; 1024 TB = 1 PB; 1024 PB = 1 EiB

3.5 文件系统的创建• 文件系统的创建 这个过程是存储设备建立文件系统的过程,一般也被称为格式化或初始化,通过一些初始化工具来进行。一般的情况下每个类型的操作系统都有这方面的工具。在 Linux 中有mkfs 系列工具

• 创建方法 以系统第二块硬盘为例: /dev/sdb 分区: #fdisk /dev/sdb 分区完毕后,硬盘识别为 /dev/sdb1 文件系统创建: #mkfs –t 文件系统类型 /dev/sdb1

3.6 Linux 系统的文件结构

3.6.1 Linux 文件类型的定义• 普通文件

文本文件: ASCII 码形式存储 –开头,如: -rw-r--r-- 1 root root 39599 Mar 8 12:15 x 二进制文件:以二进制形式存储在计算机中,不可直接读,要通过相应

的软件读取 –开头,如: -rwxrwxrwx 1 root root 46888960 Dec 9 2005 x.sh

• 目录文件: d 字母开头 如: drwxr-xr-x 2 root root 4096 Aug 2 2006 bin

• 设备文件 块设备文件: b 字母开头 如: brw-rw---- 1 root disk 3, 1 Jan 30 2003 hda1 字符设备文件: c 字母开头 如: crw------- 1 root root 4, 1 Jul 31 13:49 tty1

3.6.2 Linux 文件属性的定义[root@localhost ~]# ls -lih总计 104K2408830 drwxr-xr-x 2 root root 4.0K 04-21 12:46 mkuml-2004.07.172408260 drwxr-xr-x 2 root root 4.0K 04-21 22:15 mydir2408258 lrwxrwxrwx 1 root root 7 04-21 22:16 sun001.txt -> sun.txt2408263 -rw-r--r-- 2 root root 39K 04-20 14:17 sun.txt

解释:第一字段: inode ; inode :索引节点。每个存储设备或存储设备的分区(存储设备是硬盘、软盘、 U盘 ... ... )被格式化为文件系统后,应该有两部份,一部份是 inode ,另一部份是 Block, Block 是用来存储数据用的。而 inode 是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。 inode 为每个文件进行信息索引,所以就有了 inode 的数值。操作系统根据指令,能通过 inode值最快的找到相对应的文件。第二字段:文件种类和权限;第三字段:硬链接个数;第四字段:属主;第五字段:所归属的组;第六字段:文件或目录的大小;第七字段和第八字段:最后访问或修改时间;第九字段:文件名或目录名

3.6.3 Linux 文件权限的定义[root@zhz home]# ls -ltotal 32drwxrwxrwx 38 down root 4096 Jul 5 19:09 downdrwx------ 9 glh glh 4096 Mar 26 19:08 glhdrwx------ 4 lei lei 4096 Mar 21 08:40 leidrwxr-xr-x 5 root root 4096 Apr 12 2006 software

•Linux 文件或目录的权限位 是由 9 个权限位来控制,每三位为一组,它们分别是: 文件属主 (Ower) 的读 r、写w、执行 x 用户组 (Group) 的读 r、写w、执行 x (Other) 其它用户的读 r、写w、执行 x ; 如果权限位不可读、不可写、不可执行,是用 -来表示。

3.6.3 系统目录内容介绍/ Linux 系统根目录,包含所有目录

/binBinary 的缩写,存放用户的可执行程序,例如 ls,cp,也包含其它的 SHELL如: bash 等

/boot包含 vmlinuz,initrd.img 等启动文件,随便改动可能无法正常开机

/dev 接口设备文件目录,如你的硬盘: sda

/etc Passwd 等系统设置与管理的文件/etc/x11 X Windows System 的设置目录/home 一般用户的主目录

/lib( /lib64) 包含执行 /bin和 /sbin 目录的二进制文件时所需的共享函数库 library

/mnt各项装置的文件系统加载点,例如: /mnt/cdrom 是光驱的加载点

/opt 提供空间,较大的且固定的应用程序存储文件之用

/procPS 命令查询的信息与这里的相同,都是系统内核与程序执行的信息

/root 管理员的主目录

3.6.3 系统目录内容介绍/sbin 系统启动时所需的二进制程序/tmp Temporary,存放暂存盘的目录/usr 存放用户使用系统命令和应用程序等信息/usr/bin 存放用户可执行程序,如 grep,mdir 等/usr/doc 存放各式程序文件的目录/usr/include 保存提供 C 语言加载的 header 文件/usr/include/X11 保存提供 X Windows 程序加载的 header 文件/usr/info GNU 程序文件目录/usr/lib( /lib64) 函数库/usr/lib(/lib64)/X11 函数库/usr/local 提供自行安装的应用程序位置/usr/man 存放在线说明文件目录/usr/sbin 存放经常使用的程序,如 showmount

/usr/src 保存系统的源码文件/usr/X11R6/bin 存放 X Windows System 的执行程序/var Variable, 具有变动性质的相关程序目录,如 log

第四章: Linux 操作系统的用户管理

4.1 Linux 系统用户与任务的关系

• 理解 Linux 的单用户多任务,多用户多任务概念 Linux 的单用户多任务

单用户多任务;一个用户,为了完成工作,执行了多个任务;当然其它的人还能以远程登录过来,也能做其它的工作。

Linux 的多用户、多任务 有时可能是很多用户同时用同一个系统,但并不所有的用户都一定都要做同一件事,所以这就有多用户多任务之说;

举个例子,比如一台服务器,上面有 FTP 用户、系统管理员、 web 用户、常规普通用户等,在同一时刻,有的可能在上传软件包管理子站;在与此同时,可能还会有系统管理员在维护系统;不同用户所具有的权限也不同,要完成不同的任务得需要不同的用户,也可以说不同的用户,可能完成的工作也不一样;

值得注意的是:多用户多任务并不是大家同时挤到一起在一台机器的的键盘和显示器前来操作机器,多用户可能通过远程登录来进行,比如对服务器的远程控制,只要有用户权限任何人都是可以上去操作或访问的;

4.2 Linux 系统用户和组的概念• 用户( user)的概念

Linux 是真正意义上的多用户操作系统, Linux 系统中可建若干用户 (user),在

Linux 系统中的一些用户是用来完成特定任务的。• 用户组( group)的概念;

用户组( group)就是具有相同特征的用户( user)的集合体;比如有时要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时需要用户组,把用户都定义到同一用户组,通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是通过定义组和修改文件的权限来实现的;

• 用户和用户组的对应关系是:一对一、多对一、一对多或多对多

一对一:某个用户可以是某个组的唯一成员;多对一:多个用户可以是某个唯一的组的成员,不归属其它用户组;

一对多:某个用户可以是多个用户组的成员; 多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组;其实多对

多的关系是前面三条的扩展;理解了上面的三条,这条也能理解

4.3 Linux 系统用户和组的配置• 与用户( user)和用户组( group)相关的配置文件

与用户( user)相关的配置文件

/etc/passwd 注:用户( user)的配置文件;/etc/shadow 注:用户( user)影子口令文件;

与用户组( group)相关的配置文件

/etc/group 注:用户组( group)配置文件;/etc/gshadow 注:用户组( group)的影子文件;

4.3.1 Linux 系统用户管理的命令• 管理用户( user)的工具或命令 useradd 注:添加用户

adduser 注:添加用户userdel 注:删除用户

passwd 注:为用户设置密码usermod 注:修改用户命令,可以通过 usermod 来修改登录名、用户的家目录等pwconv 注:同步用户从 /etc/passwd 到 /etc/shadowpwck 注: pwck 是校验用户配置文件 /etc/passwd 和 /etc/shadow 文件内容是否合法或完整;pwunconv 注:是 pwcov 的立逆向操作,是从 /etc/shadow 和 /etc/passwd 创建 /etc/passwd ,然后会删除 /etc/shadow 文件;finger 注:查看用户信息工具id 注:查看用户的 UID、 GID 及所归属的用户组chfn 注:更改用户信息工具su 注:用户切换工具sudo 注: sudo 是通过另一个用户来执行命令( execute a command as another user), su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但 sudo 能后面直接执行命令,比如 sudo 不需要 root 密码就可以执行 root 赋与的执行只有 root才能执行相应的命令;但得通过 visudo 来编辑 /etc/sudoers来实现;visudo 注: visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用 vi 来编辑 /etc/sudoers 的效果是一样的;sudoedit 注:和 sudo 功能差不多

4.3.2 Linux 系统用户组管理的命令

• 管理用户组( group)的工具或命令groupadd 注:添加用户组;groupdel 注:删除用户组;groupmod 注:修改用户组信息;groups 注:显示用户所属的用户组;grpck/grpconv 注:通过 /etc/group和 /etc/gshadow 的文件内容来同步或创建 /etc/gshadow ,如果 /etc/gshadow 不存在则创建;grpunconv 注:通过 /etc/group 和 /etc/gshadow 文件内容来同步或创建 /etc/group, 然后删除 gshadow 文件。

4.3.3 Linux 系统用户主目录文件

• /etc/skel 目录/etc/skel 目录一般是存放用户启动文件的目录,这个目录是由 root权限控制,当添加用户时,这个目录下的文件自动复制到新添加的用户的家目录下; /etc/skel 目录下的文件都是隐藏文件,也就是类似 .file格式的;我们可通过修改、添加、删除 /etc/skel 目录下的文件,来为用户提供一个统一、标准的、默认的用户环境。

• /etc/skel 目录下的文件,一般是用 useradd 和 adduser 命令添加用户( user)时,系统自动复制到新添加用户( user)的家目录下;如果我们通过修改 /etc/passwd 来添加用户时,我们可以自己创建用户的家目录,然后把 /etc/skel 下的文件复制到用户的家目录下,然后要用chown 来改变新用户家目录的属主。

4.3.4 Linux 系统用户管理相关文件

• /etc/default/useradd 文件

通过 useradd 添加用户时的规则文件内容如下:

# useradd defaults fileGROUP=100HOME=/home 注:把用户的家目录建在 /home 中;INACTIVE=-1 注:是否启用帐号过期停权, -1表示不启用;EXPIRE= 注:帐号终止日期,不设置表示不启用;SHELL=/bin/bash 注:所用 SHELL 的类型;SKEL=/etc/skel 注: 默认添加用户的目录默认文件存放位置;也就是说,当我们用 adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;

4.3.5 Linux 系统用户管理相关文件• /etc/login.defs 配置文件

/etc/login.defs 文件是当创建用户时的一些规划,比如创建用户时,是否需要家目录, UID和 GID 的范围;用户的期限等等,这个文件是可以通过 root 来定义的;

比如 Fedora 的 /etc/logins.defs 文件内容(注释删除后的内容) MAIL_DIR /var/spool/mail 注:创建用户时,要在目录 /var/spool/mail

中创建一个用户 mail 文件;PASS_MAX_DAYS 99999 注:用户的密码不过期最多的天数;PASS_MIN_DAYS 0 注:密码修改之间最小的天数;PASS_MIN_LEN 5 注:密码最小长度;PASS_WARN_AGE 7 注: UID_MIN 500 注:最小 UID为 500 ,也就是说添加用户时, UID 是从 500 开始的;UID_MAX 60000 注:最大 UID为 60000 ;GID_MIN 500 注: GID 是从 500 开始;GID_MAX 60000CREATE_HOME yes 注:是否创用户家目录,要求创建;

4.3.6 Linux 系统用户文件权限定义 -umask• 默认权限分配的命令 umask

umask 是通过八进制的数值来定义用户创建文件或目录的默认权限 ,umask 表示的是禁止权限 ,不过文件和目录有点不同:

新创建的文件默认不具有可执行允可权限: -rw------- 新创建的目录默认具有可执行允可权限: drwx--x--x 对于文件来说, umask 的设置是在假定文件拥有八进制 666权限上进行,

文件的权限就是是 666减去 umask 的掩码数值;对于目录来说, umask 的设置是在假定文件拥有八进制 777权限上进行,目录八进制权限 777减去 umask 的掩码数值

umask 文件 目录 0 6 7

1 5 6

2 4 5

3 3 4

4 2 3

5 1 2

6 0 1

7 0 0

系统用户的家目录的权限是通过在配置文件中指定的,比如 Fedora 中是用的 /etc/login.defs 文件;其中有这样一段:CREATE_HOME yesUMASK 077表示的意思是,当我们创建用户时,他的家目录umask 的数值是 077 。我们怎么理解这个 077呢。当用户添加时,系统自动在 /home 中创建用户的家目录,并且设置它的权限为 777-077=700 ,也就是 rwx------

4.3.7 Linux 系统用户文件权限定义 -setuid/gid

• setuid和 setgid 位 setuid 和 setgid位是让普通用户可以以 root 用户的角色运行只有 root帐号才能运行的程序或命令

• setuid和 setgid 的设置方法;第一种方法:八进制方法:setuid位设置用八进制的 4000, setgid占用的是八进制的 2000

至于 setuid 的设置方法,只是在我们通过 chmod 设置文件或目录权限位的八进制方法的前面多加一个数字,也就是 4 。比如:

[root@localhost ~]# chmod 4755 /bin/rm 注:设置 rm 的权限为4755 , 就把 setuid 位设置好了 -rwsr-xr-x 1 root root 26556 Feb 19 2003 /bin/rm作为 setgid 位占用的是八进制的 2000位,

同时设置 setuid和 setgid ,就是把 setuid和 setgid 两个八进位的值相加 (4000+2000=6000) ,然后加上文件或目录的权限位的三位数值 ,然后通过 chmod 运行就行了。

4.3.8 Linux 系统用户管理举例

• 添加 test 用户 ,该用户属于 workgroup组 添加组: #groupadd –u 1000 workgroup 添加用户: #useradd –u 1000 –g 1000 –d /home/test –s /bin/bash test 若系统为 suse ,则要在添加用户时生成用户目录,需要加 -m 参数 #useradd –u 1000 –g 1000 –m /home/test –s /bin/bash test• 删除 test 用户 #userdel test #rm –rf /home/test

第五章: Linux 操作系统常用命令详解

本章内容• 文件目录类命令 • 系统信息类命令 • 通信网络类命令

5.1 文件目录类命令

• 浏览目录命令 :cd dir ls • 浏览文件命令 :cat more less • 目录操作命令 :mkdir rmdir

• 文件操作命令 :touch vi rm cp mv ln tar gzip gunzip

whereis whatis

5.1.1 列出文件列表的 ls 命令• ls(list) 是一个非常有用的命令,用来显示当前目

录下的内容。配合参数的使用,能以不同的方式显示目录内容。下面是一些常用的范例。

• 格式: ls[ 参数 ] [路径或文件名 ]

5.1.2 切换目录的 cd 命令

cd (change directory) 命令可以让用户切换当前目录。范例如下:

[test@linux home]$ cd test 切换到当前目录下的 test子目录

[test@linux test]$ cd ..  切换到上一层目录[test@linux home]$ cd /  切换到系统根目录[test@linux /]$ cd    切换到用户自家目录(或执行

cd~)[test@linux test]$ cd /usr/bin 切换到 /usr/bin 目录

5.1.3 mkdir、 rmdir 命令

• mkdir(make directory) 命令可用来创建子目录。 格式: mkdir [ 参数 ] < 目录名 > [test@linux test]$ mkdir dir 在当前目录下建立 dir 目录 [test@linux test]$ mkdir -p dir1/dir2  在当前目录下创建 dir1 目录,并在 dir1 目录下创建 dir2 目录,也就是连续创建两个目录( dir1/和 dir1/dir2)

• 格式: rmdir [ 参数 ]< 目录名 > rmdir(remove directory) 命令可用来删除“空”的子目录: [test@linux test]$ rmdir dir 删除“空”的子目录 dir [test@linux test]$ rmdir –p dir1/dir2 删除 dir1下的 dir2 目录,若

dir1 目录为空也删除它

5.1.4 复制文件的 cp 命令

• cp(copy) 命令可以将文件从一处复制到另一处。一般在使用cp 命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。

格式: cp[ 参数 ]< 源文件路径>< 目标文件路径> [test@linux test]$ cp test1.txt  test2.txt 将 test1.text复制成 test2.txt [test@linux test]$ cp test3.txt  /tmp 将 test3.txt复制到 /tmp 目录中 [test@linux test]$ cp –r test1( 目录) test2( 目录) 加 -r 参数,拷贝目录

• 功能:删除文件或目录 格式: rm[ 参数 ] < 目标文件路径> [test@linux test]$ rm myfiles 删除一个文件 [test@linux test]$ rm * 删除当前目录下的所有文件 -f 参数:强迫删除文件 [test@linux test]$ rm –f *.txt 强迫删除所有以后缀名为 txt 文件 -r 参数:删除目录,等同于 rmdir 命令

5.1.5 删除文件或目录 rm 命令

5.1.5 rm 命令参数 -i 使用

-i 参数:删除文件时询问 [test@linux test]$ rm – i * 删除当前目录下的所有文件 rm:backup: is a directory    遇到目录会略过 rm : remove ‘myfiles.txt’ ? Y 删除文件时会询问 ,可按 Y 或 N 键表示允许或拒绝删除文件 

注意:在系统的默认状态下, rm 命令会对每个删除的文件一一询问。如果用户确定要删除这些文件,则可以使用参数 -f 来避免询问。

5.1.6 cat 命令• 功能:用于显示文件的内容 , 也可以将数个文件合并成一个文

件。 格式: cat[ 参数 ]< 文件名 > [test@linux test]$cat test.txt 显示 test.txt 文件内容 [test@linux test]$cat test.txt | more 逐页显示 test.txt 文件中的内容 [test@linux test]$cat test.txt >>test1.txt 将 test.txt 的内容附加到 test1.txt 文件之后 [test@linux test]$cat test.txt test2.txt >readme.txt  

将 test.txt和 test2.txt 文件合并成 readme.txt 文件

5.1.7 more 命令• more 命令是一般用于要显示的内容会超过一个画面长度的情况。为了避免画面显示时瞬间就闪过去,用户可以使用 more 命令,让画面在显示满一页时暂停,此时可按空格健继续显示下一个画面,或按 Q 键停止显示。

[test@linux test]$ more /etc/named.conf 显示 etc/named.conf 文本文件的内容 当用 ls 命令查看文件列表时,如果文件太多,则可配合more 命令使用: [test@linux etc]$ ls -al | more 以长格形式显示 etc 目录下的文件列表,显示满一个画面便暂停,可按空格键继续显示下一画面,或按 Q 键跳离

5.1.8 less 命令

• less 命令的用法与 more 命令类似,也可以用来浏览超过一页的文件。所不同的是 less 命令除了可以按空格键向下显示文件外,还可以利用上下键来卷动文件。当要结束浏览时,只要在 less 命令的提示符“:”下按 Q 键即可。

[test@linux etc]$less named.conf 显示 /etc/named.conf 的文本文件内容 [test@linux etc]$ls -al | less 以长格形式列出 /etc 目录中所有的内容。用户可按上下键浏览或按 Q 键跳离

5.1.9 显示命令 head、 tail• head 功能:用于显示文件前几行的内容 格式: head[ 参数 ]< 文件名 > [root@linux root]# head -10 /etc/passwd 显示 /etc/passwd/ 文件的前 10 行内容• tail 功能:用于显示文件后几行的内容 格式: tail[ 参数 ]< 文件名 > [root@linux root]# tail -10 /etc/passwd 显示 /etc/passwd/ 文件的倒数 10 行内容 [root@linux root]# tail +10 /etc/passwd 显示 /etc/passwd/ 文件的从第 10 行开始到末尾的内容

5.1.10 移动或更改文件、目录名称的 mv命令• 功能:可以将文件及目录移到另一目录下,或更改文件及目

录的名称 格式: [参数 ]< 源文件或目录 > < 目标文件或目录 > [test@linux dir1]$ mv a.txt ../ 将 a.txt 文件移动上层目录 [test@linux dir1]$ mv a.txt b.txt 将 a.txt 改名为 b.txt [test@linux dir1]$ mv dir2 ../ 将 dir2 目录上移一层

5.1.11 显示当前目录的 pwd 命令

• 功能:显示用户正在工作或当前所在的目录 格式: pwd [test@linux test]$ pwd /home/test

显示用户 test 所在的当前目录是 /home/test

5.1.12 find 命令

• Find 功能:用来寻找文件或目录 格式: find [<路径>] [匹配条件 ] [root@linux root]# find / -name httpd.conf 搜索系统根目录下名为 httpd.conf 的文件 /etc/httpd/httpd.conf 显示搜索结果 [root@linux root]# find /etc –name httpd.conf  搜索 /etc 目录下名为 httpd.conf 的文件,并显示结果 /etc/httpd/httpd.conf 显示搜索结果 

5.1.13 grep 命令

• 功能:在文件中搜索匹配的字符并进行输出 格式: grep[ 参数 ] < 要找的字串> < 要寻找字 串的源文件

> [root@linux root]# grep linux test.txt 搜索 test.txt 文件中字符串 linux 并输出 [root@linux root]# rpm -qa | grep httpd 搜索 rpm包中含有 httpd包的文件名 例: who | grep tty1

5.1.14 vi 命令详解• 进入 vi 的命令

vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第 n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename :打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用 vi 编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑

• 移动光标类命令 w或W :光标右移一个字至字首

b或 B :光标左移一个字至字首 e 或 E :光标右移一个字至字尾 ) :光标移至句尾

5.1.14 vi 命令详解• 屏幕翻滚类命令

Ctrl+u :向文件首翻半屏 Ctrl+d :向文件尾翻半屏 Ctrl+f :向文件尾翻一屏 Ctrl+ b;向文件首翻一屏 nz :将第 n行滚至屏幕顶部,不指定 n时将当前行滚至屏幕顶部。

• 插入文本类命令 i :在光标前 I :在当前行首 a:光标后 A :在当前行尾 o:在当前行之下新开一行 O:在当前行之上新开一行 r:替换当前字符 R:替换当前字符及其后的字符,直至按 ESC键 s:从当前光标位置处开始,以输入的文本替代指定数目的字符 S:删除指定数目的行,并以所输入文本代替之 ncw或 nCW :修改指定数目的字 nCC :修改指定数目的行

5.1.14 vi 命令详解• 最后行方式命令 : n1,n2 co n3 :将 n1 行到 n2 行之间的内容拷贝到第 n3行下 : n1,n2 m n3 :将 n1 行到 n2 行之间的内容移至到第 n3 行下 : n1,n2 d :将 n1 行到 n2 行之间的内容删除 :w :保存当前文件 : e filename :打开文件 filename 进行编辑 : x :保存当前文件并退出 : q:退出 vi : q! :不保存文件并退出 vi : !command :执行 shell 命令 command : n1,n2 w!command :将文件中 n1 行至 n2 行的内容作为command 的输入并执行之,若不指定 n1, n2 ,则表示将整个文件内容作为 command 的输入 : r!command :将命令 command 的输出结果放到当前行

5.1.14 vi 命令详解• 删除命令

ndw或 ndW :删除光标处开始及其后的 n-1 个字 do :删至行首 d$ :删至行尾 ndd :删除当前行及其后 n-1 行 x 或 X :删除一个字符, x 删除光标后的,而 X 删除光标前的 Ctrl+u :删除输入方式下所输入的文本

搜索及替换命令 /pattern :从光标开始处向文件尾搜索 pattern ?pattern :从光标开始处向文件首搜索 pattern n:在同一方向重复上一次搜索命令 N:在反方向上重复上一次搜索命令 : s/p1/p2/g :将当前行中所有 p1 均用 p2替代 : n1,n2s/p1/p2/g :将第 n1至 n2 行中所有 p1 均用 p2替代 : g/p1/s//p2/g :将文件中所有 p1 均用 p2替换

5.1.14 vi 命令详解

• 寄存器操作 ?nyy :将当前行及其下 n行的内容保存到寄存器?中,其中 ?

为一个字母, n为一个数字 ?nyw :将当前行及其下 n个字保存到寄存器?中,其中 ?为一个字母, n为一个数字 ?nyl :将当前行及其下 n个字符保存到寄存器?中,其中 ?为一个字母, n为一个数字 ?p :取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字 ndd :将当前行及其下共n行文本删除,并将所删内容放到1 号删除寄存器中。

5.1.15 touch 命令• 功能:生成一个空文件或修改文件的存取 /修改的时间记录值。

格式: touch[参数] < 文件名 > [test@linux test]$ touch * 将当前下的文件时间修改为系统的当前时间 [test@linux test]$ touch –d 20070806 test 将 test 文件的日期改为 20070806 [test@linux test]$ touch abc    若 abc 文件存在,则修改为系统的当前时间;若不存在,则

生成一个为当前时间的空文件

5.1.16 who或w命令• 功能:查看当前系统中有哪些用户登录 格式: who/w[ 参数 ] [root@linux root]# who root tty1 1 个本地用户登录 test pts/0 1 个远程登录用户

5.1.17 ln 命令• 功能:在文件和目录之间建立链接 格式: ln [ 参数 ] < 源文件或目录 > < 目标文件或目录 > 链接分“软链接”和“硬链接” 1. 软链接 : [root@linux test]# ln –s /usr/share/doc doc 创建一个链接文件 doc, 并指向目录 /usr/share/do 2. 硬链接 : [root@linux test]# ln /usr/share/test hard 创建一个硬链接文件 hard ,这时对于 test 文件对应的存 储区域来说,又多了一个文件指向它。

5.1.18 硬链接与软链接

• 文件名称用箭头指到另一个文件此为文件链接数• 简单地说,软链接就是为同一个文件或目录创建 2 、3 个名字,如同在Windows下创建的快捷方式

5.1.19 软件包管理命令 (RPM)

• RPM 的全名是 Red Hat Package Manager, 它是由 Red Hat 公司所开发的一个开放性软件包管理系统。其优点:

易于安装、升级与删除软件包 有强大的查询功能 能够进行软件包验证 支持代码形式的软件包

5.1.19 软件包的安装使用 RPM 命令的安装模式可以将软件包内所有的组件放到系统中的正确路径,安装软件包的命令是 : [root@linux root]#rpm –ivh vsftpd-2.6.2-x86-

64.rpmi:作用 rpm 的安装模式v: 校验文件信息h: 以#号显示安装进度

5.1.19 软件包的删除

删除模式会将指定软件包的内容全部删除,但并不包括已更改过的配置文件,删除 RPM 软件包的命令如下:[root@linux /]# rpm –e vsftpd 删除参数 软件包名称注意:这里必须使用软件名“ vsftpd” 或” vstpd-2.6.2-x86-

64 而不是使用当初安装时的软件包名 . vsftpd-2.6.2-x86-64.rpm

5.1.19 软件包升级

升级模式会安装用户所指定的更新版本,并删除已安装在系统中的相同软件包,升级软件包命令如下:[root@linux /]# rpm –Uvh vsftpd-2.6.2-x86-64.rpm 升级参数

5.1.19 软件包更新

更新模式下, rpm 命令会检查在命令行中所指定的软件包是否比

系统中原有的软件包更新。如果情况属实, rpm 命令会自动更新

指定的软件包;反之,若系统中并没有指定软件包的较旧版本, rpm 命令并不会安装此软件包。而在升级模式下,不管系

统中是否有较旧的版本, rpm 命令都会安装指定的软件包。[root@linux /]# rpm –Fvh vsftpd-2.6.2-x86-64.rpm 更新参数

5.1.19 软件包查询若要获取 RPM 软件包的相关信息,可以使用查询模式。使用 -q

参数可查询一个已安装的软件包的内容。[root@linux /]# rpm –q vsftpd vsftpd-2.6.2-x86-64 显示软件包的名称、版本及次版本查询软件包所安装的文件:安装某个软件包之后,常常困扰用户是,不知道该软件包究竟安装到哪里,此时执行 rpm –ql package-name 命令可得知[root@linux /]# rpm –ql xv (l 参数:显示文件列表 ) /etc/x11/wmconfig/xv /usr/x11R6/bin/bggen 查询结果 /usr/X11R6/bin/vdcomp 

5.1.20 打包命令 tar• tar 命令位于 /bin 目录下,它能够将用户所指定的文件或目

录打包成一个文件,但不做压缩。一般 Unix 上常用的压缩方式是选用 tar 将许多文件打包成一个文件,再以 gzip压缩命令压缩成 xxx.tar.gz( 或称为 xxx.tgz) 的文件。

• 注意: tar 不仅可以打包文件,也可以将硬盘数据备份• 常用参数:-c :创建一个新 tar 文件-v :显示运行过程的信息-f :指定文件名-z :调用 gzip压缩命令进行压缩-t :查看压缩文件的内容-x :解开 tar 文件

5.1.20 tar 命令范例

• [root@linux test]# tar -cvf test.tar *• 将所有文件打包成 test.tar, 扩展名 .tar 需自行加上• [root@linux test]# tar -zcvf test.tar.gz *• 将所有文件打包成 test.tar,再用 gzip 命令压缩• [root@linux ljr]# tar -tf test.tar• 查看 test.tar 文件中包括了哪些文件• [root@linux test]# tar -xvf test.tar 将 test.tar 解开

• [root@linux test]# tar -zxvf foo.tar.gz 将 foo.tar.gz 解压缩

5.1.20 gzip和 gunzip

• 除了 .zip 文件的压缩格式外,在 Linux 系统下更常见的是 .gz 文件的压缩格式,这种文件一般是由 gzip 命令所产生。 zip 命令具有将许多文件压缩成一个文件的功能,但gzip却不能,所以 gzip 一般会和 tar 一起使用。目前,大部分或见到的压缩文件都是用 tar 将所有文件打包成一个文件,再用 gzip 进行压缩,所以我们所看到的扩展名为 .tar.gz或 .tgz 的文件,大多数就是这种类型的文件。

5.1.20 gzip各 gunzip 命令

• [root@linux test]# gzip test.txt   压缩文件时,不需要任何参数

• [root@linux test]# gizp –l test.txt.gz    显示压缩率

• [root@linux test]# gunzip test.txt.gz 解压缩

5.1.21 date、 cal、 clock

• date 命令可以显示 /修改当前的日期时间• [root@linux root]# date 121010232004• 将时间更改为 12月 10日 10点 23分 2004 年 [MMDDhhmmYY]• [root@linux root]# cal 显示日历• [root@linux root]# clock 显示日期时间

5.1.21 显示日历或年历的 cal 命令• cal(calendar)• 功能:显示一个日历• 格式: cal [ 参数 ] 月 年• [root@linux root]# cal 显示当月的日历• [root@linux root]# cal 4 2004 显示 2004年 4 月的日历• [root@linux root]# cal - y 2003 显示 2003 年的日历

5.2 系统信息类命令

• dmesg 命令 • df 命令 • du 命令 • free 命令 • w命令

5.2.1 dmesg 命令• 功能:显示系统诊断信息、操作系统版本号、物

理内存的大小以及其它信息

5.2.2 df 命令

• 功能:用于查看文件系统的各个分区的占用情况

5.2.3 du 命令• 功能:查看某个目录中各级子目录所使用的硬盘空间数• 格式: du [ 参数 ] < 目录名 >

5.2.4 free 命令

• 功能:用于查看系统内存,虚拟内存(交换空间)的大小占用情况

5.3 网络通讯类命令

• ftp 传输文件• telnet 登录到远程计算机上• netstat 查看网络的状况• finger 查询某个使用者的信息• ping 查询某个机器是否在工作• route 设置系统网络路由

5.3.1 ftp传输文件• ftp登录后执行命令: ls 列出远程机的当前目录

cd 在远程机上改变工作目录lcd 在本地机上改变工作目录ascii 设置文件传输方式为 ASCII模式binary 设置文件传输方式为二进制模式close终止当前的 ftp会话hash 每次传输完数据缓冲区中的数据后就显示一个 # 号get(mget) 从远程机传送指定文件到本地机put(mput) 从本地机传送指定文件到远程机open 连接远程 ftp站点quit断开与远程机的连接并退出 ftp? 显示本地帮助信息! 转到 Shell 中

  passive :进入被动传输方式 prompt :设置多个文件传输时的交互提示

5.3.2 telnet 登录到远程计算机上

• telnet 命令的一般形式 telnet 主机名 /IP 其中“主机名 /IP” 是要连接的远程机的主机名或 IP地址

• telnet 只为普通终端提供终端仿真,而不支持 X Wndow 等图形环境

5.3.3 netstat 查看网络的状况• netstat 

1. 作用 检查整个 Linux 网络状态。 2.格式 netstat [-acCeFghilMnNoprstuvVwx][-A][--ip] 3. 主要参数 -a--all :显示所有连线中的 Socket 。

-c--continuous :持续列出网络状态。 -e--extend :显示网络其它相关信息。 -g--groups :显示多重广播功能群组组员名单。 -i--interfaces :显示网络界面信息表单。

-l--listening :显示监控中的服务器的 Socket 。   -n--numeric :直接使用 IP地址,而不通过域名服务器。 -r--route :显示 Routing Table 。

-s--statistice :显示网络工作信息统计表。 -t--tcp :显示 TCP传输协议的连线状况。

-u--udp :显示 UDP传输协议的连线状况。 -v--verbose :显示指令执行过程。 -w--raw :显示 RAW传输协议的连线状况。

5.3.4 finger查询某个使用者的信息

• Finger 命令是显示有关运行 Finger 服务或 Daemon 的指定远程计算机(通常是运行 UNIX 的计算机)上用户的详细信息。该远程计算机指定显示用户信息的格式和输出。

• 命令中各选项的含义如下:-s 显示用户的注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。-l 除了用 -s选项显示的信息外,还显示用户主目录、登录shell 、邮件状态等信息,以及用户主目录下的 .plan、 .project和 .forward 文件的内容。-p 除了不显示 .plan 文件和 .project 文件以外,与 -l选项相同。

5.3.5 ping查询某个机器是否在工作• ping [选项] 主机名 /IP地址

命令中各选项的含义如下:-c 数目 在发送指定数目的包后停止-f 大量且快速地送网络封包给一台机器,看它的回应-I 秒数 设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次

-l 次数 在指定次数内,以最快的方式送封包数据到指定机器(只有超级用户可以使用此选项)

-q 不显示任何传送封包的信息,只显示最后的结果-r 不经由网关而直接送封包到一台机器,通常是查看本机的网络接口是否有问题-s 字节数 指定发送的数据字节数,预设值是 56 ,加上 8 字节的 ICMP头,一共是 64ICMP数据字节

5.3.6 route 设置系统网络路由• 在本地 IP 路由表中显示和修改条目 • route [-f] [-p] [Command] [Destination] [mask Netmask]

[metric Metric] [Gateway] dev [Interface]-f 清除所有网关入口的路由表;-p 与 add 命令一起使用时使路由具有永久性;Command 指定您想运行的命令 (Add/Change/Delete/Print) ; Destination 指定该路由的网络目标;mask Netmask 指定与网络目标相关的网络掩码(也被称作子网掩码);

metric Metric 为路由指定一个整数成本值标(从 1 至 9999 ),当在路由表 (与转发的数据包目标地址最匹配 )的多个路由中进行选择时可以使用;

Gateway 指定网络目标定义的地址集和子网掩码可以到达的前进或下一跃点 IP 地址。

5.3.6 route路由设置• [root@linux /]# route • Kernel IP routing table • Destination Gateway Genmask Flags Metric Ref Use Iface

127.0.0.0 127.0.0.1 255.0.0.0 U 0 0 0 lo • 192.168.1.0 192.168.1.5 255.255.255.0 U 0 0 0 eth0 • 第一项是到 localhost 的回送路由,它是在配置 lo 时自动创建的。• 第二项是通过接口 eth0 到网络 192.168.1.0 的路由。地址 192.168.1.5 不

是远程网关地址。它是分配给 eth0 的地址。• 注意每项的标志。它们都设置了 U(启动)标志,这表示准备使用它们,但它们

都未设置 G (网关)标志。不设置 G 标志是因为这两个路由都是通过本地接口,而不是通过外部网关的直接路由。

为了规范,在 /etc/sysconfig/下建立 static-routes 文件:eth1 net 192.168.0.0/24 gw 192.168.0.254any net 192.168.0.0/24 gw 192.168.0.6

5.4 磁盘管理类命令 -fdisk • fdisk 硬盘容量及分区大小的算法; 我们通过 fdsik -l 可以发现如下的信息: Disk /dev/sda: 73.5 GB, 73543163904 bytes255 heads, 63 sectors/track, 8941 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sda1 * 1 13 104391 83 Linux/dev/sda2 14 535 4192965 82 Linux swap/dev/sda3 536 8941 67521195 83 Linux其中 heads 是磁盘面; sectors 是扇区; cylinders 是柱面;每个扇区大小是512byte ,也就是 0.5M ; 通过上面的例子,我们发现此硬盘有 255 个磁盘面,有 63 个扇区,有 8941 个柱

面;所以整个硬盘体积换算公式应该是:磁面个数 x 扇区个数 x 每个扇区的大小 512 x 柱面个数 = 硬盘体积 (单位bytes)

5.4 磁盘管理类命令 -fdisk fdisk 分区管理 [root@node1 ~]# fdisk /dev/sdb Command (m for help): m Command action a toggle a read only flag b edit bsd disklabel c toggle the mountable flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help):

5.4 磁盘管理类命令 -fdisk[root@node1 ~]# fdisk /dev/sda The number of cylinders for this disk is set to 8941.There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/sda: 73.5 GB, 73543163904 bytes255 heads, 63 sectors/track, 8941 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sda1 * 1 13 104391 83 Linux/dev/sda2 14 535 4192965 82 Linux swap/dev/sda3 536 8941 67521195 83 Linux Command (m for help):

[root@node1 ~]# fdisk /dev/sda The number of cylinders for this disk is set to 8941.There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): nCommand action e extended p primary partition (1-4) 输入 P若分区仅作一个,则默认 enterCommand (m for help):w

5.4 磁盘管理类命令 -fdisk

第六章: Linux 操作系统的进程管理

6.1 程序和进程

• 程序是为了完成某种任务而设计的软件,比如 OpenOffice 是程序。什么是进程呢?进程就是运行中的程序。

• 一个运行着的程序,可能有多个进程。 比如WWW服务器是apache服务器,当管理员启动服务后,可能会有好多人来访问,也就是说许多用户来同时请求 httpd服务, apache服务器将会创建有多个 httpd 进程来对其进行服务。

6.1.1 进程分类• 进程一般分为交互进程、批处理进程和守护进程三类。• 值得一提的是守护进程总是活跃的,一般是后台运行,守护

进程一般是由系统在开机时通过脚本自动激活启动或超级管理用户 root 来启动。比如在 Fedora或 Redhat 中,我们可以定义 httpd 服务器的启动脚本的运行级别,此文件位于 /etc/init.d 目录下,文件名是 httpd, /etc/init.d/httpd 就是 httpd服务器的守护程序,当把它的运行级别设置为 3 和 5 时,当系统启动时,它会跟着启动。

• [root@localhost ~]# chkconfig --level 35 httpd on• 由于守护进程是一直运行着的,所以它所处的状态是等待请

求处理任务。比如,是不是访问网站,网站的 httpd服务器都在运行,等待着用户来访问,也就是等待着任务处理。

6.1.2 进程的属性• 进程 ID( PID) :是唯一的数值,用来区分进程;

子进程和父进程的 ID( PPID) ;启动进程的用户 ID( UID)和所归属的组(GID);进程状态:状态分为运行 R、休眠 S、僵尸Z ;

进程执行的优先级;进程所连接的终端名;进程资源占用:比如占用资源大小(内存、 CPU占用量)。

6.1.3 父进程和子进程

• 他们的关系是管理和被管理的关系,当父进程终止时,子进程也随之而终止。但子进程终止,父进程并不一定终止。比如 httpd服务器运行时,我们可以杀掉其子进程,父进程并不会因为子进程的终止而终止。

• 在进程管理中,当我们发现占用资源过多,或无法控制的进程时,应该杀死它,以保护系统的稳定安全运行;

6.2 进程管理

• 对于 Linux 进程的管理,是通过进程管理工具实现的,比如 ps、 kill、 pgrep 等工具

6.2.1 ps 监视进程工具 • ps 的参数说明; 获得线程信息 : ps -eLf ps axms获得进程树: ps -ejH ps axjfl 长格式输出;u 按用户名和启动时间的顺序来显示进程;j 用任务格式来显示进程; f 用树形格式来显示进程;a 显示所有用户的所有进程(包括其它用户);x 显示无控制终端的进程;r 显示运行中的进程;

6.2.1 ps aux 或 lax输出的解释 • USER 进程的属主; • PID 进程的 ID ; • PPID 父进程的 ID ;• %CPU 进程占用的 CPU百分比;• %MEM 占用内存的百分比; • NI 进程的 NICE值,数值大,表示较少占用 CPU时间; • VSZ 进程虚拟大小; • RSS 驻留中页的数量; • TTY 终端 ID• WCHAN 正在等待的进程资源;• START 启动进程的时间; • TIME 进程消耗 CPU 的时间;• COMMAND 命令的名称和参数;

6.2.1 ps aux显示的进程状态• STAT 进程状态 • D Uninterruptible sleep (usually IO)• R 正在运行可中在队列中可过行的; • S 处于休眠状态;• T 停止或被追踪; • W 进入内存交换(从内核 2.6 开始无效); • X 死掉的进程(从来没见过);• Z 僵尸进程; • < 优先级高的进程 • N 优先级较低的进程• L 有些页被锁进内存; • s 进程的领导者(在它之下有子进程);• l is multi-threaded (using CLONE_THREAD, like NPTL pthreads

do) • + 位于后台的进程组; • WCHAN 正在等待的进程资源; START 启动进程的时间; TIME 进程消耗 CPU 的时间; COMMAND 命令的名称和参数。

6.2.2 pgrep

• pgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。在服务器的配置和管理中,这个工具常被应用,简单明了

6.2.2 pgrep 用法• #pgrep 参数选项 程序名• 常用参数 -l 列出程序名和进程 ID ;

-o 进程起始的 ID ;-n 进程终止的 ID ;

• 举例: [root@localhost ~]# pgrep -l httpd

4557 httpd4560 httpd4561 httpd4562 httpd4563 httpd4564 httpd4565 httpd4566 httpd

6.3终止进程的工具 kill 、 killall、 pkill、xkill

• 终止一个进程或终止一个正在运行的程序,一般是通过 kill 、killall、 pkill、 xkill 等进行。比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。

• 另外应用的场合就是在服务器管理中,在不涉及数据库服务器程序的父进程的停止运行,也可以用这些工具来终止。为什么数据库服务器的父进程不能用这些工具杀死呢?原因很简单,这些工具在强行终止数据库服务器时,会让数据库产生更多的文件碎片,当碎片达到一定程度的时候,数据库就有崩溃的危险。比如mysql服务器最好是按其正常的程序关闭,而不是用 pkill mysqld 或 killall mysqld 这样危险的动作;当然对于占用资源过多的数据库子进程,我们应该用 kill 来杀掉。

6.3.1 kill

• kill 的应用是和 ps 或 pgrep 命令结合在一起使用的 • kill [信号代码] 进程 ID • 注:信号代码可以省略;我们常用的信号代码是 -9 ,表示强制终止

• 对于僵尸进程,可以用 kill -9 来强制终止退出• 例: [root@localhost ~]# pgrep -l gaim

5031 gaim [root@localhost ~]# kill -9 5031

6.3.2 killall

• killall 通过程序的名字,直接杀死所有进程• 用法: killall 正在运行的程序名• killall 也和 ps或 pgrep 结合使用,比较方便• 通过 ps或 pgrep 来查看哪些程序在运行•举例: [root@localhost test]# pgrep -l gaim

2979 gaim[root@localhost test]# killall gaim

6.3.3 pkill

• pkill 和 killall 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用 kill 来杀掉

•应用方法:• #pkill 正在运行的程序名•举例: [root@localhost test]# pgrep -l gaim

2979 gaim[root@localhost test]# pkill gaim

6.3.4 xkill

• xkill 是在桌面用的杀死图形界面的程序。比如当 firefox 出现崩溃不能退出时,点鼠标就能杀死 firefox 。当 xkill运行时出来人脑骨的图标,哪个图形程序崩溃一点就 OK 了。如果您想终止 xkill ,就按右键取消;

• xkill 调用方法:• [root@localhost ~]# xkill

6.4 top监视系统任务的工具

•和 ps 相比, top 是动态监视系统任务的工具,top 输出的结果是连续的

6.4.1 top 命令用法及参数 • 参数: -b 以批量模式运行,但不能接受命令行输入;

-c 显示命令行,而不仅仅是命令名;-d N 显示两次刷新时间的间隔,比如 -d 5 ,表示两次刷新间隔为 5 秒;-i 禁止显示空闲进程或僵尸进程;-n NUM 显示更新次数,然后退出。比如 -n 5 ,表示 top更新 5 次数据就退出;-p PID 仅监视指定进程的 ID; PID 是一个数值;-q 不经任何延时就刷新;-s 安全模式运行,禁用一些效互指令;-S 累积模式,输出每个进程的总的 CPU时间,包括已死的子进程;

6.5 进程的优先级: nice和 renice

• 在当前程序运行优先级基础之上调整指定值得到新的程序运行优先级。优先级的范围为 -20 ~ 19 , 40 个等级,其中数值越小优先级越高,数值越大优先级越低,既 -20 的优先级最高, 19 的优先级最低。若调整后的程序运行优先级高于 -20 ,则就以优先级 -20 来运行命令行;若调整后的程序运行优先级低于 19 ,则就以优先级 19 来运行命令行。若 nice命令未指定优先级的调整值,则以缺省值 10 来调整程序运行优先级,既在当前程序运行优先级基础之上增加 10 。

• 若不带任何参数运行命令 nice ,则显示出当前的程序运行优先级。

6.5 nice/renice• -n, 指定程序运行优先级的调整值。 • 优先级的范围为 -20~19 ,当调整后的优先级小于 -20时,以优先级 -20 来运行程序;当调整后的优先级大于 19时,则以 19 的优先级运行程序  

• 还可以使用参数“ -ADJUST” 的形式来指定程序运行优先级的调整值,其中, ADJUST 为指定的程序运行优先级调整值,可以为负数,也可以为正数,

参数“ --1” 、“ -+1” 和 “ -1” 中的第一个字符“ -” 都是语法定义的指定程序运行优先级调整值的标志符,第一个字符“ -” 之后的值为指定的程序运行优先级的调整值。

• 在 nice 命令中,可以同时指定多个程序运行优先级调整值,但只有最后一次指定的数值有效

• 通过命令行同时指定了优先级调整值“ -20” 、“+9” 和“ 3” ,但最后生效的程序运行优先级调整值为最后指定的数值“ 3” 。

• 注意:只有具有 root权限的用户才可以调整高程序运行的优先级,既指定的调整值可以为负数

• 系统 nice 程序使用的是相对 nice值 ,renice 是使用 nice 的绝对值 :nice -n -5 /bin/sh nice值降低 5renice -5 -u /bin/sh 把 sh的 nice值设置为 5

第七章: Linux 操作系统的网络配置

7.1 Linux 网络配置的相关文件• /etc/modprobe.conf 该文件定义了网卡的型号,如: alias eth1 forcedeth alias eth0 forcedeth • /etc/sysconfig/networking-scripts/ifcfg-ethX 该文件设置网络的 IP地址、 DNS 及网关 DEVICE=eth0 # 设备名字 ONBOOT=yes # 系统启动过程中,网络是否启动 BOOTPROTO=static # 网络启动是以静态的获得 IP还是动态( DHCP)获得 IP IPADDR=11.11.11.49 #IP地址 NETMASK=255.0.0.0 #子网掩码 NAMESERVER=IP # 设置 DNS 对应的 IP GATEWAY=IP # 设置网关对应的 IP• /etc/sysconfig/network 该文件设置系统名字• /etc/sysconfig/static-routes 该文件设置系统的静态路由 any net 192.168.0.0/24 gw 192.168.1.6

7.2 网络启动命令

• 配置好网络的相关文件后,进行网络启动: /etc/init.d/network restart

ifconfig eth0 down = ifdown eth0 ifconfig eth0 up = ifup eth0 ifconfig eth0:0 192.168.0.1 netmask 255.0.0.0 网卡第二个 IP绑定,临时生

谢谢!!

top related