更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux命令 > Linux pacman、pack、openssl命令的用法及解释

Linux pacman、pack、openssl命令的用法及解释

更新时间:2022-01-20 15:33:11浏览次数:251+次

以下为你详细解释pacman、pack、openssl命令的用法。

\

Linux pacman命令的用法及解释

Linux pacman是一个软件包管理器,作为 ArchLinux发行版的一部分。它最早由 Arch Linux 的 Judd Vinet开发,Pacman 可以解决安装过程中的依赖问题,自动下载并且安装所有需要的软件包。Pacman包管理器是Arch Linux的一大亮点。它将一个简单的二进制包格式和易用的构建系统结合了起来。Pacman使得简单的管理与自定义软件包成为了可能,而不论他们来自于官方的Arch软件库或是用户自己创建的。

[zhangy@BlackGhost ~]$ pacman -h

一、用法

pacman <操作> [...]

二、操作

pacman {-h --help}       //帮助

pacman {-V --version}   //查看版本

pacman {-D --database} <选项> <软件包>  //pacman管理数据库选项

pacman {-Q --query}    [选项] [软件包]    //查询安装包

pacman {-R --remove}   [选项] <软件包>  //删除安装包

pacman {-S --sync}     [选项] [软件包]      //安装安装包

pacman {-U --upgrade}  [选项] <文件>   //更新安装包

使用 'pacman {-h --help}' 及某个操作以查看可得的选项

[zhangy@BlackGhost ~]$ pacman -D --help

三、用法

pacman {-D --database} <选项> <软件包>

四、选项

--asdeps         标记为非单独指定安装的软件包  

--asexplicit     标记为单独指定安装的软件包  

--config <路径>  指定另外的配置文件  

--logfile <路径> 指定另外的日志文件  

--noconfirm      不询问确认  

--noprogressbar  下载文件时不显示进度条  

--noscriptlet    不执行安装小脚本  

-v, --verbose        循环执行  

-- debug        显示除错信息  

-r, --root <路径>    指定另外的安装根目录  

-b, --dbpath <路径>  指定另外的数据库位置  

--cachedir <目录> 指定另外的软件包缓存位置  

--arch <架构>    设定另外的架构

[zhangy@BlackGhost ~]$ pacman -Q --help

五、用法

pacman {-Q --query} [选项] [软件包]

六、选项

-c, --changelog      查看某软件包的更新日志  

-d, --deps           列出所有作为依赖关系安装的软件包 [过滤器]  

-e, --explicit       列出所有单独指定安装的软件包 [过滤器]  

-g, --groups         查看某软件包组所属的所有软件包  

-i, --info           查看软件包信息 (-ii 查看备份文件)  

-k, --check          检查该软件包拥有的文件是否存在  

-l, --list           列出被查询软件包的内容  

-m, --foreign        列出没有在同步数据库时找到的已安装软件包 [过滤器]  

-o, --owns <文件>     查询哪个软件包拥有  <文件>  

-p, --file <软件包> 从某个软件包而不是数据库查询

-s, --search  搜寻符合指定字符串的已安装本地的软件包

-t, --unrequired     列出所有不被其他软件包要求的软件包 [过滤器]  

-u, --upgrades       列出所有可升级的软件包 [过滤器]  

-q, --quiet          在查询或搜索时显示较少的信息  

--config <路径>  指定另外的配置文件  

--logfile <路径> 指定另外的日志文件  

--noconfirm      不询问确认  

--noprogressbar  下载文件时不显示进度条  

--noscriptlet    不执行安装小脚本  

-v, --verbose        循环执行  

-- debug        显示除错信息  

-r, --root <路径>    指定另外的安装根目录  

-b, --dbpath <路径>  指定另外的数据库位置  

--cachedir <目录> 指定另外的软件包缓存位置  

--arch <架构>    设定另外的架

[zhangy@BlackGhost ~]$ pacman -R --help

七、用法

pacman {-R --remove} [选项] <软件包>

