linux基础知识 自己整理(未完)
时间:2007-01-22 来源:wanghui912
Linux复习
一, 安装:
1,简易分区:Liunx下至少包含两个分区:
a,/分区
b,SWAP分区(建议大小为物理内存的2倍)
2,细致分区:
a, SWAP分区:交换分区,相当与Windows下的虚拟内存。
b, /分区:存放系统命令和用户数据等
c, /Boot分区:存放与Linux启动相关的程序。
d, /usr分区:存放Linux的应用程序,软件
e, /var分区:存放经常变化的数据
f, /home分区:存放普通用户的数据。
g, /tmp分区:存放临时文件。
(注)说明:
(1)关于SWAP分区:
交换分区用来支持虚拟内存,当没有总够的物理内存来储存系统正在处理的数据时,将写入交换分区,交换分区的大小应取物理内存的2倍。如内存大于1G,建议用2G交换分区。创建一个大容量的交换分区将对未来升级物理内存时特别有用。
(2)关于/boot分区
/boot分区包含操作系统的内核,以及其他几个在引导过程中使用的文件。不能创建为LVM分区类型。
(3)另外, 您的环境可能会要求您创建一个和多个以下的分区:
一个 /usr/local 分区 -- 一般, /usr/local用来存放与其余Red Hat Linux系统不同的软件, 如不是RPM包的软件. 它的尺寸取决于您准备存放的这些软件的数量.
一个 /usr/src 分区 -- 在一个Red Hat Linux系统中, /usr/src通常存放两样东西:
Linux内核源程序 -- Linux内核的所有源程序都放在这, 新的内核也在这创建. 目前, 内核源程序大概有30MB. 记住, 您可能需要更多的空间来创建内核, 或者保存几个不同版本的内核.
RPM包的源程序 -- 如果安装了包的源程序, 文件将存放在这. 注意, 除非特别指定, 创建包也将使用在这的一个'创建目录'. here.
同样, 这个分区的尺寸也取决于您将在这安装的软件的数量.
二, 管理
1, 系统运行级别
0 所有进程被终止,机器将有序的关机,关机时系统处于这个级别。
1 单用户模式。用于系统维护,只有少数进程运行,同时所有服务也不启动。
2 多用户模式。和运行级别3一样,只是网络文件系统(NFS)服务没被启动。
3 多用户模式。允许多用户登陆系统,是系统默认的启动级别。
4 留给用户自定义的运行级别。
5 多用户模式,运行X-Windows,图形化登陆窗口。
6 所有进程被终止,系统重新启动。
查看运行级别:#runlevel
切换运行级别:#init[012345]
2shutdown命令的选项说明
选项 |
说明 |
-t sec |
等待sec秒后在通知init关闭系统 |
-k |
并不真正关闭系统,只是给每个用户发送警告消息 |
-r |
关机后重新启动系统 |
-h |
关机后关闭电源(halt) |
-c |
取消目前正在执行的关机程序。 |
-f |
在重起计数器(reboot)时忽略fsck。 |
-F |
在重起计数器(reboot)时强制fsck。 |
-time |
设定关机时刻,格式:hh;mm |
|
|
例:#shutdown –r +5 “system mwill be reboot in 5 minites”
2, 文件名后缀及文件类
分类 |
后缀名 |
说明 |
系统文件 |
*.conf |
配置文件 |
*.rpm |
RPM包 |
|
*.a |
一种存档文件 |
|
*.lock |
一种锁定文件 |
|
*.~ |
备份文件 |
|
.* |
隐含文件 |
|
程序与脚本 |
*.c |
C语言源程序文件 |
*.cpp |
C++语言源程序文件 |
|
*.h |
C或C++的头文件 |
|
*.o |
程序对象文件 |
|
*.pl |
Perl语言源程序文件 |
|
*.php |
Php语言源程序文件 |
|
*.tcl |
TCL脚本文件 |
|
*.so/*.lib |
库文件 |
|
*.sql |
SQL语言文件 |
|
格式文件 |
*.txt |
无格式的ASCII码文件 |
*.html/*.htm |
静态Web页 |
|
*.ps |
PostScript文件 |
|
*.au |
一种声音文件 |
|
*.wav |
一种声音文件 |
|
*.xpm |
一种图象文件 |
|
*.jpg |
一种图形,图象文件 |
|
*.gif |
一种图形,图象文件 |
|
*.png |
一种图形,图象文件 |
|
存档与压缩文件 |
*.tar |
Tar存档文件 |
*.Z/*.gz/*.bz2 |
压缩文件 |
|
*.tar.gz/*.tgz/*.tar.bz2/*.tbz |
压缩后的tar包 |
3.Linux下设备使用方法:
设备文件 |
说明 |
/dev/hd* |
IDE硬盘设备,如hda1表示第一块IDE硬盘的第一个分区,hdb2表示第2块IDE硬盘的第2个分区。 |
/dev/sd* |
SCSI硬盘设备,如sda1表示第一块SCSI硬盘的第一个分区,sdb2表示第2块SCSI硬盘的第2个分区。 |
/dev/lp* |
表示并口设备,如lp0表示第一个并口设备,lp1表示第二个并口设备。 |
/dev/cua* |
串口设备 |
/dev/tty* |
终端设备 |
/dev/console |
系统控制台 |
/dev/scd* |
SCSI光区设备 |
/dev/ippp* |
Ppp设备 |
/dev/isdn* |
Isdn设备 |
/dev/null |
空设备 |
/dev/zero |
零设备 |
4通配符
通配符 |
说明 |
* |
匹配任何字符和任何数目的字符 |
? |
匹配任何字符 |
[…] |
匹配任何包含在括号中的单字符 |
5Linux目录结构
子目录名 |
|
Bin |
存放二进制的可执行程序 |
Boot |
存放用于系统引导时的使用的各种文件 |
Dev |
用于存放设备文件,用户可以通过它来访问外部设备 |
Etc |
存放系统的配置文件 |
Home |
存放所有用户的文件的跟目录,一个用户对应一个, |
Lib |
存放跟文件系统中的程序运行所需要的共享库及内核模块 |
Lost+found |
存放一些系统检查结果,发现不合法的文件存放在这里,通常为空,除非硬盘遭受了不明的损坏 |
Mnt |
系统管理员存放安装临时文件系统的安装点 |
Opt |
该目录不属于Linux的基本文件系统,是额外安装的应用程序包所放置的地方 |
Proc |
是一个虚拟文件系统,存放当前内存的映射,主要用于在不重起机器的情况下管理内核。 |
Root |
超级用户目录 |
Sbin |
类似/bin目录,只有root才能控制 |
Tmp |
用于存放各种临时文件 |
Usr |
用于存放系统应用程序 |
Var |
用于存放需要随时改变的文件,如系统日志,脱机工作目录等。 |
6常用的文件目录操作命令
命令 |
功能 |
ls |
显示文件和目录列表 |
touch |
生成一个空文件或更改文件的时间 |
cp |
复制文件或目录 |
mv |
移动文件或目录,文件或目录改名 |
rm |
删除文件或目录 |
cat tac |
显示文本文件内容 |
more less |
分页显示文本文件内容 |
head tail |
显示文本文件的前若干行或后若干行 |
wc |
统计指定文本文件的行数,字数,字符数 |
lin |
建立连接文件 |
whereis |
查找系统文件所在路径 |
find |
在文件系统中查找指定的文件 |
grep |
在指定文本文件中查找指定的字符串 |
pwd |
显示当前工作目录 |
cd |
切换目录 |
mkdir |
创建目录 |
rmdir |
删除目录 |
tree |
显示目录树 |
7常用的信息显示命令
命令 |
功能 |
stat |
显示指定文件的相关信息 |
who w |
显示在线登陆用户 |
whoami |
显示用户自己的身份 |
hostname |
显示主机名称 |
uname |
显示操作系统信息 |
dmesg |
显示启动信息 |
top |
显示当前系统中耗费资源最多的进程 |
du |
显示指定的文件(目录)已使用的磁盘空间的总量 |
df |
显示文件系统磁盘空间的使用情况 |
free |
显示当前内存和交换空间的使用情况 |
ifconfig |
显示网络接口信息 |
ping |
测试网络的连通性 |
netstat |
显示网络状态信息 |
locale |
显示当前语言环境 |
id |
显示当前用户的id信息 |
8常用的备份压缩命令
命令 |
功能 |
tar |
文件,目录打(解)包 |
gzip |
压缩(解压)文件或目录,压缩文件后缀为gz |
compress |
压缩(解压)文件或目录,压缩文件后缀为Z |
Bzip2 |
压缩(解压)文件或目录,压缩文件后缀为bz2 |
例:
1. tar –cvf myball.tar myball 将myball打包
2. Tar –tf myball.tar 查看myball包内容
3. Tar –xvf myball.tar 将myball.tar解包
4. Tar –zcvf myball.tar.gz 将myball打包后压缩(调用gzip工具)
5. Tar –ztf myball.tar.gz 查看myball.tar.gz包的内容
6. Tar –zxvf myball.tar.gz 将myball.tar.gz解包(调用gzip工具)
7帐户管理
Linux的帐户包括用户帐户和组帐户,
Linux下的帐户系统文件主要有:
/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow
A,/etc/passwd文件中每行定义一个用户帐号,一行中又划分为多个字段定义用户帐号不同的属性。对任何用户均可读。
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sn
news:x:9:13:news:/etc/news:
。。。。 。。。。
wh:x:500:501::/home/wh:/bin/bash
wf:x:501:502::/home/wf:/bin/bash
字锻 |
说明 |
用户名 |
这是用户登陆系统时使用的用户名,它在系统中是唯一的 |
口令 |
此字段存放加密的口令,在这里的口令是X,表示被/etc/shadow文件保护 |
用户标识号 |
是一个整数,每个用户的UID都是唯一的,root是0,1~449是系统的标准帐户,普通用户的UID从500开始 |
组标识号 |
是一个整数,系统内部用它来标识用户所属的组,每个用户帐户在建立好后都有一个主组,主组相同的帐户其GID相同。默认情况下,每个帐户建立好后都回建立一个和帐户名同名的组,作为该帐户的主组,这个组只有用户本人一个成员,既此组是私有组 |
注释性描述 |
例如存放用户全名等信息 |
自家目录 |
用户登陆系统后所进入的目录 |
命令解释器 |
指示该用户所使用的shell,linux默认为bash |
B,/etc/shadow只对root用户可读,在安装系统时,会询问用户是否启动shadow passwords功能。在安装好系统后也可以用pwconv命令和pwunconv来启动或取消shadow passwords的保护。
root:$1$sixTfvFd$UohNlKmmYk0iUsT/4AZcb1:13436:0:99999:7:::
bin:*:13436:0:99999:7:::
daemon:*:13436:0:99999:7:::
adm:*:13436:0:99999:7:::
lp:*:13436:0:99999:7:::
sync:*:13436:0:99999:7:::
shutdown:*:13436:0:99999:7:::
halt:*:13436:0:99999:7:::
wh:$1$j937MzHO$TENBJZEioj2eKa7ifEtVX1:13436:0:99999:7:::
wf:$1$qpR.iAIo$7gL1L7KUFMiakY59hB2Tl.:13436:0:99999:7:::
栏位 |
说明 |
用户名 |
用户的帐户名 |
口令 |
用户的口令,是加密的 |
最后一次修改的时间 |
从1970年1月1日起,到用户最后一次更改口令的天数 |
最小时间间隔 |
从1970年1月1日起,到用户可以更改口令的天数 |
最大时间间隔 |
从1970年1月1日起,到用户必须更改口令的天数 |
警告时间 |
在用户口令过期之前多少天提醒用户更新 |
不活动时间 |
在用户口令过期之后到禁用帐户的天数 |
失效时间 |
从1970年1月1日起,到帐户被禁用的天数 |
标识 |
保留位 |
C,/etc/group文件,将用户分组是linux中对用户进行管理及控制访问权限的一种手段。每个用户都有属于某一组,一组可以有多个用户,一个用户也可以属于不同的组,当一个用户同时是多个组的成员是,在/etc/passwd文件中记录的是用户所属的主组。也就是登陆是所属的默认组,而其他组称为附加组,用户要访问附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组的成员。组的所有属性都存放在/etc/group文件中,/etc/group文件多任何用户均可读。
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
。。。 。。。
wh:x:501:
wf:x:502:
栏位 |
说明 |
组名 |
该组的名称 |
组名令 |
用户组口令,由于安全性的原因,已不使用该字段命令,用X占位 |
GID |
组的识别好,和UID类似,每个组都有自己的独有识别号,不同组的GID不会相同 |
组成员 |
属于这个组的成员 |
D,/etc/gshadow文件用于定义用户组的口令,组管理等信息,该文件只有root用户可以读取。
root:::root
bin:::root,bin,daemon
daemon:::root,bin,daemon
sys:::root,bin,adm
adm:::root,adm,daemon
tty:::
。。。 。。。
wh:!::
wf:!::
栏位 |
说明 |
组名 |
用户组名称,该字段与group文件中的组名称对应 |
组口令 |
用户组口令,该字段用于保存已加密的口令 |
组的管理员帐号 |
组的管理员帐号,管理员有权对该组添加,删除帐号。 |
组成员 |
属于该组的用户成员列表,列表中多个用户间用“,”分隔 |
8使用命令行工具管理帐户
命令 |
说明 |
Useradd <选项><用户名> |
添加新的用户 |
Usermod <选项><用户名> |
修改已经存在的指定用户 |
Userdel –r < 用户名> |
删除已存在的指定用户,-r参数用于删除自家目录 |
groupadd<选项><组名> |
添加新组 |
groupmod<选项><组名> |
修改已存在的指定组 |
groupdel<选项><组名> |
删除已经存在的指定组 |
口令管理
Passwd <选项><用户名 >
口令时效
Chang <选项><用户名>
选项 |
描述 |
-m days |
指定用户必须改变口令所间隔的最少天数。如果为0,口令就不会过期 |
-M days |
指定口令的有效天数,当该选项指定的天数加上-d选项指定的天数小于当前的日期时,用户在使用该帐号前就必须改变口令。 |
-d days |
指定自从1970年1月1日起,口令改变的天数 |
-I days |
指定口令过期后,帐号被琐前不活跃的天数。如果值为0,帐号在口令过期后就不会被锁。 |
-E date |
指定帐号被锁的日期,日期格式为YYYY-MM-DD。若不用日期,也可以使用自1970年1月1日后经历的天数 |
-W days |
指定口令过期前要警告用户的天数 |
-l |
列出指定用户当前的口令时效信息,以确定帐号何时过期 |
用user1两天内不能更改口令,并且口令最长的存活期为30天,并在口令过期前5天通知user1
#chage –m 2 –M 30 –W 5 user1
9用户和组的状态命令
命令 |
功能 |
Whoami |
用于显示当前用户的名称 |
Groups < 用户名> |
用于显示指定用户所属的组,如果未能指定用户则显示当前用户所属的组 |
Id |
用于显示用户当前的uid,gid和用户所属组列表 |
Su - <用户名> |
用于转换当前用户到指定的用户帐号,若不指定用户名则转换当前用户到root,若使用参数”-”则在转换当前用户的时同时转换用户工作环境 |
Newgrp<组名> |
用与转换用户的当前组到指定的附加组,用户必须属于改组才能进行 |
10权限管理
在linux中,将使用系统资源的人员分为4类,超级拥护,文件或目录的属主,属主的同组人和世界上的其他人员。
文件或目录的3种基本访问权限
代表字符 |
权限 |
对文件的含义 |
对目录的含义 |
r |
读 |
可读取文件的内容 |
可以列出目录中的文件列表 |
w |
写 |
可以修改该文件 |
可以在目录中创建,删除文件 |
x |
执行 |
可以执行该文件 |
可以用cd命令进入该目录 |
文件类型及其代表字符
文件类型 |
代表字符 |
文件类型 |
代表字符 |
普通文件 |
- |
块设备文件 |
B |
目录文件 |
d |
字符设备文件 |
C |
符号连接文件 |
l |
管道文件 |
P |
权限字符串举例
字符 |
数值 |
说明 |
-rw------- |
600 |
只有属主才有读取和写入的权限 |
-rw-r--r-- |
644 |
只有属主才有读取和写入的权限,同组人和其他人只有读取权限 |
-rwx------ |
700 |
只有属主才有读取,写入和执行的权限 |
-rwx-xr-xr |
755 |
属主有读取,写入和执行的权限,同组人和其他人只有读取和执行的权限 |
-rw-rw-rw- |
666 |
每个人都有读取和写入权限 |
-rwxrwxrwx |
777 |
每个人都能够读取,写入和执行 |
-rwx------ |
700 |
只有属主能在目录中读取,写入 |
更改操作权限
chmod [ugoa] [+-=][rwxugo]<文件名或目录名>
用户选项说明
选项 |
说明 |
选项 |
说明 |
u |
表示属主(user) |
o |
表示其他用户(other) |
g |
表示所属组的用户(group) |
a |
表示所有用户(all) |
权限操作说明
选项 |
说明 |
+ |
增加权限 |
- |
删除权限 |
= |
分配权限,同时将原有权限删除 |
例:
取消用户和其他用户对文件users的读取权限
#chmod go –r users
取消组用户和其他用户对文件users1的一切权限
#chmod 600 users1
11更改属主和同组人
chown –R <用户[组]><文件或目录>
例:
将文件users1的属主改成osmond
#chown osmond users1
将mydir目录下及其子目录下的所有文件或目录的属主和组都该成somond
#chown –R osmond osmond mydir
12查看系统中的进程
#ps[选项]
选项 |
说明 |
选项 |
说明 |
a |
显示所有进程 |
f |
显示进程树 |
e |
在命令后显示环境变量 |
w |
宽行输出 |
u |
显示用户名和启动等信息 |
-e |
显示所有进程 |
x |
显示没有控制终端的进程 |
-f |
显示全部 |
Ps命令输出的重要信息含义
输出项 |
说明 |
输出项 |
说明 |
PID |
进程号 |
TIME |
系统从启动以来占用CPU的总时间 |
PPID |
父进程的进程号 |
USER |
用户名 |
TTY |
进程从哪个终端启动 |
%CPU |
占用CPU时间与总时间的百分比 |
STAT |
进程开始执行的时间 |
%MEM |
占用内存与系统内存总量的百分比 |
START |
进程开始执行的时间 |
SIZE |
进程代码大小+数据大小+栈空间大小,单位KB |
VSZ |
进程占用的虚拟内存空间,单位KB |
COMMAND /CMD |
进程的命令名 |
RSS |
进程所占用的内存的空间,单位KB |
|
|
|
|
|
|
|
|
|
|
进程的状态
字符 |
说明 |
R |
进程正在执行中(进程排在执行队列里,随时都会被执行) |
S |
进程处于睡眠状态(sleeping) |
T |
追踪或停止 |
Z |
僵尸进程(zombie),进程已经被终止,但其父进程并不知道,没有妥善处理,导致其处于僵尸状态。 |
W |
进程没有固定的pages |
< |
高优先级的进程 |
N |
底忧先级的进程 |
13杀死系统中的进程
Kill [-signal] PID
Kill命令的一些常用信号说明
信号 |
数值 |
用途 |
SIGHUP |
1 |
从终端上发出的结束信号 |
SIGINT |
2 |
从键盘上发出的中断信号(Ctrl+C) |
SIGQUT |
3 |
从键盘上发出的退出信号(Ctrl+\) |
SIGFPE |
8 |
浮点异常(如:被0除) |
SIGKILL |
9 |
结束接受的信号的进程(强制杀死进程) |
SIGTERM |
15 |
Kill命令默认的终止信号 |
SIGCHLD |
17 |
子进程中止或结束的信号 |
SIGSTOP |
19 |
从键盘来执行的信号(Ctrl+D) |
14守护进程(相当于Windwos的服务)
1网络守护进程xinetd(Extended Ineternet Daemon)又称为超级服务器(Super-Server)
Xinetd就是一个管理很多网络服务的守护进程,它同时监听着它所管理的服务所有端口,当有客户提出服务请求时,它就会判断这是哪一个服务的请求,然后在开启此服务的守护进程,由该进程处理客户的请求。这样很多不同服务的守护进程就被xinetd一个守护进程代替了,因此xinetd也称为超级服务器(Super-Server)。
2xinetd的配置文件
位于tc/xinetd.conf,另外每一个由xinetd启动的服务在目录/etc/cinetd.d下都有一个以服务器名称命名的配置文件,在主配置文件/etc/xinetd.conf中将/etc/xinetd.d目录下的所有文件的内容使用includedir/etc/xinetd.d语句包括起来。
Vi /etc/xinetd.conf
#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d
在该文件中使用defaults{……}项为所有的服务指定默认值。其中:
Instances的值为60表示xinted可以同时运行的最大进程数
Log-type的设置中指定使用syslogd进行服务登记
Log-on-success的设置中指定成功时,登记客户机IP地址和进程的PID
Log-on-failure的设置中指定失败时,登记客户机IP地址和附加的客户机信息
最后在includedir中指定每中服务的配置文件存放在/etc/xinetd.d目录下,并将其加载。
分析一个/etc/xinetd.d目录下的文件,/etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = yes
}
Disable设定值为yes表示当前不允许这项服务
Flags设定值为REUSE,表示当中断或重起xinetd时,TCP/IP Socket可重用。
Socket _type 设定为stream,表示使用TCP的Socket类型。
Wait设定值为no,表示为该服务提供多线程功能。
User设定值为root表示设置进程的UID
Server设定值为/usr/sbin/in.telnetd,该进程的完整路径
Log_on_failure使用+=USERID,表示将失败的UID添加到系统登记表中
3可以使用xinetd启动的守护进程
几乎所有的服务程序都可以由xinetd来启动,而具体提供那些服务将由/etc/services文件指出,
这个文件中说明了xinetd可提供服务的端口号和名字,但是如果要实际启动相应的守护进程去处理则需要另外的配置文件/etc/xinetd.d/*。
为了节省资源,引入了xinetd用于监视网络服务,如telnet,talk等,使用xinetd启动网络服务虽然可以节省资源,但对于服务量大的守护进程(如HTTP服务,FTP服务)将影响到其他的运行,同时也影响所提供的响应速度,为此,某些常用的知名网络服务的守护进程需要单独启动
4守护进程的运行方式
A独立运行的守护进程
由init脚本负责管理,脚本存放在/etc/rc.d/init.d目录下,所有系统服务都是独立运行的,如crond,syslogd,xinetd等。
B由网络服务进程服务程序运行的守护进程
要运行的守护进程由xinetd启动
由xinetd管理的守护进程的配置文件存放在/etc/xinetd.d目录下
默认的xinetd的主配置文件是/etc/xinetd.conf
Xinetd本身的独立运行的守护进程
5守护进程的分类
系统守护进程:atd crond lpd syslogd login等
网络守护进程:sshd httpd sendmail xinetd 等
6列表显示守护进程
#pstree
15守护进程管理工具
1图形用户界面(GUI)工具
2文本用户界面(TUI)工具
#ntsysv
3命令行界面(CLI)工具
A,chkconfig 命令用于检查,设置系统的各种服务,此命令是通过操作/etc/rc[0-6]目录下的符号连接文件对系统的各种服务进行管理。
chkconfig 命令具有如下功能
添加指定的新服务
清除指定的服务
显示由chkconfig管理的服务
改变服务的运行级别
检查指定服务的启动状态
命令格式
#chkconfig - -add server-name
# chkconfig - -del server-name
# chkconfig - -list server-name
# chkconfig [- -level levels] server-name
# chkconfig [- -level levels] server-name <on off reset>
- -显示由chkconfig管理的所有服务
--level levels:指定某服务要在哪里运行中开启或关闭,levels的范围在0~6之间,默认的运行级别是3,4,5
reset 使其状态返回到操作系统启动时的默认状态
例:
查看指定的服务在当前运行级别的运行状态
#chkconfig httpd
查看指定服务在所有运行级别的运行状态
#chkconfig - -list httpd
添加一个由chkconfig管理的服务
#chkconfig - -add httpd
更改指定服务在指定运行级别的运行状态
#chkconfig - -level 5 httpd on
#chkconfig httpd on
B,service
#service server-name start/stop/restart
16软件包管理与备份
1RPM(Red Hat Package Manager)是一个开放的软件包管理系统,工作在Red Hat Linux及其他Linux系统,是Linux中公认的软件包管理标准。
2RPM的功能
A 安装
B 卸载
C 升级
D 查询
E 验证 :检查系统中的软件与包中软件的区别
3RPM包的名称格式
name-version.type.rpm
name 为软件的名称
version 为软件的版本号
type 为包的类型
i[3456]86:表示在Intel x86计算机平台上编译的。
sparc: 表示在sparc计算机平台上编译的。
alpha: 表示在alpha计算机平台上编译的。
src: 表示软件源代码
rpm为文件扩展名
4RPM命令的使用
A安装软件包
rpm –ivh RPM 包文件名
i 表示安装,v 表示在安装过程中将显示较详细的信息,h表示显示水平进度条
B升级软件包
rpm –Uvh RPM 包文件名
U表示升级
C卸载软件包
rpm –e 包名
e 表示卸载
D查询软件包
1查询系统中所有的RPM软件包
rpm -qa
2查询指定的软件包在系统中是否安装
rpm –q <包名>
3查询RPM包文件中的信息
rpm –qp <RPM包文件名>
4查询系统中已安装包的描述
rpm –qi <包名>
5查询系统中软件包里包含的文件
rpm –qi <包名>
6查询某软件包的最低依赖要求
rpm –qR <报名>
7查询某软件包提供的可使用的所有文件
rpm –q - -proides <包名>
8查询系统中指定文件所属的软件包
rpm –qf <文件名>
5验证软件包
校验软件包将检查软件包中所有文件是否与系统中所安装的一致。包括校验码文件大小,存放权限和属主属性都将根据数据库进行校验。可在用户安装了新程序以后怀疑某些文件遭到破坏时使用。 rpm –V
17系统备份
1tar 命令 格式
tar options <files-to-bacup-or-restore>
files-to-bacup-or-restore用于给出要备份或要恢复的文件或目录名,
选项 |
说明 |
-f name |
使用name指定存档文件名或设备名 |
-v |
列出处理的详细信息 |
-c |
用于创建一个新的存档文件 |
-x |
从归档文件中恢复备份文件 |
-t |
用于列出一个存档文件中的文件名 |
-z |
用GNU的gzip压缩文件或解压 |
-Z |
用compress压缩文件或解压 |
-j |
用bzip2压缩文件或解压 |
-u |
仅仅添加比存档文件中更新的文件。用新文件取代原备份的文件,如找不到,则追加到备份文件的最后 |
-C directory |
将当前目录切换到directory |
-d |
将归档文件的内容与系统上的当前文件作比较 |
-M |
创建/列出/恢复多卷存档文件,以便在几个备份介质中存放 |
-N DATE |
指定仅存放那些比DATE新的文件进行操作 |
-p |
表示希望保留文件许可权限 |
-p |
保留文件的绝对路径,不去掉/ |
-w |
要求等待用户确认每一个操作 |
-W |
表示在写入备份内容到备份设备以后在读出来进行验证以提高可靠性 |
-T filename |
从指定的文件中读需要备份或恢复的文件名 |
-X filename |
不处理给定文件中列出的文件 |
举例
1跨越多张软盘备份系统/usr/local下的所有内容,同时进行写入校验
#tar –c WMf /dev/fd0 /usr/local
2备份/home 目录下自昨天以后被修改的所有文件到软磁带设备/dev/ftape中
#tar –cf /dev/ftape –N yesterday /home
3备份/目录下自03/12/2004修改过的文件到磁带设备/dev/st0中
#tar –cvf /dev/st0 –N 03/12/2004
4备份和恢复
保持文件权限备份/目录小(不包括/proc)到磁带设备/dev/st0中
#tar –cpf /dev/st0 / - -exclude=/proc
恢复备份到
#tar –xpf /dev/st0 –C/
从备份文件恢复指定的文件etc/passwd
#tar –xpf /dev/st0 etc/passwd
5完全备份和增量备份
先做一个完全备份
#tar –zcvf /backup/bp-full.tar.gz /
17系统引导器
1启动引导器和GRUB
启动引导器是计算机启动过程中运行的第一个真正软件,通过计算机启动时在通过BIOS自检后读取并运行硬盘主引导扇区(MBR)中的启动引导器(Boot Loader)程序,启动引导器在负责加载启动硬盘分区中的操作系统,在Rat Hat Linux 9中GRUB作为默认的启动引导器。
GRUB(GRand Unified Bootloader)是一个将引导装载程序安装到主引导记录的程序,主程序记录是位于一个硬盘开始的扇区,它允许位于主引导记录区特定的指令来装载一个GRUB菜单或是GRUB的命令环境,
这使得用户能够开始操作系统的选择,在内核引导时传递特定指令给内核,或在内核引导前确定一些系统参数(RAM大小等)
GRUB可在多个操作系统共存是选择哪个引导系统
2GRUB术语
A, GRUB下的设备名称
GRUB有一套给物理磁盘命名的方法,和标准的Linux命名设备的方法不一样。
所有硬盘(IDE或SCSI硬盘)都是用hd开始,软盘用fd开头
(hdX,Y)
(fdX)
其中:
X是硬盘或软盘的序列号,Y是分区编号。X,Y均从0开始,而不是1
例:Linux系统中的/dev/hda5在GRUB中是(hd0,4)
B,GRUB下的文件名
当在GRUB中输入包括文件的命令时,文件名必须在设备和分区后指定。
例:(hdX,Y)/path/to/file
C,GRUB中跟文件系统(Root File System)这一术语与Linux的跟文件系统是没有关系的。
GRUB的跟文件系统是用于一个特定设备的跟分区。GRUB使用这个信息来挂载(Mount)这个设备并从它上面载入文件。
2,GRUB的操作界面
A, 菜单界面
在此界面可执行的命令
按e键可以编辑
按a键可以追加内核启动参数
按c键进入命令行操作界面
B, 菜单项编辑器界面
按e键进入
按e键编辑当前行,
按c键进入GRUB的命令行界面
按o键在当前行后面插一行,
按O键在当前行前面插一行,
按d键删除当前行。
按b键启动当前的菜单项命令并引导操作系统
按ESC退出
对编辑界面的修改只对本次启动生效。若想实现每次启动都生效,可编辑GRUB的配置文件/boot/grub/grub.conf
C命令行操作界面
命令行是GRUB最基本的操作界面,它被授予最大控制能力的操作界面。
在菜单界面下按c键进入
在linux的shell环境下输入grub进入
常用命令
命令 |
功能 |
boot |
引导先前已经被指定并载入的操作系统或链式装载程序 |
chainloader |
将指定的文件作文一个链式装载程序载入,将启动控制权交给另外的启动引导器,为了获取在一个指定分区第一扇区内的文件,使用+1作为文件名 |
displaymen |
显示当前内存的使用情况,这个信息是基于BIOS的,这个命令有助于确定系统在引导前与多少内存。 |
Initrd |
使用用户能够指定一个在引导时可用的初始RAM盘。当前内核为了完全引导而需要某些模块时,这是必要的。 |
Install p |
安装GRUB到系统的主引导记录。这个命令允许系统重启时出现GRUB接口,如果命令被执行,那么除了GRUB信息之外的其他用于引导其他操作系统的信息都被丢失。 |
kernel |
当使用直接载入方式引导操作系统时,kernel命令指定内核从GRUB的跟文件系统中载入,其后可以跟options选项使在内核载入时传给内核 |
3, GRUB的配置文件grub.conf
默认位置:/boot/grub/grub.conf
A,
GRUB配置文件的选项
选项 |
功能 |
default |
设置启动菜单的默认启动项,菜单项序号参数从0开始,即0代表第一个菜单项 |
timeout |
GRUB载入由default命令指定的项目前的时间间隔,以秒为单位 |
Title |
设定用来装载一个操作系统的一组特定命令的标题 |
Splashimage |
指定在GRUB引导时所使用的屏幕图象的位置 |
Root |
设置GRUB的跟设备(root)为Linux内核所在的分区 |
rootnoverify |
做root命令同样的事情,只是不挂装分区 |
kernel |
用kernel命令后跟Linux内核文件作为参数,加载的内核文件 |
initrd |
用initrd命令加载镜像文件 |
map |
交换磁盘或分区在BIOS中的标示符,用于启动在第二个硬盘中的Windows |
makeactive |
设置跟设备为活动分区(针对于Windows不能从非活动分区启动 |
chainloader |
使用chainloader命令调用Windows分区的启动引导器引导Windows系统 |
B, GRUB举例
grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/hdb1
# initrd /boot/initrd-version.img
#boot=/dev/hdb
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS-4 i386 (2.6.9-22.EL)
root (hd0,0)
"grub.conf" 17L, 598C 9,1 椤剁?
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/hdb1
# initrd /boot/initrd-version.img
#boot=/dev/hdb
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS-4 i386 (2.6.9-22.EL)
root (hd0,0)
kernel /boot/vmlinuz-2.6.9-22.EL ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.9-22.EL.img
18系统驱动过程
Red Hat Linux 9的启动过程如下:
1, BIOS自检
2, 启动启动引导器程序GRUB
3, 运行Linux系统内核并检测硬件
4, 运行linux系统的第一个进程init
5, Init读取系统引导配置文件/etc/inittab中的信息进行初始化
A,/etc/rc.d/rc.sysinit——系统初始化脚本
挂载/proc文件系统
设置系统时钟
系统一般的环境变量设置(如主机名等)
初始化USB和HID设备
设置PnP
加载键盘映射
加载系统字体
加载系统模块(如声音模块等)
初始化RAID
检查文件系统
挂载文件系统
激活磁盘限额
激活swap分区
初始化串口设备
生成系统启动信息的log文件等
B,/etc/rc.d/rccX.d/[KS]*——根据运行级别(X)配置服务
终止以K开头的服务
启动以S开头的服务
C,/etc/rc.d/rc.local——执行本地特殊配置
C, 其他——不同运行级别的特殊服务
mingetty (除了运行级别1)
xdm/gdm/kdm(运行级别5)
19,init进程
Init进程是由Linux内核引导运行的,是系统中运行的第一个进程,其进程号(PID)永远为1。Init进程运行后将安装其配置文件,引导运行系统所需要的其他进程,init进程将作为这些进程的父进程。
Init进程在运行时将读取系统引导配置文件/etc/inittab中的信息。这些信息包括默认的运行级别和init启动的过程
文件/etc/inittab中以#开头作为注释行,其他每一行包括4个字段(每个字段用“:”间隔)
id:runlevels:action:process
说明
字段 |
说明 |
id |
该字段是个有效行的标示符。对定义getty的各行来说,该标示符指定getty运行的终端(即设备文件/dev/tty之后的数字字符。对其他行来说,除了长度限制外没有特殊要求,但该字段在整个文件中必须唯一。 |
runlevels |
指定运行级别,各运行级别由单个的数字表示,可指定多个运行级别,但不能包含任何间隔符 |
action |
指定的运行状态可以取如下数值 |
respawn |
当下一个字段指定的命令结束后,重新运行该命令 |
wait |
执行下一个字段指定的命令,并等待其结束再运行其他命令 |
once |
执行下一个字段指定的命令,并不等待其结束。 |
boot |
在系统启动时执行下一个字段指定的命令,并忽略运行级别。 |
bootwait |
在引导完成后执行下一个字段指定的命令,并等待其结束 |
off |
指示init撤消下一个字段指定的命令,并等待其结束 |
initdefault |
指定其首次启动时所进入的运行级别状态 |
sysinit |
在与系统控制台通信时执行下一个字段指定的命令 |
powerwait |
在出现电源错误时执行下一个字段指定的命令,并等其结束 |
powerfail |
在出现电源错误时执行下一个字段指定的命令,不等其结束 |
powerokait |
在电源恢复时执行下一个字段指定的命令 |
ctrlaltdel |
当按下Ctrl+Alt+Del组合键时执行下一个字段指定的命令 |
process |
该字段指定要运行的命令 |
20维护日志系统
1syslog主要用途是系统审计,监测追踪和分析统计
主要包括两个日志守护进程klogd和syslogd组成,klogd只处理内核消息,而syslogd处理其他系统消息,如应用程序等,
2cat /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
#
# INN
#
news.=crit /var/log/news/news.crit
news.=err /var/log/news/news.err
news.notice /var/log/news/news.notice
字段说明
字段 |
|
功能 |
该字段用来指定需要监视的事件,它可取的值如下 |
authpriv |
报告认证活动,通常口令等私有信息不会被记录 |
cron |
报告与cron和at相关的信息 |
daemon |
报告与daemon相关的信息 |
kern |
报告与内核相关的信息,通常这些信息通过klogd传送 |
lpr |
报告与打印服务有关的信息 |
|
报告与邮件服务有关的信息 |
mark |
在默认情况下每隔20分钟就会生成一次表示系统还在正常运行的消息。Mark消息很像经常用来确认远程主机是否还在运行的“心跳信号”(Heartbeat)。Mark消息另外一个用途是用于事后分析,能够帮助系统管理员确定系统死机发生的时间 |
news |
报告与网络新闻服务有关的消息 |
syslog |
由syslog生成的信息 |
user |
报告由用户程序生成的任何消息,是可编程默认值 |
uucp |
有UUCP生成的信息 |
Local0-local7 |
与自定义程序一起使用 |
* |
*代表除了mark之外的所有功能 |
级别 |
用来指明每一种功能有关的级别和优先级。它可取的值如下: |
emerg |
出现紧急情况使得该系统不可用,有些需广播个所有用户 |
alert |
需要立即引起注意的情况 |
crit |
危险情况的报警 |
err |
除了emerg,alert,crit的其他错误 |
warning |
警告信息 |
notice |
需要引起注意的情况,但不如err,warning重要 |
Info |
值得报告的消息 |
debug |
由于运行debug模式的程序所产生的消息 |
None |
用于禁止任何消息 |
* |
所有级别,除了none |
动作 |
用来描述对应功能的动作,它可取的值如下 |
file |
指定一个绝对路径的日志文件名记录日志消息 |
username |
发送消息到指定用户,*表示所有用户 |
device |
将信息发送到指定的设备中,如dev/console |
@hostname |
将消息发送到可解析的远程主机hostname,且该主机必须正在正在运行syslogd并可以识别syslog的配置文件 |
|
|
格式如下
功能. 级别 动作
3查看日志文件
#ls /var/log/*
日志文件 |
说明 |
boot |
记录系统启动日志 |
cron |
记录守护进程crond的日志 |
lastlog |
记录最近几次成功登陆的事件和最后一次不成功的登陆 |
messages |
从syslog中 |
sudolog |
记录使用sudo发出的命令 |
wtmp |
一个拥护每次登陆和退出时间的永久记录 |
httpd/* |
记录apache的访问日志和错误记录 |
maillog |
记录sendmail的日志 |
vsftpd.log |
记录vsftpd的日志 |
samba/* |
记录samba的每个用户的日志 |
4查看非文本日志文件
(1)lastlog命令用来检查某特定用户上次登陆的时间,并格式化输出上次登陆日志/var/log/lstlog的内容
(2)last命令往回搜索wtmp来显示自从文件第一次创建以来登陆过的用户
root pts/1 211.101.46.240 Sat Oct 21 17:15 still logged in
root pts/1 211.101.46.229 Fri Oct 20 17:41 - 18:24 (00:43)
reboot system boot 2.6.9-22.EL Fri Oct 20 11:58 (1+07:26)
root pts/1 211.101.46.229 Fri Oct 20 11:46 - down (00:10)
root pts/1 211.101.46.229 Thu Oct 19 21:34 - 03:08 (05:34)
root pts/2 211.101.46.240 Wed Oct 18 20:45 - 00:45 (04:00)
root pts/1 211.101.46.240 Wed Oct 18 17:25 - 21:32 (04:07)
reboot system boot 2.6.9-22.EL Wed Oct 18 17:23 (1+18:33)
root pts/1 211.101.46.229 Tue Oct 17 20:03 - crash (21:20)
root pts/1 211.101.46.73 Mon Oct 16 16:55 - 02:31 (09:36)
reboot system boot 2.6.9-22.EL Mon Oct 16 16:51 (3+19:05)
root pts/1 211.101.46.239 Sun Oct 15 21:23 - down (02:45)
reboot system boot 2.6.9-22.EL Sun Oct 15 21:07 (03:02)
wh pts/2 211.101.46.117 Sun Oct 15 20:11 - down (00:54)
root pts/1 211.101.46.239 Sun Oct 15 19:48 - down (01:17)
reboot system boot 2.6.9-22.EL Sun Oct 15 19:35 (01:30)
root tty1 Sun Oct 15 19:28 - down (00:00)
reboot system boot 2.6.9-22.EL Sun Oct 15 19:24 (00:04)
reboot system boot 2.6.9-22.EL Sun Oct 15 19:10 (00:17)
wtmp begins Sun Oct 15 19:10:51 2006
5日志滚动
Logrotate的主配置文件是/etc/logrotate.conf,管理员可以设置日志的循环周期,日志的备份数目,以及如何备份日志等。另外该目录下包括一些服务的日志滚动设置。例如syslog,samba。Cron等。在这些文件中指定如何根据/etc/logrotate.conf进行日志滚动,
cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
# system-specific logs may be also be configured here.