第一章 LINUX简介及安装
一、LINUX介绍
Linux:Linux是由芬兰大学的Linus Torvald李納斯发起创建的开源软件项目。
版本号xx.yy.zz :①.xx表为主版本号,yy为次版本号,zz为修订的版本号。②.次版本号中,单数代表测试版,双数代表正式发行版
开源软件: ①源代码开放。
②GPL协议:主要是以源代码形式发布,任何人都可以得到源码
但不提供任何担保,不限制商业性质的发行和包装。
③LGP许可协议:允许在使用者自己的应用程序中使用程序库,即使不公开自己的源代码。
 二、LINUX安装
1.     RHEL4是由RED HAT公司发布的
2.     Linux硬盘概念:
①     可以分为主分区、扩展分区、逻辑分区。
②     硬盘采用hdX格式表示,X表示a.b.c.d。
③     系统最多只有4个IDE设备,其中第一个IDE设备名称为hda,第4个为hdd。
3主分区:①一个硬盘最多只能4个主分区。
②主分区采用hdXN的格式,hdX为硬盘,N是1-4的数字,分别表示4个主分区,第一个硬盘的第一个主分区表示为hda1,以此类推。
 
4扩展分区:扩展分区作为特殊的主分区需要占用硬盘分区表中4个分区记录中的1个记录
 
5逻辑分区:①逻辑分区只能建立在扩展分区中,可以建立文件系统。逻辑分区同样采用了hdXN的格式,区别在于,逻辑分区的N是从5开始算的,第一个硬盘的第2个逻辑分区就为hda6。
 
6文件系统:①EXT2和EXT3都是Linux操作系统默认使用的文件系统,EXT3属于日志文件系统,比较出色。
②swap文件系统在Linux系统的交换分区中使用,也是Linux系统默认支持的,一般设置为主机系统内存的2倍大小。
③其他的文件系统包裹xfs、jfs等,这些大多使用与商业的UNIX系统。
④FAT文件系统Linux可以读写,NTFS中能读,不能写。
最经典的分配方案:/boot 、swap和 / 3个目录.
 三、LINUX目录
Linux系统使用树形目录结构,所有文件都在根目录( / )下。
/bin        bin是binary的缩写。这个目录沿袭了UNIX系统的结构,存放着使用者最经常使用的命令。例如cp、ls、cat,等等。
/boot      这里存放的是启动Linux时使用的一些核心文件。 /dev      dev是device(设备)的缩写。这个目录下是所有Linux的外部设备,其功能类似DOS下的.sys和Win下的.vxd。在Linux中设备和文件是用同种方法访问的。例如:/dev/hda代表第一个物理IDE硬盘。
/etc 这个目录用来存放系统管理所需要的配置文件和子目录。
/etc/gateways 设定路由器
/etc/sysconfig/
network-scripts
/ifcfg-eth0       设置IP
/etc/resolv.conf        设置DNS
/etc/fstab记录开机要mount的文件系统(做磁盘配额的时候用过这个文件)
/etc/inittab       设定系统启动时init进程把系统设置成什么样的runlevel(第六章有用过)
/etc/group        设定用户的组名与相关信息
/etc/passwd      帐号信息
/etc/shadow      密码信息
/etc/exports      设定NFS系统用的
/home     用户的主目录,比如说有个用户叫wang,那他的主目录就是/home/wang也可以用~wang表示。
/lib 这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的.dll文件。几乎所有的应用程序都须要用到这些共享库。
/lost+found    这个目录平时是空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所。对了,有点类似于DOS下的.chk文件。
/mnt       这个目录是空的,系统提供这个目录是让用户临时挂载别的文件系统。
/proc      这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。
/root       系统管理员(也叫超级用户)的主目录。作为系统的拥有者,总要有些特权啊!比如单独拥有一个目录。
/sbin       s就是Super User的意思,也就是说这里存放的是系统管理员使用的管理程序。
/tmp       这个目录不用说,一定是用来存放一些临时文件的地方了。
/usr        这是最庞大的目录,我们要用到的应用程序和文件几乎都存放在这个目录下。其中包含以下子目录;
/usr/X11R6    存放X-Window的目录;
/usr/bin  存放着许多应用程序;
/usr/sbin        给超级用户使用的一些管理程序就放在这里;
/usr/doc 这是Linux文档的大本营; /usr/include  Linux下开发和编译应用程序需要的头文件,在这里查找; /usr/lib  存放一些常用的动态链接共享库和静态档案库;
/usr/local       这是提供给一般用户的/usr目录,在这里安装软件最适合;
/usr/man        man在Linux中是帮助的同义词,这里就是帮助文档的存放目录;
/usr/src  Linux开放的源代码就存在这个目录/var 这个目录中存放着那些不断在扩充着的东西,为了保持/usr的相对稳定,那些经常被修改的目录可以放在这个目录下,实际上许多系统管理员都是这样干的。顺带说一下系统的日志文件就在/var/log目录中。
四、总结来说:
? 用户应该将文件存在/home/user_login_name目录下(及其子目录下)。
? 本地管理员大多数情况下将额外的软件安装在/usr/local目录下并符号连接在/usr/local/bin下的主执行程序。
? 系统的所有设置在/etc目录下。
? 不要修改根目录(“/”)或/usr目录下的任何内容,除非真的清楚要做什么。这些目录最好和LINUX发布时保持一致。
? 大多数工具和应用程序安装在目录:/bin, /usr/sbin, /sbin, /usr/x11/bin,/usr/local/bin。
? 所有的文件在单一的目录树下。没有所谓的“驱动符”。
第二章 常用命令及帐户管理
一、linux命令格式
1、linux命令的通用格式
命令字 [命令选项] [命令参数]
(注:三者之间要用空格隔开。其中命令选项分短格式和长格式:短格式使用“-”符号,如:-l;而长格式使用“--”符号,如:--help;还可以使用组合命令选项:如:-a –l可以组合成--al或--la。)
2、命令提示符
 “$”普通用户
