Linux学习-17-rpm查询软件包命令(-q、-qa、-i、-p、-l、-f、-R)

2023-10-29

7.4 Linux rpm查询软件包命令(-q、-qa、-i、-p、-l、-f、-R)

  • rpm 命令还可用来对 RPM 软件包做查询操作,具体包括:

    • 查询软件包是否已安装;
    • 查询系统中所有已安装的软件包;
    • 查看软件包的详细信息;
    • 查询软件包的文件列表;
    • 查询某系统文件具体属于哪个 RPM 包。
  • 使用 rpm 做查询命令的格式如下:

    [root@CncLucZK ~]# rpm 选项 查询对象
    
7.4.1 rpm -q:查询软件包是否安装
  • 用 rpm 查询软件包是否安装的命令格式为:
[root@CncLucZK ~]# rpm -q 包名		#-q 表示查询,是 query 的首字母。

注意这里使用的是包名,而不是包全名。因为已安装的软件包只需给出包名,系统就可以成功识别(使用包全名反而无法识别)。

7.4.2 rpm -qa:查询系统中所有安装的软件包
  • 使用 rpm 查询 Linux 系统中所有已安装软件包的命令为:
[root@CncLucZK ~]# rpm -qa
[root@CncLucZK mnt]# rpm -qa
mtr-0.92-1.el8.x86_64
trousers-lib-0.3.14-2.el8.x86_64
geolite2-country-20180605-1.el8.noarch
。。。
  • 此外,这里还可以使用管道符查找出需要的内容,相比rpm -q 包名命令,采用这种方式可以找到含有包名的所有软件包。比如:
[root@CncLucZK ~]# rpm -qa | grep httpd
httpd-devel-2.2.15-15.el6.centos.1.i686
httpd-tools-2.2.15-15.el6.centos.1.i686
...
7.4.3 rpm -qi:查询软件包的详细信息
  • 通过 rpm 命令可以查询软件包的详细信息,命令格式如下:
[root@CncLucZK ~]# rpm -qi 包名		#-i 选项表示查询软件信息,是 information 的首字母。
  • 想查看 apache 包的详细信息,可以使用如下命令:
[root@CncLucZK mnt]# rpm -qi httpd
Name        : httpd
Version     : 2.4.37
Release     : 30.module_el8.3.0+561+97fdbbcc
Architecture: x86_64
Install Date: Fri 11 Dec 2020 04:19:47 PM CST
Group       : System Environment/Daemons
Size        : 5118331
License     : ASL 2.0
Signature   : RSA/SHA256, Wed 04 Nov 2020 12:00:44 PM CST, Key ID 05b555b38483c65d
Source RPM  : httpd-2.4.37-30.module_el8.3.0+561+97fdbbcc.src.rpm
Build Date  : Wed 04 Nov 2020 11:21:28 AM CST
Build Host  : x86-02.mbox.centos.org
Relocations : (not relocatable)
Packager    : CentOS Buildsys <bugs@centos.org>
Vendor      : CentOS
URL         : https://httpd.apache.org/
Summary     : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.

  • 还可以查询未安装软件包的详细信息,命令格式为:
[root@CncLucZK ~]# rpm -qip 包全名		#-p 选项表示查询未安装的软件包,是 package 的首字母。
  • 注意,这里用的是包全名,且未安装的软件包需使用“绝对路径+包全名”的方式才能确定包。
7.4.4 rpm -ql:命令查询软件包的文件列表
  • rpm 软件包通常采用默认路径安装,各安装文件会分门别类安放在适当的目录文件下。使用 rpm 命令可以查询到已安装软件包中包含的所有文件及各自安装路径,命令格式为:
[root@CncLucZK ~]# rpm -ql 包名
  • -l 选项表示列出软件包所有文件的安装目录。

  • 例如,查看 apache 软件包中所有文件以及各自的安装位置,可使用如下命令:

[root@CncLucZK mnt]# rpm -ql httpd
/etc/httpd/conf
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
....

-同时,rpm 命令还可以查询未安装软件包中包含的所有文件以及打算安装的路径,命令格式如下:

[root@CncLucZK ~]# rpm -qlp 包全名	#-p 选项表示查询未安装的软件包信息,是 package 的首字母。

