> Linux教程 > linux基础 >

yum安装,进程查看,grub启动管理

第一、yum的使用

    yum客户端的设置:
        vim /etc/yum.repos.d/rhel-debuginfo.repo   《--默认的配置文件,系统自带
                <---配置文件的名字无关紧要,但后缀一定 .repo

[Server]   《---软件组的定义开始
name=Server 《--软件组的名字
baseurl=ftp://10.1.1.20/Server  《--软件源的路径
enabled=1         《--是否启用这个
gpgcheck=0       
gpgkey=ftp://10.1.1.20/RPM-GPG-KEY-redhat-release


    yum list
    yum list | grep kernel
    yum install kernel-devel

[root@station8 ~]# export LANG=en_US.UTF-8
[root@station8 ~]# yum grouplist
[root@station8 ~]# yum groupinstall "X Software Development"

安装开发工具和开发库分组:
yum groupinstall "Development Tools" "Development Libraries"


    清除已经下载的软件包的信息
        yum clean all

    卸载单个软件包
        yum erase kernel-devel  -y
       
    卸载整个分组的软件包
        yum groupremove "X Software Development"

配置本地yum源的过程

1、挂载光盘,获取软件资源,就弄好的本地yum源 《---yum 服务端
mount -o loop /jjw/rhel-5.3-server-i386-dvd.iso /mnt

2、更新yum客户端的配置文件
cd /etc/yum.repos.d/
vim local.repo
[Server]
name=Server
baseurl=file:///mnt/Server
enabled=1
gpgcheck=0

3、更新yum的缓存信息
yum clean all
yum list

注意了:这种搭建方法,软件包的源位置只是临时从iso镜像挂载到/mnt目录的,重启电脑或者取消挂载之后,软件源就失效了,所以想建立永久的软件源,可以把光盘的所有文件复制到本地新建一个目录里,然后修改yum客户端文件,把路径修改正确




第二、进程管理

进程状态:
    S <---进程正在睡眠,可中断睡眠状态
    R <---Running  进程正在运行
    D <---不可中断的睡眠,一般等待硬件的相应
    T <---程序暂停了
    Z <---僵尸进程  父进程死了,子进程来不及处理

ps aux   ;  ps -ef   <---常用的常数组合

pstree   <---打印进程关系树
    例子:
[root@dns /]# pstree | grep  -A 3 -B 3  pstree
     |-gnome-terminal-+-bash-+-gedit
     |                |      `-ssh
     |                |-bash-+-grep    《---留意这里
     |                |      `-pstree
     |                |-gnome-pty-helpe
     |                `-{gnome-terminal}
     |-gnome-vfs-daemo
[root@dns /]# bash
[root@dns /]# pstree | grep  -A 3 -B 3  pstree
     |-gnome-terminal-+-bash-+-gedit
     |                |      `-ssh
     |                |-bash---bash-+-grep   《--留意这里的对比
     |                |             `-pstree
     |                |-gnome-pty-helpe
     |                `-{gnome-terminal}
     |-gnome-vfs-daemo



top命令(任务管理器)

    shift + > 
    shift + <
    shift + m
    shift + p
    d 

load average: 0.10, 0.28, 0.26   《-平均1,5,15系统负载,如果超过5以上,就说明比较忙


top -b -n 3  > ./top.txt

kill 信号发送工具

[root@dns ~]# ps -ef | grep firefox
root      3197     1  0 09:59 ?        00:00:00 /bin/sh /usr/lib/firefox-3.0.5/run-mozilla.sh /usr/lib/firefox-3.0.5/firefox -UILocale zh-CN
root      3214  3197  0 09:59 ?        00:00:33 /usr/lib/firefox-3.0.5/firefox -UILocale zh-CN
root     10213  3103  0 13:54 pts/1    00:00:00 grep firefox
[root@dns ~]# kill -15 3214  <---友好的终止程序


kill -9 3214  <---发信号给内核,直接干掉进程,进程本身收不到这个信号

使用场景:踢掉某个用户的登录
[root@station8 ~]# w
13:59:29 up 21 min,  3 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                13:39   47.00s  0.07s  0.07s -bash
root     tty2     -                13:59    5.00s  0.01s  0.01s -bash
root     pts/0    station20.cluste 13:59    0.00s  0.02s  0.00s w   《---踢掉这个远程用户
[root@station8 ~]# ps aux | grep pts/0
root      3150  0.3  0.2   9980  2888 ?        Ss   13:59   0:00 sshd: root@pts/0
root      3153  0.0  0.1   4904  1560 pts/0    Ss   13:59   0:00 -bash  《--这是要找的pid
root      3185  0.0  0.0   4252   936 pts/0    R+   13:59   0:00 ps aux
root      3186  0.0  0.0   3912   668 pts/0    R+   13:59   0:00 grep pts/0
[root@station8 ~]# kill -9 3153
Connection to 10.1.1.108 closed.