“#”管理员
3、回车的使用
我们输完一个命令后,则要以回车符作为所输入命令的结束
4、获得命令帮助
(1)help 命令         (对于内部命令)
如:help pwd
(2)--help 命令选项    (对于外部命令)
如:touch --help
(3)man 命令         (用于行册页)
(4)info 命令         (用于信息页)
二、常用命令
1、目录操作命令
(1)ls 列目录命令
     ls –l 则显示文件和目录的列表
     ls –al 则显示所有(包括隐藏的)文件和目录的列表
(2)pwd 显示当前目录
(3)cd 目录更改命令
(注:相对路径是以“.”或“..”开始的目录表示形式;而绝对路径是以“/”开始的路径表示形式)
(4)mkdir 新建目录命令
mkdir [options] 目录名
-m, --mode=模式:设定权限<模式>,与chmod类似。
-p, --parents:需要时创建上层目录;如果目录早已存在,则不当作错误。
-v, --verbose:每次创建新目录都显示信息。
--version:显示版本信息后离开
(5)rmdir 册除空目录命令
(6) grep
grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。
grep [options]
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
2、文件操作命令
(1)file 文件类型查看命令
(2)touch 新建文件命令
(3)cp 复制文件或目录命令
     cp –R 复制非空目录
cp file1 file2         将file1的内容复制到目标文件file2中,目标文件
得到新的生成日期和inode编号。
cp file* Dir1          将多个文件复制到一个目录
cp -f file1 file2      如果文件file2已经存在,则这个命令覆盖其内容时
不发出提示。
cp -i file1 file2      如果文件file2已经存在,则这个命令覆盖其内容
会先发出提示。
cp -p file1 file2      将file1内容复制到目标文件file2中,目标文
件持原有的生成日期和inode编号。
cp -r Dir1 Dir2         将目录Dir1及其子目录内容复制到Dir2.(递归效果)
cp -u file1 file2      如果文件file2已经存在,但file1更新,则这个命令
覆盖其内容是不发出提示。
说明:从一个分区向另一个分区复制文件时,不能使用cp -p file1 file2命令。
 
绝对路径的法:
如果要从当前目录中复制到目标目录,目标目录写明详细目标绝对路径;
如果要从其它目录中复制到当前目录,那么其它目录要为详细目标绝对路径
 
(4)rm 删除文件命令
     rm –r 强制删除目录并会出现提示
rm –rf 强制删除目录但不出现提示
(5)mv 文件移动与文件重命名      
mv file1 file2         将文件从file1变成file2,如果源与目标文件
在同一卷中,则文件的inode号不变。
mv file* Dir1          将多个文件移动到一个目录。
mv -f file1 file2       如果文件file2已经存在,则这个命令覆盖其时
不发出提示。
mv -i file1 file2       如果文件file2已经存在,则这个命令覆盖其内
容时会先发出提示
(6)find 查找文件命令
    find / -amin -10 #查找在系统中最后10分钟访问的文件
  find / -atime -2 #查找在系统中最后48小时访问的文件
  find / -empty #查找在系统中为空的文件或者文件夹
  find / -group cat #查找在系统中属于groupcat的文件
  find / -mmin -5 #查找在系统中最后5分钟里修改过的文件
  find / -mtime -1 #查找在系统中最后24小时里修改过的文件
  find / -nouser #查找在系统中属于作废用户的文件
  find / -user fred #查找在系统中属于FRED这个用户的文件
(7)whereis [应用程序名] 查找应用程序名的路径
(8) # which ls    获得ls命令的可执行文件路径
 
3、文件查看命令
(1)cat 文本文件查看    (不能分屏显示)
(2)more 文本文件查看    (能分屏显示)
(3)less 文本文件查看    (能分屏显示,方便反复浏览)
(4)head [-数字]显示文件首部 [指定行] 内容
(5)tail [-数字]显示文件尾部[指定行]内容
(6)du 查看指定目录的大小
 
4、1.光盘的基本使用
 (1)光盘驱动器设备文件
/dev/cdrom
(2)挂载光盘使用mount命令
# mount -t iso9660 /dev/cdrom /media/cdrom/
2.光盘内容的读取
(1)使用命令访问光盘挂载点目录
# ls /media/cdrom/
(2)卸载光盘使用umount命令
# umount /dev/cdrom
(3) #eject                光盘驱动器托盘的弹出 
      #eject -t             收回
 
