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。备份完成还应按所选方案验证可读取/恢复,不能只看文件生成。
继续阅读
- 命令与系统观察
- 命令与系统观察
- 命令与系统观察