一、CLI:

显示设备
1、物理终端:/dev/tty0     
X86,VGA
Non_x86,Frame buffer帧缓冲
2、虚拟终端:/dev/tty1-6,mingetty初始化启动终端
3、串行终端:串行链路接入  /dev/ttyS*,/dev/xvc0虚拟机
init默认读取配置文件/etc/inittab
agetty
 
4、系统控制台:/dev/console系统默认逻辑设备。开机引导信息等默认映射到系统控制台
/dev/tty0,/dev/fb0
如:console=ttyS0  console=ttyS1  (只有最后一个被读取)
5、模拟终端:/dev/pts/N
X window tty查看当前正在使用的模拟终端,如ssh,telnet,screen
注:X protocol(C/S架构)-->X11R7最新协议7次改进     X386早期商业软件   XFree86早期开源实现软件   
Xorg功能强大灵活,开源组织图形实现
 
Xorg--X server,X client /etc/X11/xorg.conf   prefdm实现启动图形桌面
窗口管理器
桌面Gnome,KDE
 
 
 
X &-->xterm-->twm &(窗口管理器)-->gdm(登录管理器,验证用户身份) gnome-session或/etc/X11/prefdm
startKDE
 
 
system-config-display[--reconfig]
--set-driver=vesa
/etc/sysconfig/desktop定义默认图形桌面
/etc/initab
 
 
killall X
echo &DISPLAY
xhost,xauth,xssh指定主机在此显示桌面
 
X server:
xhost + IP/HOST             明文
      - 取消主机到此显示
X client:
export DISPLAY=RHOST:N.n
 
 
ssh -X -l root IP 加密转发图形桌面请求
 
nohup ... &
screen打开n个模拟终端
screen -ls
screen -r id
二、给普通用户某些权限
su -
sudo -l查看以谁的身份运行
/etc/sudoers [who where=(runas) what]     visodu编辑此文件
如:A 192.168.0.0/24=root NOPASSWD:/sbin/ifconfig
sudo /usr/sbin/useradd  fedora 
定义组:
User_Alias NETMANAGER=A,B,C
Host_Alias NET=192.168.0.0/24
Cmnd_Alias NETWORK=/sbin/ifconfig,/sbin/netstat  
 
NETMANAGER NET=(root) NOPASSD:NETWORK,PASSWD:/usr/sbin/useradd
%netmanager NET=(root) NOPASSD:NETWORK,PASSWD:/usr/sbin/useradd
 
 
三、rmp(Redhat Package Manager)
--->RPM Package Manager
 
1、binary,sample configuration file,manual,rpm
package_name-version-release.arhc.rpm  如:bash-3.2.6-i386.rpm 二进制包
bash-3.2.6.tar.gz  源码包,需编译
yum:yellow dog update manager 升级版的rpm工具
 
 
yum repository   yum库
pirut图形界面软件包管理工具
 
2、rpm -ivh v安装详情,可多个v     h以#显示安装进度
-e  package_name  只需指定软件包名字
--nodeps 无视依赖关系,能装上,但未必可用
--replacepkgs修复,重装
--force 强行安装
--test 测试安装
--justdb 更新数据库,非安装
升级:
rpm  -F  安装包已经存在
-U (update)  可不存在 
--oldpackage降级安装  
查询
rpm  -q 查看软件包安装与否
-a 所有已安装包
-d 文档帮助信息
-R 软件包的依赖需求
-i 显示摘要信息
-l 列出包中文件 
-f 文件由哪个软件包安装得来
-c 安装后生成哪些配置文件 
--scripts 提供的脚本(常用) 
--provides 提供哪些额外功能(不常用)
--changelog 版本历史
--queryfomat 或 -qf  自定义显示格式    如:rpm -q httpd --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n"
 
校验:
rpm  -V pkg_name
rpm,pkg md5,rpm database
 
S file Size differs
       M Mode differs (includes permissions and file type)
       5 MD5 sum differs
       D Device major/minor number mismatch
       L readLink(2) path mismatch
       U User ownership differs
       G Group ownership differs
       T mTime differs
 
/var/lib/rpm
tripwire对系统每个文件校验
注:内核不能以升级的方式安装  可以rpm -i
 
3、
数字签名,保证数据完整性,身份验证
单向加密:md5,sha1  特征码,如:md5sum /etc/fstab
公钥加密:私钥
rpm -qa gpg-pubkey查看导入的公钥信息
rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
rpm -K --nodigest  --nosignature
rpm --checksig
 
 
恢复数据库文件/var/lib/rpm
rpm --initdb  存在更新信息,不会覆盖原有数据库
--rebuilddb 重新创建数据库,覆盖,可能损坏原文件
四、yum         /etc/yum.repos.d/*.repo
[repo-name] 仓库名字
name=A nice description
baseurl=    yum仓库实际位置   file:///   http://  ftp://  
enabled=1   1启用,0关闭    (若没有则默认启用)
gpgcheck=1  1校验,0不校验
gpgkey=file:///etc/pki/
 
 
—————————————————
repomd.xml |
primary.xml.gz  |yum中所有软件包信息,元数据信息
filelists.xml.gz|子集
other.xml.gz |
comps*.xml |
—————————————————
 
man yum
yum clean all
list  all|available|installed|updates     支持文件名通配表达式
install  -y
reinstall  -y
remove|erase
update    对于内核不会更新,而是重新安装,而rpm -i
yum provides|whatprovides
groupinstall
grouplist
groupinfo
groupremove
search    只要包含某些字符串就显示
localinstall    如:yum --nogpgcheck localinstall  ......
localupdate
downgrade 降级
repolist  显示当前系统所有可用仓库
五、做yum repository
 
#!/bin/bash
 
nowuser=`whoami`
[ $nowuser != root ] && exit 0
read -p "Please input your name:" username
A=`cut -d: -f1 /etc/passwd|grep "$username"`
if [ $A -eq 0 ]; then
        read -p "Please give your command:" usercomm
        echo "$username ALL=(root) NOPASSWD:$usercomm" >> /etc/sudoers
else
        read -p "You fool."; exit 0
fi
 
echo "sodu $usercomm" ~$username/.bash_profile
 
 
 
 
 
 
#!/bin/bash
 
 
cd /var
if [ -d '/var/yum' ]; then
        [ -n /var/yum ] || mv /var/yum /var/yum.old; mkdir /var/yum
}
 
Createrepo {
        rpm -q createrepo
if [ $? -eq 0 ]; then
        createrepo -g /media/cdrom/Server/repodata/comps*.xml /var/yum/Server
        createrepo -g /media/cdrom/VT/repodata/comps*.xml /var/yum/VT
        createrepo -g /media/cdrom/Cluster/repodata/comps*.xml /var/yum/Cluster
        createrepo -g /media/cdrom/ClusterStorage/repodata/comps*.xml /var/yum/ClusterStorage
else
        rpm -ivh /media/cdrom/Server/createrepo-0.4.11-3.el5.noarch.rpm
fi
}
 
myrepo{
        cd /etc/yum.repos.d/
        touch aa.repo
cat >> aa.repo <<EOF
[base]
name=Server
baseurl=file:///media/cdrom/Server
gpgcheck=0
 
[Cluster]
name=Cluster
baseurl=file:///media/cdrom/Cluster
gpgcheck=0
 
[VT]
name=VT
baseurl=file:///media/cdrom/VT
gpgcheck=0
 
[ClusterStorage]
name=ClusterStorage
baseurl=file:///media/cdrom/ClusterStorage
gpgcheck=0" 
EOF
}
 
Createrepo
myrepo