--——————————第一章————————

一、终端控制以及图形界面控制介绍
CLI:
物理终端:对应/dev/tty0
虚拟终端:/dev/tty1-tty6,真正打开虚拟终端的是mingetty
串行终端:/dev/ttyS*
/etc/inittab 由/init在配置文件中定义
系统控制台:/dev/console (/dev/tty0) 
/dev/fb0(虚拟机的终端)
console=tty0 console=ttyS1
模拟终端:/dev/pts/N  x-windows ssh telnet
tty 用于查看当前正在使用的终端设备

x protool x386,是商业的 unix上图形显示方式 
XFree86 Xorg免费的基于Xfree86
xorg xfree86都是提供能够驱动显卡的驱动以及几个功能模块
想要打开窗口,用窗口管理器,
桌面管理器,管理桌面

windows中启动图形窗口:
在图形化界面X &(在linux启动xserver服务)-->xterm &(是窗口管理器)-->gnome--
session (Gnome桌面系统)
 
xorg 所有配置信息在/etc/X11下定义
在图形界面中在桌面系统后面还有登录系统
桌面管理器:Gnome,KDE,
/etc/X11/xorg.conf 定义键盘,鼠标,显卡,显卡驱动

system-config-display                     #配置显卡分辨率等信
system-config-display --reconfig          #重新默认配置
system-config-display --set-driver=vesa   #强制系统使用一个万能的驱动

真正启动图形界面的,真正控制桌面的脚本 vim /prefdm

vim /etc/sysconfig/destop配置文件定义开机启动KDE还是Gnome
desktop=“” #如果写KDE那么开机就启动KDE
echo $DISPLAY #定义当显示图形界面信息的时候显示到什么地方去,默认没有值,表示显示当前的链接
export DISPLAY=:0     #定义X
term                  #打开窗口管理器
/etc/X11/perefdm &    #打开图形桌面

xhost xauth ssh      #这几个命令定义哪个主机可以到主机显示窗口,常用xhost是基于主机
xhost + 192.168.0.254 #定义192.168.0.254可以到主机显示窗口
echo $DISPLAY
export DISPLAY=192.168.0.34:1.0  #允许图形窗口显示到192.168.0.34.
xhost + [ip/host] 添加允许访问
xhost - [IP/HOST] 取消图形控制  #这二个在xserver上执行
export DISPLAY=RHOST:N.n        #写远端的服务,在客户端执行
ssh -X -l root 192.168.0.254   #本地开的是图形界面,登录到远程服务器。
二、nohup、sreen后台运行命令:
nohup wget http://mirror.163.com/pub/rhel-5.4.iso &
让后台命令继续运行,但是送到后台的不能调到前台查看
screen                         #相当于不启动图形界面打开n个模拟终端
screen -ls                     #查看后台运行的程序
screen -r 1122                 #把后台进程号为1122的进程调到前台
ctrl+a+c                       #打开一个新的windows
ctrl+a+n                       #打开下一个windows
ctrl+a+p                       #打开上一个windows
结束screen                     #用exit
crtl+a+d                       #把所有的终端都放到后台去 
screen vi /etc/passwd          #打开一个新的screen并编辑,当退出编辑文件                                  后,screen也退出
三、sudo赋予权限命令:
sudo
/etc/sudoers                   #配置文件定义用户权限
visudo                         #专门用于编写sudo配置文件
sudo -l                        #查看用户可用的sudo命令有哪些
User_Alias NETMANAGER=a,b,c
HOST_Alias NET=192.168.0.0/24
Comand_Alias NETWORK=/sbin/ifocnfig, /sbin/netstat

NETMANGER NET=(root) NOPASSWD:NETWORK, PASSWD:/usr/sbin/useradd
授权abc三个用户在192.168.0.0网段上不用密码执行/sbin/ifconfig命令,用密码执行/sbin/netstat命令
%netmanger                    #授权一个组为netmanger
redhat ALL=(root) NOPASSWD/sbin/shutdown -h
允许redhat用户不用密码执行shutdown -h now命令
执行的时候必须用sudo /sbin/shutdown  #执行一个命令的时候必须sudo+命令的完 整路径

    ——————————————第二章——————————
 
一、rpm包介绍及用法:
1、rpm是redhat package manager的简称。早期用perl语言开发
现在rpm包已经被suse centos fedora等广泛采用作为软件包管理器
现在rpm是RPM package Manager的简写
 
2、rpm包的命名格式:
package_name_version_release.arhc_rpm
bash-3.2.6-i386.rpm
bash-3.2.6.tar.gz #源码包