八、选项

-c, --cascade        删除软件包及所有的依赖于此的软件包  

-d, --nodeps         略过依赖关系检查  

-k, --dbonly         只删除数据库记录,不删除文件  

-n, --nosave         同时删除配置文件  

-s, --recursive      同时删除 (不会破坏其他软件包的) 依赖关系(-ss·也包括单独指定安装的依赖关系)  

-u, --unneeded       同时删除不需要的 (且不会破坏其他软件包的) 依赖关系  

--print          仅打印目标而不执行操作  

--print-format <字符串>指定如何打印目标  

--config <路径>  指定另外的配置文件  

--logfile <路径> 指定另外的日志文件  

--noconfirm      不询问确认  

--noprogressbar  下载文件时不显示进度条  

--noscriptlet    不执行安装小脚本  

-v, --verbose        循环执行  

-- debug        显示除错信息  

-r, --root <路径>    指定另外的安装根目录  

-b, --dbpath <路径>  指定另外的数据库位置  

--cachedir <目录> 指定另外的软件包缓存位置  

--arch <架构>    设定另外的架构

[zhangy@BlackGhost ~]$ pacman -S --help

九、用法

pacman {-S --sync} [选项] [软件包]

十、选项

--asdeps         作为非单独指定安装的软件包安装  

--asexplicit     作为单独指定安装的软件包安装  

-c, --clean          从缓存目录中删除旧软件包 (-cc 清除所有)  

-d, --nodeps         略过依赖关系检查  

-f,  -force          强制安装,覆盖存在冲突的文件  

-g, --groups         查看某软件包组所属的所有软件包  

-i, --info           查看软件包信息  

-l, --list <软件库>    查看在该软件库中的软件包清单

-s, --search  按照指定字符串查询远端软件库

-u, --sysupgrade     升级所有已安装的软件包 (-uu 可启用降级)  

-w, --downloadonly   下载但不安装/升级软件包  

-y, --refresh        从服务器下载新的软件包数据库  

--needed         不重新安装已经为最新的软件包  

--ignore <软件包>   升级时忽略某个软件包 (可多次使用)  

--ignoregroup <软件包组>升级时忽略某个软件包组 (可多次使用)  

--print          仅打印目标而不执行操作  

--print-format <字符串>指定如何打印目标  

-q, --quiet          在查询或搜索时显示较少的信息  

--config <路径>  指定另外的配置文件  

--logfile <路径> 指定另外的日志文件  

--noconfirm      不询问确认  

--noprogressbar  下载文件时不显示进度条  

--noscriptlet    不执行安装小脚本  

-v, --verbose        循环执行  

-- debug        显示除错信息  

-r, --root <路径>    指定另外的安装根目录  

-b, --dbpath <路径>  指定另外的数据库位置  

--cachedir <目录> 指定另外的软件包缓存位置  

--arch <架构>    设定另外的架构

[zhangy@BlackGhost ~]$ pacman -U --help

十一、用法

pacman {-U --upgrade} [选项] <文件>

十二、选项

--asdeps         作为非单独指定安装的软件包安装  

--asexplicit     作为单独指定安装的软件包安装  

-d, --nodeps         略过依赖关系检查  

-f,  -force          强制安装,覆盖存在冲突的文件  

-k, --dbonly         添加数据库记录,不安装或保持现存文件  

--print          仅打印目标而不执行操作  

--print-format <字符串> 指定如何打印目标  

--config <路径>  指定另外的配置文件  

--logfile <路径> 指定另外的日志文件  

--noconfirm      不询问确认  

--noprogressbar  下载文件时不显示进度条  

--noscriptlet    不执行安装小脚本  

-v, --verbose        循环执行  

-- debug        显示除错信息  

-r, --root <路径>    指定另外的安装根目录  

-b, --dbpath <路径>  指定另外的数据库位置  

--cachedir <目录> 指定另外的软件包缓存位置  

--arch <架构>    设定另外的架构