3.光盘镜像文件操作
(1)使用cp命令制作光盘镜像文件
# cp /dev/cdrom mydatacd.iso
(2)使用mount命令挂载光盘镜像文件
# mount -o loop -t iso9660 mydatacd.iso /media/cdrom/
通过挂载点目录访问ISO镜像文件的内容
# ls /media/cdrom/
(3)使用umount命令卸载光盘镜像文件
# umount /media/cdrom/
 
4.U盘的使用方法
(1)识别USB存储设备
包括USB硬盘、U盘、MP3播放器等
/dev/sda    /dev/sdb ……    # fdisk -l
(2)使用mount命令挂载U盘
# mount -t vfat /dev/sda1 /mnt/
(3)通过挂载点目录访问U盘的内容
# ls /mnt
(4)使用umount命令卸载U盘
# umount /mnt
三、用户管理命令
1、存放文件及意义
Linux环境下的帐户系统文件主要有/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow四个文件。
(1)、/etc/passwd
/etc/passwd每行定义一个用户帐户,此文件对所有用户可读。一行又划分为多个字段定义用户帐号的不同属性,名字段间用“:”分隔。
                   表:/etc/passwd文件中各字段的含义
字段        说明
用户名     用户登陆系统时使用的用户名,在系统中是唯一的
口令        存放加密的口令,口令是x,这表明用户的口令是被/etc/shadow文件保护的
用户标识号     系统内部用它来标识用户,每个用户的UID都是唯一的。root用户的UID号是0,普通用户从500开始,从1-499是系统的标准帐户
组标识号        系统内部用它来标识用户所属的组
注释性描述     例如存放用户全名等信息
宿主目录        用户登陆系统后所进入的目录
命令解释器     指示该用户使用的Shell,Linux默认的是bash
(2)、/etc/shadow
/etc/passwd文件对任何用户均可读,为了增加系统的安全性,用户的口令通常用shadow passwords保护。/etc/shadow只对root用户可读
                   表:/etc/shadow文件中各字段的含义
字段        说明
用户名     用户的帐户名
口令        用户的口令,是加过密的
最后一次修改的时间     从1970年1月1日起,到用户最后一次更改口令的天数
最小时间间隔        从1970年1月1日起,到用户可以更改口令的天数
最大时间间隔        从1970年1月1日起,到必须更改口令的天数
警告时间        在口令过期之前多少天提醒用户更新
不活动时间     在用户口令过期之后到禁用帐户的天数
失效时间        从1970年1月1日起,到帐户被禁用的天数
标志        保留位
(3)、/etc/group
将用户进行分组是Linux对用户进行管理及控制访问权限的一种手段。一个组中可以有多个用户,一个用户也可以属于多个组。该文件对所有用户可读。
表:/etc/group文件中各字段的含义
栏位        说明
组名        组的名称
组口令     用户组的口令,用x表示
GID组的识别号,
组成员     该组的成员
(4)、/etc/gshadow
该文件用于定义用户组口令、组管理员等信息,该文件只有root用户可读。
表:/etc/gshadow文件中各字段的含义
栏位        说明
组名        组的名称
组口令     用户组的口令,保存已加密的口令
组的管理员帐号     组的管理员帐号,管理员有权对该组添加、删除帐号
组成员     该组的成员,多个用户用‘,’分开
2、用户管理命令
?       adduser 添加用户账号
?       passwd 设置(更改)用户口令
?       userdel 删除用户账号(只能删除/etc/passwd /etc/shadow /etc/group ,用户宿主目录下的信息不能删除)
?       userdel –r 删除用户账号所有信息,包括宿主目录下的配置文件。
?       usermod 设置属性
?       usermod -L (passwd -l)用户名 禁用指定用户账号
?       usermod -U (passwd -u) 用户名 开启指定用户账号
?       usermod -g 组名 用户名 将指定用户加入某个组
3、用户组的管理命令及文件
?       groupadd 添加组账号
?       gpasswd   设置(更改)用户组口令
?       groupdel   删除组账号
?       chmod    给多个访问对象设置权限
?       chown 更改文件的属主和属组
?       chown -R 用户名 文件名或目录名    更改文件或目录的属主
?       chgrp   -R 工作组名 文件名或目录名 改变文件或目录工作组的属主
           -R 表示递归修改子目录中文件