注意,由于软件包还未安装,因此需要使用“绝对路径+包全名”的方式才能确定包。

  • 比如,我们想查看 bing 软件包(未安装,绝对路径为:/mnt/Packages/bind-9.8.2-0.10.rc1.el6.i686.rpm)中的所有文件及各自打算安装的位置,可以执行如下命令:
[root@CncLucZK ~]# rpm -qlp /mnt/Packages/bind-9.8.2-0.10.rc1.el6.i686.rpm
7.4.5 rpm -qf:命令查询系统文件属于哪个RPM包
  • rpm -ql 命令是通过软件包查询所含文件的安装路径,rpm 还支持反向查询,即查询某系统文件所属哪个 RPM 软件包。其命令格式如下:
[root@CncLucZK ~]# rpm -qf 系统文件名 	#-f 选项的含义是查询系统文件所属哪个软件包,是 file 的首字母。

注意,只有使用 RPM 包安装的文件才能使用该命令,手动方式建立的文件无法使用此命令。

  • 例如,查询 ls 命令所属的软件包,可以执行如下命令:
[root@CncLucZK mnt]# rpm -qf /bin/ls
coreutils-8.30-6.el8.x86_64
7.4.6 rpm -qR:查询软件包的依赖关系
  • 使用 rpm 命令安装 RPM 包,需考虑与其他 RPM 包的依赖关系。rpm -qR 命令就用来查询某已安装软件包依赖的其他包,该命令的格式为:
[root@CncLucZK ~]# rpm -qR 包名	#-R(大写)选项的含义是查询软件包的依赖性,是 requires 的首字母。
  • 例如,查询 apache 软件包的依赖性,可执行以下命令:
[root@CncLucZK mnt]# rpm -qR httpd
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/etc/mime.types
config(httpd) = 2.4.37-30.module_el8.3.0+561+97fdbbcc
httpd-filesystem
httpd-filesystem = 2.4.37-30.module_el8.3.0+561+97fdbbcc

  • 同样,在此命令的基础上增加 -p 选项,即可实现查找未安装软件包的依赖性。

  • 例如,XXX软件包尚未安装(绝对路径为: /mnt/Packages/XXX-9.8.2-0.10.rc1.el6.i686.rpm),查看此软件包的依赖性可执行如下命令:

[root@CncLucZK ~]# rpm -qRp /mnt/Packages/XXX-9.8.2-0.10.rc1.el6.i686.rpm
/bin/bash
/bin/sh
XXX-libs = 32:9.8.2-0.10.rc1.el6

注意,这里使用的也是“绝对路径+包全名”的方式。

7.5 Linux RPM包验证和数字证书(数字签名)

  • 执行 rpm -qa 命令可以看到,Linux 系统中装有大量的 RPM 包,且每个包都含有大量的安装文件。因此,为了能够及时发现文件误删、误修改文件数据、恶意篡改文件内容等问题,Linux 提供了以下两种监控(检测)方式:
    • RPM 包校验:其实就是将已安装文件和 /var/lib/rpm/ 目录下的数据库内容进行比较,确定文件内容是否被修改。
    • RPM 包数字证书校验:用来校验 RPM 包本身是否被修改。
7.5.1 Linux RPM 包校验
  • RPM 包校验可用来判断已安装的软件包(或文件)是否被修改,此方式可使用的命令格式分为以下 3 种。
[root@CncLucZK ~]# rpm -Va						#-Va 选项表示校验系统中已安装的所有软件包。
[root@CncLucZK ~]# rpm -V 已安装的包名			#-V 选项表示校验指定 RPM 包中的文件,是 verity 的首字母。
[root@CncLucZK ~]# rpm -Vf 系统文件名			#-Vf 选项表示校验某个系统文件是否被修改。
  • 例如我们校验 apache 软件包中所有的安装文件是否被修改,可执行如下命令:
[root@CncLucZK -]# rpm -V httpd

  • 可以看到,执行后无任何提示信息,表明所有用 apache 软件包安装的文件均未改动过,还和从原软件包安装的文件一样。
  • 接下来尝试对 apache 的配置文件 /etc/httpd/conf/httpd.conf 做适当修改,修改格式如下:
[root@CncLucZK ~]#vim /etc/httpd/conf/httpd.conf
...省略部分内容...
Directorylndex index.html index.html.var index.php
#这句话是定义apache可以识别的默认网页文件名。在后面加入了index.php
#这句话大概有400行左右
…省略部分内容...
  • 由于我们还未学习如何配置 apache,为防止其崩溃,这里仅尝试修改 apache 的默认网页文件。按照以上格式对文件进行修改后保存退出,再次使用 rpm -V 命令对 apache 软件包进行验证:
[root@CncLucZK ~]# rpm -V httpd
S.5....T. c /etc/httpd/conf/httpd.conf
  • 可以看到,结果显示了文件被修改的信息。该信息可分为以下 3 部分:

    1. 最前面的 8 个字符(S.5…T)都属于验证信息,各字符的具体含义如下:
      • S:文件大小是否改变。
      • M:文件的类型或文件的权限(rwx)是否改变。
      • 5:文件MD5校验和是否改变(可以看成文件内容是否改变)。
      • D:设备的主从代码是否改变。
      • L:文件路径是否改变。
      • U:文件的属主(所有者)是否改变。
      • G:文件的属组是否改变。
      • T:文件的修改时间是否改变。
      • .:若相关项没发生改变,用 . 表示。
    2. 被修改文件类型,大致可分为以下几类:
      • c:配置文件(configuration file)。
      • d:普通文档(documentation)。
      • g:ghost file,很少见,就是该文件不应该被这个 RPM 包包含。
      • l:授权文件(license file)。
      • r:描述文件(read me)。
    3. 被修改文件所在绝对路径(包含文件名)。
  • 由此,S.5…T. c S.5…T. c /etc/httpd/conf/httpd.conf 表达的完整含义是:配置文件 httpd.conf 的大小、内容、修改时间被人为修改过。

注意,并非所有对文件做修改的行为都是恶意的。通常情况下,对配置文件做修改是正常的,比如说配置 apache 就要修改其配置文件,而如果验证信息提示对二进制文件做了修改,这就需要小心,除非是自己故意修改的。

7.5.2 Linux RPM数字证书验证
  • RPM 包校验方法只能用来校验已安装的 RPM 包及其安装文件,如果 RPM 包本身就被动过手脚,此方法将无法解决问题,需要使用 RPM 数字证书验证方法。

简单的理解,RPM 包校验其实就是将现有安装文件与最初使用 RPM 包安装时的初始文件进行对比,如果有改动则提示给用户,因此这种方式无法验证 RPM 包本身被修改的情况。

数字证书,又称数字签名,由软件开发商直接发布。Linux 系统安装数字证书后,若 RPM 包做了修改,此包携带的数字证书也会改变,将无法与系统成功匹配,软件无法安装。