十三、实例1

安装包:

1,安装或者升级单个软件包

pacman -S mysql

2,有时候在不同的软件仓库中,一个软件包有多个版本(比如extra和community)。你可以选择一个来安装

pacman -S extra/mysql

3,步包数据库并且安装一个软件包

pacman -Sy mysql

十四、实例2

删除包:

1,删除单个软件包,保留其全部已经安装的依赖关系

pacman -R mysql

2,删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:

pacman -Rs mysql

十五、实例3

升级系统:

pacman -Syu

十六、实例4

查询包:

1,查询可用安装包

pacman -Ss mysql

2,要查询已安装的软件包:

pacman -Qs mysql

十七、实例5

其他用法:

1,清理当前未被安装软件包的缓存

pacman -Sc

2,下载包而不安装

pacman -Sw mysql

十八、实例6

# pacman -Rsc package_name   #要删除软件包和所有依赖这个软件包的程序

# pacman -Rdd package_name   #要删除软件包,但是不删除依赖这个软件包的其他程序:

# pacman 删除某些程序时会备份重要配置文件,在其后面加上*.pacsave扩展名。-n 选项可 以删除这些文件

# pacman -Rn package_name

# pacman -Rsn package_name

# pacman -Si package_name  #显示软件包的详尽的信息

# pacman -Qi package_name  #查询本地安装包的详细信息

# pacman -Qii package_name   #使用两个 -i 将同时显示备份文件和修改状态

# pacman -Ql package_name   #要获取已安装软件包所包含文件的列表

# pacman -Qk package_name   #检查软件包安装的文件是否都存在

# pacman -Qo /path/to/file_name  #查询数据库获取某个文件属于哪个软件包

# pacman -Qdt   #要罗列所有不再作为依赖的软件包(孤立orphans)

# pacman -Qet  #要罗列所有明确安装而且不被其它包依赖的软件包

# pactree package_name  #要显示软件包的依赖树

# pactree -r package_name   #检查一个安装的软件包被那些包依赖

Linux pack命令的用法及解释

Linux pack命令会尝试以压缩格式存储指定文件。如果可能(并且有用),每个输入文件 file 都会替换为打包文件 file.z,而且后者与 file 拥有相同的访问模式、访问和修改日期以及所有者。如果 pack 成功,则会删除 file。

压缩程度取决于输入文件的大小和字频分布。因为每个 .z 文件的第一部分由解码树构成,所以通常不值得打包小于三个块的文件,除非字频分布非常倾斜,而这种情况会出现在打印绘图或图片上。

通常,文本文件的大小会降至原始大小的 60-75%。装入模块由于使用了更大的字符集并且具有更加一致的字符分布,因此压缩程度较小,其打包后的大小约为原始大小的 90%。

pack实用程序会返回一个值,即压缩失败的文件的数量。如果文件数量超过 255,则返回 255。

如果出现以下情况,则不进行打包:

文件看起来已经过打包

文加名太长,无法添加 .z 后缀

文件有链接

文件是一个目录

文件无法打开

文件为空

打包时未保存任何磁盘存储块

名为 file.z 的文件已存在

无法创建 .z 文件

处理过程中发生 I/O 错误。

文件名的最后部分必须足够短,以便为附加的 .z 扩展名留出空间。目录无法压缩。

1、用法

pack [-] [-f] name ...

2、选项

pack 支持以下选项:

–f:强制对 file 进行打包。这有助于打包整个目录,即使有些文件不会从中受益。使用 unpack 或 pcat 可以将打包文件恢复到原始格式。

–/:打包或解压缩时,将任何与源文件相关的 ACL 和扩展系统属性都复制到目标文件。如果无法复制 ACL 或扩展系统属性,则保留原始文件,向 stderr 写入一条诊断消息,且最终退出状态为非零值。

3、实例

压缩档案:

pack dictionary

Linux openssl命令的用法及解释