4、口令维护命令
?       passwd(用户帐户名)                 设置用户口令
?       gpasswd -a(用户帐户名)(组帐户名) 将用户添加到指定组
?       gpasswd -d(用户帐户名)(组帐户名)将用户从指定组中删除
?       gpasswd -A(用户帐户名)(组帐户名)将用户指定为组的管理员
5、用户和组状态命令
?       su(用户名)                          切换用户帐户
?       id(用户名)                          显示用户的UID、GID
?       whoami                              显示当前用户的名称
?       groups(用户名)                      显示用户所属的组
?       newgrp(用户所属的组帐号)            转换用户的当前组到制定的组
6、图形界面
命令行启动 system-config-users
菜单启动 Applications-system settings-user and Groups
使用技巧:
1、有关删除文件和文件夹的技巧:在字符界面执行rm将会彻底删除,如果加-i,则在要删除某目录或者文件时,可以提示用户是否确定要执行,从而防止误删除。如果在xwindows中可以先放回收站,如果以后需要时再恢复。
2、使用rmdir可以删除空目录,但是如果非空则报错,这时可用rm -fr <目录>来删除目录。其中参数-r为将整个目录全部删除,包括所有的子目录。-f则是忽略不存在的文件,不给用户作任何提示。
3、先使用“gpasswd –a 用户名 组名”把用户加入某组才可以使用命令查看某组内所有的成员列表。
4、使用groupdel命令删除某组的时候不能删除用户的主组和有用户的组
5、使用“usermod –g 组名 用户名”可以将成员从一个组调到另一个组。
第三章 vi 编辑器
一、Linux 系统中的编辑器知识
Linux 通过用vi对系统配置文件的修改对Linux 系统进行比较细致管理工作
文本编辑器的分类
根据编辑范围有:行编辑器、全屏幕编辑器
根据工作界面环境划分:字符界面编辑器、图形界面编辑器
1、 vi 最常用的字符界面文本编辑器
2、 Emacs 专为编辑程序源代码文件而编写的文本编辑器程序。
3、 nano 可以字符界面提供底端
4、 gedit 运行在Linux图形环境中
二、vi 的模式
命令模式:可在命令模式下面输入单字符或组合键可以实现相应的编辑命令操作。vi编辑器启动后默认进入命令模式。
输入模式:命令模式下按”i”进入输入模式进行编辑。
末行模式:在命令模式下按”:”进入末行模式,在输入模式按”Esc”+”:”进入
末行模式下的应用:
三、命令:
vi一:基本操作:
 
1:鼠标的移动:k(上);j(下);h(左);l(右)
2::q!(强行退出)    :wq(保存退出);“ZZ”等同于:wq
3:“x”删除光标所在的字符。
4:“i”,在当前光标处进行输入。
 
vi二:删除类命令
1:“dw”删除一个单词(包括空格);“de”删除一个单词(不包括空格)
2:“d$”从当前光标删除到行末
3:“dd”删除一整行,“2dd”删除两行
4:“u”撤销最后执行的命令,“U”修正整行,“ctrl+R”连续撤销
5:“yy”复制当前行。
6:“yw”复制单词。
 
vi三:置入类命令
1:“p”将最后一次删除的命令置于光标后。(用dd删除后,p可以用来粘贴)
2:“r”输入r和一个字符来替换光标所在位置的字符。
3:“cw”改变一个单词的部分或者全部,lubw,将光标放在u处,然后cw一个“ine”可以改成“line”。
4:“v”进入可视化视图,可以移动方向键来选中某一段内容。
 
vi四:定位及文件状态
1:“ctrl+g”将会在底栏显示文件名和总行数。显示光标所在行的行数。
2:“shift+G”光标直接跳转到文件的首行(gg),“shift+g”光标直接跳转到文件的最后一行(G)。
3:输出停留的行数,按下shift+G直接跳转。
4:“/”搜索一个字符,输入/后,然后键入想要查找的字符串。
5:“%"可以查找匹配的({[和)}],用于定位反括号。
6:“:s/old/new/g”改变当前行的字符,替换old为new。
7:“:#,#s/old/new/g”改变两个行之间的(#,#)字符串,替换old为new。
8:“:%s/old/new/g”替换整个文件中的每个匹配串。
9:“:%s/old/new/gc”加“c”参数可以在替换全文的时候添加对替换的询问用以让用户确认。
10: “:10”光标移动到地10行
 
vi五:内执行外部命令
1:“:!”,在!后面加入命令,如“:!ls”;“:!dir”
2:“:w test”将改动保存为test文件,“:!rm test”删除该文件
3:“:#,# w test”保存两行之间的内容到test 文件中。(行数可以使用ctrl+G来查看
4:“:r test”在当前文件中插入另外一个文件的内容 :r /etc/named.conf,将test中内容插入到该光标处。
 
vi六:打开类命令
1:“o”在光标所在行下方插入一新行,“O”在光标所在行上方插入一新行,并且都以输入模式进行插入。
2:“shift+O”直接在该行上方新开一行。
3:“$”直接将光标调到行末,“a”可以在光标处插入文本(避免了i),输入“A”直接在行末插入文本。
4:“R”在光标处输入R可以连续的替换多个字符。(免i),直至键入“ESC”。
5:查找时“/abcde”,然后按“n”可以继续查找。
 
vi七:帮助l
1:“:help”打开帮助,“:q”退出。
2:F1
 
第四章 SHELL的使用
一:Shell的环境
Shell程序位于操作系统内核与用户之间,负责接收用户输入的命令,在对已输入的命令进行解释后,将需要执行的命令程序传递给操作系统内核执行,因此程序充当了一个“命令解释器”的角色。如OS中的command.exe程序,windows中的cmd.exe程序。
二、Bash的主要功能
(1)Bash功能为用户提供了方便的命令编辑环境。
(2)Bash的命令和文件名补全功能为用户提供了快速输入命令和文件名的方式。
(3)Bash的命令历史功能使用户可以重复执行已使用过的命令。
(4)Bash的命令别名功能为用户提供了快速输入复杂命令的方法。
(5)Bash支持对用户提交的作业进行控制,提供查看作业信息、调整作业成绩的运行方式等功能。
(6)Bash允许用户将常用的命令序列定义为功能键,实现一键操作的效果。
(7)Bash提供了丰富的变量类命令与控制结构,增强了Shell脚本程序的灵活性。
三、Shell变量
1、环境变量
(1)查看环境变量:set命令
如:set | more
(2)显示字符串或Shell变量的值:echo命令
如:echo $PATH
(3)常用环境变量介绍
?       USER      表示当前用户的登录名称
?       UID        表示当前用户的用户号
?       SHELL     表示当前用户的登录的Shell
?       HOME      表示当前用户的登录的宿主目录
?       PWD       表示用户当前所在的目录
?       PATH      表示当前用户的命令搜索路径
?       PS1        表示当前用户的主提示符
?       PS2        表示当前用户的辅助提示符
(4)环境变量全局配置文件“profile”和“bashrc”
2、位置变量
3、预定义变量
4、用户自定义变量
(1)自定义变量的设置
如:DAY=Sunday
(2)自定义变量的查看与引用
如:echo $DAY
set | grep DAY
(3)export 命令用于输出变量为全局变量
如:export DAY=sunday
则变量名DAY成为了全局变量,全局变量可以应用于所有的子Shell
(4)自定义变量的清除
如:unset DAY
 
