LINUX(RHEL4)
第一章 linux 系统简介及安装
Linux 内核项目是由芬兰赫尔辛基大学的 Linus Torvalds 创建
内核版本是由 Linux 内核社区统一进行发布的
1.内核版本的格式
内核版本号的格式为 xx.yy.zz
版本号中 yy 为奇数的是开发版本,用于开发和测试
版本号中 yy 为偶数的是稳定版本,用于生产系统中
2.开源软件的定义及许可协议
GPL(GNU General Public License)
GPL 许可协议的主要目标是保证软件对所有的用户都是自由的
LGPL(Lesser General Public License)
LGPL 相对于 GPL 的条款更加宽松,为使用 Linux 平台开发商业软件提供了更多的
空间
OSD(The Open Source Definition)
3.Red Hat Linux 系列发行版
Red Hat Linux
已停止开发,最高版本为 9.0
Red Hat Linux 企业版
简称 RHEL(Red Hat Enterprise Linux)
目前最高版本为 RHEL4
Fedora Core 社区版
http://fedora.redhat.com/
4.硬盘分区的文件名表示
IDE 硬盘设备使用 hdXN 表示,其中 X 表示 a,b,c 或 d 等设备文件名表示,系统中
最多有四个 IDE 设备
N 是从 1-4 的数字,分别表示第 N 个主分区,逻辑分区是 5 以上的数字,逻辑分区使用
hda5、hda6 等设备文件名表示
硬盘分区可分为:主分区、扩展分区、逻辑分区
主分区是硬盘的基本分区,可直接创建文件系统供操作系统使用
扩展分区是一种特殊的硬盘主分区,不能直接创建文件系统,需划分逻辑分区再加以使用
逻辑分区只能建立在扩展分区中,在逻辑分区中可以创建文件系统
5.Linux 使用的文件系统类型
EXT2 和 EXT3 都是 Linux 操作系统默认使用的文件系统类型
EXT3 属于日志文件系统,是 EXT2 文件系统的升级版
swap 类型的文件系统在 Linux 系统的交换分区中使用
Linux 支持对 FAT 格式文件系统(包括 FAT16 和 FAT32)的读写
Linux 支持对 NTFS 文件系统的读取,默认不支持对 NTFS 文件系统的写入
6.目录层次结构
Administrator
高亮
Administrator
高亮
Administrator
高亮
Linux 系统使用树型目录结构,在整个系统中只存在一个根目录(文件系统)
Linux 系统中总是将文件系统挂载到树型目录结构中的某个目录节点中使用
/ 根目录是 Linux 文件系统的起点,根目录所在的分区称为根分区
/boot 这里存放的是启动 Linux 时使用的一些核心文件,包括一些链接文件以及镜像文件
/bin bin 是 Binary 的缩写。这个目录存放系统基本的用户命令
/sbin 用于存放系统基本的管理命令,管理员用户权限可以执行
/var 这个目录中存放着系统中经常要变化的文件,如系统日志
/dev dev 是 Device(设备)的缩写。该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方
式和访问文件的方式是相同的。
/etc 用来存放所有的系统管理所需要的配置文件和子目录。
/home 普通用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的
账号命名的。
/lib 这个目录里存放着系统最基本的动态链接共享库,其作用类似于 Windows 里的 DLL 文件。几
乎所有的应用程序都需要用到这些共享库。
/lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/mnt 在这里面中有四个目录,系统提供这些目录是为了让用户临时挂载别的文件系统的,我们可
以将光驱挂载在/mnt/cdrom 上,然后进入该目录就可以查看光驱里的内容了。
/proc 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系
统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可
以通过下面的命令来屏蔽主机的 ping 命令,使别人无法 ping 你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all。
/root 该目录为系统管理员,也称作超级权限者的用户主目录。
/tmp 这个目录是用来存放一些临时文件的。
我们要用到的很多应用程序和文件几乎都存放在 usr 目录下。具体来说:
/usr/X11R6 存放 X-Windows 的目录;
/usr/games 存放着 XteamLinux 自带的小游戏;
/usr/bin 存放着许多应用程序;
/usr/sbin 存放 root 超级用户使用的管理程序;
/usr/doc Linux 技术文档;
/usr/include 用来存放 Linux 下开发和编译应用程序所需要的头文件;
/usr/lib 存放一些常用的动态链接共享库和静态档案库;
/usr/local 这是提供给一般用户的/usr 目录,在这里安装一般的应用软件;
/usr/man 帮助文档所在的目录;
/usr/src Linux 开放的源代码,就存在这个目录,爱好者们别放过哦;
7.Linux 的安装方式
Administrator
高亮
Administrator
高亮
RHEL4 支持从光盘和 USB 存储设备引导安装程序
安装程序读取软件包的方式
从光盘读取软件包进行安装是 RHEL4 提供的缺省安装方式
安装程序可读取硬盘中保存的安装光盘镜像文件(ISO 文件)进行安装
安装程序可从 NFS、FTP 和 HTTP 网络服务器中读取文件进行安装
Linux 系统需要至少一个根分区和一个交换分区(交换分区的大小一般为实际内在的二倍)
退出系统
注销用户(Log out)
关闭系统(Shut down)
重新启动(Restart the computer)
8.引导盘的制作
#ls -l /media/cdrom/images/
Boot.iso 是安装程序引导光盘的文件,可刻录为引导光盘
Diskboot.img 是 USB 设备引导的镜像文件,使用 dd 命令可以将该文件制作成可引导 RHEL4 安装程
序的 U 盘
第二章 常用命令及账户管理
一.Linux 命令格式
1.Linux 命令的组成部分
(1).命令字(命令名称)无论是文件名还是命令名都需要区分大小写
(2).命令选项(调节命令的具体功能,可以是零个或多个)
短格式:命令选项使用单个英文字母表示,选项前使用半角的”-“引导开始如:-l 也可
加多个选项如:-al
长格式:使用英文单词表示,选项前使用”--“例如:”--help” 如果有多个选项则需在每个
选项前使用”-“ 例如:”-- abc – xyz”
(3).命令参数(命令的处理对象可以是文件名、目录或用户名,命令的个数可以是零个或多个)
命令提示符
2. 命令提示符表示命令输入的状态
管理员 root 用户的提示符“#”
[root@localhost ~]#
普通用户提示符“$”
[teacher@localhost ~]$
命令的各组成部分之间用空格分隔(至少为一个)
命令的输入以回车键结束
命令格式
3.获得命令帮助 (shell 命令可以理解为“内部命令“)
bash 是系统中默认使用的 Shell 命令,help 命令可以提供 Bash 中所有 Shell 命令的帮助信息
(1)help 命令――只能用于内部命令
1.显示 Bash 的命令列表
单独执行 help 命令时,将显示 Bash 中包括的 Shell 命令的列表
$help | head
2.获得单独 Bash 命令的帮助信息
$ help pwd
3.只显示命令的格式信息
help 与-s 选项配合使用可以只显示命令的格式信息而不显示详细的解释信息
$ help -s pwd
(2)“--help”命令选项
linux 中许多外部命令都提供了“--help”选项,当命令与“--help”选项配合时,只显示该命令的帮助概
要信息,而不执行其他操作
$ touch --help
(3)使用 man 命令阅读手册页
手册页帮助是 linux 系统中查询命令帮助信息的通用形式,shell 命令与非 shell 命令通常都提供手册
页形式的帮助信息
$ man ls
使用 Q 键退出手册页的阅读环境
(4).info 命令
使用 info 命令阅读信息页
$ info ls
二.常用命令
1.目录操作命令
命令 功能
ls 列出目录的属性信息
列目录
$ ls
$ ls –l
$ ls –l dire_name/file_name 只显示指定的目录或文件的信息
-a 列出所有信息 –l 以长格式显示文件和目录的列表 –R 不仅列出当前目录的内容,而且列出子
目录,以“.”开始的文件是隐藏文件
显示当前目录名称
$ pwd
更改当前目录
$ cd /etc
$ cd ../bin
cd 命令不使用任何参数时将从系统中的任何目录转换到用户的宿主目录
建立和删除目录
$ mkdir dir_name
$ rmdir dir_name
建立多个目录$ mkdir dir_name dir_name dir_name dir_name
2.路径的表示
相对路径是以“.”或“..”开始的目录路径表示形式
cd ./test
ls ../bin
. 代表当前目录
.. 代表父目录
~ 代表用户的主目录
绝对路径是以“/”开始的路径表示形式
ls /
cd /home
绝对路径是指从磁盘根目录开始,到指定文件的位置,在这里不考虑当前位置
例如 C:\program files\winrar\
相对路径是从当前位置出发,到指定文件的位置
例如当前位置为 C:\program files\winamp\,到 C:\program files\winrar 的相对路径就是 ..\winrar\
:.. 表示返回上一层文件夹
3.文件操作命令
命令 功能
file 显示指定文件的类型
touch 建立指定名称的文件或更新文件时间
pwd 列出用户当前所处目录路径
du 列出目录占用磁盘空间大小
cd 改变用户的当前目录
mkdir 建立一个新目录
rmdir 删除一个目录及其中的文件
cp 复制文件或目录
rm 删除文件或目录
mv 移动文件或目录,文件或目录重命名
find 在指定目录查找符合条件的文件
文件类型
$ file /etc/passwd
File 命令能够识别 LINUX 中大多数文件的类型,包换文本文件、可执行文件、压缩文件
文件查找
按文件名进行查找
$ find . -name file* /“.” 当前目录查找按文件属主进行查找
按文件属主进行查找
$ find . -user teacher /可以使用通配符”*” 和”/”
建立空文件
$ touch tfile
touch 命令中参数指定的文件不存在时新建一个空文件,存在时更新该文件的时间属性
复制文件
$cp filea fileb / 将原文件(目录)复制到目标地址
$cp file1 file2 将当前目录中的 file1 文件复制为 file2 文件(备份)
$cp file1 file2 dire_name 将多个文件复制到指定的目录
$cp –r drie_name /home 复制整个目录和文件和指定目录 recursive 递归的
文件移动与重命名
$ mv filea fileb
$ mv filea dir/
$mv file1 file2 directory/ 将多个文件移动到指定目录
删除文件和目录
$ rm filea /与-r 结合使用可以完整的删除整个目录
$ rm file1 file2 / 同时删除多个文件
$ rmdir dire_name /不能删除非空的目录,在删除之前应先删除里面的所有的文件
和子目录
4.文本文件查看命令
命令 功能
cat 显示文本文件内容
more 分页显示文本文件内容
less 分页显示文本文件内容,并可方便反复浏览
head 显示文件首部内容
tail 显示文件尾部内容
显示文本
$ cat /etc/passwd / 显示文件内容时不进行停顿,一次将文件的所有内容显示输出到屏幕
上,对于内容较长的文件,快速滚屏显示到最后一页,不适合长文件阅读
分页显示文本
$ more /etc/passwd / 输入”h”命令会显示 more 环境的操作帮助信息
输入空格显示下一屏文件内容、输入 b 将显示上一屏文件的内容、使用回车将整个屏幕显示的
内容向上滚动一行、输入 Q 或 q 将退出当前 more 命令阅读环境
分页文本浏览
$ less /etc/passwd / 对 more 命令的功能的扩展,适合较长文件的阅读,阅读最后一行是当前
被显示文件的名称,操作兼容 more 如回车„„增加了 page up(上翻页)、page down(下翻页)、
上下方向键,对文件进行一行操作,输入 Q 或 q 将退出当前 more 命令阅读环境
显示文件首
$ head -5 /etc/passwd /显示文件前 5 行
显示文件尾
$ tail -5 /etc/passwd /显示文件后 5 行
5.光盘的基本使用
挂载光盘使用 mount 命令
# mount -t iso9660 /dev/cdrom /media/cdrom/ 或 # mount /dev/cdrom
或 # mount /media/cdrom/
cdrom 设备文件是指向光盘对口物理设备文件的符号链接文件因此不必关心光盘驱动器设备
是 hdb 或 hdc 只需使用/dev/cdrom 文件即可
#mount 命令不使用任何选项和参数时将显示当前 linux 系统中已挂载的文件系统信息
#mount –t type dev dir
“–t type”选项指出需要挂载的文件系统类型,光盘文件系统的类型为 iso9660
“dev”参数表示需要挂载的文件系统的设备名称,光盘驱动器设备的名称为/dev/cdrom
“dir”参数表示挂载点,光盘设备在 linux 系统中默认挂载点是/media/cdrom
光盘内容的读取
# ls /media/cdrom /使用命令访问光盘挂载点目录
卸载光盘使用 umount 命令 #umount dir | device [„„]
# umount /dev/cdrom /在对光盘文件系统进行卸载时,用户当前目录需要先退出光盘的点目
录,否则系统会认为光盘文件系统正在使用
#pwd
/media/cdrom „„device is busy
弹出光盘驱动器托盘
# eject
收回光盘驱动器托盘
# eject -t
eject 对笔记本电脑上的光盘驱动器无效
光盘镜像文件操作
# cp /dev/cdrom mydatacd.iso / 使用 cp 命令制作光盘镜像文件
使用 mount 命令挂载光盘镜像文件
# mount -o loop -t iso9660 mydatacd.iso /media/cdrom/
“-o loop”选项表示需要挂载的不是真实的物理设备而是镜像文件
通过挂载点目录访问 ISO 镜像文件的内容
# ls /media/cdrom/
使用 umount 命令卸载光盘镜像文件
# umount /media/cdrom
U 盘的使用
# mount -t vfat /dev/sda1 /mnt/ / 使用 mount 命令挂载 U 盘
linux 中使用”vfat”文件系统类型表示所有的 fat 文件系统类型,包括 fat16、fat32,当 U 盘中
的文件系统类型为 NTFS 时,linux 操纵系统只能读取其中的内容而不能写入
#mount –t ntfs /dev/sda1 /mnt/
查看各分区挂载点及容量
# df –hl
查看系统分区信息
# fdisk –l / 列出系统中所有的存储设备
通过挂载点目录访问 U 盘的内容
# ls /mnt
使用 umount 命令卸载 U 盘
# umount /mnt
在使用 U 盘时,无论挂载还是卸载操作系统都是针对 U 盘中的分区进行操作,使用的设备文件
名是分区的设备文件名,例如“sda1”而不是整个 U 盘设备的文件名“sda”
6.用户和组管理
命令 功能
adduser 添加用户帐号
passwd 设置(更改)用户口令
userdel 删除用户帐号(及宿主目录)
usermod 设置用户属性
用户帐号管理
建立用户帐号
#adduser [-u uid [-o] ] [-g group] [-G group,„„][-d home] [-s shell] [-c comment] [-m
[ -k template] ] [-f inactive ] [-e expire ] [-p passwd] [-M] [-n] [-r] name[jj12]
# adduser st01
#adduser –g group_name user_name /新建用户账号并加入到组
如果 useradd 命令中示指定用户所属的组,adduser 命令将在系统中自动建立与用户名同名的组
在建立用户时默认不设置用户口令,因此即使存在也不能用于系统登录,设置密码后方可登录
设置用户口令
# passwd user_name
设置用户帐号属性
锁定用户帐号禁止登录
# usermod -L user_name /etc/shadow 中用户口令密文之前加入“!”(半角符)表示该账号禁用
启用禁止登录的账号
# usermod -U user_name
删除用户帐号
# userdel [–r] user_name /在删除用户账号时使用-r 可以在删除用户赂的同时删除宿主目录
用户帐号相关文件和目录
用户帐号信息保存在 passwd 文件中
/etc/passwd /系统中的所有用户都可以读取其内容,保存了用户账号的名称、用户号(uid)、
用户组号(gid)、用户全名信息、用户宿主目录和用户的登录 shell 等
uid gid 范围为 500-60000
用户的加密口令保存在 shadow 文件中 /管理员用户 root 才可以读取
/etc/shadow
用户的宿主目录是 home 目录中与用户名称相同的目录
/home/teacher
用户的初始配置文件来在 skel 目录(配置模版)
/etc/skel
用户组管理命令及文件
命令 功能
groupadd 添加指定名称的用户组帐号
groupdel 删除指定名称的用户组帐号
文件 功能
/etc/group 保存用户组帐号信息
用户组帐号管理
添加用户组
#groupadd [-g gid [-o] ] [-r] [-f] group
# groupadd class1
在建立用户时指定用户组
# adduser -g class1 st03
更改用户的组帐号
# usermod -g class1 st01
-e 设置账号的有限期限
删除用户组
# groupdel class1
查看用户属于哪个组
#groups username
7.文件的表示
颜色:蓝色的表示目录
黑色的表示
字符:C、B:代表设备文件 L:代表链接文件 D:代表目录 -:代表文件
以“.”开始的文件为隐藏文件
清屏命令
#clear
8.文件权限设定
使用 chmod 命令设置文件权限
查看文件权限
$ ls -l afile
-rw-rw-r-- 1 st01 class1 0 Apr 3 16:52 afile
增加文件属主 st01 的执行权限(x)
$ chmod u+x afile
去除文件属组 class1 的写权限(w)
$ chmod g-w afile
设置其他用户的文件权限为可执行
$ chmod o=x afile
$ ls -l afile
-rw-rw-r-- 1 st01 class1 0 Apr 3 16:52 afile
增加文件属主 st01 的执行权限(x)
$ chmod u+x afile
去除文件属组 class1 的写权限(w)
$ chmod g-w afile
设置其他用户的文件权限为可执行
$ chmod o=x afile
u 代表文件属主,g 代表文件属组, o 代表系统中除属主和属组之外的其它用户,a 代表所有用户(ugo
的总和)
9.chown 命令用于设置文件的属主和属组
命令格式 chown OWNER[:[GROUP]] FILE...
设置文件 afile 的属主为用户 st01
# chown st01 afile
设置文件 afile 的属组为用户组 class1
# chown :class1 afile
设置文件 afile 的属主为 st03,并设置文件的属组为 class2
# chown st03:class2 afile
在 linux 虚拟终端程序中输入$ system-config-users 可以启动用户和组的图形界面管理程序
第三章 文本编辑
1.Linux 中的多种文本编辑器
vi
Linux 学习者需要掌握的第一个文本编辑器
大多数 Linux 系统中缺省使用的文本编辑器
Emacs
用于编辑程序源代码文件的文本编辑器
nano
在字符界面提供了菜单操作,易用性较好
gedit
GNOME 图形环境中的文本编辑器
2.vi 编辑器的三种模式
vi 编辑器中有三种状态模式
命令模式
输入模式
末行模式
3.vi 编辑器的启动与退出
直接进入编辑环境
$ vi
进入编辑环境并打开(新建)文件
$ vi file /存在文件就是打开,否则就是新建
退出 vi 编辑环境
输入末行命令放弃对文件的修改,并退出编辑器
ESC:q!
4.文件的打开与读取操作
打开新文件
打开新的文件到 vi 编辑器中
:e filename
打开新的文件到 vi 编辑器中,并放弃对当前文件的修改
:e! filename
读取文件内容到当前 vi 编辑器中
:r filename /读取文件到当前光标处
5.保存对 vi 编辑器中已打开文件的修改
:w
将 vi 编辑器中的内容另存为指定文件名
:w myfile :w /home/ab 另存为/home/ab
未修改退出
:q
保存并退出
:qw
不保存退出
:q!
6.光标移动和翻页操作
操作类型 光标操作键 功能
光标移动
h 向左移动光标
l 向右移动光标
k 向上移动光标
j 向下移动光标
翻页
Ctrl + f 向前翻整页
Ctrl + b 向后翻整页
Ctrl + u 向前翻半页
Ctrl + d 向后翻半页
7.文件内行间快速跳转
命令 功能
:set nu 在编辑器中显示行号
:set nonu 取消编辑器中的行号显示
1G 跳转到文件的首行
G 跳转到文件的末尾行
#G 跳转到文件中的第#行
8.进入输入模式
命令 功能
i 在当前光标处进入插入状态
a 在当前光标后进入插入状态
A 将光标移动到当前行的行末,并进入插入状态
o
在当前行的下面插入新行,光标移动到新行的行首,进入插入状
态
O
在当前行的上面插入新行,光标移动到新行的行首,进入插入状
态
cw 删除当前光标到所在单词尾部的字符,并进入插入状态
c$ 删除当前光标到行尾的字符,并进入插入状态
c^
命令删除当前光标之前(不包括光标上的字符)到行首的字符,
并进入插入状态
9.输入模式的编辑键操作
按键 功能
方向键 进行上下左右方向的光标移动
Home 快速定位光标到行首
End 快速定位光标到行尾
PageUp 进行文本的向上翻页
PageDown 进行文本的向下翻页
Backspace 删除光标左侧的字符
Del 删除光标位置的字符
10.删除操作
命令 功能
x 删除光标处的单个字符
dd 删除光标所在行
dw 删除当前字符到单词尾(包括空格)的所有字符
de 删除当前字符到单词尾(不包括单词尾部的空格)的所有字符
d$ 删除当前字符到行尾的所有字符
d^ 删除当前字符到行首的所有字符
J
删除光标所在行行尾的换行符,相当于合并当前行和下一行的内
容
11.撤销操作
命令 功能
u
取消最近一次的操作,并恢复操作结果
可以多次使用 u 命令恢复已进行的多步操作
U 取消对当前行进行的所有操作
Ctrl + r 对使用 u 命令撤销的操作进行恢复
12.复制与粘贴操作
命令 功能
yy 复制当前行整行的内容到 vi 缓冲区
yw 复制当前光标到单词尾字符的内容到 vi 缓冲区
y$ 复制当前光标到行尾的内容到 vi 缓冲区
y^ 复制当前光标到行首的内容到 vi 缓冲区
p
读取 vi 缓冲区中的内容,并粘贴到光标当前的位置(不覆盖文
件已有的内容)
13.字符串查找操作
命令 功能
/word 从上而下在文件中查找字符串“word”
?word 从下而上在文件中查找字符串“word”
n 定位下一个匹配的被查找字符串
N 定位上一个匹配的被查找字符串
14.字符串替换操作
命令 功能
:s/old/new
将当前行中查找到的第一个字符“old” 串替换为
“new”
:s/old/new/g 将当前行中查找到的所有字符串“old” 替换为“new”
:#,#s/old/new/g 在行号“#,#”范围内替换所有的字符串“old”为“new”
:%s/old/new/g 在整个文件范围内替换所有的字符串“old”为“new”
:s/old/new/c
在替换命令末尾加入 c 命令,将对每个替换动作提示用
户进行确认
15.vi 编辑器的在线帮助
使用 vi 在线帮助的两种方法
在 vi 编辑器中按“F1”键
输入 help 末行命令 :help
16.使用 vi 打开多个文件
在输入 vi 命令时使用多个文件名作为参数
vi file1 file2 file3 ...
vi 多文件操作命令
命令 功能
:args 显示多文件信息
:next 向后切换文件
:prev 向前切换文件
:first 定位首文件
:last 定位尾文件
Ctrl + ^ 快速切换到编辑器中切换前的文件
17.使用 gedit 编辑器
#gedit
第四章 Shell 的使用
1.Shell 的基本概念
Shell 是操作系统与用户进行交互操作的界面
Shell 的发展与分类
RHEL4 中 Shell 的使用
RHEL4 中提供了多种 Shell 程序可供用户选择
文件 Shells 中保存了 Linux 系统中可使用的 Shell 程序列表
/etc/shells
在某个 Shell 程序中可通过执行其他的 Shell 程序改变用户的当前 Shell
[teacher@localhost ~]$ bsh
用户默认 Shell 的设定
用户使用的登录 Shell 保存在 passwd 文件的
中
/etc/passwd
2.Bash 的主要功能
命令行编辑功能
命令和文件名补全功能
命令历史功能
命令别名功能
提供作业控制功能
具有将命令序列定义为功能键的功能
灵活的 Shell 脚本编程
3.Shell 变量的分类
环境变量
预定义变量
位置变量
用户自定义变量(本地变量)
4.环境变量
使用 set 命令查看环境变量
set
常用环境变量
USER UID SHELL HOME PWD PATH PS1 PS2
环境变量配置文件
/etc/bashrc / 全局 ~/.bashrc / 局部
/etc/profile / 对全局有效 ~/.bash_profile / 局部,只对自身有效
位置变量
5.预定义变量
变量名 含义
$# 表示位置参数的数量
$* 表示所有位置参数的内容
$?
表示命令执行后返回的状态,用于检查上一个命令的执行是否正确;
在 Linux 中,命令退出状态为 0 表示命令正确执行,任何非 0 值表
示命令执行错误
$$ 表示当前进程的进程号
$! 表示后台运行的最后一个进程号
$0 表示当前执行的进程名
6.用户自定义变量
自定义变量的设置
$ DAY=sunday
自定义变量的查看与引用
$ echo $DAY
自定义变量的输出
$ export DAY
自定义变量的清除
$ unset DAY
7.Bash 的命令行编辑功能
操作键 功能
左右方向键
使用左右方向键可以使光标在当前命令行中的已有字符间进行任
意的移动
退格键 删除命令行中光标左边的字符
Del 删除当前光标处的字符
Home 将光标快速移动到命令行的行首
End 将光标快速移动到命令行的行尾
Ctrl + u 删除当前光标到行首的内容
Ctrl + k 删除当前光标到行尾的内容
8.Bash 的命令行补全功能
命令补全功能
使用 Tab 键可在命令查找路径中查找匹配的命令,并进行命令拼写的补全
文件补全功能
使用 Tab 键可对文件和目录名进行补全
9.Bash 的命令历史与命令重复
命令历史功能的使用
使用上下方向键浏览已输入命令(历史命令)
历史命令的查看
$ history
用户命令历史保存文件
~/.bash_history
命令历史的清除
$ history -c
10.Bash 的命令别名功能
命令别名的显示
$ alias
命令别名的定义
$ alias grep='grep -i'
命令别名的取消
$ alias grep
$ unalias -a
系统别名定义文件
RHEL4 系统中为用户预定义的命令别名保存在“/etc/profile.d/”目录的配置文件中
使用 alias 命令定义的别名和使用 unalias 命令取消定义的别名都当前用户 shell 环境中有效,下次启
动时将恢复初始的别名设置。因此用户固定使用的自定义别名命令应保存在用户宿主目录的.bashrc
11.管道与重定向
输入输出
输入输出文件 文件编号 默认设备
标准输入 0 键盘
标准输出 1 显示器
标准错误输出 2 显示器
重定向操作
类别 操作符 说明
输入重定向 <
输入重定向是将命令中接收输入的途径由默认的键
盘更改(重定向)为指定的文件
输出重定向
>
将命令的执行结果重定向输出到指定的文件中,命令
进行输出重定向后执行结果将不显示在屏幕上
>>
将命令执行的结果重定向并追加到指定文件的末尾
保存
错误重定向
2>
清空指定文件的内容,并保存标准错误输出的内容到
指定文件中
2>>
向指定文件中追加命令的错误输出,而不覆盖文件中
的原有内容
输出与错误组
合重定向
&>
将标准输出与错误输出的内容全部重定向到指定文
件
输出重定向实例
将命令输出重定向到文件
将标准输出重定向到文件
$ ls /etc/ > etcdir
将标准输出重定向追加到文件
$ ls /etc/sysconfig/ >> etcdir
将错误输出重定向到文件
$ nocmd 2> errfile
将标准输出和错误输出重定向到文件
$ ls afile bfile &> errfile
管道的使用
管道操作符
|
“|”符用于连接左右两个命令,将“|”左边的命令执行结果(输出)作为“|”右边命令的输入
cmd1 | cmd2
在同一条命令中可以使用多个“|”符连接多条命令
cmd1 | cmd2 | ... | cmdn
12.Shell 脚本的概念
Shell 脚本程序是 Shell 命令语句的集合,用于实现特定的功能;
Shell 脚本程序保存在文本文件中,可以使用文本处理程序进行阅读和编辑;
Shell 脚本程序是由 Shell 环境解释执行的,不需要在执行前进行编译;
执行 Shell 程序时,Shell 脚本文件需要具有可执行(x)的属性
基本脚本编程
使用文本编辑器(vi)建立 Shell 脚本文件
脚本中应包括的内容
脚本运行环境设置
#!/bin/bash
注释行以#开始
# Clean command history,清除用户命令历史
脚本语句
history -c
设置脚本文件为可执行
运行脚本程序
使用 Shell 命令程序执行脚本程序
$ bash hello.sh
使用“.”命令执行脚本程序
$ . hello.sh
直接执行具有执行属性的脚本程序
$ ./hello.sh
第五章 Linux 应用程序安装与管理
Linux 应用程序与命令
应用程序与命令的关系
基本命令是 Linux 系统中不可缺少的组成部分
命令保存在/bin 和/sbin 目录中
应用程序保存在/usr/bin 和/usr/sbin 目录中
命令的作用是完成对 Linux 系统本身的管理工作,应用程序则完成与 Linux 系统管
理相对独立的任务
命令只能以命令行的形式运行,命令格式中包括命令字、命令选项和命令参数
应用程序可以是以命令行的形式运行,也可以是字符界面或图形界面的窗口程序,
形式比较多样
应用程序与第三方应用程序
系统应用程序与第三方应用程序的比较
系统应用程序通常遵从 Linux 发行版本中的软件包管理格式进行安装和卸载
第三方应用程序可能以 Linux 发行版本中使用的软件包的格式提供安装程序,也可
能使用来自安装程序或其他的形式提供应用程序的安装
Linux 应用程序组成
应用程序中不同类型的文件保存在 Linux 系统的不同目录中
文件类型 保存目录
普通执行程序文件 /usr/bin
服务器执行程序文件和管理程序文件 /usr/sbin
应用程序配置文件 /etc
应用程序文档文件 /usr/share/doc
应用程序手册页文件 /usr/share/man
RPM 软件包
RPM 最早是由 Red Hat 公司提出的软件包管理标准,目前应用于很多 Linux 发行版
RPM Package Manager
RPM 软件包的文件名
rpm 命令的功能
RHEL4 中使用 rpm 命令对 RPM 软件包进行管理
rpm 命令可以完成对软件包的所有管理功能
查询已安装在 Linux 系统中的 RPM 软件包的信息
查询 RPM 软件包安装文件的信息
安装 RPM 软件包到当前 Linux 系统
从当前 Linux 系统中卸载已安装的 RPM 软件包
升级当前 Linux 系统中已安装的 RPM 软件包
命令 功能
rpm 显示 rpm 命令的命令格式
rpm -qa 查询 Linux 系统中的所有软件包
rpm -q 包名称 查询指定名称的软件包是否安装
rpm -qi 包名称 查询指定名称软件包的详细信息
rpm -ql 包名称 查询指定名称软件包中所包括的文件列表
rpm -qf 文件名称 查询指定文件所属的软件包
rpm -qpi 包文件名 查询指定 RPM 包文件的详细信息
rpm -qpl 包文件名 查询指定 RPM 包中包含的文件列表
软件包查询实例 2-1
查询系统中已安装的软件包详细信息
查询软件包是否安装
$rpm –q bash(文件名)
查询指定名称软件包的详细信息
$rpm -qi bash (文件名)
查询指定名称软件包中所包括的文件列表
rpm –ql bash(文件名)
查询指定文件所属的软件包
rpm –qf 文件名 文件名中需要包括文件的路径名(绝对路径或相对路径)
rpm –qf /bin/bash (文件名)
在 linux 中还不是所有的文件都是通过 RPM 软件包的方式安装的,系统中的很多文件是通过 linux
系统安装过程和系统运行时生成的,即这些文件还会属于任何 RPM 软件包
$rpm –qf /var//log/dmesg
file /var/log/dmesg is not owned by any package
软件包查询实例 2-2
查询指定 RPM 软件包文件的信息
RPM 安装命令
rpm 命令配合“-i”选项用于安装 RPM 软件包
rpm 命令配合“-ivh”在安装 RPM 软件包时会显示更多的提示信息
rpm -ivh vim-common-6.3.035-3.i386.rpm
RPM 软件包之间的依赖关系
RPM 包卸载
rpm 命令配合“-e”选项用于安装 RPM 软件包
RPM 软件包的卸载同样存在依赖关系
被依赖的软件包应该最后被卸载
RPM 包升级
rpm 命令配合“-U”选项用于安装 RPM 软件包
当系统中未安装需要升级的软件包时,升级的过程等同于安装软件包的过程
应用程序的编译
确认系统中已经安装了编译环境
$ rpm -qa | grep gcc
获得(下载)程序的源代码安装包文件
如:$mkdir download
$cd download/
$pwd
$/home/teacher/download
$wget \
>http://prozilla.genesys.ro/downloads/prozilla/tarballs/prozilla-2.0.4.tar.bz2
=>prozilla-2.0.4.tar.bz2’
wget 是 linux 系统中的下载工具,支持 http 和 ftp 多种协议进行文件 的下载,wget 命令的
参数是需要下载文件的网络地址
释放程序源代码软件包文件
$ tar jxf prozilla-2.0.4.tar.bz2 /tar jxf 命令用于释放(恢复)使用 bz2 格式压缩的归档文件
进入源代码目录
$ cd prozilla-2.0.4
程序编译前的配置
程序源代码目录中的“configure”命令用于完成程序编译前的配置工作
查看“configure”命令支持的配置选项
./configure --help
指定安装路径进行配置
如果不使用 ”--prefix’选项指定安装路径, configure 程序将配置 prozilla 的默认安装路径
为”/usr/local/bin”目录
编译与安装
程序编译过程
使用 make 命令进行应用程序的编译
$ make
程序安装过程
使用 make install 命令进行应用程序的编译
$ make install
验证(执行)已编译安装完成的程序
查看安装目录中的文件,执行命令程序
$ cd /home/teacher/proz ; ls
$ bin/proz --help
使用图形界面系统工具完成 RPM 包安装
启动包管理程序
包管理程序启动可以使用命令和菜单两种方式
$ system-config-packages
第 6 章 Linux 系统管理
系统启动过程
Linux 系统中的运行级别
运行级别 说明
0 停机
1 单用户模式,用于 root 用户对系统进行维护
2 多用户模式,在此模式下不能使用 NFS
3 完全多用户模式,主机做为服务器使用时通常在此运行级别(字符界面)
4 未分配使用
5 图形登录的多用户模式,用户在该模式下可进行图形界面登录
6 重新启动
显示与转换运行级别
显示运行级别
# runlevel
改变系统运行级别
init 命令用于改变系统当前的运行级别,使用 0-6 的运行级别作为命令选项
init[0123456]
关机操作
# init 0
重新启动操作
# init 6
查看系统服务的启动状态
chkconfig 命令可查看服务启动状态
显示全部服务的启动状态
# chkconfig --list
设置独立系统服务的启动状态
设置独立服务的启动状态
实例:设置 syslog 服务在运行级别 2 和 4 中不启动
设置非独立服务的启动状态
设置非独立服务的启动状态
实例:设置 rsync 服务在 xinetd 服务中有效
重新启动 xinetd 服务,使非独立服务的启动状态设置生效
# service xinetd restart
系统初始化过程
INIT 进程与配置文件
INIT 进程是由 Linux 内核引导运行的,是系统中运行的第一个进程
#ps –ef | head -5
INIT 的配置文件是 inittab
# tail -5 /etc/inittab
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
inittab 文件的结构
x:5:respawn:/etc/X11/prefdm -nodaemon
↓id↓runlevels 字段↓action 字段 ↓process 字段
字段 说明
id 用于在 inittab 文件中唯一标识一个配置记录
runlevels 用于指定该记录在哪些运行级别中运行
action 用于描述记录将执行哪种类型的动作
process 用于设置启动进程所执行的命令
action 字段常见设置:
initdefault 用于标识系统启动后将进入哪个运行级别,同