可以将数字证书想象成自己的签名,是不能被模仿的(厂商的数字证书是唯一的),只有我认可的文件才会签名(只要是厂商发布的软件,都符合数字证书验证);如果我的文件被人修改了,那么我的签名就会变得不同(如果软件改变,数字证书就会改变,从而通不过验证。当然,现实中人的手工签名不会直接改变,所以数字证书比手工签名还要可靠)。

  • 使用数字证书验证 RPM 包的方法具有如下 2 个特点:

    1. 必须找到原厂的公钥文件,然后才能进行安装。
    2. 安装 RPM 包会提取 RPM 包中的证书信息,然后和本机安装的原厂证书进行验证。如果验证通过,则允许安装;如果验证不通过,则不允许安装并发出警告。
  • 数字证书默认会放到系统中`/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8位置处,通过以下命令也可验证:

#系统中的数字证书位置
[root@CncLucZK /]# ll /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8
-r--r--r-- 1 root root 1683 Dec 11  2020 /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8

  • 安装数字证书的命令如下:
[root@CncLucZK ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
--import表示导入数字证书
  • 数字证书安装完成后,可使用如下命令进行验证:
[root@CncLucZK ~]# rpm -qa|grep gpg-pubkey
gpg-pubkey-c105b9de-4e0fd3a3
  • 可以看到,数字证书已成功安装。在装有数字证书的系统上安装 RPM 包时,系统会自动验证包的数字证书,验证通过则可以安装,反之将无法安装(系统会报错)。

  • 数字证书本身也是一个 RPM 包,因此可以用 rpm 命令查询数字证书的详细信息,也可以将其卸载。查询数字证书详细信息的命令如下:

[root@CncLucZK ~]# rpm -qi gpg-pubkey-c105b9de-4e0fd3a3
#查询数字证书包的详细信息
Name : gpg-pubkey
Relocations: (not relocatable)
Version : c105b9de Vendor: (none)
Architecture: (none)
Install Date: Tue 10 Dec 2019 11:21:09 AM CST
Group       : Public Keys
Size        : 0
License     : pubkey
Signature   : (none)
Source RPM  : (none)
Build Date  : Wed 05 Jun 2019 10:17:31 PM CST
Build Host  : localhost
Relocations : (not relocatable)

…省略部分输出…
-----END PGP PUBLIC KEY BLOCK----
  • 卸载数字证书可以使用 -e 选项,命令如下:
[root@CncLucZK ~]# rpm -e gpg-pubkey-c105b9de-4ead3a3
  • 虽然数字证书可以手动卸载,但不推荐大家将其卸载。

参考文献:
Linux rpm命令查询软件包

下一篇:Linux学习-18-提取RPM包文件(cpio命令)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux学习-17-rpm查询软件包命令(-q、-qa、-i、-p、-l、-f、-R) 的相关文章

  • 如何在shell中输出返回码?

    我正在尝试通过调用自定义 shell 脚本sh bin sh c myscript sh gt log txt 2 gt 1 echo 该命令的输出是创建的后台进程的 PID 我想指导 bin sh保存返回码myscript sh到某个文件
  • 为arm构建WebRTC

    我想为我的带有arm926ej s处理器的小机器构建webrtc 安装 depot tools 后 我执行了以下步骤 gclient config http webrtc googlecode com svn trunk gclient s
  • docker容器大小远大于实际大小

    我正在尝试从中构建图像debian latest 构建后 报告的图像虚拟大小来自docker images命令为 1 917 GB 我登录查看尺寸 du sh 大小为 573 MB 我很确定这么大的尺寸通常是不可能的 这里发生了什么 如何获
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 如何确保应用程序在 Linux 上持续运行

    我试图确保脚本在开发服务器上保持运行 它会整理统计数据并提供网络服务 因此它应该会持续存在 但一天中有几次 它会因未知原因而消失 当我们注意到时 我们只需再次启动它 但这很麻烦 并且某些用户没有权限 或专有技术 来启动它 作为一名程序员 我
  • CoAP数据包的大小是多少?

    我是这项技术的新手 有人可以帮助我了解一些疑问吗 Q 1 CoAP数据包的大小是多少 我知道有 4 字节固定标头 但是包括标头 选项和负载在内的最大大小限制是多少 Q 2 有像MQTT那样的Keep Alive的概念吗 它在UDP上工作 它
  • 删除 Git 存储库,但保留所有文件

    在我使用 Linux 的过程中的某个时刻 我决定将我的主目录中的所有内容都放入源代码管理中是个好主意 我不是在问这是否是一个好主意 我是在问如何撤销它 删除存储库的原因是我最近安装了 Oh My Zsh 而且我非常喜欢它 问题是我的主目录有
  • 当 grep "\\" XXFile 我得到“尾随反斜杠”

    现在我想查找是否有包含 字符的行 我试过grep XXFile但它暗示 尾随反斜杠 但当我尝试时grep XXFile没关系 谁能解释一下为什么第一个案例无法运行 谢谢 区别在于 shell 处理反斜杠的方式 当你写的时候 在双引号中 sh
  • “make install”将库安装在 /usr/lib 而不是 /usr/lib64

    我正在尝试在 64 位 CentOS 7 2 上构建并安装一个库 为了这个目的我正在跑步 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX usr DCMAKE C COMPILER
  • 在两次之间每分钟执行一次 Cronjob

    我需要在 crontab 中每分钟运行一个 bash 脚本8 45am and 9 50am每天的 Code 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 8 home pull sh gt ho
  • 如果在等待“read -s”时中断,在子进程中运行 bash 会破坏 tty 的标准输出吗?

    正如 Bakuriu 在评论中指出的那样 这基本上与BASH 输入期间按 Ctrl C 会中断当前终端 https stackoverflow com questions 31808863 bash ctrlc during input b
  • 确定我可以向文件句柄写入多少内容;将数据从一个 FH 复制到另一个 FH

    如何确定是否可以将给定数量的字节写入文件句柄 实际上是套接字 或者 如何 取消读取 我从其他文件句柄读取的数据 我想要类似的东西 n how much can I write w handle n read r handle buf n a
  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost
  • 如何构建任务“gems:install”

    我正在将 Rails 应用程序部署到 Linux 服务器 并且缺少一些 rake 任务 包括 rake gems install 和 rake db 我正在运行来自 GEM 的 Rails 2 3 4 为什么是这样 我该如何解决 我可以以某
  • 如何查询X11显示分辨率?

    这似乎是一个简单的问题 但我找不到答案 如何查询 通过 X11 存在哪些监视器及其分辨率 查看显示宏 http tronche com gui x xlib display display macros html and 屏幕宏 http
  • 监控子进程的内存使用情况

    我有一个 Linux 守护进程 它分叉几个子进程并监视它们是否崩溃 根据需要重新启动 如果父进程可以监视子进程的内存使用情况 以检测内存泄漏并在超出一定大小时重新启动子进程 那就太好了 我怎样才能做到这一点 您应该能够从 proc PID
  • 为什么我可以在 /proc/pid/maps 输出中看到几个相同的段?

    测试在32位Linux上进行 代码如下 int foo int a int b int c a b return c int main int e 0 int d foo 1 2 printf d n d scanf d e return
  • 后台分叉无法正常工作[重复]

    这个问题在这里已经有答案了 我运行这个程序 在前景和背景中 int main int pid printf App Start pid d n getpid while 1 pid fork if pid 0 printf Child n
  • vagrant ssh -c 并在连接关闭后保持后台进程运行

    我正在编写一个脚本来启动和后台流浪机器内的进程 似乎每次脚本结束和 ssh 会话结束时 后台进程也会结束 这是我正在运行的命令 vagrant ssh c cd vagrant src nohup python hello py gt he

随机推荐

  • FairMOT yolov5s转onnx

    代码 https github com ifzhang FairMOT 论文讲解参考 https blog csdn net weixin 42398658 article details 110873083 https www 163 c
  • Gradle 系列第二讲-android studio中的四个Gradle相关文件讲解

    在android studio中 我们创建一个android项目 会自动生成以下6个gradle的相关文件或文件夹 下面我们来依次全面解析这几个文件的内容和具体的作用 android project gradlew gradlew bat
  • 创建一个子窗口,MouseMove消息一直在触发的解决方法

    条件 在主窗口中 创建 create 一个Child属性的子窗口 在子窗口中使用MouseMove消息时 发现 该消息一直被触发 在domal一个Child属性的子窗口时却没有这个问题 为什么呢 原因在CWnd Create中WS POPU
  • DDL数据库及表的创建删除与使用

    Mysql gt DDL 一 DDL操作数据库 1 1查询 1 2创建数据库 1 3删除数据库 1 4使用数据库 二 DDL操作表 2 1查询表 2 2创建表 2 3数据类型 2 4删除表 2 5修改表 三 总结 一 DDL操作数据库 1
  • 隐私计算项目评估的“偏见”

    如何评估一个项目是不是值得投资 这件事情可能VC最有专业性 本文站在一线工作者的角度 阐述目前隐私计算项目的深浅 有些东西 一定是老百姓口中说出来的可能更贴近现实 做硬件的拼技术 荷兰ASML公司是全球最大的光刻机制造商 也是全球唯一可以提
  • Android+文本的查找和替换+可以对文本进行查找替换撤销等,基本实现了PC端.txt查找替换功能

    Android 文本的查找和替换 可以对文本进行查找替换撤销等 基本实现了PC端 txt查找替换功能 最近项目用到了类似PC端记事本查找替换功能 于是自己就写了一套算法 实现起来还是比较容易理解的 基于移动开发的文本查找替换功能 基本实现了
  • 基于单步的Map-Reduce的矩阵乘法

    基于单步的Map Reduce的矩阵乘法 矩阵的乘法只有在第一个矩阵的列数 column 和第二个矩阵的行数 row 相同时才有定义 一般单指矩阵乘积时 指的便是一般矩阵乘积 若A为i r矩阵 B为r j矩阵 则他们的乘积AB 有时记做A
  • 【云计算实验】基于OpenMP、CUDA、OpenCL、GPU并行计算实验

    前言 本文是之前做云计算实验整理的内容 借博客保存一下 使用不同方法对算法加速还是很有意思的 实验题目 自选一张图片 按照实验指南说明在jetson05节点上基于OpenMP和CUDA对图片进行边缘提取实验 记录梯度向量幅度的最小值和最大值
  • 应用编排与管理

    本节课程要点 需求来源 用例解读 操作演示以及架构设计 需求来源 背景问题 首先 我们来看一下背景问题 如下图所示 如果我们直接管理集群中所有的 Pod 应用 A B C 的 Pod 其实是散乱地分布在集群中 现在有以下的问题 首先 如何保
  • python unicode 标点范围_不同语言Unicode的编码范围

    我们常常会用到判断某个字符或者字符串是否包含中文 英文 特殊符号等等 这时候可以通过判断Unicode所在区间来确定某个字符所处类型 当然可以通过直接判断Unicode码 但是鉴于习惯 以下提供的是Unicode码对应的数字区间 毕竟字符的
  • 《MySQL实战45讲》读后感 03

    收获到的知识点 事务支持是在引擎层面实现的 但是并不是所有的引擎都支持事务 比如MySQL原生的MyISAM引擎就不支持事务 这也是MyISAM被 InnoDB取代的原因之一 多个事务同时执行的时候 可能出现这3种情况 脏读 dirty r
  • 2018年蓝桥杯省赛-日志统计

    题目 题目链接 题解 贪心 尺取 首先按照时间从小到大 对输入的每一组 t s ts ts和 i d id id进行排序 遍历每一对 取当
  • Vivado 使用过程中问题总结

    关注 星标公众号 及时获取更多技术分享 作者 冰茶奥利奥 微信公众号 嵌入式电子创客街 目录 情况1 在vivado进行一个行为级别仿真时 运行到simulate 步骤时 弹出了如下提示 情况2 综合时 ambiguous clock in
  • Bean name用法

    Spring的bean中有name属性 可以用来区分两个相同 部分属性不一样 的bean 最近我在做influxdb多数据源的时候用到 所以这里已influxdb为示例 仅供参考 看代码 Bean name influx1 public I
  • CSS媒体查询(@media)全面解析

    随着移动设备的快速普及 用户不再只是通过传统的电脑系来浏览 Web 内容 越来越多的用户开始使用各种尺寸的智能手机 平板电脑或者其它设备来浏览 Web 内容 为了确保使用不同设备的用户都能拥有不错的体验就需要用到媒体查询 媒体查询是 CSS
  • 【恒指早盘分析】趋势交易——看懂很简单,做到却很难!

    老子说 盖闻善执生者 陵行不辟兕虎 意思是说 善于保全生命的人 在山陵里走路不轻易干砍劈犀牛或老虎的事情 一个交易者不要轻易涉险 不要因欲望驱使而重仓或急于进场 也不要因为恐惧和疑虑而过早离场 老老实实的控制仓位 老老实实的看准行情之后再行
  • 【Flutter 1-15】Flutter手把手教程Dart语言——包管理工具Pub详解、pub get,pub cache使用

    作者 弗拉德 来源 弗拉德 公众号 fulade me 什么是Pub工具 Dart 生态系统使用包来管理共享软件 比如 库和工具 我们使用Pub包管理工具 来获取Dart包 在Pub上 可以找到公开可用的包 或者从本地文件系统或其他的位置
  • Linux性能监控 -- top命令

    文章目录 示例 参数说明及操作 信息详解 系统运行信息 任务信息 cpu运行信息 内存 swap使用情况 进程消耗资源详情 示例 参数说明及操作 按cpu使用率排序 输入top后 再输入P 按内存使用率排序 输入top后 再输入M 信息详解
  • 关于 XCode ld: library not found for -lcurl clang的解决办法

    有时候项目在自己电脑上运行正常 通过svn提交项目 再checkout下来的时候 再次运行却报错 如 Xcode出现如下错误 一般是因为缺少相关 a等库文件 如 缺少libcurl a 打开 发现少了libcurl a 只需再将相关库文件添
  • Linux学习-17-rpm查询软件包命令(-q、-qa、-i、-p、-l、-f、-R)

    7 4 Linux rpm查询软件包命令 q qa i p l f R rpm 命令还可用来对 RPM 软件包做查询操作 具体包括 查询软件包是否已安装 查询系统中所有已安装的软件包 查看软件包的详细信息 查询软件包的文件列表 查询某系统文