Linux 用户基础

一. 认识Linux
1.Linux的性质
Linux为一种源码公开的自由软件,是一种真正多任务和多用户的网络操作系统。
说明:
(1) 软件的分类
商业软件:用户必须向发行商购软件的许可证,用户只具有使用权、用户不能无法复制和拷贝
共享软件:用户可以免费使用软件的试用版,在试用期间用户可以复制,但是使用结束后用户必须购买软件的许可证
自由软件:用户可以免费的永远使用软件且可以任意复制
(2) 网络操作系统的介绍
网络操作系统(NOS),是网络的心脏和灵魂,是向网络计算机提供网络通信和
网络资源共享功能的操作系统
核心代码中包含相应网络服务的源码
网络操作系统可以分为Windows类、Netware类、Unix类、Linux类
(3) Linux的多用户和多任务
同时开设多个用户终端、可以由用户同时运行多个程序
2. Linux的发展历史
(1) UNIX和Linux的发展:
-1968年 美国的ken Thompson在贝尔实验室关于一个Multics项目开始了UNIX的历史(基于PDP-11平台,使用汇编语言)
-1970年 第一版的UNIX出现在贝尔实验室,此时的UNIX支持三个用户、运行在PDP-11/22系统上、同时含有编辑排版软件
-1972年 第二版的UNIX出现,该版本增加了管道功能且增加除汇编语言之外的语言
-1973年 ken和Dennis用C语言改写了UNIX的内核和shell
-1975年 第三版的UNIX系统发行了,且AT&T开始向商业机构和政府用户提供许可证
-1977年 Inetfive systems公司成为首家向最终用户出售UNIX的组织
-1984年 GNU拟定了GPL计划
-1990年 芬兰的赫尔辛基大学计算机系的学生linus Torvalds基于i386 PC系统开发了MINIX
-1994年 Linux 1.0内核问世
-1998年 RedHat公司得到Intel Netscape的投资成立
-1999年 Linux 2.2.x内核问世
-2001年 Linux 2.4.x内核问世
-2003年 Linux 2.6.x内核问世

Linux与NT/2000/2003的主要差别
(1)多用户方面
Linux:同时允许多个用户、多个桌面
Windows:同时只能允许一个用户、一个桌面
(2)GUI界面方面
Linux:GUI界面采用x-windows且与内核是相互独立
Windows:GUI与内核是集成在一起的
(3)共享资源相互访问
Linux:NFS、Samba实现Linux及Windows主机之间相互访问
Windows:利用网上邻居实现相互访问
(4)配置文件
Linux:有多个配置文件
Windows:所有配置集中在注册表中
(5)域
Linux:无须身份验证
Windows:由DC对用户进行身份验证
4.Linux独立的特点
多用户、多任务
稳定性和速度好
设备独立性强
丰富的网络功能
安全性强
可移植性好
兼容性好
二.Linux的体系结构

在这里插入图片描述
1.Linux内核
-Linux内核本身并不是操作系统,它是一个完整操作系统的组成部分
-具有最基本功能,如虚拟内存、多任务、共享库、需求加载、共享的写时拷贝(copy-on-write)可执行程序和TCP/IP网络功能
2.Shell
-系统的用户界面,用户与内核交互操作的一种接口,接收用户输入的命令、解释命令
-它接收用户输入的命令并把它送入内核去执行.目前主要有下列版本的Shell有:
Bourne Shell:是贝尔实验室开发的。
BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的shell。
Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。
C Shell:是SUN公司Shell的BSD版本

3.文件系统
–文件系统是文件存放在磁盘等存储设备上的组织方法
–主要体现在对文件和目录的组织上
–Linux采用统一的树型结构的文件系统,在Linux文件系统下可以:
‐切换目录、访问文件
‐设置目录和文件的权限
‐设置文件的共享
–Linux支持多种类型的文件系统
4.Linux应用软件和工具
–Linux平台下的应用软件较少
–Linux平台主要的应用软件是一些服务器软件和网络工具
三.Linux的应用和版本
1.Linux的应用领域
(1)网络服务器
2)嵌入式领域
(3)集群和多服务器计算
(4)桌面应用
2.Linux/Unix的发行版本
(1)UNIX的常用发行版本
BSD UNIX
SCO UNIX
Tru64 UNIX
HP UNIX
(2)Linux的常用
RedHat Linux
Slackware 9.1
SUSE Linux
Debian Linux
Caldera Linux
蓝点Linux
X-term Linux
X Linux
Turbo Linux
RedHat Flag

3.内核版本号的认识
Linux内核版本号由三个数字组成:r.x.y-z,每个数字具体含义如下:
– r:目前发布的Kernel版本
–x:偶数:稳定版本,奇数:开发中版本
–y:错误修补的次数
–z:发行序号
如:2.4.20—8

一.RedHat Linux 9.0安装前准备
1.硬件要求
CPU:Intel、ADM、VIA
内存:SDRAM、EDO和DDR,建议容量在128MB以上,最大4GB
硬盘:接口类型(IDE、SCSI、SATA、USB)、自由空间(最小:500MB、完全安装:4.5G)
网卡:一块或多块
显卡:VGA
http://hardware.redhat.com/hcl(Redhat Linux硬件兼容列表)
http://www.redflag-linux.com/ppd/product_user/hardware_table.php(红旗Linux硬件兼容列表)
2.安装方式
CD-ROM安装
硬盘安装
FTP
NFS
HTTP
3.安装启动盘的制作
方法一、在DOS/Windows下制做
G:\dosutils> rawrite
Enter dis image source file name:bootdisk.img
Enter target diskette drive:a
Please insert a formatted diskette into drive A:and press –ENTER–:[Enter]
注:光盘\images\有以下几个IMG文件
Bootdisk.img 安装引导盘映像文件
Drvnet.img 网卡驱动盘
Drvblock.img 块设备驱动盘

Pcmciadd.img PCMCIA设备驱动盘
方法二、在Linux下制做启动盘
#dd if=boot.img of=/dev/fd0 bs=1440
4.准备Linux分区
在这里插入图片描述
多操作系统
在这里插入图片描述
/boot / swap 其它分区
单Linux操作系统
(1)Linux系统中分区没有盘符的概念,如果用户要访问某个分区内容可以进入到某个目录下,也就是说在Linux下用户可以把分区链接到某个目录下,这个目录称为所链接分区的装载点
(2)安装Linux系统时根分区是必不可少的,一般需要三个分区
(3)认识Linux系统的常用系统目录,如下图:
在这里插入图片描述
–/boot:系统过程中所要用到的文件
–/usr:系统应用程序文件夹
–/home:是用户的home目录所在地
–/var/log:是系统日志记录分区
–/dev:存放设备文件
–/opt:存放可选的安装的软件
–/sbin:存放标准系统管理文件
–/tmp:用来存放临时文件
–/bin:存放标准系统实用程序
–/etc:存放系统配置文件
(4)低版本的Linux引导分区必须位于硬盘的前1024柱面以内
(5)安装Linux的分区通常使用ext2、ext3、vfat、raid、lvm、Reiserfs
(6)Linux系统中分区的命名规则:

在这里插入图片描述
二.开始安装Linux
1.虚拟控制台的介绍