四、Bash常用功能
1、命令和文件名补全功能:按Tab键
2、命令历史: history命令
   命令历史查看保存文件:~/.bash.history
   命令历史清除:history -c
   可以用以下方式快速地找到历史列表中的一个命令
   $ history | grep cat
3、命令别名: alias
命令别名的显示: alias
命令别名的定义: alias ss=‘ls –l’
命令别名取消:    alias=ss
                   Alias -a
五、管道与重定向
1、标准输入输出
2、重定向:
(1)输入重定向:<
(2)输出重定向:>,>>(追加)    
将标准输出重定向到文件
$ ls /etc/ > etcdir
将标准输出重定向追加到文件
$ ls /etc/sysconfig/ >> etcdir
(3)错误重定向: 2>,2>>
   将错误输出重定向到文件
$ nocmd 2> errfile
(4)      输出与错误重定向的组合使用:&>
将标准输出和错误输出重定向到文件
$ ls afile bfile &> errfile
 
3、管道
“|”符用于连接左右两个命令,将“|”左边的命令执行结果(输出)作为“|”右边命令的输入。(相当于加工处理)
使用方法:命令1|命令2|命令3……|命令n
使用举例:$ ls –Rl /etc | more
$ cat /etc/passwd | wc
$ cat /etc/passwd | grep lrj
$ ps –aux |tail -2 | more
 
六、Shell脚本
 
1、shell脚本的特点:
(1)shell脚本相当于DOS中的批处理文件,是多个命令的集合
(2)shell脚本保存在文本文件中,我们可以对其进行阅读和编辑
(3)shell脚本由Shell环境解释执行的,不需要在执行前进行编译
(4)shell脚本执行Shell程序时,Shell脚本文件需要具有可执行(X)的属性
 
2、基本脚本编程
(1)建立Shell文件
如:vi hello.sh
(2)脚本运行环境设置
如:#!/bin/bash     (注:“#!”与路径名之间没有空格)
(3)注释行的使用
以“#”符开始,只是起解释说明的作用
如:# This is my first HelloWorld program
(4)脚本语句
脚本语句的内容就是我们根据需要实现某种功能而输入的一些命令集合
如:mkdir /root/aaa
    touch /root/aaa/test
    echo Hello!
 
3、脚本运行的方法(如:hello.sh为脚本文件)
(1)bash hello.sh     (不需要可执行属性)
(2) .hello.sh       (不需要可执行属性)
(3)./hello.sh        (相对路径,需要可执行属性)
(4)/root/hello.sh    (绝对路径,需要可执行属性)
第五章、应用程序安装与管理
一、Linux应用程序组成
1、 普通执行程序文件,保存在“/usr/bin”目录中
2、 服务器执行程序文件和管理程序文件,保存在“/usr/sbin”目录中
3、应用程序配置文件,保存在“/etc”目录下
4、应用程序文档文件,保存在“/usr/share/doc/”目录下
5、应用程序物册页文件,保存在“/usr/share/man”目录下
二、RPM(Redhat Package Manager)包管理
1、RPM包的查询命令
?       rpm –qa               查询Linux系统中的所有软件包
?       rpm –q     包名称      查询指定名称软件包是否安装
?       rpm –qi    包名称      查询指定名称软件包的详细信息
?       rpm –ql    包名称      查询指定名称软件包包中所包括的文件列表
?       rpm –qf    包名称      查询指定文件所属的软件包
?       rpm –qpi 包名称      查询指定RPM包文件的详细信息
?       rpm –qpl 包名称      查询指定RPM包中包含的文件列表
2、使用rpm命令安装软件包
?       rpm –i 安装包名称      (这是基本安装)
?       rpm –ivh 安装包名称     (安装时会显示详细信息)
(注:RPM包的依赖关系,如:A依赖于B,则必须先安装B再安装A。)
3、使用rpm命令卸载软件包
?       rpm –e 软件包名称
(注:RPM包的依赖关系,如:A依赖于B,则必须先卸载A再卸载B。)
4、使用rpm命令升级软件包
?       rpm –U 软件包名称
(注:如果该软件包没有安装就直接安装到当前系统)
三、应用程序的编译安装
1、确认当前系统中具备软件编译的环境
rpm –qa | grep gcc
2、获得应用程序的源代码软件包的文件夹(挂载光盘文件)
3、释放源代码软件包
tar zxf 包名称    (该包格式的后缀名为 .tar.bz2)
tar jxf 包名称    (该包格式的后缀名为 .tar.gz)
4、设置安装路径
./configure –prefix=程序安装目录的绝对路径
5、程序编译过程
make
6、程序安装过程
make install
7、清理多余文件
        make clean
