一.有关linux的小知识
  1.对于操作系统而言,用户必须通过接口才能和计算机相连,
   对于linux操作系统有两种接口:
   CLI:
   显示设备
   物理终端:/dev/tty0
   虚拟终端:/dev/tty1-tty6    --->可以自定义的终端
   mingetty   --->启用虚拟终端的命令

   串行终端:/dev/ttys*,通过串行接口连接进来的终端
    /dev/xvc0             ----虚拟机上的串行终端
    /etc/intttab,   --->这是init初始化时读取的文件
    agetty    ----->启用串行终端

   系统控制台:/dev/console这是系统控制台的默认逻辑设备 ,(/dev/tty0,/dev/fb0)这是系统控制台的默认输出终端
   console=ttyS0      ------>这是定义系统控制台的输出终端
  
  模拟终端:/dev/pts/N
    X window, Terminal
    ssh,telnet  --->也是连接模拟终端设备
  
   GUI:

2.xclock     ------>可以打开一个小时钟窗口

3.X &     ----->启动了桌面的服务了,即x server 服务
  要想让图形界面真正的运行起来,还需要运行
  xterm &     ---->这可以打开一个命令窗口,就是linux图形界面下的终端
  twm  &      ---->这是在上面打开的小图形窗口上输入的,twm叫窗口管理器
  gnome-session    ------>这也是在上面打开的小窗口内输入,这样,就可以打开图形桌面了
 

  X & -->xterm--->twm & --->gnome-session

4./etc/X11/xorg.conf    ---->里面定义了我们用的默认设备和驱动
  /etc/X11/prefdm    --->定义启用图形界面的文件
  /etc/sysconfig/desktop  ---->如果定义有多个图形界面的,可以在这里定义启用哪个图形界面
  在这个文件里没有定义哪个为默认图形界面
 /etc/inittab     -->在这个文件里的最后一句话有定义启用哪个图形界面
 
 
5.system-config-display   ---->可以显示图形界面来配置分辨率的

6.xhost + 192.168.0.1  ---->定义那台主机可以显示我的主机桌面
 xhost + [IP/HOST]
 xhost - [IP/HOST]

export DISPLAY=HOST:N.n     这个HOST是指远端主机

6.nohup wget http://192.168.0.254/pub/rhel  --->nohup让进程在后台运行,当我们logout时,他不会退出
 screen    --->支持在字符界面下打开n个终端
 screen -ls  --->查看我们调到后台去的screen的号码
 screen + r 号码    ----->重新打开调到后台去的screen窗口
  ctrl+a c    重新打开窗口
  ctrl+a d    退出窗口
在书的第8页,有详细介绍
 

二.有关用户的权限的问题
  1.管理员可以给某个用户root权限去访问某个目录
   /etc/sudoers   ---->这个文件定义了那些用户可以用那些用户的权限执行那些命令和目录
   在该文件内定义的模式:who where=(who) what
  eg: A 192.168.0.0/24=(root) /sbin/ifconfig
      A , dudo /sbin/ifconfig      ---->A用户登录自己的账号之后,用此命令可以执行root权限

   eg:在redhat用户下添加用户,默认情况下是不可能的,需要root权限,下面是解决这个问题的
      vim /etc/sudoers
      在该文件内最后面添加:
     redhat 192.168.0.0/24=(root) /usr/bin/useradd    --->就是让redhat有root的添加用户的权限
     w!      ---->添加完成之后强行保存,因为它是只读的
     然后:su - redhat
           sudo /usr/sbin/useradd  user1          ---->这里需要全路径,因为redhat用户没有环境变量

     sudo 是执行命令

  2.定义一组用户用某些root权限的方法
    模式:User_Alias-NETMANAGER=A,B,C  --->这是定义别名,NETMANAGERS这我们定义的组名,而且必须是大写的英文字母
          Host_Alias NET=192.168.0.0/24  --->这是定义网段的,不能离开这个网段
          Cmnd_Alias NETWORK=/sbin/ifconfig, /sbin/netstat  --->定义那些命令可以使用
          NETMANAGER NET=(root) NETWORK   --->组名是上面定义好的,能用的命令也是上面定义好的
         
   NETMANAGER MET=(root) NOPASSWD:NETWORK, PASSWD:/usr/sbin/useradd   --->这条命令是上面的扩展,既可以使用别名,也可以直接定义,还可指定那些命令需要输密码,那些命令不需要输密码。

  
  3.让某个用户又关机权限
   vim /etc/sudoers
   在最后面添加:redhat ALL=(root) NOPASSWD:/sbin/shutdown -h now  ---->让redhat用户可以ALL主机上执行关机命令,而且执行该命令不需要输入密码。

   sudo /sbin/shutdown -h 12:00 &  --->让其在12:00的时候关机
   sudo /sbin/shutdown -c  --->取消上面的作业

 4.让某个用户登录上面就是为了关机的设置方法
   第一种:我们只需要让关机命令写入用户登录时必须读的文件里就可以了,如:写在家目录里的.bash_profile文件里
  eg:vim ./bash_profile
   在最后面加一句:sudo /sbin/shutdown -h now
 
   第二种:写一个小脚本,