Linux OpenSSL是一个强大的安全套接字层密码库,包括主要的密码算法、常用的密钥与证书封装管理功能及SSL协议,同时提供丰富的应用程序供测试或其它目的使用。在OpenSSL被曝出现严重安全漏洞后,发现多数通过SSL协议加密的网站使用名为OpenSSL的开源软件包。由于这是互联网应用最广泛的安全传输方法,被网银、在线支付、电商网站、门户网站、电子邮件等重要网站广泛使用,所以该漏洞影响范围广大。

OpenSSL有两种运行模式:交互模式和批处理模式。

直接输入openssl回车进入交互模式,输入带命令选项的openssl进入批处理模式。

OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。

对称加密算法

OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。事实上,DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。

非对称加密算法

OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH算法一般用户密钥交换。RSA算法既可以用于密钥交换,也可以用于数字签名,当然,如果你能够忍受其缓慢的速度,那么也可以用于数据加密。DSA算法则一般只用于数字签名。

信息摘要算法

OpenSSL实现了5种信息摘要算法,分别是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。SHA算法事实上包括了SHA和SHA1两种信息摘要算法,此外,OpenSSL还实现了DSS标准中规定的两种信息摘要算法DSS和DSS1。

密钥和证书管理

密钥和证书管理是PKI的一个重要组成部分,OpenSSL为之提供了丰富的功能,支持多种标准。

首先,OpenSSL实现了ASN.1的证书和密钥相关标准,提供了对证书、公钥、私钥、证书请求以及CRL等数据对象的DER、PEM和BASE64的编解码功能。OpenSSL提供了产生各种公开密钥对和对称密钥的方法、函数和应用程序,同时提供了对公钥和私钥的DER编解码功能。并实现了私钥的PKCS#12和PKCS#8的编解码功能。OpenSSL在标准中提供了对私钥的加密保护功能,使得密钥可以安全地进行存储和分发。

在此基础上,OpenSSL实现了对证书的X.509标准编解码、PKCS#12格式的编解码以及PKCS#7的编解码功能。并提供了一种文本数据库,支持证书的管理功能,包括证书密钥产生、请求产生、证书签发、吊销和验证等功能。

事实上,OpenSSL提供的CA应用程序就是一个小型的证书管理中心(CA),实现了证书签发的整个流程和证书管理的大部分机制。

以下是实例:

1、消息摘要算法应用例子

用SHA1算法计算文件file.txt的哈西值,输出到stdout:

# openssl dgst -sha1 file.txt

用SHA1算法计算文件file.txt的哈西值,输出到文件digest.txt:

# openssl sha1 -out digest.txt file.txt

用DSS1(SHA1)算法为文件file.txt签名,输出到文件dsasign.bin。签名的private key必须为DSA算法产生的,保存在文件dsakey.pem中。

# openssl dgst -dss1 -sign dsakey.pem -out dsasign.bin file.txt

用dss1算法验证file.txt的数字签名dsasign.bin,验证的private key为DSA算法产生的文件dsakey.pem。

# openssl dgst -dss1 -prverify dsakey.pem -signature dsasign.bin file.txt

用sha1算法为文件file.txt签名,输出到文件rsasign.bin,签名的private key为RSA算法产生的文件rsaprivate.pem。

# openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt

# 用sha1算法验证file.txt的数字签名rsasign.bin,验证的public key为RSA算法生成的rsapublic.pem。

# openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt

2、对称加密应用例子

对称加密应用例子,用DES3算法的CBC模式加密文件plaintext.doc,加密结果输出到文件ciphertext.bin。

# openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin

用DES3算法的OFB模式解密文件ciphertext.bin,提供的口令为trousers,输出到文件plaintext.doc。注意:因为模式不同,该命令不能对以上的文件进行解密。

# openssl enc -des-ede3-ofb -d -in ciphertext.bin -out plaintext.doc -pass pass:trousers

用Blowfish的CFB模式加密plaintext.doc,口令从环境变量PASSWORD中取,输出到文件ciphertext.bin。