8、卸载
        make uninstall
 
 
四、在图形界面系统工具完成RPM包安装
1、命令方式:system-config-packages
2、菜单项启动方式:Applications → System Settings → Add/Remove Applications
第六章 Linux系统管理
一、启动过程:
?       开机流程简介:
1、加载 BIOS 的硬件信息,并取得第一个开机装置的代号;
2、读取第一个开机装置的 MBR 的 boot Loader (亦即是 lilo, grub, spfdisk 等等) 的开机信息;
3、加载 Kernel 操作系统核心信息, Kernel 开始解压缩,并且尝试驱动所有硬件装置;
4、Kernel 执行 init 程序并取得 run-level 信息;
5、init 执行 /etc/rc.d/rc.sysinit 档案;
6、启动核心的外挂模块 (/etc/modprobe.conf);
7、init 执行 run-level 的各个批次档( Scripts );
8、init 执行 /etc/rc.d/rc.local 档案;
9、执行 /bin/login 程序,并等待使用者登入;
10、登入之后开始以 Shell 控管主机。
?       启动,关机,登入,登出相关命令:
<login> 登录
<logout> 登出
<exit> 登出
<shutdown> 停止系统
<halt> 停止系统
<reboot> 重启动
<poweroff> 切断电源
<sync> 把内存里的内容写入磁盘
<lilo> 安装lilo启动管理程序
<grub> 安装lilo启动管理程序
二、运行级别:
0:关闭
 1:单用户模式,用于管理员对系统进行维护。      
 2:多用户模式,在该模式下不能使用NFS。
3:完全多用户模式:用于将主机作为服务器。            
4:保留,未分配。
5:图形登录的多用户模式:图形界面登录,图形操作环境。    
6:重新启动系统。
显示当前的运行级别:runlevel       更改当前的运行级别:init 1 2 3 5       
三、系统服务的启动状态:
查看服务启动状态: chkconfig –list 服务名称
设置独立服务的启动状态:chkconfig --level 运行级别表 服务名称 on |                     off | reset
设置非独立服务的启动状态:chkconfig 服务名称 on | off | reset
非独立服务的启动状态由xinetd服务在系统中指定运行级别的启动状态决定,xinetd服务启动后才能启动非独立服务程序。
当使用chkconfig对非独立服务程序的启动状态进行更改后,需要service xinetd restart重新启动xinetd服务。
INIT的配置文件为:/etc/inittab
系统初始化脚本:系统启动过程中,执行/etc/rc.d/rc.sysinit后,接着执行/etc/rc.local。
进程:是Linux系统中的基本运行单位,可对其进行查看、调整、启用和停止操作。进程是程序代码在处理器中的运行:操作系统在执行程序时,程序代码被读取到内存中,驻留在内存中的程序代码作为进程在处理器中被动态执行。Linux是多进程操作系统,每个程序启动时都可以创建一个或几个进程,每个进程都是一个独立的任务。
 
查看系统内所有进程:ps aux   
简单显示当前进程:ps     
查看进程树:pstree,可显示进程与子进程的详细列表。
USER-用户     PID—进程号     CPU-CPU占用率      MEM-内存占用率    VSZ-虚拟内存大小 RSS-占用内存 TTY-运行终端    STAT-当前状态    START-启动时间      TIME-占用CPU时间        COMMAND-程序名称
全屏显示进程信息:top    q键退出     P键-按CPU排序     
 N键-按打开时间排序     A键-按PID号排序
在后台启动进程:命令后加“ &” 
将后台程序调入终端前台执行:fg 后台程序名    Ctrl+C:结束当前进程
将当前终端中运行的程序调入后台并停止执行:Ctrl+Z   
查看后台进程:jobs   
(强制)终止进程:kill (-9) 进程号
系统初始化时调用的脚本:位于/etc/r.d内的rc.sysinit和rc.local
定时启动任务服务:cron服务程序的软件包名称:vixie-cron
查询服务状态:service crond status   
启动/重启服务:service crond start | restart   
格式:* * * * * 分 时 天 月 周
查看cron任务:crontab -l   
覆盖原有cron任务:crontab   
删除现有用户的cron任务:crontab –r
调用文本编辑器:crontab –e   
用户配置cron任务目录:/var/spool/cron/用户名
cron启动脚本:/etc/init.d/crond   
系统预设的cron任务配置文件及目录:/etc/crontab文件,/etc/cron.d目录。
日志:应用程序日志、系统日志。 存放于/var/log    启动日志:boot.log
# ls /var/log                 查看日志文件
四、磁盘空间配额:
软限制-警告值,硬限制-最大值。可对用户和组的可用磁盘空间和可使用文件数量进行设置。
①修改/etc/fstab,在分区装载设置中添加usrquota和grpquota。
②重启系统。
③运行quotacheck –cmug /,建立文件系统配额文件aquota.user和aquota.group。
④edquota -u 用户名 | -g 组名,编辑用户/组配额。
设置磁盘配额宽限时间:edquota –t。
 