三.软件包的相关知识
  1.rpm:Redhat Package Manager,perl编写
    rpm:RPM package Mangager   --->这是rpm现在的 名字的意思

  2.pack_name-version-release.arhc.rpm     ---->这是rpm包的命名含义
   eg:bash-3.2.6-i386.rpm   --->bash是名字,3.2.6分别是主版本号、次版本号、发行号(修正号),i386平台架构,rmp是特别后缀
    这些包都有源代码包,bash-3.2.6.tar.gz ---->这就是源代码包

  3.如果没有卸载干净,那么再安装时,就会告诉你已经存在,那么以前的文件将会被命名为rpmc的后缀名

  4.yellow dog 开发出了yum
   yum:yellow update manager   
   yum 必须装rpm包,不能装其它的安装包

  5.rpm -e   卸载
   
   rpm 安装
     --nodeps   忽略依赖关系
     --replacepkgs    替换原来没卸载掉的文件
     --force    强制安装
     --justdb   仅仅更新数据库

   rpm  升级
     -F   升级已经安装的软件包
     -U   升级所有软件包

   rpm 查询
     -q   查询的必选的选项
     -i   查询显示详细信息
     -l   查询安装了软件列表
     -f   查询文件时由哪个软件包安装得到的
     -c   查看某个服务有哪些配置文件
     -d   查看某个服务的帮助文档
     --scripts 查看安装服务的时候执行了那些脚本文件
     eg: rpm -q --scripts httpd
     --change  查看软件打bug的过程
   rpm 校验
     -V

   rpm --initdb  不会覆盖原有数据库
   rpm --rebuilddb  会覆盖原有数据库

四.创建yum服务的步骤
  1.create a file /etc/yum.repos.d/*.repo
     内容:下面是模式
    [repo-name]
     name=A nice description     ---->随便取的人类可以识别的名字
     baseurl=file:///media/cdrom   ---->定义路径的
     enabled=1                   ---->定义仓库是否启用
     gpgcheck=1                  ---->定义是否校验

五.yum的常用命令
   yum  
       install               安装软件包
       reinstall             重装软件包
       remove                卸载软件包
       update                 升级软件包
      list all/installed/available           列出所有软件包/安装过的/可安装的软件包      
       grouplist            显示系统上的组
       groupinstall          以组的形式安装软件包
       info               显示一些软件的详细信息
       groupinfo           显示组的信息
       search             查找包含某个字符串的软件包
       provides           查询文件是有哪个软件包安装出来的 =rpm -qf
       localinstall 路径     安装本地rpm包(会检查签名)
       我们要想不让它检查,可以使用 --nogpcheck
       eg:yum --nogpgcheck localinstall ./zsh-4.2.6-3.el5.i386.rpm
       repolist         显示yum可用的仓库  

       clean all         清空所有缓存

六.创建本地yum服务器:  这样的配置不能作为远程的yum服务,只能作为本地的yum源
   1.mkdir /var/yum
   2.mount /dev/cdrom /mnt/cdrom
   3.cp -pR /mnt/cdrom/*  /var/yum
   在这个目录里放四个文件:Server,VT,Cluster,ClusterStorage
   这四个目录需要导出
   4.rpm -ivh /mnt/cdrom/Server/createrepo-0.4.4-2.fc6.noarch.rpm   --->安装createrepo软件包
   5.创建repository信息库
    createrepo -g  /mnt/cdrom/Server/repodata/comps-rhel5-server-core.xml /var/yum/Server
    createrepo -g  /mnt/cdrom/Cluster/repodata/comps-rhel5-cluster.xml /var/yum/Cluster
    createrepo -g  /mnt/cdrom/ClusterStorage/repodata/comps-rhel5-cluster-st.xml /var/yum/ClusterStorage
    createrepo -g  /mnt/cdrom/VT/repodata/comps-rhel5-vt.xml /var/yum/repodata/comps-rhel5-vt.xml /var/yum/VT

  
   6.cd /etc/yum.repos.d
     vim ****.repo
     内容:
    [Server]
    name=Server Directory
    basename=file:///var/yum/Server
    enabled=1
    gqgcheck=0

七.让yum源指向光盘步骤
   1.mkdir /var/yum
   2.mount /dev/cdrom /mnt/cdrom
   3.将现有的server.repo移到一边去,并创建local.repo文件,
     vim local.repo
     内容:
   [base]
   name=Server Dir
   baseurl=file:///mnt/cdrom/Server
   enabled=1
   gpgcheck=0

   [VT]
   name=VT
   baseurl=file:///mnt/cdrom/VT
   enabled=1
   gpgcheck=0

   [Cluster]
   name=Cluster Dir
   baseurl=file:///mnt/cdrom/Cluster
   enabled=1
   gpgcheck=0

   [ClusterStorage]
   name=ClusterStorage Dir
   baseurl=file:///mnt/cdrom/ClusterStorage
   enabled=1
   gpgcheck=0