一、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