Filesystem     Blocks    soft    hard    indos    soft    hard
/dev/hda3      17636      0       0        0      0       0
 
⑤显示配额信息:quota -u 用户名 | -g 组名。
⑥启用配额-quotaon /,停用配额-quotaoff /。
※可以使用虚拟磁盘对所做的磁盘配额进行检查。
 切换用户:su –u 用户名
 检查:dd if=/dev/zero of=/tmp/aa bs=1M count=2
五、压缩命令:
*.Z       compress 程序压缩的档案;
*.bz2     bzip2 程序压缩的档案;
*.gz      gzip 程序压缩的档案;
*.tar     tar 程序打包的数据,并没有压缩过;
*.tar.gz tar 程序打包的档案,其中并且经过 gzip 的压缩
?       compress filename 压缩文件 加[-d]解压 
?       gzip filename   压缩 加[-d]解压
?       bzip2 -z filename 压缩 加[-d]解压 
?       bzcat filename.bz2 查看压缩文件内容
?       tar -cvf /home/123.tar /etc 打包,不压缩
?       tar -xvf 123.tar   解开包
?       tar -zxvf /home/123.tar.gz 以gzip解压
?       tar -jxvf /home/123.tar.bz2 以bzip2解压
?       tar -ztvf /tmp/etc.tar.gz   查看tar内容
?       cpio -covB > [file|device]   份份
?       cpio -icduv < [file|device]   还原
文件归档:tar cf 归档文件名.tar 备份目录、文件
文件压缩归档:tar czf 归档文件名.tar.gz 备份目录、文件
查看归档文件:tar tf 归档文件名.tar
查看压缩归档文件:tar tzf 归档文件名.tar.gz
恢复归档文件:tar xf归档文件名.tar –C 指定目录
恢复压缩归档文件:tar xzf 归档文件名.tar.gz –C 指定目录
解压bz2文件:tar jxf 文件名.bz2    -v 显示归档进度
第7章 Linux基本网络配置
?       网络接口:eth0-系统网络接口;lo-环回网络接口127.0.0.1。
?       查看网络接口信息:ifconfig 网络接口名称       -a 全部网络接口
?       测试与其它主机的网络连接:ping 目的主机地址     -c指定数据包数量     Ctrl+C结束发送。
?       测试与其它主机的网络连接路径:traceroute 目的主机地址
?       查看当前主机名称:hostname    
?       配置主机名称:hostname 主机名称,配置后需要重启计算机。
?       查询DNS服务器域名:
交互模式:nslookup,输入待解析域名↙,exit退出。用于对DNS服务器进行测试。
命令模式:nslookup 待解析域名。用于查询域名对应的IP地址。
?       DHCP网络设置:dhclient      
?       临时配置网络: ifconfig 网络接口名称 ip地址 netmask 子网掩码
?       手工配置网络: netconfig     
?       添加ip地址: ifconfig 网络接口名称: ip地址 netmask 子网掩码
?       添加默认网关路由:route add default gw 默认网关地址   
?       删除默认网关路由:route del default gw 默认网关地址
注意:添加默认网关前要确认系统路由表中的默认网关纪录不存在。       route-显示默认网关
显示域名解析:nslookup,输入server。    
设置新的解析地址:server 新解析地址。
网络服务启动脚本:/etc/init.d/network
网络接口配置文件:/etc/sysconfig/network-scripts/中,接口文件名ifcfg-xxx。
启用网络接口:ifup 网络接口名称     
停止网络接口:ifdown 网络接口名称       -a 全部网络接口
主机名称配置文件:/etc/sysconfig/network      重新配置后需要重启计算机。
本地主机名称解析文件:/etc/hosts
域名服务器配置文件:/etc/resolv.conf      可设置3条nameserver配置记录。
第八章 NFS文件系统
一、NFS的概述和安装
1、NFS的一般用法
在运行NFS服务器程序的主机中进行必要的配置,提供NFS共享目录的输出
在NFS客户机挂载NFS服务器输出的共享目录
2、NFS服务器的安装
3、查看所需的软件包是否安装:
 #rpm –q nfs-utils portmap
4、NFS的安装包文件:
 #cd /media/cdrom/RedHat/RPMS/
 #ls nfs-utils* portmap*
5、安装nfs-utils和portmap两个软件包:
 #rpm –ivh nfs-utils-1.0.6-4.i386.rpm portmap-4.0-6.3.i386.rpm
二、NFS服务器的配置
1、NFS服务器的配置文件:
 #cat /etc/exports
2、NFS服务器的启动与停止
 查询服务器的状态: Service 服务程序脚本名称 status
 启动服务器:    Service 服务程序脚本名称 start
 停止服务器运行: Service 服务程序脚本名称 stop
3、设置服务器的开机启动状态:
 #chkconfig --list portmap
 #chkconfig --list nfs
4、Showmount 命令:
 用于查询显示NFS服务器的相关信息
   #showmount –help
 显示主机的NFS服务器信息
   #showmount [NFS服务器主机地址]
 显示NFS服务器的输出目录列表
   #showmount –e [NFS服务器主机地址]
 显示NFS服务器中被挂载的共享目录
   #showmount –d [NFSf服务器主机地址]
 显示NFS服务器的客户机与被挂载的目录
   #showmount –a [NFS服务器主机地址]
