Skip to content
← 返回Linux列表
命令与系统观察

Linux 常用命令:用途、参数与操作边界 · 按发行版选择包管理器至备份与同步 ​

返回分篇目录

先按任务进入主速查;需要理解参数时再展开后面的逐条解释。命令未执行,平台与权限按相应条目核对。

按发行版选择包管理器 ​

先确认发行版,再选择对应的一组命令,不能混用 RPM/DEB。优先包管理器解析依赖;批量升级先审查事务和恢复路径。

Fedora / Red Hat:RPM 查询与校验 ​

命令用途与边界
rpm -ivh package.rpm安装一个rpm包
rpm -U package.rpm升级 RPM 包;配置文件处理需核对包策略与事务结果
rpm -F package.rpm更新一个确定已经安装的rpm包
rpm -e package_name删除一个rpm包
rpm -qa显示系统中所有已经安装的rpm包
rpm -qa | grep httpd显示所有名称中包含 "httpd" 字样的rpm包
rpm -qi package_name获取一个已安装包的特殊信息
rpm -qg "System Environment/Daemons"显示一个组件的rpm包
rpm -ql package_name显示一个已经安装的rpm包提供的文件列表
rpm -qc package_name显示一个已经安装的rpm包提供的配置文件列表
rpm -q package_name --whatrequires显示与一个rpm包存在依赖关系的列表
rpm -q package_name --scripts显示在安装/删除期间所执行的脚本l
rpm -q package_name --changelog显示一个rpm包的修改历史
rpm -qf /etc/httpd/conf/httpd.conf确认所给的文件由哪个rpm包所提供
rpm -qp package.rpm -l显示由一个尚未安装的rpm包提供的文件列表
rpm --import /media/cdrom/RPM-GPG-KEY导入公钥数字证书
rpm --checksig package.rpm确认一个rpm包的完整性
rpm -V package_name检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间
rpm -Va检查系统中所有已安装的rpm包- 小心使用
rpm2cpio package.rpm | cpio --extract --make-directories *bin*从 RPM 归档提取匹配文件;不运行其中程序
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm从一个rpm源码安装一个构建好的包
rpmbuild --rebuild package_name.src.rpm从一个rpm源码构建一个 rpm 包

YUM 安装、更新与缓存 ​

命令用途与边界
yum install package_name下载并安装一个rpm包
yum localinstall package_name.rpm将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
yum update更新系统软件包;先审查事务范围
yum update package_name更新一个rpm包
yum remove package_name删除一个rpm包
yum list列出当前系统中安装的所有包
yum search package_name在rpm仓库中搜寻软件包
yum clean packages清理rpm缓存删除下载的包
yum clean headers清理缓存的软件包头信息
yum clean all删除所有缓存的包和头文件

Debian / Ubuntu:DEB 查询 ​

命令用途与边界
dpkg -i package.deb安装/更新一个 deb 包
dpkg -r package_name从系统删除一个 deb 包
dpkg -l显示系统中所有已经安装的 deb 包
dpkg -l | grep httpd显示所有名称中包含 "httpd" 字样的deb包
dpkg -s package_name获得已经安装在系统中一个特殊包的信息
dpkg -L package_name显示系统中已经安装的一个deb包所提供的文件列表
dpkg --contents package.deb显示尚未安装的一个包所提供的文件列表
dpkg -S /bin/ping确认所给的文件由哪个deb包提供

APT 索引与软件包 ​

命令用途与边界
apt-get install package_name安装/更新一个 deb 包
apt-get update更新软件包索引
apt-get upgrade升级所有已安装的软件
apt-get remove package_name从系统删除一个deb包
apt-get check检查软件包依赖是否损坏
apt-get clean从下载的软件包中清理缓存
apt-cache search searched-package返回包含所要搜索字符串的软件包名称

网络接口与路由 ​

命令用途与边界
ifconfig eth0显示一个以太网卡的配置
ifup eth0启用一个 'eth0' 网络设备
ifdown eth0禁用一个 'eth0' 网络设备
ifconfig eth0 192.168.1.1 netmask 255.255.255.0控制IP地址
ifconfig eth0 promisc设置 'eth0' 成混杂模式以嗅探数据包 (sniffing)
dhclient eth0以dhcp模式启用 'eth0'
route -n显示路由表
route add -net 0/0 gw <gateway>旧 route 语法设置默认路由
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1旧 route 静态路由例;网关按实际环境替换

这些是 ifconfig/route 旧工具例。远程关闭网卡或改变地址可能立即中断 SSH;CentOS 7 的失败实验与恢复边界见 网络管理记录。

备份与同步 ​

命令用途与边界
dump -0aj -f /tmp/home0.bak /home制作一个 '/home' 目录的完整备份
dump -1aj -f /tmp/home0.bak /home制作 /home 的 level 1 增量备份;需已有基线
restore -if /tmp/home0.bak还原一个交互式备份
rsync -rogpav --delete /home /tmp同步两边的目录
rsync -rogpav -e ssh --delete /home ip_address:/tmp通过SSH通道rsync
rsync -az -e ssh --delete ip_addr:/home/public /home/local通过ssh和压缩将一个远程目录同步到本地目录
rsync -az -e ssh --delete /home/local ip_addr:/home/public通过ssh和压缩将本地目录同步到远程目录
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz'通过ssh在远程主机上执行一次备份本地磁盘的操作
dd if=/dev/sda of=/tmp/file1备份磁盘内容到一个文件
tar -Puf backup.tar /home/user向已有归档追加较新文件;-P 保留绝对路径,解包前核对路径
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p'通过ssh在远程目录中复制一个目录内容
( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p'通过ssh在远程目录中复制一个本地目录
tar cf - . | (cd /tmp/backup ; tar xf - )本地将一个目录复制到另一个地方,保留原有权限及链接
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2查找所有以 '.log' 结尾的文件并做成一个bzip包
dd if=/dev/hda of=/dev/fd0 bs=512 count=1做一个将 MBR (Master Boot Record)内容复制到软盘的动作
dd if=/dev/fd0 of=/dev/hda bs=512 count=1从已经保存到软盘的备份中恢复MBR内容

同步、归档、块设备镜像是不同方案。rsync --delete 会删除目标多余项,先对同样参数执行 --dry-run 并核对方向;dd 必须逐字确认 if/of。备份完成还应按所选方案验证可读取/恢复,不能只看文件生成。

继续阅读