# openssl bf-cfb -salt -in plaintext.doc -out ciphertext.bin -pass env:PASSWORD

给文件ciphertext.bin用base64编码,输出到文件base64.txt。

# openssl base64 -in ciphertext.bin -out base64.txt

用RC5算法的CBC模式加密文件plaintext.doc,输出到文件ciphertext.bin,salt、key和初始化向量(iv)在命令行指定。

# openssl rc5 -in plaintext.doc -out ciphertext.bin -S C62CB1D49F158ADC -iv E9EDACA1BD7090C6 -K 89D4B1678D604FAA3DBFFD030A314B29

3、Diffie-Hellman应用例子

使用生成因子2和随机的1024-bit的素数产生D0ffie-Hellman参数,输出保存到文件dhparam.pem

# openssl dhparam -out dhparam.pem -2 1024

从dhparam.pem中读取Diffie-Hell参数,以C代码的形式,输出到stdout。

# openssl dhparam -in dhparam.pem -noout -C

4、DSA应用例子应用例子

生成1024位DSA参数集,并输出到文件dsaparam.pem。

# openssl dsaparam -out dsaparam.pem 1024

使用参数文件dsaparam.pem生成DSA私钥匙,采用3DES加密后输出到文件dsaprivatekey.pem

# openssl gendsa -out dsaprivatekey.pem -des3 dsaparam.pem

使用私钥匙dsaprivatekey.pem生成公钥匙,输出到dsapublickey.pem

# openssl dsa -in dsaprivatekey.pem -pubout -out dsapublickey.pem

从dsaprivatekey.pem中读取私钥匙,解密并输入新口令进行加密,然后写回文件dsaprivatekey.pem

# openssl dsa -in dsaprivatekey.pem -out dsaprivatekey.pem -des3 -passin

5、RSA应用例子

产生1024位RSA私匙,用3DES加密它,口令为trousers,输出到文件rsaprivatekey.pem

# openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024

从文件rsaprivatekey.pem读取私匙,用口令trousers解密,生成的公钥匙输出到文件rsapublickey.pem

# openssl rsa -in rsaprivatekey.pem -passin pass:trousers -pubout -out rsapubckey.pem

用公钥匙rsapublickey.pem加密文件plain.txt,输出到文件cipher.txt

# openssl rsautl -encrypt -pubin -inkey rsapublickey.pem -in plain.txt -out cipher.txt

使用私钥匙rsaprivatekey.pem解密密文cipher.txt,输出到文件plain.txt

# openssl rsautl -decrypt -inkey rsaprivatekey.pem -in cipher.txt -out plain.txt

用私钥匙rsaprivatekey.pem给文件plain.txt签名,输出到文件signature.bin

# openssl rsautl -sign -inkey rsaprivatekey.pem -in plain.txt -out signature.bin

用公钥匙rsapublickey.pem验证签名signature.bin,输出到文件plain.txt

# openssl rsautl -verify -pubin -inkey rsapublickey.pem -in signature.bin -out plain

从X.509证书文件cert.pem中获取公钥匙,用3DES加密mail.txt,输出到文件mail.enc

# openssl smime -encrypt -in mail.txt -des3 -out mail.enc cert.pem

从X.509证书文件cert.pem中获取接收人的公钥匙,用私钥匙key.pem解密S/MIME消息mail.enc,结果输出到文件mail.txt

# openssl smime -decrypt -in mail.enc -recip cert.pem -inkey key.pem -out mail.txt

cert.pem为X.509证书文件,用私匙key,pem为mail.txt签名,证书被包含在S/MIME消息中,输出到文件mail.sgn

# openssl smime -sign -in mail.txt -signer cert.pem -inkey key.pem -out mail.sgn

验证S/MIME消息mail.sgn,输出到文件mail.txt,签名者的证书应该作为S/MIME消息的一部分包含在mail.sgn中

# openssl smime -verify -in mail.sgn -out mail.txt