5、Exportfs命令:
当系统管理员对/etc/exports文件进行设置修改后,并不会自动在NFS服务器中生效 
 重新输出共享目录:
   #exportfs -rv
 停止输出所有目录:
   #exportfs -auv
 输出(启动)所有目录:
   #exportfs -av       
 三、图形界面的NFS服务器配置工具:
NFS客户端配置:
在linux中配置使用NFS客户端
显示NFS服务器的输出:
 #showmount –e
挂载NFS服务器中的共享目录:
 #mount –t nfs nfs服务器地址:目录共享 本地挂载目录点
显示当前主机挂载的NFS共享目录:
 #mount | grep mnt
卸载系统中已挂载的NFS共享目录
 #umount /mnt/
系统启动时自动挂载NFS文件:
需要将NFS的共享目录挂载信息写入/etc/fstab/文件,以实现对NFS共享目录的自动挂载
 #tail –l /etc/fstab
 192.168.1.163:/home/pub /mnt nfs    defaults 0 0
 
 
 
 
实验一:编写脚本
#vi aa.sh
#! /bin/bash
 echo this is "$1"
 echo Hello world!
 wq
#cat aa.sh
#ls -l aa.sh
脚本运行: #bash aa.sh 使用shell命令程序执行脚本
#· aa.sh    使用“·”命令执行脚本
#· ./aa.sh 设置执行属性执行脚本
实例:关于时间的shell脚本
输出时间脚本
 
#!/bin/bash
drewline ()
{
echo "***************"
echo "hello,$USER,time is "
date
}
drewline
 
 
实验二:编译安装程序
#dhclient
#ping 172.16.16.1
#ftp 172.16.16.1
登录名:ftp     密码:空
ftp>cd shijing.w 进入ftp
ftp>ls -l
ftp>get bind-9.3.2.tar.gz
ftp>bye
#tar zxvf bind-9.3.2.tar.gz
#ls
#cd bind-9.3.2
#./configure prefix=/tmp/bin(安装路径)
#ls
#make
#make install
#cd /tmp/bin(安装路径)
#ll ../sbin
#ls ../man
 
安装apache,观看试验效果
 
 
 
实验三:磁盘配额
#vi /etc/fstab 修改fstab文件
#reboot
#quotacheck -cmug /home
#ls /aquota.* 或 ls -l 查看
#mkdir abc
#edquota -u abc 修改配置
wq保存退出
#edquota -g 组名 为组配额
#edquota -t 修改宽限时间
#quotaon -auvg 激活
# quota -u abc 查看配额(用户)
# quota -g 组名 查看组配额
 
 
 
 
 
实验4
:文件压缩.
归档
# mkdir aaa
# cd aa
# mkdir aa bb cc
# tar cf aa.tar aa    归档文件
# tar czf bb.tar.gz bb 压缩归档文件
# tar tf aa.tar    查看
# tar tzf bb.tar.gz    查看
# tar xf aa.tar 释放
# tar zxf bb.tar.gz 释放
# tar xf aa.tar -c cc/将归档文件aa释放到cc 目录中
 
 
 
 
 
实验5
:制作cron
任务 at
任务    
# crontab -e
 35 16
#35 16 * * * /sbin/init.5
wq 保存退出
# crontab -l 查看
# at -t 12211635
at》touch abc
wq 保存退出
 
 
 
 
实验六
: NFS
文件系统
服务器中: #rpm -q nfs-utils portmap 查看包是否安装
#rpm -ivh nfs-utils-1.0.6-46.i386.rpm portmap-4.0-63.i386.rpm 若未安装,使用以上命令进行安装
#cat /etc/exports 查看配置输出目录(默认为空)
#vi
/home/share *(sync,rm)
/home/pub *(sync,ro)
wq
#service portmap status 查看服务器状态
#service nfs status 查看服务器状态
#service portmap start 若未启动则启动服务器
#service nfs start 同上
#chkconfig --list portmat
#chkconfig --list nfs
#chkconfig --level 35 nfs on
#chkconfig --list nfs
同理将portmat 35 进程启动
客户机:#showmount -e 服务器ip 显示nfs服务器的输出目录
#mount -t nfs nfsip :共享目录名 本地挂载点目录
#mount | grep 挂载点 查看挂载的NFS共享目录
系统启动时自动挂载NFS文件
#tail -1 /etc/fstab
#mount /mnt/
#mount | grep mnt
#mount /mnt/
 
 
 
实验7
安装RPM
软件包
 # rmp i RMP包文件名
    将RHEL4第2张安装盘放入,安装名为vim-common-6.3.035-3.i386.rpm的软件包。
 # rpm-qa | grep vim
 #rpm | /media/cdrom/RedHat/RPMS/vim-common-6.3.035-3.i386.rpm
#rpm -q vim-common     
补充命令:
      # mkdir -p 1/2/3/4 创建嵌套目录
      # rm -rf 目录名 强制删除目录(空及非空)
      # passwd -d 用户名 删除用户登录密码
      # tail /etc/shadow 查看密码
      # ln -s aa bb 创建链接文件
      # ls -a 查看隐藏文件
   # ls -li 查看节点
 linux 系统的 所有用户帐号都保存在 /etc/passwd文件中