安装过程中可以切换到不同的虚拟控制台,它们提供了各种有用的信息和在 shell 下输入命令的方法,对安装过程中所遇问题的定位和解决有很大帮助。
在这里插入图片描述
本地CDROM安装
(1)将安装光盘的一号盘放入光驱,开始安装向导
(2)出现boot:提示符等待用户输入命令,用户可以以下命令:
Linux或直接按回车键
使用图形安装界面,在这种模式下用户可以鼠标选择安装选项,安装方便,但由于图形`界面占有很大的内存,所以安装速度较慢
linux text
使用文本安装界面,在这种模式下用户只能用键盘选择安装选项,使用这种安装模式,安装程序占的内存较小,所以安装较快
linux rescue
进入Linux的修复模式,在这种模式用户可以修复原有Linux系统的文件系统等错误
linux askmethod
表示进入Linux选择安装模式,在这种模式下用户可以选择使用硬盘安装、CD-ROM、FTP、NFS、SAMBA安装方式中的一种
linux expert
表示使用专家模式安装linux,所谓的专家模式指的是用户可以在安装过程中使用硬件驱动盘来安装硬件的驱动程序
(3)选择安装程序的语言和键盘的类型
(4)选择安装模式
全新安装:全新安装指在外存上重新安装Linux系统,共有四种方式
工作站安装
服务器安装
最小化安装
自定义安装
升级安装:升级安装指升级外存上已安装的Linux系统或者添加软件包

(5)创建分区
自动分区
自动分区是指安装程序根据用户所选择的选项来决定分区的方案,用户的选项有:
覆盖所有的linux分区
覆盖所有系统
保持原有的系统使用空空间
手工分区
手工分区是指用户可以使用一种分区工具来根据自己的需要来建立分区,分区工具有:
DISK DRUID
(6)初始化和格式化分区
(7)配置引导
Linux系统常使用的引导加载程序是GRUB和LILO,它们可以被安装到MBR或引导分区的第一个扇区
GRUB/LILO都可以支持多重操作系统的引导
(8)网络配置
(9)配置时区
(10)设置root用户的口令
(11)选择软件包
(12)开始复制文件
(13)安装结束、制作启动盘
3.其它安装方式
在 boot:提示符下输入 “linux askmethod”引导选项,将出现下图所示的“Installation Method(安装方法)”安装介质选择界面:

(1)硬盘安装
将Linux系统安装盘的ISO文件复制到指定的分区中,然后在“Installation Method(安装方法)”界面中选择“hard driver”
在这里插入图片描述
(2)NFS安装
将Linux系统安装盘的ISO文件或者是安装盘中的所有文件复制到指定的分区中,然后在“Installation Method(安装方法)”界面中选择“NFS Image”
在这里插入图片描述
配置网络
在这里插入图片描述
配置NFS服务器位置

(3) FTP安装
将Linux系统安装盘中的所有文件复制到指定的分区中,然后在“Installation Method(安装方法)”界面中选择“FTP”
在这里插入图片描述
配置网络
在这里插入图片描述
配置FTP服务器的位置
(4)HTTP安装
将Linux系统安装盘中的所有文件复制到指定的分区中,然后在“Installation Method(安装方法)”界面中选择“FTP”
在这里插入图片描述
配置WEB服务器位置

无人值守安装
(1)创建kickstart配置文件
方法一:#redhat-config-kickstart(在X-Windows环境中)
方法二:利用己安装机器中的配置文件/root/anaconda-ks.cfg
(2)创建安装引导盘
创建安装引导盘并将创建的kickstart配置文件*.cfg复制到安装启盘
(3)使用安装引导盘开始安装
使用安装引导盘启动, boot:linux ks=floppy
三.启动Linux和解决安装问题
1.启动Linux
(1)启动菜单的认识
Linux使用GRUB/LILO作为引加载程序,它支持命令和菜单操作界面,下图所示为GRUB的菜单界面:
在这里插入图片描述

(2)启动过程

在这里插入图片描述

(3)用户登录
第一次启动可以启动X-WINDOWS/文本模式,且以root身份登录,

在这里插入图片描述
2.关闭和重启系统
(1) shutdown
功能:重启/关机
格式:shutdown [参数] time [信息]
参数:-r:重启
-k:发送信息
-c:取消shutdown的动作
-h:关闭计算机(不关闭电源)
-f:重启时使用fsck检查文件系统
-F:重启时不检查文件
time:设定时间 hh:mm 某时某分
+mm 当前时间往后几分钟
Now 立即
实例:#shutdown -r now
#shutdown -r +5
#shutdown -h 18:00

reboot
功能:重启系统
实例:#reboot
(3)halt
功能:关闭计算机
实例:#halt
3.解决安装的故障
(1)测试光盘失败
光盘损坏
硬件不支持
(2)分区是提示分区表错误询问是否初始化硬盘
硬盘分区表问题(用PM修复分区表)
Linux分区的位置问题
(3)复制文件时提示某个软件包无法安装
安装光盘损坏
光驱读盘能力差
(4)安装完成后,无引导菜单,无法启动操作系统
分区的问题在于 (DM)
引导装载程序的问题(大硬盘是否支持)

文件系统及Shell的基本概念
1.文件系统的含义
文件系统是用来管理和组织保存在磁盘驱动器上数据的系统软件
2.Linux的文件系统
Linux系统采用虚拟文件系统技术(VFS)、结构采用倒立树型、VFS使Linux支持以下文件系统:
EXT2: 二次扩展
EXT3: 三次扩展
SWAP: 交换文件系统
FAT、FAT32
NTFS (默认不支持,需要特定的模块)
VFAT: 虚拟FAT
SYSV: Unix的文件系统
HPFS: OS/2的文件系统
ISO9660: 光盘文件系统
NFS: 网络文件系统
3.Linux中的文件分类
(1)普通文件
文本文件:采用ASCII编码方式,可编辑,可修改
二进制:不可查看,不可修改
(2)目录文件
存放的内容是目录中的文件名和子目录名
(3)设备文件(/dev)

用于用户访问物理设备所用,分为块设备和字符设备文件
(4)链接文件
软链接文件:目标文件和链接文件可以跨越索引点,相当于文件的快捷方式
删除原文件,则符号链接文件失去意义
删除符号链接文件,不影响原文件
硬链接文件:链接同一索引点中的文件,相当文件的副本
两个文件指向同一存储区,内容、长度相同
删除一个文件不影响,其它文件
(5)管道文件
FIFO缓存队列

Shell的主要功能
命令行解释
交互模式
后台运行
命令的多种执行顺序
命令替换 (
I/O重定向(>,>>,<,<<)
管道(|)
通配符(*,?,[],[!])
系统环境维护
Shell编程
历史记录(history)
自动补齐(TAB)
5.Shell的命令解释过程
在这里插入图片描述
文件操作命令
1.pwd
功能:显示当前目录
实例:
#pwd
2.cd
功能:改变当前目录
实例:
# cd /usr/sbin (进入/usr/sbin)
# cd …/u1 (进入父目录下面的u1目录)
# cd …(返回父目录)
#cd (进入用户主目录)
#cd ~ (进入用户主目录)
3.mkdir
功能:建立目录
格式:mkdir [参数] <目录名>
参数:-m 属性值:指定目录的属性 (r、w、x或4、2、1)
-p :循环建立目录
实例:
# mkdir d1 (在当前目录下建立d1子目录)

# mkdir /d1/d2 /d1/d3 /d1/d4(同时在/d1目录中建立d2,d3,d4子目录)
# mkdir –p /d1/d2 (在/d1目录中建立d2子目录,先建d1)
4.rmdir
功能:删除空目录
格式:rmdir [参数] <目录名>
参数:-p:循环删除
实例:
# rmdir a1 (删除当前目录下的a1子目录)
# rmdir /etc/a2 (删除/etc下a2子目录)
# rmdir -p /a1/a2
5.ls
功能:显示目录中的文件及子目录的名称
格式:ls [参数] [文件名]
参数:-a: 显示所有文件(包括隐含文件,以“.”开头的文件为隐含文件)
-l: 以长格式显示文件名及目录名(显示文件的详细信息)
-F: 显示文件名,同时显示类型
-R: 显示目录中所有文件及子目录中的文件结构
-t: 按照修改时间排序显示
-s: 显示文件的大小,以block为单位
-S: 按照文件大小排序显示
-m: 分列显示文件名
实例:
# ls
# ls /bin/
# ls grub.conf 查找当目录下是否存在grub.conf
# ls -l
# ls --help 显示ls的详细的帮助信息
# ls -a
6.cp
功能:复制文件
格式:cp [参数] <源路径> <目标路径>
参数:-f:文件在目标路径中存在时,则直接覆盖
-i:文件在目标路径中存在时, 提示是否覆盖
-r:复制指定中所有内容和结构
-b:生成覆盖文件的备份
-a:保持文件原有属性
实例:
# cp /etc/* /a1/ 把/etc下的所有文件复制到a1目录中
#cp /bin/ls /dir1 /bin/ls文件到/目录取名为dir1
#cp -f /sbin/* /exe/ 直接将/sbin下的所有文件到/exe目录中
#cp -r /soft /abc/
7.rm
功能:删除文件
格式:rm [参数] <文件名>
参数:-f: 不提示确认删除
-i: 提示确认删除
-r: 递归删除
实例:
# rm /m1/f1 删除/m1目录下的f1
# rm –f /m1/* 删除m1目录下的所有文件
#rm -rf /m1 强制删除一个目录
8.mv
功能:移动文件、重命名文件
格式:mv [参数] <源路径> <目标路径>
参数:-i: 如果存在文件重名则提示是否覆盖
-b: 建立覆盖文件的备份
-f: 如果存在文件重名则直接覆盖

实例:
# mv /m1/f1 /m2/ 移动/m1目录下f1文件到/m2目录下
#mv f1 f2 将当前目录下的f1文件改名f2
# mv -f /d1/* /d2/ 移动/d1中的所有文件到/d2目录中
9.file
功能:检测文件类型
格式:file [参数] <文件名>
参数: -z:检测压缩包文件
-L:跟随符号链接
实例:
# file /etc/lilo.conf
#file -z 1.gz
10.显示文本文件内容
(1) cat
格式:cat [参数]  <文件名>
参数:-n 显示行号
-b 显示行号,但空白行不显示行号
   实例:
#cat /etc/inittab
#cat -n /d1/f1 /d1/f2 >txt1
(2)more
   格式:more [参数] <文件名>
    实例:
# ls|more 将ls的显示结果输入到more中
#more /etc/rc.d/rc 显示/etc/rc.d/rc文件的内容
说明:可以用回车键向下换行,空格键向下换页
      按Q键退出more
(3)less
   实例:
#ls|less 将ls的显示结果输入到less中
#less /var/named/localhost.zore
说明:Page up /Page Down键上下滚动、Q键退出
(4)head、tail
实例:
# head -20 /a1 显示a1中前20行
# tail -20 /a1  显示中a1后20行
(5)cut
功能:显示文件中指定数目的字符、字节或字段
格式:#cut 参数 数字 文件
参数:-c 以字符为单位
-b  以字节为单位
-f 以字段为单位
-d 指定分隔符
实例:#cut -c 3 /etc/passwd
#cut -f 1-6 -d :/etc/passwd
#cut -b -8 /etc/passwd
11.搜索文件
(1) find
格式:find 查找路径 查找条件
条件:-name “文件名”:查找指定名称文件
-lname “文件名”:查找指定文件所有的接文件
-user 用户名:查找指定用户拥有的文件
-group 组名:查找指定组拥有的文件
-links n:查找拥有n个链接的文件
-mtime n:查找在N天前被修改过的文件
-atime n:查找在N天前被访问过的文件
-type d/f/b/l/p:查找指定类型的文件
-s n[bcwkMG]:查找指定大小的文件
-empty:查找为空的文件
-perm mode:查找指定属性的文件
-exec command {}; 查找指定的文件并执行指定的命令
-newer 文件名 查找比指定文件新的文件
实例:
# find / -name “named*”
# find / -user root
#find ./ -type d -exec chmod 755 {} ;
#find . –empty
#find . -perm 644
#find . -newer oldfile ! -newer newfile
(2) whereis
功能:查找二进制可执行、手册及源文件
实例:# whereis umount
(3) locate
功能:在资料库中查找指定的文件
格式:#locate [参数] 文件名
参数:
-u /-U 建立资料库,-u 会由根目录开始,-U 则可以指定开始位置
-e <目录1…> 排除指定目录在寻找范围之外
-l <0/1> 设置安全级别,1启用安全模式,0关闭安全模式
-f <文件类型> 在资料库中排除特定类型文件排除在外
-n 至多显示n个输出
-r 使用正规运算式做寻找的条件
-o 指定资料库存的名称。
-d 指定资料库的路径
实例:
#locate -u
#locate chdrv
#locate -n 100 a.out
(4) which
功能:查找指定命令文件
格式:#which 文件名
实例:#which mount

12.grep
功能:在文本文件中查找匹配的字符串
格式:#grep [参数] “字符串” 文件
参数: -? 同时显示匹配行上下的?行
-b 在匹配行前面打印该行所在的块号
-c 只打印匹配的行数,不显示匹配的内容
-f File 从文件中提取模板,空文件中包含0个模板,所以什么都不匹配
-h 当搜索多个文件时,不显示匹配文件名前缀
-I 忽略大小写差别
-q 取消显示,只返回退出状态。0则表示找到了匹配的行
-l 打印匹配模板的文件清单
-L 打印不匹配模板的文件清单
-n 在匹配的行前面打印行号
-s 不显示关于不存在或者无法读取文件的错误信息
-v 反检索,只显示不匹配的行
-w 如果被<和>引用,就把表达式做为一个单词搜索

正则表达式元字符:
^
锚定行的开始 如:’^grep’匹配所有以grep开头的行
$
锚定行的结束 如:'grep$‘匹配所有以grep结尾的行
.
匹配一个非换行符的字符 如:‘gr.p’匹配gr后接一个任意字符,然后是p
*
匹配零个或多个先前字符 如:’*grep’匹配所有一个或多个空格后紧跟grep的行。 .一起用代表任意字符
[]
匹配一个指定范围内的字符,如’[Gg]rep’匹配Grep和grep
[^]
匹配一个不在指定范围内的字符,如:’[^A-FH-Z]rep’匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行
(…)
标记匹配字符,如’(love)’,love被标记为1
<
锚定单词的开始,如:’<grep’匹配包含以grep开头的单词的行
>
锚定单词的结束,如:'grep>'匹配包含以grep结尾的单词的行
x{m}
重复字符x,m次,如:'0{5}'匹配包含5个o的行
x{m,}
重复字符x,至少m次,如:'o{5,}'匹配至少有5个o的行
x{m,n}
重复字符x,至少m次,不多于n次,如:'o{5,10}'匹配5–10个o的行
\w
匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w
p’匹配以G后跟零个或多个文字或数字字符,然后是p
\W
\w的反置形式,匹配一个或多个非单词字符,如点号句号等
\b
单词锁定符,如: ‘\bgrepb’只匹配grep
+
匹配一个或多个先前的字符。如:’[a-z]+able’,匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。
?
匹配零个或多个先前的字符。如:'gr?p’匹配gr后跟一个或没有字符,然后是p的行。
a|b|c
匹配a或b或c。如:grep|sed匹配grep或sed
()
分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。
x{m},x{m,},x{m,n}
作用同x{m},x{m,},x{m,n}

        实例:

# ls -l | grep ‘^a’

通过管道过滤ls -l输出的内容,只显示以a开头的行。
# grep ‘test’ d*
显示所有以d开头的文件中包含test的行。
# grep ‘test’ aa bb cc
显示在aa,bb,cc文件中匹配test的行。
# grep ‘[a-z]{5}’ aa
显示所有包含每个字符串有5个连续小写字符的字符串的行。
# grep 'w(es)t.\1’ aa
如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.
),这些字符后面紧跟着另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用""号进行转义,直接写成’w(es)t.\1’就可以了。
13.文件压缩操作
(1)gzip(
.gz)
功能:对单个文件压缩
格式:gzip [参数] 压缩(解压缩)文件名
参数: -d:用于解压缩
-t:检验压缩文件是否损坏
-l:显示压缩文件压缩比例
-r :递归式地查找指定目录并压缩其中的所有文件或者是解压缩
-num: 用指定的数字 num 调整压缩的速度,-1 或 --fast 表示最快压缩方法(低压缩比)
实例:
# gzip /a1
# gzip -d /a1.gz
# gzip -dv /*.gz
#gzip -r /www
(2)zip
功能:压缩文件
格式:#zip [参数] 文件或目录名
-d 从压缩文件内删除指定的文件。
-F 尝试修复已损坏的压缩文件。
-t 把压缩文件的日期设成指定的日期。
-u 更换较新的文件到压缩文件内。
-v 显示指令执行过程或显示版本信息。
-z 替压缩文件加上注释。
-<压缩效率> 压缩效率是一个介于1-9的数值。
-P 口令 利用指定口令加密压缩包
-m 添加文件到ZIP压缩包中
实例:#zip abc.zip f1 f2 f3
#zip -r –P 123 soft.zip /soft/
#zip -d soft.zip soft/wb
#zip –u soft.zip abc.log

#zip -m soft.zip install.log
(3)unzip
功能: 解压缩zip文件
格式: #unzip [.zip文件]
-l 显示压缩文件内所包含的文件。
-P <密码>
-d <目录>指定文件解压缩后所要存储的目录。
实例:
#unzip f1.zip -d /f1
#unzip –l f1.zip
(4)tar(.tar)
功能:为文件或目录创建备份
格式:tar [参数] 文件/目录名
参数:-t:列出压缩包中的文件(
.tar)
-x:解压缩(*.tar)
-z:使用gzip的压缩文件
-c:创建压缩包
-f:指定文件名
-j:使用bzip的压缩文件
-v:显示操作信息
-C:指定解压路径(默认路径为当前路径)
-r: 向压缩包添加文件
-u:更新压缩包中的文件
-k:还原文件过程中,遇到相同文件不覆盖
-m:还原文件过程中,修改文件的时间为当前时间
实例:
# tar -cvf all.tar *.jpg
# tar -uvf all.tar logo.gif
# tar -rf all.tar *.gif
# tar -cvfz etc.tar.gz /etc
#tar -xvf all.tar
# tar -xzvf etc.tar.gz -C /soft
注:除以上的压缩工具外,还有compress(uncompress)、bzip2(unbzip2)
14.ln
功能:建立链接文件
格式:ln [参数] <源文件> <链接文件>
参数:-s:建立软链接文件
-i:提示是否覆盖目标文件
-f:直接覆盖已存在的目标文件
实例:
# ln /etc/abc /abc
# ln -s /a1 /etc/a1
15. touch
功能:创建空文件或修改文件的时间

格式:#touch [参数] 文件名
参数:-r 修改文件的时间为指定文件的日期时间
-d 指定文件日期时间为yymmdd
-t 指定文件日期时间为yymmddhhmm
-c 不创建指定的文件
  实例:#touch /f1 /f2
#touch -r /f1 /f2
#touch -d “6:03pm 05/06/2000” file
16. sort
功能:对文本文件进行排序
格式:sort [参数] [文件]
参数:-o 文件名 将排序结果保存到指定文件中
-u 去除重复行
实例:
#sort /etc/passwd
#sort –o /etc/oldpass /etc/passwd
17. paste
功能:合并文本文件
实例:#paste f1 f2>f3
18. cmp
功能:比较两个文件是否有差异
格式:#cmp [参数] 文件1 文件2
参数:-l 显示不同的字节位置
-s 不显示不同之处,只显示返回状态
实例:#cmp f1 f2
#cmp -l f1 f2
18. diff
功能:显示文件的不同之处
格式:#diff [参数]  文件1  文件2
参数:-c 显示全文,并标出不同之处
-u 合并显示,并标出不同之处
实例:#diff f1 f2
#diff -c f1 f2
19. wc
功能:统计文件中的行数、单词数、字符数
格式:#wc [参数]  文件名
参数:-c 统计字符数
-w 统计单词数
-l  统计行数
实例:#wc /etc/passwd
#wc -c /etc/passwd
注:1.命令自动补齐
按TAB键进行自动扩充
2.命令历史记录

Linux系统采用.history文件存放命令历史记录,以下是与历史记录相关的操作:
! n:调用正序第n个命令
  !! :调用上一条命令
  history:查看命令历史记录
history -c:清除历史记录
history -w 文件名:保存历史记录到指定的文件中
3.命令重定向
“>”:将命令输出结果保存到指定文件中,如果文件不存在先建立,存在就覆盖
“>>”:将命令输出结果保存到指定文件中,如果文件不在存先建立,存在就覆盖
“<”:把文件内容输入指定命令
“<<”:将一对分隔之间的正文输入给指定命令
实例:#ls>abc.txt
#ls /etc >>abc.txt
#wc</etc/passwd
#wc<<!
4.命令管道(前一个命令的输出作为后一个命令的输入)
实例:ls|more
5.命令替换(取指定命令的结果)
实例:# cat ls abc
6.多个命令执行顺序
“;”:顺序执行多个命令
“||”:前后命令的执行存在“逻辑或”关系,只有||前面的命令执行失败后,它后面的命令才被执行
“&&”:前后命令的执行存在“逻辑与”关系,只有&&前面的命令执行成功后,它后面的命令才被执
实例:# ls /etc;cd /etc
#ls /d1/f1||touch f1
7.命令别名
实例:#alias [别名=’命令’]

三.vi编辑器的使用
1.vi 定义
Vi 是Unix/Linux系统中的一种文本编辑软件
2.vi三种模式
命令模式:删除字符、排版
插入模式:插入字符、删除、修改字符
最后行模式:通过命令操作vi软件

vi的使用
(1)启动VI
# vi  [参数] [文件名]
(2)VI常用命令
移动光标
左移一个字符:按h
右移一个字符:按l
下移一行: 按j
上移一行: 按k
移至行首: 按^
移至行尾: 按$
移至文件顶部:按H
移至文件尾部:按L
移至文件中部:按M
前翻一屏: 按ctrl+f
后翻一屏: 按ctrl+b
前翻半屏: 按ctrl+d
后翻半屏: 按ctrl+u
移动光标到指定行:输入:数字
插入文本
在光标右边插入文本: 按a
在一行的结尾处添加文本: 按A
光标左边插入文本: 按i
在行首插入文本: 按I
在光标所在行的下一行插入新行:按o
在光标所在行的上一行插入新行:按O
撤消和重复操作
撤消上一个操作:按u
撤消光标所在行的更改:按U
重复操作:输入”.”
删除文本
删除当前字符: 按x
删除一词: 按dw
删除一行: 按dd(剪切)
删除行的部分内容:按D(删除光标右的内容)或按d0(删除光标左的内容)
删除到文件的结尾:按dG

dL :删除直到屏幕上最后一行的内容
dH :删除直到屏幕上第一行的内容
dG :删除直到工作缓存区结尾的内容(文尾)
d1G :删除直到工作缓存区开始的内容 (文头
:n,md: 从第n行开始删除m行
复制和粘贴
复制一行内容:按yy
粘贴: 按p
查找和替换命令
/string:向前查找字符串
?string:向后查找字符串
n:继续上一次查找
shift+n:以与上一次相反的方向查找
:%s/字符串1/字符串2/g:在全文中替换字符串1为字符串2
n,ms/字符串1/字符串2/g:替换n到m行中的字符串1为字符串2
保存和退出命令
:w:写缓冲区
:w 文件名:把缓冲区写入指定文件
:wq:保存退出
:q!:不保存退出
:wq!:保存退出,对拥有者忽略只读权限
E!:取消自上次保存以来所做的修改
ZZ:保存退出
修改文本命令
cl :更改当前字符
cw :修改到某个单词的结尾位置
c3w :修改到第三个单词的结尾位置
cb :修改到某个单词的开始位置
c0 :修改到某行的结尾位置
c):修改到某个语句的结尾位置
c4):修改到第四个语句的结尾位置
c} :修改到某个段落的结尾位置
c2{ :修改到当前段落起始位置之前的第2个段落位置
ctc :修改当前行直到下一个字符c所出现位置之间的内容
C :修改到某一行的结尾
cc :修改当前行
会话定制命令
:set: 显示vi变量
:set all:显示所有可能的vi变量和它们当前的值
:set nu:显示行号
:set nonu:隐藏行号
:set showmode:显示当前操作模式
:set noshowmode:隐藏当前操作模式
:set ai:自动对齐
:set dir=目录:设置缓冲区的位置
注:-可以vi设置信息保存在用户主目录的.exrc文件中

VI的高级应用
    (1)编辑多个文件
#vi [-o]文件1 文件2 ………
-o:同一窗口打开多个文件
:next:编辑下一个文件
:prev:编辑上一个文件
:args:显示所有打开的文件名称
Ctrl+ww :切换窗口
:e 文件名:读入另一文件
(2)高级复制
:start,end cp dest:将start到end行的内容复制到dest行以下
:start,end m dest:将start到end行的内容移动到dest行以下
nY:将从光标所在行开始的n行内容暂存
:[m],[n]w<文件名>:把m到n内容另存到指定文件中
(3)其它高级应用
:X 输入口令:以口令加密保存
:ctrl+s:锁定VI(ctrl+q解锁)
:r !<命令>:执行指定命令,并将命令结果插入到当前文件中
:J:合并上下两行
四.软件包的管理
1.Linux软件包主要类型
(1)RPM包
由于RedHat公司开发的一种软件封包方式,可以用于多种Linux系统
RPM包名称格式为:软件名-版本号.运行平台.rpm(foo-1.2.0-3.i386.rpm)
Linux系统会使用专用的数据库记录RPM包的安装情况
(2)TAR包
TAR包封装的通常是软件源代码,并且利用了gzip或其它方式进行二次压缩
2.RPM包的管理
(1)安装RPM包
#rpm -ivh [详细选项] RPM包名称
详细选项:
–nodeps 忽略依赖关系
–rplacepkgs 强制覆盖已存在的RPM包

实例:
#rpm –ivh grub-0.93-7.i386.rpm
(2)升级RPM包
#rpm -Uvh [–nodeps/–replacepkgs] 软件包名称
实例:
#rpm –Uvh bind-9.2.20-8.i385.rpm
(3)查询RPM包
#rpm -q[a/f 文件名/l/] [软件名称]
实例:#rpm –q bind(查询软件名为bind的软件包)
#rpm –qa(查询系统中所有已安装的RPM包)
#rpm –qf /boot/grub/grub.conf (查询grub.conf文件所属的RPM包)
#rpm -ql bind (查询软件名为bind软件包并显示软件包的内容)
(4)卸载RPM包
#rpm -e 软件名称
实例:#rpm -e bind
(5)检验RPM包
#rpm –V 软件名称
实例:#rpm -V bind
3.TAR软件包的管理
(1)安装TAR包
解压缩
配置安装参数
编译和安装
实例:
#tar –xzvf bind-9.2.0.tar.gz
#cd bind-9.2.0
#./configure --prefix=/usr/named
#make
#make install
(2)卸载TAR包
直接删除安装
实例:
#rm -rf /usr/named

用户管理概念
1.Linux系统用户管理特点
多用户平台(ALT+F1–6)
单用户模式中无需用户
管理方法有两种:命令、图形工具、
2.用户账号的分类
超级用户(UID=0):具有一切系统操作权限
普通用户(UID=500—MAXUID默认值60000):操作权限受到限制
伪用户(UID=1—499):限制本机登录(用于特定服务的启动用户)
注:-用户的UID的取值,除0以外,其它值不允许用户取相同的值
-Linux系统有很多内置用户账号,如:root,bin…
3.用户组的介绍
(1)什么是用户组
用户组是用户集合,通过用户可以减少用户管理的工作量
(2)用户组的分类
私用组:由创建用户时自动创建(一般只包含一个用户)
标准组:是用户手创建组,可以包含多个用户
4.用户管理的相关文件
(1)/etc/passwd
功能:存放系统的用户帐号信息
内容:用户名  密码 UID GID 描述 用户主目录 SHELL
实例: u1 : x : 0 : 0 : u1 : /home/u1 :/bin/bash
 注:如果采用了shadow,此处存放口令的为屏蔽字符,真正密码保存在/etc/shadow中,shadow可以利用md5加密

(2)/etc/shadow(使用影子口令)
功能:存放用户口令(一般采用加密的方式存放口令)
实例: u1 : bqKaTeX parse error: Expected 'EOF', got '#' at position 1: #̲ : 10750: 0: 99…# 加密的口令  
        10750 从1970.1.1开始计算,该口令修改后已过去了多少天
(密码最后一次修改的时间)
         0    需要再过多少天这个口令可以被修改
9999 密码的有效期(-1代表永不过期)
7 口令失效多少天前发出警告
-1 口令失效多少天之后禁用账户(-1不禁用、0代表立即禁用)
-1 口令从1970.1.1计算,该口令禁用多少天
(-1代表永远禁用)
12546 保留
(3)/etc/group
功能:存放系统组信息
格式:组名:组口令 :GID:成员列表
(4)/etc/gshadow
功能:存放用户组口令
格式:组名:口令:组管理员:成员列表
二.用户及组管理命令
1.useradd
功能:建立用户
格式:useradd [参数] 用户名
参数: -u UID:指定用户的UID值(指定UID不能与其它用户UID相等)
-g 组名/GID:指定用户的所属组
-G 组名:指定用户附加组
-d 路径:指定用户主目录(/home/$USERNAME)
-e 时间:指定用户有效日期
-s SHELL:指定SHELL的类型(/bin/bash)
-m :建立用户主目录
-M :不建立用户主目录
-r :建立一个伪用户
-o:与-u连用,如果所指定的UID重复时,强制使用指定的UID
-p 口令:指定用户口令,默认新建用户为禁用状态
实例:# useradd u2
# useradd -g g2 u2
# useradd -e 03/28/04 –g g3 -d /etc/ u3
#useradd u3 -p $1asd#dfsdkfeodsfefsdf
2.userdel
功能:删除用户
格式:userdel [参数] 用户名
参数:-r : 删除用户主目录

实例:# userdel u2
# userdel -r u3
3.passwd
功能:修改用户口令
格式:passwd [参数] [用户名]
参数:-l:锁定用户
-u:解除用户的锁定
-d:删除用户的口令
实例:#passwd u2
#passwd -l u2
#passwd -d u2
4.usermod
功能:修改用户信息
格式:usermod [参数] 用户名
参数:-l 新的用户名:修改用户名称
-d 路径:修改用户主目录
-G 组名:修改附加组
-s 路径: 修改用户SHELL
-u UID: 修改用户UID
-g GID: 修改用户所属组的 GID
-o:强制使用指定的UID,与-u连用
实例:# usermod -d / u3
# usermod -G u2 u3
# usermod -l user3 u3
5.gropadd
功能:建立用户组
格式:groupadd [参数] 组名
参数:-g GID :指定GID的值
-r :建立伪用户组(1–499)
实例:# groupadd g2
# groupadd –r g3
6.groupdel
功能:删除用户组
格式:groupdel 组名
实例:groupdel G3
7.groupmod
功能:修改组信息
格式:groupmod [参数] 组名
参数:-n 新组名:修改组的名称
-g GID:修改组的GID
-o:强制使用指定的GID,与-g连用
实例:# groudmod -n group g1
# groupmod -g 860 group1
8.gpasswd

格式:gpasswd [参数] [用户名] [组名]
参数:-a 用户名: 向指定组添加用户
-d 用户名: 从指定组中删除用户
-A 用户名: 设置组的管理员
-r : 删除组的口令
实例:#gpasswd -a u1 root
#gpasswd -d u1 root
#gpasswd gp1
#gpasswd -A u1 gp1
9.groups
功能:显示组信息
格式:groups [用户名]
实例:#groups (显示当前用户所属组)
#groups root (显示root用户的所属组)
10.id
功能:查看UID/GID的相关信息
格式:#id [参数]
参数:-a 显示所有信息
-g 显示有效组的ID
-G 显示所有组的ID
-u 显示用户ID
-n 与-gGu连用,用于显示用户/组名称
实例:#id
#id -un
11.newgrp
功能:更改用户有效组
格式:#newgrp 组名
实例:#newgrp users
12.pwck
功能:检查/etc/passwd与/etc/shadow文件内容及用户主目录是否存在
实例:#pwck
13.chpasswd
功能:修改用户口令,用户名和口令由用户输入的执行过程中输入
格式:#chpasswd [参数]
参数:-e 不加密存储
实例:#chpasswd
u1:linux
u2:linux
# cat /etc/users>chpasswd
三.用户安全管理
1.用户配置文件的介绍
(1)/etc/profile
用户全局配置文件,存放用户工作环境的配置信息

(2)/etc/login.defs
设置用户口令的相关信息,作用于/etc/shadow
(3)/etc/default/useradd
设置useradd命令的默认参数值
(4)/etc/skel目录
存放默认用户私用配置文件,所有新建用户需要复制该目录中的文件
(5)用户私用配置文件
~/.bash_profile 存放用户个人配置信息
~/.bash_history 用户命令历史文件
~/.bashrc 设置用户函数和命令别名(可调用/etc/bashrc)
~/.bash_logout 用户注销脚本
2.文件访问权限操作
(1)文件的使用者
超级用户:不受文件访问权限的限制,可以所有文件
普通用户:受具体文件访问权限的限制,每个文件的访问权限由拥有者权限、拥有组权限及其他用户权限三部分组成
(2)文件设问权限的种类
普通权限
表示字符 权限名称 对文件的含义 对目录的含义
r(4) 读 读取文件内容 检查目录内容
w(2) 写 修改文件内容 改变目录内容
x(1) 执行 执行文件 进入目录
注:以上权限组合可以用字母(如:r-x)和八进制数字(如:7=4+2+1)表示
特殊权限
表示字符 权限名称 含义 备注
s(4) Suid 执行文件时使用文件拥有者的UID 用于可执行文件
s(2) Sgid 执行文件时使用文件拥有组的GID 用于可执行文件
t(1) 粘着位 使目录成为临时目录(可写,可删除自己拥有的文件) 用于目录

(3)文件访问权限的相关操作
chmod
功能:修改文件访问权限
格式:chmod [参数] <权限值> <文件名>
参数:
-v:显示详细说明
-c:与-v相似,但只有在文件权限发生改变时才显示详细说明
-R:递归改变目录的权限

实例:#chmod rwxr-xr-x file1

chmod u+x file1

chmod u-x,o+rw file2

#chmod u+s,g+s file2
#chmod 1755 dir1
注:-只有root和文件属主有权执行chmod文件
chown
功能:改变文件拥有者及拥有级(只有超级用户使用)
格式:chown [参数] <用户名> <文件名>
参数:-R:递归改变目录的拥有者
-f:不显示拥有者的详细信息
实例:# chown user f1
# chown -R user1.g1 /d1
umask
功能:设置权限掩码(决定新建文件的权限)
格式:umask 权限值(超级用户默认为022,普通用户默认为002)
实例:# umask 044
计算公式:目录:777-umask
文件:666-umask
Chattr
功能: 修改ext2和ext3文件系统中的文件属性(只有超级用户使用)
格式: chattr [参数] 操作符 属性值 文件或目录
参数: 
-R:递归处理所有的文件及子目录
-V:详细显示修改内容,并打印输出。
操作符:
-:失效属性
+:激活属性  
= :指定属性
属性值
A:告诉系统不要修改对这个文件的最后访问时间
S:一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
a:系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
i:系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
D:检查压缩文件中的错误。
d:在进行文件系统备份时,dump程序将忽略这个文件。
C:系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。
:让系统在删除这个文件时,使用0填充文件所在的区域。

u:当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件
实例:#chattr +i file1
注:属性需要相应内核的支持,不能利用chattr保护/,/dev,/var,/tmp
chgrp
功能:更改拥有组
格式:#chgrp [参数] 组名 文件名
参数:-R:更改目录所有内容的拥有组
实例:#chgrp group1 f1
lsattr
功能:显示文件的属性
格式:lsattr [参数] [文件名]
参数:-R:查看目录所有内容的属性,包括子目录中的内容
实例:#lsattr /etc/f1
3.用户安全建议
(1)一般不使用root用户进行日常管理操作
(2)保持口令的安全,不要写SUID/SGID程序
(3)不要让自已的文件或目录可被他人写
(4)小心地拷贝和移动文件
(5)不使用的账号可以禁用或删除
(6)重要文件需要加密

启动步骤和GRUB
1.Linux启动过程分析
(1)BIOS自检
硬件检测及初始化
引导启动设备
(2)引导启动设备
软盘(0磁道第一个扇区)
光盘(最外围存储轨道)
硬盘(MBR)
USB存储设备
(3)调用Linux引导程序至内存中
Linux的引导程序可以使用GRUB/LILO等引导软件
GRUB/LILO可以安装在MBR/引导分区的引导扇区中
(4)运行Linux内核
内核放在/boot目录中,Linux系统可以同时支持多版本内核
解压缩内核
检测硬件
加载root文件系统
(5)执行init进程(按“i”单步运行)
启动新进程或关闭进程
选择启动模式
建立虚拟终端
(6)用户登录
输入用户名及口令
加载用户配置文件
加载shell程序

2.引导盘的创建
方法一:安装过程中创建
方法二:mkbootdisk
#mkbootdisk --device /dev/fd0 2.4.20-8
方法三:使用dd命令

dd if=/boot/vmlinuz of=/dev/fd0

3.GRUB
(1)GRUB简介
GRUB是一种基于intel平台的功能强大的启动引导器
(2)GRUB特点
支持大硬盘,突破1024柱面的限制
支持两种界面(菜单,命令行)
开机画面
(3)安装GRUB
安装软件包
#rpm –ivh grub-0.934.i386.rpm
使用安装命令安装GRUB到MBR
#grub
grub>root (hdx,y)
grub>setup (hdx[,y])
(4)GRUB的配置
#vi /boot/grub/grub.conf
grub.conf中常用的配置命令有:
default=菜单项序号/saved
设置启动菜单的默认启动项
hiddenmenu
隐藏菜单界面
splashimage =图像文件全路径名
指定某文件作为启动菜单的背景图像
timeout=延迟秒数
设置启动菜单的启延时
title 菜单项名称
开始一个菜单项的配置,设置菜单项的名称
root (hdx,y)
设置GRUB的根设备为linux内核所在的分区
kernel 内核文件名称
指定内核文件的名称及加载内核所需的参数
initrd initrd文件名
指定镜像文件的位置
map (hdx[,y]) (hdx[,y])
建立虚拟磁盘
rootnoverify (hdx,y)
指定windows启动引导器的位置
makeactive

标识指定分区为活动分区
chainloader +n/文件名称
调用指定windows启动文件
password 口令/–md5 口令密文
设置GRUB启动菜单和菜单项口令
lock
利用password设置的全局口令锁定菜单项
savedefault
保存当前启动菜单项为默认启动
文件实例:

grub-md5-crypt(产生口令的MD5密文)

        # vi  /etc/grub.conf
     default=0                   
         timeout=50                
         splashimage=(hd0,0)/grub/splash.xpm.gz  
         password  --md5   #!dfdasdf34123!#@$!#@                         
         title  RedHat  Linux 9.0          
         root   (hd0,2)               
         kernel  /Vmlinuz-2.4.20-8  ro  root=/LABEL=/ 
         initrd   /initrd-2.4.20-8.img        
         password  linux
         tile  windows 2000
         rootnoverify  (hd0,0)          
         chainloader  +1                  
         lock

(5)GRUB的FAQ
编辑模式的使用
用于临时修改菜单的选项,在菜单界面中按E键进入
在这里插入图片描述
菜单主界面
在这里插入图片描述

编辑模式
命令行模式的使用
利用命令行命令设置GRUB,在菜单界面中按C键进入
在这里插入图片描述
命令模式
grub命令行中常用的命令有:
grub>root (hdx,y) //设置根设备所对应的分区
grub>kernel 内核文件 //设置内核文件的名称
grub>initrd 镜像文件名 //设置镜像文件名
grub>boot //启动指定操作系统
grub>rootnoveify (hdx,y) //设置根设备所对应的分区,但不检查加载点
grub>chainloader 文件名 //加载指定的文件
grub>help //获取帮助

grub>reboot //重启系统
grub>md5-crypt //生成口令的MD5密文
grub>setup (hdx[,y]) //安装GURB到MBR/指定分区的引导扇区中
grub>hide 分区 //隐藏分区
grub>cat 文件名 //显示文件内容
grub>find 文件名 //查找文件
如果MBR中的GRUB引导程序被其它程序覆盖,应该如该恢复
1)放入第一张安装启动盘,开始启动计算机:boot:linux rescue(启动linux的修复模式,加载硬盘上的LINUX系统到/mnt/sysimage)
2)#grub
grub>root (hdx,y)
grub>root (hdx)
恢复GRUB的配置文件
由于grub.conf设置的问题,可以采用以下方法进行恢复:
1)放入第一张安装启动盘,开始启动计算机:boot:linux rescue(启动linux的修复模式)
2)#vi /mnt/sysimage/boot/grub/grub.conf
如何利用GRUB进入单用户模式,找回丢失的root用户口令
在GRUB菜单界面中按e编辑linux菜单项,给内核添加参数single
如何卸载GRUB
1)#rpm -e grub
2)C:>fisk/mbr

二.init 进程
1.init进程的作用
init进程是系统启动第一个进程,它负责加载其它进程、管理系统的其它进程
2.系统运行级别
运行级别 说明
在这里插入图片描述
0 关机
1 单用户模式
2 多用户模式、不支持NFS
3 多用户模式
4 保留
5 X-WINDOWS
6 重启
可以使用init在各个运行级别中进行切换,init命令格式如下:
#init <0-6,a,s,q>
3.inittab文件的分析
/etc/inittab文件用于设置init进程在执行时加载哪些程序,inittab文件由若干个记录构成,每条记录格式如下:
ID:RUNLEVEL:ACTION:COMMAND
以下为默认inittab文件内容:
id:3:initdefault:
si::sysinit:/etc/rc.d/init.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
ca ::ctrlaltdel:/sbin/shutdown -t3 -r now
pf::powerfail:/sbin/shutdown -f -h +2 “power failure;power shutting down”
pr:12345:powerokwait:/sbin/shutdown –c “power restored;shutdown cancelled”
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm -nodaemon
说明:
(1)Action用于设置调用进程的方式
在这里插入图片描述
Respawn 只要进程停止,该进和便重新启动
Wait 进程运行一次,init等待到它停止
Once 进程运行一次
Boot 系统引导过程中,进程运行,忽略等级
Bootwait 系统引导过程中,进程运行,init等待结束
Off 无任何行动
Initdefault 系统默认运行等级
Sysinit 系统引导则运行,优先于boot或bootwait
Powerwait 电源故障后发送信号给init,等待进程终止
Ctrlaltdel 当init收到SIGINT信号时,该进程运行
Powerokwait UPS恢复则向init发送SIGINT信号
(2) 修改/etc/inittab文件,可以设置默认启动模式、各运行级别所加载的程序、CTRLALTDEL的动作、开设虚拟用户终端

4./etc/rc.d 的目录内容
(1)/etc/rc.d/init.d目录
保存所有运行等级需要的所有脚本
启动、停止、重启某些服务
(2)/etc/rc.d/rc

系统改变运行等级,通过此脚本检查/etc/rc.d/rcX.d目录和文件可存在,以及是否正在运行等,以及运行/etc/rc.d/rcX.d中所有S开头的脚本
(3)/etc/rc.d/rcX.d目录
存放每一运行等级默认启动项,该目录中的文件链接到:/etc/rc.d/init.d
文件名格式为K{Two-digit number} {script name}/S{Two-digit number} {script name},K:以stop参数运行,S:以start参数运行;Two:数字代表执行顺序
(4)/etc/rc.d/rc.local
该脚本在2,3,5运行等级结束时执行
(5)/etc/rc.d/rc.sysinit
系统初始脚本,用于设置系统的时钟、加载键盘、加载系统字体、加载其他文件系统、激活交换分区、生成日志文件

五.用户登录
1.用户登录过程

在这里插入图片描述
2.用户登录命令
(1)su
功能:切换用户登录
格式:#su [参数] [-] [用户名]
参数:-c 命令 :运行指定的命令
-m :不重新设置环境变量
-s shell路径 :运行指定的shell
- :连同工作环境一起切换
实例:$ su -
#su user1
$su -c /sbin/init 0 root
(2)exit
功能:退出用户环境(ctrl+d)
格式:#exit
(3)login
功能:登录系统
格式:#login [参数] [用户名]
参数:
-p:通知login保持现在的环境参数
-h:用来向远程登录的主机传输用户名
实例:#login
(4)logout
功能:退出用户环境、注消用户
实例:#logout
(5)sudo
功能:以其它用户执行指定的命令,默认是以root身份,只有/etc/sudoers文件中指定的用户有权执行
格式:#sudo [参数] 命令
参数:
  -b  在后台执行指令
-H  将HOME环境变量设为新身份的HOME环境变量。
  -k  结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。
  -l  列出目前用户可执行与无法执行的指令。
  -p  改变询问密码的提示符号。
  -s  执行指定的shell。
  -u<用户>  以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份。
  -v  延长密码有效期限5分钟。
实例:#sudo /sbin/init 0
说明:/etc/sudoers文件格式为:user host=[all/nopasswd/run as 用户名] command lint;其中All代表所有文件,nopasswd代表执行文件时不需要要口令
(6)who
功能:显示登录用户信息
格式:#who [参数]
参数:-l 显示系统登录进程
-b 显示系统最后一次启动时间
实例:#who
#who -l
(7)w
功能:显示登录用户信息
格式:#w [用户]
实例:#w
(8)whoami
功能:显示当前终端登录的用户名称
实例:#whoami
(9)last
功能:显示最近的用户登录情况
格式:#last [参数]
参数:num 显示指定终端上的用户登录信息
-num 显示最近n次的用户登录信息
-i 显示登录主机的IP地址
实例:#last
#last 3
(10)wall
功能:向每个用户终端上的用户发送消息
格式:#wall [参数]
参数:-n 不显示消息来源
实例:#wall
#wall -n
(11)write
功能:向指定终端的用户发送消息
格式:#write 用户名 [终端]
实例:#write user1 tty1
注意:/etc/motd为公告板文件,用于记录所有公告信息;/etc/issue为欢迎信息文件
(12)help
功能:获取shell内置命令的帮助信息
格式:#help [内置命令名]
实例:#help
#help times
(13)man
功能:打开命令手册文件
格式:#man [命令名/文件名]
实例:#man su

3.PAM
(1)PAM简介
PAM(Pluggable Authentication Modules)可插拔认证模块,使用共享库对用户登录及资源访问进行认证
(2)PAM体系结构
在这里插入图片描述

PAM可以被很多应用程序调用,提供验证功能
PAM机制通过调用应用程序的PAM模块进行验证,但PAM模块的验证要根据配置文件内容进行

(3)PAM配置文件及目录
PAM配置文件由类型标记、控制标记、模块路径、模块参数四部分构成
类型标记是用于告诉PAM当前行的模块应用于哪类认证,PAM支持以下四种类型标记
在这里插入图片描述
PAM的相关目录
/lib/security目录:保存PAM模块文件
/etc/pam.d目录:保存PAM配置文件
PAM配置文件实例(/etc/pam.d/other):
auth required /lib/security/ I S A / p a m d e n y . s o a c c o u n t r e q u i r e d / l i b / s e c u r i t y / ISA/pam_deny.so account required /lib/security/ ISA/pam_deny.so
session required /lib/security/ I S A / p a m d e n y . s o p a s s w o r d r e q u i r e d / l i b / s e c u r i t y / ISA/pam_deny.so password required /lib/security/ ISA/pam_deny.so

(4)PAM的应用
限制用户的登录终端
#vi /etc/pam.d/login
添加以下内容:
auth required pam_securetty.so
#vi /etc/securetty
tty1
tty2
tty3
限制用户使用资源的机率
#vi /etc/pam.d/login
添加如下内容:
Session required pam_limits.so
#vi /etc/security/limits.conf
添加以下内容:
u1 hard maxlogins 1(限制u1用户只能同时登录一次)
注:

/etc/security目录存放资源限制的相关文件,其中limits.conf较常用,它由用户及用户组、限制类型、资源类型、限制值四部分构成
用户组名必须@开头,*代表所有用户
限制类型有soft和hard两种
资源类型包括以下几种:
在这里插入图片描述

.硬盘分区
1.外部存储器的表示方法
(1)硬盘
IDE /dev/hdxy
SCSI/USB /dev/sdxy
(2)软盘(/dev/fdx)
(3)CD-ROM(/dev/cdrom)
2.fdisk分区工具的使用
(1) fdisk的启动方法
#fdisk [参数] 设备文件
参数:-l 显示指定存储设备的分区信息
-s 显示指定存储设备的大小
实例:#fdisk /dev/hda
Command(m for helpo):
(2) fdisk命令详解
m:获取帮助
n: 新建分区
p:显示分区表
d:删除分区
w:写入分区表
t:改变分区文件系统类型
v:检验分区
l:显示fdisk所支持的文件系统代码
q:退出
a:添加引导标记
o:创建空的DOS分区表
(3)应用实例
空闲空间

要求将一个接在IDE1接口主盘位置上20G的空闲硬盘划分一个容量为6G,文件系统为ext2的主分区、两个容量分别为7G,文件系统为ext2的逻辑分区具体步骤如下:
#fdisk /dev/hda

command (m for help):n 新建分区
extended(e) 扩展分区
primary § 主分区
p 按p 表示建立主分区
first cylinder(1-3002 default 1):按回车键(设置分区起始柱面,回车表示取默认值)
last cylinder(1-3002 +size +sizeM ….):+6000M(设置分区结束柱面,+6000M表示从起始柱面开始向后6000M结束)

command(m for help):n
extended(e)
primary§
e 按e键表示建立扩展分区
first cylinder(834-3002 default 834):按回车
last cylinder(834-3002 ………………):按回车(表示取默认值3002)

command(m for help):n
first cylinder(834-3002 default 834):按回车
last cylinder(834-3002 ………………):+7000

command(m for help):n
first cylinder(2100-3002 default 834):按回车
last cylinder(2100-3002 ………………):按回车(表示取默认值3002)

command (m for help): w 写盘退出

注:
第一个逻辑区的分区号为5
在安装过程中建立分区,如果没有主分区时所建立的前三个分区为主分区
3.parted分区工具的使用
(1)启动parted
#parted [设备文件]
实例:#parted
(parted)

(2)parted命令详解
check :执行文件的简单检查
cp :复制文件系统
help:获取帮助
mklabel:创建磁盘标签
mkfs:创建文件系统
mkpart:创建分区
mkpartfs:创建分区并创建指定类型的文件系统
move:移动分区
print:显示分区表
resize:调整分区的大小
rm:删除分区
select:选择设备
set:设置分区标记
quit:退出parted
(3)应用实例
在这里插入图片描述
显示分区表,并删除逻辑区1,重新将扩展分区划分为两个逻辑区,具体操作如下:
#parted /dev/hda
(parted)print
(parted)mkpart
Partition type? Primary/extended/logical:
Filesystem type?[ext2]
Satr:
End:

二.文件系统的管理
1.文件系统的介绍
(1)什么是文件系统
文件系统是用来管理和组织保存在磁盘驱动器上数据的系统软件
(2)文件系统的内部结构
超级块(superblock):包括文件系统总体信息
i(inode)节点:除名字外的一个文件的所有信息
数据块(date block):存储数据
目录块(dir block):存放i节点数和文件数目
间接块(indirection):扩展i节点所占数据块
(3)三种常用文件系统介绍
ext2文件系统
标准的Linux文件系统,采用异步工作方式,如果操作突然中断会引起数据丢失
发生不正常关机后会调用fsck工具恢复损坏的元数据,此操作需花费大量的时间
先写文件数据,再先元数据
ext3文件系统
ext2的升级版本,一种日志式文件系统
ext3向下兼容ext2,两者之间可以任意切换
采用日志恢复技术,恢复速度快,发生不正常关机后不调用fsck检查文件系统
优化了硬盘驱动器的头运动,速度比ext2快
reiserfs文件系统
采用先进的日志机制,是一种日志式文件系统
速度比ext3快很多,但它不兼容ext2文件系统
支持海量磁盘
swap文件系统
作为交换分区使用,充当虚拟内存
由操作系统管理, 没有加载点
Vfat文件系统
兼容dos的文件系统,包括fat12,fat16,fat32
2.文件系统的建立:
(1)mkfs [参数] 分区
功能:建立各种类型的文件系统并格式化
参数:-t 文件系统类型 :指定建立的文件系统类型
-c:建立文件系统之前检查有无坏道
-v:显示详细情况
实例:
#mkfs /dev/hda3
#mkfs -t ext3 /dev/hda3 指定ext3文件系统
#mkfs -t msdos /dev/sda1
#mkfs -t vaft -F 32 /dev/sda6
(2)mkswap 分区/文件(块文件)
功能:用于建立交换文件系统
实例:
#mkswap /dev/hda8
#dd if=/dev/zero of=/swapfile bs=1024 count=1024
…………………块复制并定义大小为1024x1024
#mkswap /swapfile
#swapon /swapfile 激活swap分区
<注:swapoff <文件名|分区> 关闭swap分区>
3.装载文件系统
(1)手工装载
格式:mount [参数] 设备名 装载点
参数:
-t:文件系统类型

-f:测试装载,显示装载信息,不是真的装载
-n:装载文件系统,但不写入/etc/mtab文件
-r: 以只读方式加载
-w:以读写方式加载
-a:加载/etc/fstab文件配置的所有文件系统
-L:指定加载分区的卷标
-o 指定装载选项
iocharset=cp936:显示文件系统中的中文
ro : 只读
rw : 读写
loop : 装载一个iso文件
remount : 重新加载
exec : 允许执行二进制文件
noexec : 禁止执行二进制文件
suid : 支持suid功能
nosuid : 禁止使用suid功能
usrquota : 支持用户磁盘配额
grpquota :支持组磁盘配额
defaults :默认选项
实例:
#mount /dev/cdrom /mnt/cdrom
#mount -t vfat /dev/fd0
#mount -t ext3 /dev/sda1 /usb
#mount -o remount,usrquota /dev/sda5
(2)自动装载文件系统
①修改/etc/rc.d/rc.local
实例:
#vi /etc/rc.d/rc.local
/bin/mount /dev/hda8 /mnt/hd8
②修改/etc/fstab
Fstab 文件系统内容与字段的说明:
/dev/hda5 /h5 ext2 defaults 0 0
① ② ③ ④ ⑤ ⑥
none: 用于特殊的文件系统(如:proc文件系统)
标签: 分区的卷标
装载点( 交换分区来说,装载点为swap)
装载的文件系统的类型
装载选项
备份频率:指定dump上一次备份至今的天数,0表示不备份
检查顺序:指用fsck检查文件系统时先后顺序,0表示不检查
注:
一个设备可以被同时装载到不同的目录中
一个目录也可以同时装载不同的设备
/etc/mtab用于记录系统己装载的文件系统

4.卸载文件系统
格式:umount [参数] 〈装载点/装载的设备〉
参数: -t 类型:指定卸载文件系统的类型
-a :指定卸载所有的文件系统(正在使用的文件系统不能被卸载)
实例:#umount /dev/cdcrom
#umount -t vfat /dev/sda4
5.检测文件系统
格式: fsck [参数] [设备文件/装载点]
参数: -r :在修复前询问是否修复
-a :自动修复
-A :检查所有文件系统
实例: #fsck /dev/hda6
#fsck -a /dev/sda4
注:被检测的文件系统/设备应处于未装载状态
6.转换文件系统
(1)ext2-ext3
#tune2fs -j 设备
(2)ext3-ext2
#tune2fs -O ^has_journal 设备
注:被转换的文件系统应处于未装载状态
7.显示或指定ext2/ext3分区的卷标
格式:#e2label 分区设备文件 [新卷标]
实例:#e2label /dev/sda5
#e2label /dev/sda5 soft
三.磁盘配额
1.认识磁盘配额
(1)什么是磁盘配额
限定用户/组在文件系统中的使用空间
(2)限制的方式
软限制:用户达到最大配额时,在规定时间可以继续存储(默认为7天)
硬限制:用户达到最大配额时,就不允许使用
(3)限制的单位
块(block):每块容量为1KB
节点数(inodes):文件的个数
2.配置过程
(1)安装quota软件包(默认支持磁盘配额)

rpm -ivh quota.3.0.2-8.i386.rpm

相关文件:/sbin/quotacheck 生成配额文件
/sbin/quotaon 启动磁盘配额
/sbin/quotaoff 关闭磁盘配额
/usr/sbin/edquota 设定用户/组配额
/usr/bin/quota 显示用户/组的配额信息
(2)修改/etc/fstab文件(设/dev/hdd10分区,装载点为home)

vi /etc/fstab(在要进行磁盘配额的分区的装载选项中加上usrquota和grpquota)

/dev/hda8  /home  ext2  dafaulfs,usrquota,grpquota  0  0
(3)重启计算机
(4)在进行配额的文件系统的装载点下,创建配额文件

touch  aquota.user(创建空的用户配额文件)

#touch aquota.group(创建空的组配额文件)
(5)生成标准的配额文件

quotacheck [参数] [装载点]

参数:-a 所有的配额的文件系统
-u 生成用户配额文件
-g 生成组配额文件
-m 强制以读写检查文件系统
-c 检查文件系统
-v 显示执行过程
实例:#quotacheck –avug
#quotacheck -uv /home (在/home装载点中创建用户配额文件)
#quotacheck –mcvug /
(6)启动配额

quotaon [参数] [装载点]

参数:-a 所有配额的文件系统
-u 启用用户配额
-g 启用组配额
-v 显详细信息
实例:# quotaon –avug (启动所有配额分区的用户和组配额)

quotaon –u  /home (启动/home分区的用户配额)

(7)编辑用户和组配额信息

edquota [参数] [用户名/组名]

参数: -u 用户名 编辑用户的配额
-g 组名 编辑组的配额
 -p 复制用户/组配额
   -t 设置软限制的超时时间
实例:

edquota  u1(设置用户u1的配额值)

file system blocks soft hard inodes   soft   hard
(文件系统)(己用块数) (软限制)(硬限制)(已用节点数)(节点软限制)(硬限制)
 /home 0 0 0 0 0 0

edquota –g guo (设置组guo配额值)

file system  block soft hard inods   soft   hard
(文件系统)(己用块数) (软限制)(硬限制)(已用节点数)(节点软限制)(硬限制)
 /home 0 0 0 0 0 0

3.其它命令
(1)quotaoff
功能:关闭配额
格式:quotaoff [参数] [装载点]
参数:与quotaon相同
实例:#quotaoff -avug (关闭所有分区的用户配额和组配额)
#quotaoff –ug /home(关闭/home分区的用户和组配额)
(2)quota
功能:产生配额的信息摘要
格式:# quota [用户]|[组名]
实例:#quota(显示当前用户使用情况)
      #quota u1(显示u1用户的使用情况)
(3)du
功能:显示目录中文件的空间大小
格式:du [参数] [文件名]
参数:
-b 以byte为单位,统计文件的容量
-k 以KB为单位,统计文件的容量
实例:# du 显示当前路径下文件的容量

du /etc

(4)df
功能:统计分区的使用情况
格式:df [参数] [分区号/装载点]
参数:-m 以MB为单位,统计使用情况
实例: # df 显示当前所有己装载的分区使用情况

df /home 显示/home分区的使用情况

一.进程的基本概念
1.进程的定义
是指程序关于某个数据集合的一次运行活动
2.Linux进程状态
在这里插入图片描述
3.进程的类型
(1)交互进程:由shell启动,可以工作在前后台
(2)批处理进程:不需要与终端相关,提交在等待队列的作业
(3)守护进程:shell/linux系统自动启动/用户手工启动,工作在后台,用于监视特定服务

4.进程启动方法
 (1)手工启动
前台:直接输入程序名(如:#vi)
后台:程序名后加&(如:#vi&)
(2)调度启动
系统在指定时间运行指定的程序(at.batch.cron)
二.进程管理的常用命令
1.ps
功能:显示系统的进程信息
格式:ps [参数]
参数:-a 显示所有进程(不包括没有终端的进程)
   -u 显示用户名和启动时间
   -x 显示没有终端的进程
-e 显示所有进程(不显示进程状态)
 实例:# ps     显示当前用户进程
   # ps –aux 显示所有进程信息
USER PID %cpu %mem vsz rss tty stat start time command
Root 1  0.0 0.3 1096 476    ?   s   18:20  0:04 init
USER: 进程的启动用户
PID: 进程号(进程的唯一标识)
%CPU: 占CPU的百分比
%MEM: 占用内存百分比
VSZ: 虚拟内存大小
RSS: 内存大小(真实)
TTY:  进程的工作终端(?表示没有终端)
STAT:  进程的状态(D: 不可中断的静止
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
<:高优先级别)
Start :启动时间
Time : 占用的cpu的时间
Command : 运行的程序
2.top
功能:动态显示系统进程信息
格式:#top [参数]
参数:

d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
   q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
   S 指定累计模式。
   s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
   i 使top不显示任何闲置或者僵死进程。
   c 显示整个命令行而不只是显示命令名
实例:# top (默认每5秒钟刷新一次)
top的操作命令:
h/?: 获取top的帮助
k: PID:杀死指定的进程
q: 退出top
空格:立即刷新
s:改变刷新间隔
3.kill
功能:给进程传递信号
格式:kill [信号值] PID
信号值:-24/SIGSTOP:暂停某个进程
-18/SIGCONT:继续暂停的进程
-1/SIGHUP:挂起一个进程
-15/SIGTERM:软中断,正常退出一个软件
-9/SIGKILL:杀死一个进程
-20/SIGTSTP:键盘停止信号,ctrl+z
实例:
 # kill -9 3

kill -9 3,5,8 一次杀死多个程序

# kill - 9 1-8 杀死1到8号进程

kill -9 0 表示所有后台进程

4.killall
功能:给指定程序名的进程发送信息
格式:#killall 程序名
实例:#killall vsftpd (杀死所有对应vsftpd程序的进程)
5.设置进程优先级
优先级范围:-20-19(值越小表示级别越高,默认为10)
(1)nice(设置程序运行时优先级)
格式:nice 优先级 命令
 实例:# nice –5 ls
   # nice --5 vi
(2)renice
格式:renice 优先级 PID

实例:# renice -6 727
#renice 12 888
6.作业的前后台操作
(1)jobs
功能:查看后台作业
实例:# jobs
(2)fg
功能:把后台的程序调入前台运行
格式:# fg [作业编号]
实例:#fg (队首的作为调入前台运行,最后入队列作业处于队首)
#fg 2(将队列中的2号调入前台运行)
(3)bg
功能:将后台等待程序转入后台运行
格式:bg [作业编号](ctrl+z将前台程序转入后台停止运行)
   (ctrl+c将终止前台程序的运行)
实例:#bg (将队首的作业调入后台运行,最后入队列作业处于队首)
#bg 3 (将3号作业调入后台运行)
7.pstree
功能:显示守护进程树
格式:#pstree
8.vmstat
功能:显示CPU、内存及虚拟内存的使用情况
格式:#vmstat [参数] [延时[次数]]
参数:-d :显示磁盘状态信息(适用于2.5以上的内核)
-n :第一次信息只显示一次,不周期显示
实例:#vmstat
-------procs -----------------memory---------------swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 0 1672 29032 108664 0 0 66 16 1012 259 2 7 87 3
0 0 0 1672 29040 108664 0 0 0 11 930 199 1 4 95 0
0 0 0 1676 29040 108664 0 0 0 39 949 202 1 3 96 0
0 0 0 1680 29048 108664 0 0 0 4 937 199 1 3 96 0
0 0 0 1680 29048 108664 0 0 0 25 932 198 1 4 95 0
0 0 0 1680 29056 108664 0 0 0 4 944 206 1 3 96 0
0 0 0 1680 29056 108664 0 0 0 0 932 198 1 3 96 0
0 0 0 1680 29064 108664 0 0 0 4 935 196 1 3 96 0
0 0 0 1680 29064 108664 0 0 0 0 941 198 1 3 96 0
0 0 0 1680 29072 108664 0 0 0 4 949 202 1 2 96 0
0 0 0 1680 29072 108664 0 0 0 0 938 196 1 3 96 0
输出结果说明:
Procs
r:等待运行的进程数
b: 被资源阻塞(I/0,页面调度,等等)的进程数
Memory
swpd: 虚拟内存使用情况
free: 空闲内存使用情况
buff: 作为缓存的内存数
cache:作为cache的内存数.
Swap
si: 从磁盘交换到内存的交换页数量 (/s).
so: 从内存交换到磁盘的交换页数量 (/s).
IO
bi: 发送块设备的块数 (blocks/s).
bo: 从块设备接收的块数 (blocks/s).
System
in:每秒的中断数.
cs: 每秒环境的切换次数
CPU
us: CPU的用户使用时间
sy: CPU的系统使用时间
id: CPU的空闲时间
wa: CPU的等待时间
9.uptime
功能:显示系统已经运行了多长时间、登录用户数、平均负载
格式:#uptime
实例:#uptime
10.free
功能:查看当前系统内存的使用情况
格式:#free [参数]
参数: 
-b 以字节为单位显示。
  -k 以K字节为单位显示。
  -m 以兆字节为单位显示
实例:#free
三.任务的自动化
1.at
功能:安排系统在指定时间运行指定的作业,需要有atd服务的支持
格式:#at [参数] 时间
参数:-m 指任务结束后会发送mail通知用户
-f 文件名:从指定文件中读取执行的命令
-g [a-z]:指定使用的队列
时间的表示方法:
midnight (当天午夜)
noon (当天中午)
teatime (当天下午4点)
hh:mm mm/dd/yy (指定年月日,时分)
now+n minutes (从现在起向后n分钟)
now+n days  (从现在起向后n天)
now+n hours  (从现在起向后n小时)
now+n weeks  (从现在起向后n周)
实例:# at  21:00  3/17/2004

ls
cd /etc
init 0
ctrl+d(结束作业步)
与at相关命令:
(1)atq
功能:查询at队列中的作业
实例:#atq
(2)atrm,
功能:删除at队列中的作业
实例:#atrm 2
2.cron
功能:安排系统在指定时间周期内执行作业
原理:cron进程,每隔一分钟,检查/var/spool/cron目录下用户提交的作业文件中有无作业需要运行
配置:(1)建立crontab文件
# vi /root/root.cron
格式:分 时 日 月 星期 要运行的程序
0 12 1 1 * /sbin/shutdown –r now
(数字表示具体时间,表示任何时间)
0 8—12 * * * /sbin/tar –xzfvetc.tar.gz /etc/
(8-12从某时间到某时间)
25 0-23/2 * 12 * rm –f /tmp/

(0等同于*,*/n:每N时/分/天/月,0-23/2表示每隔2小时,即:0:25,2:25,4:25)
30 * * 1,3,5 * dump
(1,3,5:多种可用“,”隔开)
(2)运行crontab命令
功能:生成用户的cron文件
格式:crontab  [参数]  [文件名]
参数:-u 用户名:指定具体用户的cron文件
-r 删除用户的crontab文件

-l 显示用户的cron文件
-e 编辑用户的cron文件
实例:# crontab   /root/root.cron (建立当前标准格式用户crontab文件)
 # crontab –r  删除当前用户的cron文件
配置案例:root用户在每周2,4,6早上3点启重系统
   # vi /root.cron(以root用户登录)
0 3 * * 2,4,6 /sbin/shutdown -r now
   # crontab /root.cron
注意:1)etc/at.deny和etc/at.allow用于控制用户运行at的任务
2)默认的crontab 文件有:
/etc/cron.hourly
/etc/cron.weekly
/etc/cron.monthly
/etc/cron.daily

一.Shell的基本概念
1.Linux shell的特点
便于开发新命令
提高开发处理
内置编程语言
提供后台处理机制
提供管道、命令替换、自动补齐机制
2.Linux shell的版本
Bourne shell(B shell):Unix的最初Shell,在Shell编程方面比较优秀。
C Shell(csh):在C语言编程方面性能较好
Bash Shell(bash):Bourne Shell的增强版,Linux系统的默认Shell
Korn Shell(ksh):综合B Shell和C Shell 的特点于一身。
Tcsh:C Shell的增强版,具有命令行编程接口和历史记录功能
3.Shell下的可执行文件
应用程序
Shell脚本
可执行的二进制文件
二.Bash Shell编程基础
1.Shell的变量和参数
(1)变量的分类
按变量作用域来分:全局变量,局部变量
按用途划分:系统环境变量,位置参数,用户自定义变量
(2)用户自定义变量
变量名=值
定义变量时,不用加’ ’,但在引用变量值时必须加’
可以使用export命令输出变量,使其成为全局变量
可使用readonly命令,使变量成为只读变量
可使用unset命令,取消命令的定义
2.环境变量
Shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,用户还可以重新定义这些变量,常用环境变量如下:
HISTFILE:历史记录文件的位置
HISTSIZE:历史记录列表的大小
HOME:用户主目录
PATH:通用路径
UID:用户的UID
PS1(PS2):一(二)级提示符
TERM:终端类型
SHELL:当前使用的Shell程序
PWD:当前工作路径
USER:当前登录名
LANG:当前字符集
注:env用于显示系统环境变量的值
3.位置参数
位置参数是一种在调用Shell程序的命令行中按照各自的位置决定的变量,是在程序名之后输入的参数。位置参数之间用空格分隔,Shell取第一个位置参数替换程序文件中的$1,第二个替换$2,依次类推。 $0是一个特殊的变量,它的内容是当前这个Shell程序的文件名,所以,$0不是一个位置参数,在显示当前所有的位置参数时是不包括 0 4 S h e l l S h e l l 使 0的。 4.预定义变量 预定义变量和环境变量相类似,也是在Shell一开始时就定义了的变量。所不同的是,用户只能根据Shell的定义来使用这些变量,而不能重定义它。所有预定义变量都是由 符和另一个符号组成的,常用的Shell预定义变量有:
$# 位置参数的数量。
$* 所有位置参数的内容。
$? 命令执行后返回的状态。
$$ 当前进程的进程号。
$! 后台运行的最后一个进程号。
KaTeX parse error: Unexpected character: '' at position 30: ….比较运算符 (1)数值比较 ̲-eq 等于则为真。 -ne…a+$b
echo $c
4.test
功能:测试表达式的真假(等同于[ ])

格式:test 表达式
5.if
功能:条件分支选择
格式:
if 条件表达式
then
条件为真时的命令串
else
条件为假时的命令串
fi

实例: if [ -x /sbin/quotaon ]
then
/sbin/quotaon –avug
else
echo “quotaon no exists.”
fi
6.case
功能:多路分支
格式:Case 参数 in
值1)
语句1
;;
值2)
语句2
;;
、、、、、
*)语句N;;
esac

实例: #vi /etc/quotaman
#! /bin/bash
case “$1” in
start)
/sbin/quataon –avug
;;
stop)
/sbin/quotaoff –avug
;;
restart)
/sbin/quotaoff –avug

/sbin/quotaon -avug
;;
)
echo “enter start/stop/restart”
;;
esac
7.for
功能:循环执行多条语句
格式:for 参数 [in 字符串]
do
循环体
done
实例: for i in /bin/

do
echo i d o n e 8 w h i l e , w h i l e / d o d o n e w h i l e [ i done 8.while 功能:实现条件循环,当条件为真时执行循环体 格式: while〔条件/命令〕 do 循环体 done 实例: while [“ a” = “$b” ]
do
sleep 5
done

9.until
功能:实现条件循环,当条件为假时执行循环体
格式:
until [条件/命令]
do
循环体
done
实例:
myvar=0
until [ $myvar -eq 10 ]
do
echo m y v a r m y v a r = myvar myvar= (( $myvar + 1 ))
done

10.函数
格式:
〔function〕函数名(参数)

函数体

实例:
#! /bin/bash
start( )
{ if [ -x /sbin/quotaon ]
then
/sbin/quotaon –avug
fi
}
stop ()
{
if [ -x /sbin/quotaoff ]
then
/sbin/quotaoff –avug
fi
}
restart()
{
stop
start
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo “error!!!”
;;
esac

11.exit
功能:退出脚本文件
格式:exit (0或1)
实例:
if [ -f /etc/sysconfig/network ]
then
/etc/rcd/init.d/network start
else
exit 1
fi
12.break
功能:退出循环
格式:break
13.continue
功能:继续下一次循环
格式:continue
14.exec
功能:调用其它命令,且不创建新进程
格式:exec 命令
四.脚本的运行方式
方式一:
1.改变脚本文件的属性,让用户具有执行权
#chmod 权限值 脚本文件
2.运行脚本文件
#路径/文件名 [参数]
实例:# /etc/rc.d/init.d/dhcpd restart
方式二:

Shell名称 文件名

实例:#bash abc

一.网络配置文件
1.网络服务
WWW(apache)
SMTP (sendmail,postfix,qmail)
POP3(imap,vpop)
FTP(vsftpd,wu-ftpd,proftpd)
DNS(bind)
DB(mysql,postgresql,Sybase,oracle,db2)
SAMBA
DHCP
2./etc/sysconfig/network 文件
功能:设置主机最基本的网络信息,包括主机名、默认网关等信息
内容:
① NETWORKING= yes/no 设定启动系统时是否启用网络服务。
② HOSTNAME= www.sina.cm 设定主机名(不是NETBIOS名)。
③ GATEWAY= 192.168.0.1 设定默认网关。
④ GATEWAYDEV= eth0 设定网关接口。
⑤ FORWARD_IPV4= yes/no 设定LINUX是否支持IP转发。
3./etc/sysconfig/network-scripts/ifcfg-ethX(X取值0,1,2,…….n)
功能:用于配置以太网接口卡的初始信息,。
内容:
① ONBOOT= yes 在设定启动时,是否激活网卡。
② DEVICE= eth0 设定物理设备名称。
③ BOOTPROTO= none|static|dhcp|bootp 设定网卡启动协议。
④ NETMASK= 255.255.255.0 设定子网掩码。
⑤ BROADCAST= 192.168.3.255 设定广播码。
⑥ NETWORK= 192.168.3.0 设定网络号。

⑦ IPADDR= 192.168.3.2 设定主机IP。
注意:一个以太网卡如何绑定多个IP地址?
实例:设定主机中存在的eth0设备,它的ip地址是:192.168.3.1/24,要求给eth0再绑定ip:192.168.5.1
① # cp /etc/sysconfig/network-scripts/ifcfg-eth0 至
/etc/sysconfig/network-scrppts/ifcfg-eth0:0(x的取值从0开始)
② # vi /etc/sysconfigt/network-scrpts/ifcfg-eth0:0
修改后:
DEVICE= eth0:0
ONBOOT= YES
BOOTPROTO=NONE
IPADDR=192.168.5.1
NETMASK=255.255.255.0
NETWORK=192.168.5.0
BROADCAST=192.168.5.255
4./etc/resolv.conf
功能:域名服务客户端的配置文件,用于指定域名服务器的位置
内容:
domainname linux.cn 设定主机域名。
search linux.cn 设定搜索列表。
nameserver 192.168.0.254 设定DNS服务器的IP(最多三个)。
5./etc/host.conf
功能:配置DNS解析顺序及解析相关参数
文件选项:order bind,hosts/hosts,bind 配置解析顺序
     multi on/off 设置hosts文件中是否允许一主机名对应多个IP地址
spoof on/warn/nowar 设置是否记录欺骗的主机地址
nospoolf on/off 是否防止主机欺骗
6./etc/hosts
功能:配置主机名和IP的对应关系,可利用该文件进行名称解析
文件格式:
IP地址     主机名 主机别名
192.168.0.1 www.abc.com www
二.常用的网络服务命令.
1.ifconfig
功能:
① 显示网络接口的配置信息。
② 激活/禁用某个网络接口。
③ 配置网络接口IP地址。
格式:
① # ifconfig [<接口名>]
② # ifconfig <接口名>(up/down)
③ # ifconfig <接口名> ip地址 netmask 子网掩码

实例:
⑴ # ifconfig
⑵ # ifconfig eth0
⑶ # ifconfig eth0 down
⑷ # ifconfig eth0 192.168.3.3 netmask 255.255.255.0
2. ifup
功能: 激活网络接口。
格式: ifup <设备名>
实例: # ifup eth0
3.ifdown
功能: 禁用网络接口。
格式: ifdown <设备名>
实例: # ifdown eth0
4.ping
功能:向目标主机发送icmp数据包(检测网络)。
5.netstat
功能:显示网络的连接状态。
格式:# netstat [参数]
参数:-i 显示接口状态信息
-lpe 显示所监控中的服务器的socket和正使用的socket程序信息
-nr 显示内核路由表信息
-t/-u 显示TCP/UDP连接状态
实例:#netstat -nr
#netstat -lpe
#netstat -t
6.traceroute
功能:跟踪路由
实例:#traceroute www.ahxh.cn
7.hostname
功能:显示主机名
实例:#hostname
8.route
功能:
(1)显示路由表
(2)添加路由
(3)删除路由
实例:
(1)#route(显示当前系统的路由表信息)
(2)#route add –net 192.168.0.0/24 dev eth0
(3)#route add –host 192.168.3.2 dev eth1
(4)#route add –host 192.168.1.3 gw 192.168.1.1
(5)#route add –net 192.168.3.0 netmask 255.255.255.0 gw 192.168.3.1
(6)#route add default gw 192.168.0.1
(7)#route del –host 192.168.3.2. dev eth1
(8)#route del –net 192.168.0.0/24 dev eth0
(9)#route del default gw 192.168.0.1
9.arp
功能:维护arp地址表
实例:
#arp (显示arp地址表)

arp –s 192.168.3.1 00:60:08:27:ce:b2(向arp地址表中添加记录)

#arp –d 192.168.3.1(删除arp地址表的记录)
#arp -f (从/etc/ethers文件中读取添加的记录)
10.netconfig
功能:配置网络接口选项
格式:#netconfig [选项]
选项:-d 接口名 指定接口名
实例:#netconfig –d eth0
三.服务的启动方式
1.守护进程的定义

linux系统上提供服务的程序是由运行在后台的守护程序来执行的,这些后台守护程序监听特定端口上的客户机的请求,并且为客户机提供相应的服务,我们称这个后台的守护程序称为“守护进程”,又称“服务”。
2.服务的运行方式
⑴ 独立运行方式:独立运行的服务由init脚本负责管理,并且每项服务只监听该服务指定的端口,服务的启动脚本存放在/etc/rc.d/init.d。
⑵ 超级服务:超级服务由xinetd管理,xinetd同时创建多个socket和监听多个端口,由xinetd管理的服务的配置文件存放在/etc/xinetd.d目录中。
3.服务的启动、关闭与重启
⑴ 独立服务的启动、关闭与重启
手工方式:
①# /etc/rc.d/init.d/脚本名 <start|restart|stop>
实例:
#/etc/rc.d/init.d/network restart
②# service 服务名 <start|restart|stop>
实例:
#service httpd start
自动方式:
①# ntsysv [- -level 级别]
实例:
# ntsysv(设置当前运行级别要运行的服务)
# ntsysv -–level 5(设置启动5号运行级别要运行的服务)
②# chkconfig [- -list | - -level 级别] [服务名 <on/off>]
实例:
#chkconfig –-list(显示各项服务在每个运行级别中的状态)
#chkconfig –-level 3 dhcpd on
⑵ 超级服务器的启动、关闭与重启
手工方式:
①# /etc/rc.d/init.d/xinetd <stop|restart|start>
②# service xinetd <stop|start|restart>
自动方式:
①# ntsysv [–level] 级别
②# chkconfig [–list|–level] 级别 服务名 <on/off>

猜你喜欢

转载自blog.csdn.net/HuAustin/article/details/88425251