--
下包的网址
www.rpmfind.com等
对应的产品最好在官方下
md5
为了解决依赖性的问题 debian 分发版产生了 apt来解决依赖性
red hat 分发版 yum (yellow dog updater) 由 python语言写的
第三方的软件 rhel 4 - rhel 5.1版或5.2版
yum 的配置文件
vim /etc/yum.repos.d/rhel-debuginfo.repo
另类配置方法:vim /etc/yum.conf
/etc/yum.repos.d 这个目录 以.repo结尾的都可以
[Server] --软件仓库名 --大小写不敏感
name=Red Hat Enterprise Linux $releasever - $basearch - Debug --标识名
baseurl=ftp://10.1.1.1/Server --软件仓库地址
enabled=1 --是否打开
gpgcheck=0 --gpg验证
做一个本地yum源:
mkdir /yum
mount /share/iso/rhel-5.4-server-i386-dvd.iso /yum -o loop
mount命令会看到如下信息
/share/iso/rhel-5.4-server-i386-dvd.iso on /yum type iso9660 (rw,loop=/dev/loop0)
修改yum的配置文件:
vim /etc/yum.repos.d/local.repo
[server]
name=server
baseurl=file:///yum/Server --本地yum源用file 这里有三个/
enabled=1
gpgcheck=0
[cluster]
name=cluster
baseurl=file:///yum/Cluster
enabled=1
gpgcheck=0
[clusterstorage]
name=clusterstorage
baseurl=file:///yum/Clusterstorage
enabled=1
gpgcheck=0
[vt]
name=vt
baseurl=file:///yum/VT
enabled=1
gpgcheck=0
--远程yum源的配置方法
vim /etc/yum.repos.d/remote.repo
[Server]
name=server
baseurl=ftp://10.1.1.1/Server --这里是远程提供的服务名 这里只有两个/
enabled=1
gpgcheck=0
[Cluster]
name=cluster
baseurl=ftp://10.1.1.1/Cluster
enabled=1
gpgcheck=0
[ClusterStorage]
name=vt
baseurl=ftp://10.1.1.1/ClusterStorage
enabled=1
gpgcheck=0
[VT]
name=vt
baseurl=ftp://10.1.1.1/VT
enabled=1
gpgcheck=0
[extra]
name=Red Hat Enterprise Linux $releasever - $basearch - extra
baseurl=ftp://10.1.1.1/extra
enabled=1
gpgcheck=0
[update]
name=Red Hat Enterprise Linux $releasever - $basearch - update
baseurl=ftp://10.1.1.1/update
enabled=1
gpgcheck=0
--本地yum源和远程yum源结合使用
vim /etc/yum.repos.d/aaa.repo
[server]
name=server
baseurl=file:///yum/Server
enabled=1
gpgcheck=0
[cluster]
name=cluster
baseurl=file:///yum/Cluster
enabled=1
gpgcheck=0
[clusterstorage]
name=clusterstorage
baseurl=file:///yum/ClusterStorage
enabled=1
gpgcheck=0
[vt]
name=vt
baseurl=file:///yum/VT
enabled=1
gpgcheck=0
[extra]
name=Red Hat Enterprise Linux $releasever - $basearch - extra
baseurl=ftp://10.1.1.1/extra
enabled=1
gpgcheck=0
[update]
name=Red Hat Enterprise Linux $releasever - $basearch - update
baseurl=ftp://10.1.1.1/update
enabled=1
gpgcheck=0
------------------------------------------------------------
yum 命令的使用
yum list 列出软件仓库的软件列表,第一次yum list会扫描包
[root@li yum.repos.d]# yum list |grep httpd
This system is not registered with RHN.
RHN support will be disabled.
httpd.i386 2.2.3-31.el5 installed --已经安装过的
httpd.i386 2.2.3-31.el5.centos.2 update --不是installed表示没有安装,会指明属于哪个软件仓库
httpd-devel.i386 2.2.3-31.el5.centos.2 update
httpd-manual.i386 2.2.3-31.el5.centos.2 update
system-config-httpd.noarch 5:1.3.3.3-1.el5 server
yum clean all 删除yum保存的信息,如果软件仓库的包有变动,就先clean一下,再list一下
yum install 安装软件包,但要注意,只需要写上包开头的名字就可以
可以使用通配符,列yum install bind*
[root@li yum.repos.d]# yum install mysql
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
--> Processing Dependency: mysql = 5.0.77-3.el5 for package: mysql-bench
--> Processing Dependency: mysql = 5.0.77-3.el5 for package: mysql-test
--> Processing Dependency: mysql = 5.0.77-3.el5 for package: mysql-devel
--> Processing Dependency: mysql = 5.0.77-3.el5 for package: mysql-server
---> Package mysql.i386 0:5.0.77-4.el5_4.1 set to be updated
--> Running transaction check
---> Package mysql-bench.i386 0:5.0.77-4.el5_4.1 set to be updated
---> Package mysql-devel.i386 0:5.0.77-4.el5_4.1 set to be updated
---> Package mysql-server.i386 0:5.0.77-4.el5_4.1 set to be updated
---> Package mysql-test.i386 0:5.0.77-4.el5_4.1 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================================
Package Arch Version Repository Size
=========================================================================================
Updating:
mysql i386 5.0.77-4.el5_4.1 update 4.8 M
Updating for dependencies:
mysql-bench i386 5.0.77-4.el5_4.1 update 507 k
mysql-devel i386 5.0.77-4.el5_4.1 update 2.4 M
mysql-server i386 5.0.77-4.el5_4.1 update 9.8 M
mysql-test i386 5.0.77-4.el5_4.1 update 3.7 M
Transaction Summary
=========================================================================================
Install 0 Package(s)
Update 5 Package(s)
Remove 0 Package(s)
Total download size: 21 M
Is this ok [y/N]: y --敲y 确认安装,可以在用yum install 时加上-y参数直接确认
Downloading Packages:
yum erase 删除软件包,和yum install 相反
[root@li yum.repos.d]# yum erase mysql
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package mysql.i386 0:5.0.77-4.el5_4.1 set to be erased
--> Processing Dependency: libmysqlclient.so.15 for package: mysql-devel
--> Processing Dependency: libmysqlclient.so.15 for package: mysql-server
--> Processing Dependency: libmysqlclient.so.15 for package: mysql-test
--> Processing Dependency: libmysqlclient.so.15 for package: perl-DBD-MySQL
--> Processing Dependency: libmysqlclient.so.15 for package: mysql-connector-odbc
--> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15) for package: mysql-server
--> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15) for package: mysql-connector-odbc
--> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15) for package: perl-DBD-MySQL
--> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15) for package: mysql-test
--> Processing Dependency: libmysqlclient_r.so.15 for package: mysql-devel
--> Processing Dependency: libmysqlclient_r.so.15 for package: mysql-connector-odbc
--> Processing Dependency: libmysqlclient_r.so.15 for package: mysql-server
--> Processing Dependency: libmysqlclient_r.so.15(libmysqlclient_15) for package: mysql-server
--> Processing Dependency: libmysqlclient_r.so.15(libmysqlclient_15) for package: mysql-connector-odbc
--> Processing Dependency: mysql = 5.0.77-4.el5_4.1 for package: mysql-devel
--> Processing Dependency: mysql = 5.0.77-4.el5_4.1 for package: mysql-bench
--> Processing Dependency: mysql = 5.0.77-4.el5_4.1 for package: mysql-server
--> Processing Dependency: mysql = 5.0.77-4.el5_4.1 for package: mysql-test
--> Running transaction check
---> Package mysql-bench.i386 0:5.0.77-4.el5_4.1 set to be erased
---> Package mysql-connector-odbc.i386 0:3.51.26r1127-1.el5 set to be erased
---> Package mysql-devel.i386 0:5.0.77-4.el5_4.1 set to be erased
---> Package mysql-server.i386 0:5.0.77-4.el5_4.1 set to be erased
---> Package mysql-test.i386 0:5.0.77-4.el5_4.1 set to be erased
---> Package perl-DBD-MySQL.i386 0:3.0007-2.el5 set to be erased
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================================
Package Arch Version Repository Size
=========================================================================================
Removing:
mysql i386 5.0.77-4.el5_4.1 installed 7.9 M
Removing for dependencies:
mysql-bench i386 5.0.77-4.el5_4.1 installed 2.6 M
mysql-connector-odbc i386 3.51.26r1127-1.el5 installed 419 k
mysql-devel i386 5.0.77-4.el5_4.1 installed 5.6 M
mysql-server i386 5.0.77-4.el5_4.1 installed 21 M
mysql-test i386 5.0.77-4.el5_4.1 installed 27 M
perl-DBD-MySQL i386 3.0007-2.el5 installed 326 k
Transaction Summary
=========================================================================================
Install 0 Package(s)
Update 0 Package(s)
Remove 7 Package(s)
--上面要注意的是:
安装mysql时由于依赖性一起安装了5个包,但删除mysql时由于依赖性一起删除了7个包,那要注意的就是多的这两个包,要看一下,是否是系统其他程序或服务要调用的,要再安装回去
yum grouplist 列出组的信息,与安装系统时选的软件包组是一致的
确认Development Libraries
Development Tools 已经安装
yum groupinstall 安装一个组
[root@li yum.repos.d]# yum groupinstall 'News Server,DNS Name Server' --同时安装多个组,组名可以直接用鼠标复制下来,如果用手写要注意大小写和空格
yum grouperase 删除一个组
-----------------------------------------------------------------------
使用yum 要注意的几点:
1,例子:如果用的是英文操作系统,但是忘了装中文支持,或者是装系统时忘了装一些包,但想不起是什么包
2,system-config-packages 图形调出安装系统时自定义包的界面,然后再装
3,
导入gpg key 使用系统支持非本系统的包,网上软件仓库的网址一般都会有gpg key文件
rpm --import RPM-GPG-KEY-redhat-release
----
手动建立自己的rpm软件包仓库
例子:我机子上的/share/soft/soft/openvpn 下的
lzo-1.08-4.2.el5.rf.i386.rpm openvpn-1.4.3-0.el5.rf.i386.rpm
openswan-2.4.7-3.fc7.i386.rpm
这三个包做一个软件包仓库
--第一步:
在yum的配置文件里加上
[openvpn]
name=openvpn
baseurl=file:///share/soft/soft/openvpn
enabled=1
gpgcheck=0
yum list --此时不能用,会报如下错误
file:///share/soft/soft/openvpn/repodata/repomd.xml: [Errno 5] OSError: [Errno 2] No such file or directory: '/share/soft/soft/openvpn/repodata/repomd.xml'--报错找不到软件包仓库下的repodata目录下的repomd.xml
--第二步
创建软件包信息,使用createrepo命令创建,此命令由createrepo-0.4.11-3.el5命令提供,先装这个包
cd /share/soft/soft/openvpn -- cd到软件包仓库目录
[root@li openvpn]# createrepo . --用此命令创建出repomd.xml信息文件
3/3 - lzo-1.08-4.2.el5.rf.i386.rpm
Saving Primary metadata
Saving file lists metadata
Saving other metadata
[root@li openvpn]# ls repodata/ --就可以看到此目录下生成了repodata的目录和此目录下的几个信息文件
filelists.xml.gz other.xml.gz primary.xml.gz repomd.xml
--第三步
[root@li openvpn]# yum list |grep lzo --使用yum发现可以找到openvpn里的包了
This system is not registered with RHN.
RHN support will be disabled.
lzo.i386 1.08-4.2.el5.rf openvpn
-------------------------------------------------------------------------------
--进程管理
运行一个程序,会打开一到多个进程
pstree --打印进程树,可以清楚地看出进程之间的关系
init├─gnome-terminal─┬─bash───pstree --这里可以看到由init进程产生gnome-terminal,再产生bash,再产生pstree命令,进程之间有父进程和子进程的关系
│ ├─2*[bash]
│ ├─gnome-pty-helpe
│ └─{gnome-terminal}
[root@li openvpn]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 09:14 ? 00:00:00 init [5]
root 2 1 0 09:14 ? 00:00:00 [migration/0]
root 3 1 0 09:14 ? 00:00:00 [ksoftirqd/0]
root 4 1 0 09:14 ? 00:00:00 [watchdog/0]
root 5 1 0 09:14 ? 00:00:00 [migration/1]
[root@li openvpn]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2072 620 ? Ss 09:14 0:00 init [5]
root 2 0.0 0.0 0 0 ? S< 09:14 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? SN 09:14 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S< 09:14 0:00 [watchdog/0]
root 5 0.0 0.0 0 0 ? S< 09:14 0:00 [migration/1]
root 6 0.0 0.0 0 0 ? SN 09:14 0:00 [ksoftirqd/1]
root 7 0.0 0.0 0 0 ? S< 09:14 0:00 [watchdog/1]
[root@li openvpn]# ps -ef |grep httpd
root 6540 1 0 13:49 ? 00:00:00 /usr/sbin/httpd
apache 6541 6540 0 13:49 ? 00:00:00 /usr/sbin/httpd
apache 6542 6540 0 13:49 ? 00:00:00 /usr/sbin/httpd
apache 6543 6540 0 13:49 ? 00:00:00 /usr/sbin/httpd
apache 6544 6540 0 13:49 ? 00:00:00 /usr/sbin/httpd
apache 6546 6540 0 13:49 ? 00:00:00 /usr/sbin/httpd
apache 6547 6540 0 13:49 ? 00:00:00 /usr/sbin/httpd
apache 6548 6540 0 13:49 ? 00:00:00 /usr/sbin/httpd
apache 6549 6540 0 13:49 ? 00:00:00 /usr/sbin/httpd
root 6599 3666 0 13:56 pts/1 00:00:00 grep httpd
[root@li fms]# ps -ef |grep httpd |grep -v grep
root 6656 1 0 14:00 ? 00:00:00 /usr/sbin/httpd
apache 6657 6656 0 14:00 ? 00:00:00 /usr/sbin/httpd
apache 6658 6656 0 14:00 ? 00:00:00 /usr/sbin/httpd
apache 6659 6656 0 14:00 ? 00:00:00 /usr/sbin/httpd
apache 6660 6656 0 14:00 ? 00:00:00 /usr/sbin/httpd
apache 6662 6656 0 14:00 ? 00:00:00 /usr/sbin/httpd
apache 6663 6656 0 14:00 ? 00:00:00 /usr/sbin/httpd
apache 6664 6656 0 14:00 ? 00:00:00 /usr/sbin/httpd
apache 6665 6656 0 14:00 ? 00:00:00 /usr/sbin/httpd
kill -9 强制杀进程
-15 正常关掉进程
killall 服务名 --把服务相关的进程全杀掉 例如killall httpd
ps -ef |grep httpd |xargs kill -9 --找出与httpd相关的进程,然后传给kill -9 杀掉
--------------------
top 命令
top - 14:08:28 up 4:54, 3 users, load average: 0.08, 0.12, 0.08-- 当前系统时间,up为系统正在运行,开机后运行的时间和,当前一共登录的用户,CPU负载
Tasks: 161 total, 1 running, 159 sleeping, 0 stopped, 1 zombie
Cpu(s): 4.5%us, 0.7%sy, 0.0%ni, 94.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2065980k total, 2012996k used, 52984k free, 71848k buffers
Swap: 4096564k total, 136k used, 4096428k free, 1579564k cached
load average: 0.08, 0.12, 0.08--分别代表cpu一分钟,五分钟,十五分钟的平均负载
当负载值长期大于5以上就要注意cpu负载过大,还要注意算上你的CPU核数
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3660 root 15 0 105m 17m 10m S 7.0 0.8 1:14.83 gnome-terminal
3323 root 15 0 352m 16m 7536 S 3.7 0.8 5:44.21 Xorg
6713 root 15 0 2336 1040 800 R 0.3 0.1 0:00.43 top
1 root 15 0 2072 620 532 S 0.0 0.0 0:00.44 init
2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
5 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/1
进程状态
s sleeping 睡眠状态,有可能会被其它信号或者程序唤醒
R running 运行状态
Z 僵死进程
D 不可中断的睡眠,一般是等待硬件的唤醒
T 进程暂停
top -b -n 2 > /root/Desktop/top.txt --把top的输出内容重定向到一个文件
[root@li www]# uptime
14:56:40 up 5:42, 3 users, load average: 3.78, 76.37, 69.22
-----------------------------------------------------
--查看内存使用情况
[root@li www]# free
total used free shared buffers cached
Mem: 2065980 2012420 53560 0 73192 1569380
-/+ buffers/cache: 369848 1696132
Swap: 4096564 136 4096428
第一行:total 总的物理内存
used 已经使用的物理内存
free 空闲的物理内存
shared 共享内存,它是用于unix与不同进程之间的一个数据共享,很少程序会用到,但是 oracle 会用到共享内存 --ipcs查看共享内存段的使用情况
buffers 缓冲区,用于存储速度不同步的设备或者优先级不同的设备之间的传输数据的区域。通过缓冲区,可以使进程之间的相互等待减少,从而使从速度慢的设备读入数据时,速度快的设备的操作不发生间断。
cached 因为cpu的速度比内存快,会设立一级缓存,二级缓存的cache。但linux下free命令这里的cached指的是page cache的内存,文件系统的cache
2012420-73192-1569380 = 369848 --指的实实在在的程序用掉的内存
53560+73192+1569380 = 1696132 --指的就是实际可挪用的内存
2065980 =369848+1696132
--关于linux的内存释放
linux使用的内存不会象windows那样关掉一个进程或者程序,马上释放内存,
/proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches --linux下内存释放在这里指的就是丢掉cache,把这个值改为3就可以,但实际没有必要,实际生产环境不要乱用
------------------------------------------------
lilo 老的引导程序,现在用的极少
grub 系统引导程序
[root@li www]# vim /boot/grub/grub.conf --grub的配置文件
[root@li www]# ll /etc/grub.conf
lrwxrwxrwx 1 root root 22 Mar 27 03:14 /etc/grub.conf -> ../boot/grub/grub.conf
default=0 --默认进第一个系统
timeout=5 --有5秒选择时间,这里可以写负数,指的是一直在等待,一定要用户选择
splashimage=(hd0,0)/grub/splash.xpm.gz --指的是grub界面的图片
title Red Hat Enterprise Linux Server (2.6.18-164.el5) --指grub界面的系统标识
root (hd0,0) --hd0是由/boot/grub/device.map来指定 这里= /dev/sda1
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/1 rhgb quiet
initrd /initrd-2.6.18-164.el5.img
cat /boot/grub/device.map
(fd0) /dev/fd0
(hd0) /dev/sda
kernel /vmlinuz-2.6.18-164.el5 这一行有两种情况
第一种: /boot 单独分了一个区 那么 /vmlinuz-2.6.18-164.el5的根指的就是你的/boot
第二种: /boot没有单独分区 那么写法应该为/boot/vmlinuz-2.6.18-164.el5
root=LABEL=/1 rhgb quiet --定义根的位置 ,可以写成label的形式或者是/dev/sdax的形式
rhgb表示redhat graphics boot,就是会看到图片来代替启动过程中显示的文本信息,这些信息在启动后用dmesg也可以看到
quiet表示在启动过程中只有重要信息显示,类似硬件自检的消息不回显示
-----------------------
给grub加密码
[root@li ~]# grub-md5-crypt --用此命令产生一个密码加密串
Password:
Retype password:
$1$JWQIX/$tYXWeDn3HPj9LYZezTuTI/ --输两次密码就可以产生加密串
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz --在下面加上加密信息
password --md5 $1$JWQIX/$tYXWeDn3HPj9LYZezTuTI/
title Red Hat Enterprise Linux Server (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/1 rhgb quiet
initrd /initrd-2.6.18-164.el5.img
grub-install /dev/sda --把当前系统的/boot/grub/grub.conf安装到硬盘
--当装了两个linux系统,默认情况用的是第二个系统的grub ,如果要用第一个系统的grub,可以进入第一个系统,敲grub-install /dev/sda这个命令
nautilus /www/ 以图形化打开/www目录
-------------------------------------
--grub排错引导例子:
当grub丢失,或者 grub写的有错误时,进系统时会发现grub文件找不到或者直接到grub>的界面
grub>root (hd0,0) --进到/boot分区
grub>kernel /vmlinuz-xxxxxxx ro root=LABEL=/ --root分区不要写错,label形式或者/dev/sdax形式都可以
grub>initrd /initrd-xxxxxxxx
grub>boot --boot代表启动
进入系统后,再修改好grub,看需要再grub-install /dev/sda
--------------------------------
引导windows的grub写法
title winxp
rootnoverify (hd0,0)
chainloader +1
-----------------------
netstat -ntlup
-n 以数字显示
-t 显示tcp连接
-l 显示监听
-u 显示udp连接
-p 显示连接的program 程序
[root@li ~]# netstat -ntlup |grep 80
tcp 0 0 :::80 :::* LISTEN 2868/httpd
题目:
1,熟练写好本地yum和远程yum源,熟练
yum clean all
yum list
yum install
yum erase
yum grouplist
yum groupinstall
yum grouperase 等命令
2,找几个非iso里的rpm包,自己手动建立一个软件仓库,并要求让yum程序支持
3,熟练进程管理的各种命令,尝试kill掉一些进程(例如ssh上来的其他人)
4,备份好你的grub,然后再删除掉/boot/grub/grub.conf,重启系统用grub>模式引导进入系统,再尽量手动写出grub文件,加上grub密码,再引导成功就OK
http://10.1.1.35/ule_basic/ule05.txt
最新推荐文章于 2010-07-24 12:13:00 发布