ps top free uptime


/proc伪文件系统的介绍
    常用的:
    1、启动IP数据包转发,实现软路由的功能
[root@dns proc]# cat /proc/sys/net/ipv4/ip_forward
0
[root@dns proc]# echo "1"> /proc/sys/net/ipv4/ip_forward
[root@dns proc]# cat /proc/sys/net/ipv4/ip_forward
1

    2、是否禁用icmp数据包的回应
echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all

    3、是否相应icmp广播包
[root@dns proc]# echo 0 >   /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts  <--0 代表相应
    测试 ping -b 10.1.1.0

    启用“忽略icmp广播包的相应”,默认值就是1
[root@dns proc]# echo 1 >   /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

    让配置永久生效:

shell> vim /etc/sysctl.conf
net.ipv4.ip_forward = 1  《---软路由就永久生效 ls /proc/sys/net/ipv4/ip_forward

shell> sysctl -p  《--让内核参数配置马上生效

===========================================

第三、Grub的学习
   
    配置文件的目录:
        /boot/grub/
        主配置文件: /boot/grub/grub.conf

1、第一种情况:/boot目录被单独放在一个分区

default=0   《---默认引导那个系统
timeout=5    《---等待5秒钟,如果没有进行任何输入选择,就自动进入默认的系统
splashimage=(hd0,0)/grub/splash.xpm.gz 《--hd代表磁盘,hd0代表它“认为“的第一块磁盘, 逗号右边的"0"代表第一个分区
password --md5 $1$m6jdNYT4$haLu0g2VP/BkTlL1NIkj31

title Red Hat Enterprise Linux Server (2.6.18-128.el5)
        root (hd0,0)  《--指定引导程序配置文件、以及内核镜像所在磁盘和分区,简单来说就是/boot所在分区
        kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/sda2 rhgb quiet  <---定义内核镜像的路径,还有系统的根分区所在的设备,还有一些内核的参数
        initrd /initrd-2.6.18-128.el5.img  《---随机内存盘,加载内核前先加载到内存,是一个微型的操作系统

title isoboot
  root (hd0,1)
kernel /isoroot/uvmlinuz boot=casper iso-scan/filename=/isoroot/0.91.iso quiet splash ro locale=zh_CN.UTF-8
initrd /isoroot/uinitrd.gz

第二情况:没有单独把/boot挂载单独一个分区,它只是根的一个普通文件夹

文件系统                                 容量  已用 可用 已用% 挂载点
/dev/sda2              30G   12G   16G  43% /
/dev/sda1             190M   11M  170M   7% /tmp

        root (hd0,1)  《---定义了/boot所在磁盘的分区
        kernel (hd0,1)/boot/vmlinuz-2.6.18-128.el5 ro root=/dev/sda2 rhgb quiet
        initrd /boot/initrd-2.6.18-128.el5.img

   







引导Windows的系统
title WinXP
        rootnoverify (hd0,0)  <---定义Windows安装所在的那个分区
        chainloader +1




=================================================

作业:
    1、让同学通过ssh登录你的系统,然后你尝试踢掉他的远程登录
    2、熟悉grub.conf配置文件的语法和grub交互模式的命令
        要求:删除/boot/grub/grub.conf配置文件(胆小者先备份)
            然后重启电脑,进到grub的交互模式(grub >),通过交互命令进行系统引导
            提示: a、root ( ... )
                b、 kernel /.....
                c、 initrd /.....
                d、 boot

    3、成功引导系统之后,手工编辑grub.conf配置文件,然后重新引导系统,看看是否配置成功;
    4、如果你引导成功,恭喜你,现在要求再次重启,熟悉grub引导菜单的使用,修改启动条目,让系统进入单用户模式,进去之后,把管理员密码修改一下,运行
        nysysv --level 35 把sendmail的服务禁止掉
    5、搭建本地yum源,并配置正确yum客户端配置文件
       
    6、man useradd,查看useradd的命令帮助,通过命令建立一个用户friday,用户的要求:
        a、家目录要求在/rhome/friday
        b、默认首先组(gid)要求是 tom,如果没有tom这个用户组,请实现建立
        c、另外还属于别的组(Gid),其他的组,随便你自己定义
        d、指定用户2009年10月25日帐号过期,过期后不能再登录
       

    7、建立一个文件夹/tmp/test,给予权限777
        建立文件夹/tmp/test/crazy ,给予权限 777
            问题1:管理员在/tmp/test/crazy/下建立任何文件,普通用户能删除吗?为什么?
            问题2:为了让普通帐号上传文件到/tmp/test/crazy里,其他帐号(管理员除外)不能对不属于自己的文件删除,需要怎么做?
            问题3:管理员想在/tmp/test/crazy下建立一个通告文件readme.txt,为了不然任何人删除它和修改它,该怎么做?
(责任编辑:IT)