1. tar
tar -cvf etc.tar /etc # 打包, 不会删除原文件
gzip etc.tar # 压缩, 会删除原文件, 生成etc.tar.gz文件
tar -zcvf etc.tar.gz /etc # 使用gz压缩格式归档
-jcvf etc.tar.bz2 # 使用bzip2格式压缩归档
-Jcvf etc.tar.xz # 使用xz格式压缩归档
# 可用于备份, 对root默认压缩归档时保留权限
tar -zxvf etc.tar.gz -C /data # 将etc.tat.gz开包并解压到/data目录下
2. sudo
# 只有root有权使用visudo命令编辑/etc/sudoer文件, 语法如下:
user machine=(run as) commands
local=(ALL) 只允许本机用户使用所有用户身份
run as: 以谁的身份来运行
Host_Alias 别名 = 主机名1, 主机名2
User_Alias 别名 = user1, user2
Cmnd_Alias 别名 = cmnd1, cmnd2
%wheel ALL = (ALL) ALL # 给组whell赋权
user2 ALL = (user1) /usr/bin/touch
# 给所有来源以user2身份登录的主机user1的权限执行touch命令,
# 特别注意用/usr/bin/touch生成的文件所有人为user1, 以及此时sudo该如何使用:
sudo -u user1 touch test_file # 默认以root身份, 要以其他人身份执行时必须使用-u指定用户
# 可以不需要密码使用sudo:
user2 ALL = ALL NOPASSWD: /usr/bin/touch, /usr/bin/mkdir
3. 虚拟机管理
- 需要先设置CPU, 使CPU支持虚拟化
下面有两套管理命令:
virt-manager # 以图形界面的方式列出虚拟机
virsh list --all # 列出所有虚拟机
virsh shutdown vm1 # 关闭虚拟机vm1
destory # 强制关闭vm1
reboot # 重启
suspend|resume # 暂停|继续
save vm1 /tmp/vm1.bak # 将vm1备份到宿主机的/tmp/下并命名为vm1.bak
restore /tmp/vm1.bak # 还原
autostart # 自动开启
console # 使用console口连接连接虚拟机, 关机时仍会有内容显示
ctrl ] # 此时需要用ctrl加]才能退出
rht-vmctl reset vm1 # 重置虚拟机vm1
full reset # 强制重新安装虚拟机
start|stop|powoff|status
save|restore # 用法同上
get # 查看虚拟机的信息
4. yum
现在yum多用于安装软件包, 因为其可以非常方便的帮助用户解决依赖性关系, 省去了用户自己去寻找并安装所依赖的软件包花费的功夫, rpm命令多用于查询某些软件包或配置文件等操作
安装包:
- 源码包: 未经编译
- 二进制包: 经过编译
rpmfile:
- (package)包名-主版本号-次版本号.CPU架构_操作系统位数.扩展名
- noarch: 不依赖架构
rpm: redhat package manager
# 配置文件: /etc/yum.conf
yum install package | @packagegroup | rpmfile
# d: 将安装包下载到本地缓存/var/cache/yum/目录下, 不安装!
yum list [all | updates]
# @anaconda: 表示安装包已随系统安装时一同安装
# @dvd: 表示已从dvd出安装
yum list installed # 列出已安装
available # 列可安装
updates # 列可更新
yum grouplist
groupinstall # 安装包组
yum groupinstall "X window system" gnome # 安装图形化界面所需工具包
"virtualization*" # 安装虚拟化所需包组, 支持通配符
langavailable # 列可用语言
langinstall zh # 安装中文包
info vsftpd # 查看安装包信息, 类似于rpm -qi
groupinfo KDE # 列包组信息
search
provides "*/tree" # 查找符合"*/tree"模式的文件来自于哪个包, 类似于rpm -qf file
localinstall # 安装第三方包时先尝试在本地库中解决依赖关系
remove # 卸载, 若配置文件被修改, 删包时会保留被修改过的配置文件
update package | rpmfile | @grouprpm
reinstall # 强制重新安装, 类似rpm --force或rpm --replacepkgs,
# 在配置文件丢失时可用
# 手动配置yum源:
vi /etc/yum.repo.d/dvd.repo
[dvd]
name = 描述信息(必写)
enabled = 0 | 1 # 是否开启
baseurl = 软件包位置 # 支持http://和file://格式, 指向安装源(repodata所在目录)
gpgcheck = 0 | 1 # 是否检查包的完整性
gpgkey = file:///etc/pki/rpm-gpg/公钥 # 指定使用哪把公钥检查
# 配置完yum源后记得执行以下命令:
yum clean all # 清除yum缓存
yum list all # 重新生成缓存
# 生成缓存时url或list出错的可能原因:
# 1. 名称写错
# 2. DNS配错
# 如何制作私有yum仓库:
# 1. 安装createrepo
yum -y install createrepo
# 2. 生成repodata目录, 建立私有仓库
createrepo -v 软件包所在目录 # 查找该目录下所有软件包(包括子目录也会查找)
# yum是如何解决包之间的依赖性关系的?
# repodata目录下有一个gz压缩格式的文件: *-filelist.xml.gz,
# 将此文件解压后可看到其中内容与rpm -ql所列内容一致,
# yum通过这个文件里面的记录依次去解决需安装的包或文件
5. rpm
rpm -ivh rpmfile # 安装rpmfile,支持ftp://, http://等在线安装
-e # 卸载
-U # upgrade
-F
--oldpackage # 降级安装, 默认安装最新版本的包, 使用此命令可安装旧版本
--replacefiles # 忽略冲突, 安装软件包时有些文件可能已在其他软件包被安装时
# 就一同被安装, 此选项会替换属于其他软件包的文件
--nodeps # 忽略包的依赖性关系
# rpm的数据库: /var/lib/rpm/
rpm -qa | grep package 用于查询某个软件包是否安装
rpm -qi package # 查看package的详细信息
-ql # 查看软件包生成的所有文件
-qc # 配置文件
-qf file # 查询某个文件来自于哪个包, 已经安装过的包,
# 在被删除后根据文件名依旧能查到, 因为此查询是基于rpm数据库的
rpm2cpio rpmfile | cpio -id # 将rpm包生成的内容抽取出来, 可以选取在其中有用的配置文件
rpm -q --changelog # 查询已安装的包的安装记录
-qp # 未安装
-q --scripts # 查看安装软件包时执行的脚本(软件包已被安装)
-qp --scripts # 未被安装
# 软件包封装有脚本, 在安装时会被执行, 可能被人植入恶意代码, 因此需验证软件包是否安全
-V # (安装后)根据gpg公钥验证
-V -p
-V -a
-K # (安装前)根据gpg公钥验证
-qa gpgpubkey # 查看系统的gpg公钥
--import RPM-GPG-KEY-redhate-release # 手动导入密钥至rpm数据库
-e gpg-pubkey-2fa658e0-45700c69 # 手动卸载公钥
6. 升级内核
cat /etc/redhat-release # 查看系统版本(系统一般更新快)
uname -r # 内核版本(更新慢)
www.kernel.org # 此网站可查看所有内核版本
# 现代的操作系统 = kernel + GNU操作系统组件
yum update kernel # 升级内核, 平行安装, 不会删除旧内核,
# 因为新旧内核的驱动不匹配会产生问题
# 更新内核时千万不可打断, 同样会出问题!!!
# 换一种方法升级内核更佳:
wget 内核包
rpm -ivh 内核包 # 先从网络yum源下载新的内核包至本地, 再安装,
# 防止网络问题导致安装内核出错
7. 源码安装
# (1)
./configure 检测安装环境是否符合安装条件, 同时可自定义某些功能
--help
--prefix=PREFIX # 自定义软件包的安装目录, 默认是/usr/local/
# (2)
make # 编译
# (3)
make install # 编译安装
uninstall # 卸载
网友评论