3、rpm 用法
rpm [option] package_name(patch)
rpm是一种工具,对系统所有rpm包的管理
安装软件包:rpm -ivh /patch/to/rpm/file
卸载软件包:rpm -e 直接跟软件包名字
--nodeps         #忽略依赖关系
--replacepkgs    # 替换原有的包重新安装,修复软件包
--force          #表示强行安装
--test           #只是测试有没有依赖关系并不安装
--justdb         #更新rpm数据库

rpm -F           #更新软件包,旧包必须存在
rpm -U           #更新软件包,不管原来包有没有安装,没有则重新安装新的包

4、内核一般不能升级的方式安装
rpm -i 升级内核
rpm -U --oldpackage 包名  #降级软件包,旧的软件包必须存在

5、查询软件包
rpm -q           #查询软件包有没有存在
rpm -qa          #查询安装的所有软件包
rpm -ql          #查询软件包安装的有哪些文件
rpm -qi          #查询软件包的摘要信息
rpm -qf          #查询文件是由哪个rpm包生成的
rpm -qc          #查询一个软件包有哪些配置文件
rpm -qd          #查询软件包有哪些文档
rpm -qR requires #显示一个软件包运行需要哪些依赖
rpm -q --provides  #查看软件包有哪些扩展
rpm -q --scripts   #查看软件包运行哪些脚本
rpm -q --changelog #查看软件包发生了哪些改变
rpm -V pkg_name    #查看一个软件包有没有改变(校验软件包)
rpm -Va            #校验所有已安装的rpm包
rpm -V             #可以让用户很方便地检查,与安装的时候相比,某RPM包中的 文件是否发生了什么变化。 
在使用rpm -V时,出错提示符号分别表示某部分未通过校验 
S 文件大小 
M 文件权限与类型 
5 MD5求和 
D 设备文件的主、从号码 
L 符号连接文件找不到连接对象 
U 文件的所属用户 
G 文件的所属组 
T 更改时间
tripwire            #文件级别的安全,也是校验
rpm signature       #数字签名,保证数据完整性
数字签名是对文件计算特征码 /root/test.db
单向加密:md5,shal
md5sum /etc/fstab   #计算/etc/fstab文件的特征
公钥加密:私钥
rpm -qa -gpg-pubkey #查看系统已导入的公钥信
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release #导入公钥
rpm -K zsh-4.2.6.15.i386.rpm 检查rpm包的gpg签名
/var/lib/rpm        #rpm相关的数据库
rpm --initdb        #不会覆盖数据库,只是更新信息
rpm --rebuilddb     #重新创建数据库


二、YUM (yum是rpm的升级版)
yum 是Yellow dog Updater Modified的简称
yum依赖rpm,yum支持file:/// http:// ftp:// 三种共享方式
/etc/yum.conf #yum配置文件

/etc/yum.repo.d/local.repo
[repo-name]
name=A nice description         #描述这个文件的信息
baseurl=ftp://192.168.0.254/pub #定义yum仓库的位置
enabled=1                       #0表示仓库不启用
gpgcheck=1                      #校验信息,0不校验
gpgkey=file:///etc/pki/         #指定公钥文件位置

yum list all                    #显示安装的所有包
yum clean all                   #清空所有yum中的所有缓存信息
yum -y install pkg_name         #安装rpm包
yum reinstall pkg_name          #重新安装软件包
yum -y remove|erase pkg_name    #卸载软件包 
yum update                      #更新软件包
yum list available              #显示没有安装但可安装的软件包
yum list updates                #显示可升级的软件包
yum check-upda                  #检查有没有可更新的软件包
yum list kernel*                #查看可用的kernel软件包
yum provides|whatprovides=rpm -qf        #查看一个文件由哪个软件包安装的
yum groupinstall "Development Libraries" #安装某一个组
yum grouplist                   #显示系统上所有的组和已安装的
yum groupupdate|groupremove     #组软件包更新|组软件包卸载
yum groupinfo                   #显示软件包的摘要信息
yum serch httpd                 #查找关键字为http的软件包
yum localinstall                #安装本地的rpm包
yum --nogpgcheck localinstall /zsh-4.2.rpm #安装本地软件包不检查签名
yum repolist                    #用于显示系统所有可用的yum仓库

创建本地yum仓库
mkdir /var/yum
mount /dev/cdrom /media/cdrom
cp -r /media/cdrom/* /var/yum
creatrepo -g /media/cdrom/Server/repodata/comps*.xml  /var/yum/Server
创建yum仓库

vim /etc/yum.repos.dlocal.repo
[Server]
name=Server Directory
baseurl=file:///var/yum/Server
enable=1
gpgcheck=0

yum源可以直接指向光盘
ount /mdev/cdrom /media/cdrom  #先挂载光盘
vim /etc/yum.repos.d/local.repo
[Server]
name=Server Directory
baseurl=file:///media/cdrom/Server
enable=1
gpgcheck=0