========================

【gcc/g++】常用的gdb命令及gdb分析core文件详解 本文整理了GDB调试工具的常用指令和使用方法,主要内容包括:1) 基础操作如启动调试、运行程序;2) 断点管理(设置/查看/删除断点);3) 程序执行控制(单步执行、继续运行等);4) 变量查看与修改;5) 内存检查与汇编指令查看;6) 多线程调试;7) 信号处理;8) 核心转储文件分析。特别提供了针对段错误、堆损坏、栈溢出等常见问题的排查方法,并介绍了配合strace、valgrind等工具进行系统级调试的技巧。该指南可作为GDB调试的快速参考手册。 阅读详情

http://hi.baidu.com/cuisijia/blog/item/4f62a1ded6a2661a632798cc.html

wc命令

 

 

  wc命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。

 

 

  语法:wc [选项] 文件…

 

 

  说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。

 

 

  该命令各选项含义如下:

 

 

  - c 统计字节数。

 

 

  - l 统计行数。

 

 

  - w 统计字数。

 

 

  这些选项可以组合使用。

 

 

  输出列的顺序和数目不受选项的顺序和数目的影响。

 

 

  总是按下述顺序显示并且每项最多一列。

 

 

  行数、字数、字节数、文件名

 

 

  如果命令行中没有文件名,则输出中不出现文件名。

 

 

  例如:

 

 

  $ wc - lcw file1 file2

 

 

  4 33 file1

 

 

  7 52 file2

 

 

  11 11 85 total

 

 

  省略任选项-lcw,wc命令的执行结果与上面一样。

-----------------------------------

有一个git,很大

 

http://www.diybl.com/course/6_system/linux/Linuxjs/20090521/167554.html

Git和Repo扫盲——如何取得Android源代码

 


Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制软件,它不同于Subversion、CVS这样的集中式版本控制系统。在集中式版本控制系统中只有一个仓 库(repository),许多个工作目录(working copy),而像Git这样的分布式版本控制系统中(其他主要的分布式版本控制系统还有BitKeeper、Mercurial、GNU Arch、Bazaar、Darcs、SVK、Monotone等),每一个工作目录都包含一个完整仓库,它们可以支持离线工作,本地提交可以稍后提交到服务器上。分布式系统理论上也比集中式的单服务器系统更健壮,单服务器系统一旦服务器出现问题整个系统就不能运行了,分布式系统通常不会因为一两个节点而受到影响 。

因为Android是由kernel、Dalvik、Bionic、prebuilt、build等多个Git项目组成,所以Android项目编写了一个名为Repo的Python的脚本来统一管理这些项目的仓库,使得Git的使用更加简单。

这几天William为了拿Android最新的sourcecode,学习了一下git和repo的一些基本操作,整理了一个如何取得Android代码的How-To,今天把他贴上来。

1、Git的安装
在Ubuntu 8.04上安装git只要设定了正确的更新源,然后使用apt-get就可以了,有什么依赖问题,就让它自己解决吧。其中cURL是一个利用URL语法在命令行下工作的文件传输工具,会在后面安装Repo的时候用到。
sudo apt-get install git-core curl

2、安装Repo
首先确保在当前用户的主目录下创建一个/bin目录(如果没有的话),然后把它(~/bin)加到PATH环境变量中
接下来通过cURL来下载Repo脚本,保存到~/bin/repo文件中
curl http://android.git.kernel.org/repo >~/bin/repo

别忘了给repo可执行权限
chmod a+x ~/bin/repo

3、初始化版本库
如果是想把Android当前主线上最新版本的所有的sourcecode拿下来,我们需要repo的帮助。
先建立一个目录,比如~/android,进去以后用repo init命令即可。
repo init -u git://android.git.kernel.org/platform/manifest.git
这个过程会持续很长的时间(至少可以好好睡一觉),具体要多少时间就取决于网络条件了
最后会看到 repo initialized in /android这样的提示,就说明本地的版本库已经初始化完毕,并且包含了当前最新的sourcecode。

如果想拿某个branch而不是主线上的代码,我们需要用-b参数制定branch名字,比如:
repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake

另一种情况是,我们只需要某一个project的代码,比如kernel/common,就不需要repo了,直接用Git即可。
git clone git://android.git.kernel.org/kernel/common.git
这也需要不少的时间,因为它会把整个Linux Kernel的代码复制下来。

如果需要某个branch的代码,用git checkout即可。比如我们刚刚拿了kernel/common.get的代码,那就先进入到common目录,然后用下面的命令:
git checkout origin/android-goldfish-2.6.27 -b goldfish
这样我们就在本地建立了一个名为goldfish的android-goldfish-2.6.27分支,代码则已经与android-goldgish-2.6.27同步。我们可以通过git branch来列出本地的所有分支。

4、同步版本库
使用epo sync 命令,我们把整个Android代码树做同步到本地,同样,我们可以用类似
repo sync project1 project2 …
这样的命令来同步某几个项目

如果是同步Android中的单个项目,只要在项目目录下执行简单的
git pull
即可。

5、通过GitWeb下载代码
另外,如果只是需要主线上某个项目的代码,也可以通过GitWeb下载,在shortlog利用关键字来搜索特定的版本,或者找几个比较新的tag来下载还是很容易的。

Git最初是为Linux内核开发而设计,所以对其他平台的支持并不好,尤其是Windows平台,必须要有Cygwin才可以。现在,得益于 msysgit项目,我们已经可以不需要Cygwin而使用Git了。另外,Git Extensions是一个非常好用的Windows Shell扩展,它能与资源管理器紧密集成,甚至提供了Visual Studio插件。它的官方网站上有一分不错的说明文档,感兴趣的朋友可以看一看。

至于Git的参考文档,我推荐Git Magic,这里还有一个Git Magic的中文版。

 

---------------------------------------

硬盘对拷
dd if=/dev/src of=/dev/dst bs=1 31 072

用wget下载FTP整个目录
wget -mcnH ftp://hostname/dirname –ftp-user=user –ftp-password=password –no-passive-ftp -o /tmp/down/down.log

统计某列数值的平均值
例: grep Total: squid.log |awk ‘{print $2}’ |awk ‘{ sum + =$0}END {print sum /NR}’

 

-------------------------------

http://www.linuxsong.org/2008/08/shell_05.html

Shell中如何按列求和 ?

在 Shell 中,我们可以用 awk 实现按 列求和 的功能,非常简单。看下面的例子:
1.简单的按 列求和
[linux@test /tmp]$ cat test
123.52
125.54
126.36
[linux@test /tmp]$ awk '{sum += $1};END {print sum}' test
375.42
2.对符合某些条件的行,按 列求和
[linux@test /tmp]$ cat test
aaa 123.52
bbb 125.54
aaa 123.52
aaa 123.52
ccc 126.36
对文件test中 第一列 为aaa的行求和
[linux@test /tmp]$ awk '/aaa/ {sum += $2};END {print sum}' t
370.56
awk 处理 文本 还是很方便的。
-----------------------------------------------------
删除软件

要删除软件非常简单,只要执行下面的命令就行:
# rpm –e xanim

这时,用户要注意使用的是软件的名称xanim,而不是软件包的名称xanim-27.64-3.i386.rpm。

如果要删除的软件是其它软件所需要的,用户会得到类似下面的错误信息:
# rpm –e xanim

error: xanim is needed by mtv-1.0-1

这表明如果用户删除了xanim,则mtv就不能运行了,因为xanim里的一些软件是mtv运行所需要的。
若用户一定要删除,可以使用下面的命令:
# rpm –e xanim  --nodeps

升级软件

如果用户以前安装过xanim-27063-1.i386.rpm,现在又得到了xanim-27064-1.i386.rpm,则使用下面
的命令可以升级这个软件包:
# rpm –Uhv  xanim-27064-1.i386.rpm

实际上,-U参数是告诉RPM先删除原先的版本,再安装新的版本。所以不管以前是否安装过这个软件包,用户
都可以使用rpm –Uhv命令来安装软件。 
http://hi.baidu.com/guangneng_168/blog/item/6c3837832e4ce5b66d811962.html
-----------------------------------------------------------------

用 sort 排序
sort 能够根据不同的列将文档中的内容 排序 ,对灵活处理文档很有帮助。
(1), sort file 将文档按照第一列的字母顺序 排序 。
(2),将 排序 好的结果输出到文档
sort –o fileb filea 将文档filea 排序 输出到fileb;也能够用 sort filea >fileb重定向的方法。
sort –o filea filea 将文档filea 排序 且覆盖原来的文档
(3),-r 为按降序 排序 ,-n按数字的小大 排序 ,+n(n为0和正整数)按第 n+1个字段 排序 。
Sort –nr +3 filea 即是将filea文档按照第4个字段的数字大小 排序 ,假设filea第4个字段为数字,
并且每个字段之间用空格或Tab键分开。
(4),-t选项为定义文档字段之间分界的符号,-n(n为0或正整数)表示不按第 n+1个字段 排序 。所以 sort +1 –2 +0 -3 -t: filea将文档filea分别按第2个,不按第3个,按第1个,不按第4个字段 排序 ,其中每个字段之间用“:”分开。
(5),和uniq命令结合能够删除 余的行 sort filea |uniq 将文档filea删除任何完全相同的行后输出。
4. 裁缝世家cut&paste
(1), 从 一个文档中剪贴字段,字段之间按照特定的符号隔开(默认为空格)。cut –f2,3,5 –d:filea 将文档filea的第2,3,5个字段剪贴出来输出到屏幕,其中每个字段之间用:分开,假如不带-d则每个字段之间按空格分开。
(2),-c选项能够剪贴文档中的数据列。cut -c 1-15,20,22-30 filea 能够剪贴文档filea 从 第一列 开始 的第1-15个字符,第20个字符,和第22-30个字符,并输出。
(3),paste 能够将多个文档按列方式合并,和 cut相结合能够重组文档格式。
Cut –d: -f2,5 filea >tmp1
Cut –d: -f 4,3 fileb >tmp2
Cut –d: -f 11,12,13 filec >tmp3
Paste tmp1 tmp2 tmp3 >filed
则分别将文档filea的第2和第5个字段,fileb的第4个和第3个字段,filec的第11,12,13个字段合成为一个新文档filed。(最好filea,fileb,filec具备相同的行,不然将会将行多的文档的行贴到最后,前面的照样匹配。
5. 偷梁换柱的高手tr.
tr(translate)完成文档种批编辑的替换功能,用来将标准输入中的字符转换成标准输出中的其他定制字符:
(1). tr A B fileb 将文档filea中的任何A全部替换成B然后输出到文档fileb
(2). tr 也支持范围替换:
tr “[a-z]” “[A-Z]”
tr -s ‘[A-Z]' ‘[!*]'
(3). 能够利用tr 删除一个字符的连续出现: tr –s ″ ″ fileb 则将filea中的连续出现的空格以一个空格替换然后输出到文档fileb。
(4). –d 选项能够删除指定的字符,-cd 选项能够删除列出的字符以外的任何字符:
tr –d ″[a-z]″ fileb 将文档filea 中的任何小写字符全部删除然后输出到fileb.
tr –cd ″[a-z]″
6. “find ,grep & strings” 织成一张无边无际的网,几乎能够网住任何需要查找的目标,但也难免有漏网之鱼。
find 在目录中查找文档: find / -name filea –print
grep 在文本文档中搜索模式: grep aaaaa filea
strings 在文本文档或二进制文档中找出可打印字符:strings filea
   更有很多小成员,象sed,awk,perl,expect等

 

 原文地址 http://www.sudu.cn/info/html/server/20071205/3159.html

http://blog.chinaunix.net/u/6889/showart_523127.html

---------------------------------------------------

第三个命令是sort。 sort按照字母顺序逐行排序。我们仍以poem为例,目的在于观察排序现象:

    $ sort poem

        and greater still, and so on.

        and so ad infinitum.

        have greater fleas to go on;

        upon their backs to bite’em,

    And little fleas have lesser fleas,

    And the great fleas themselves, in turn,

    Great fleas have little fleas

    while these again have greater still,

    这是一个逐行排序,参数省缺时,排序以空格在前,然后大写字母,再改小写字母。sort程序实际上不受字母范围的限制。

    sort有很多控制排列顺序的选择项。如:某种排序的逆序,数字次序,字典模式排序,忽略前导空格,在每行内指定排序字段等等。一般应查阅手册以明确其用法,这里仅列出几种主要的选择项:

    sort –r                 标准排序的逆

    sort –n                 以数字次序排序

    sort –nr                数字排序的逆

    sort –f                 大小写一起混合排序

    sort +n                  从n+1个字段开始排序

    另一个文件处理命令是tail。 它的缺省功能是打印文件的最后10行。对于我们8行的诗已经超过了,但对于大文件是很适用的。tail可有指定打印行数的选择项,例如我们打印poem的最末行:

    $ tail –1 poem

        and greater still, and so on.

    tail还可以从指定行开始打印:

    $ tail +3 filename

    这是从第3行开始打印(注意这里违反惯例,使用正号作命令参数)。

 

http://www.dnzsk.com/html/2008-05/383.html

===================================================

 

 

一、安装
命令格式:
rpm -i ( or --install) options file1.rpm ... fileN.rpm
参数:
file1.rpm ... fileN.rpm 将要安装的RPM包的文件名
详细选项:
-h (or --hash) 安装时输出hash记号 (``#'')
--test 只对安装进行测试,并不实际安装。
--percent 以百分比的形式输出安装的进度。
--excludedocs 不安装软件 包中的文档文件
--includedocs 安装文档
--replacepkgs 强制重新安装已经安装的软件包
--replacefiles 替换属于其它软件包的文件
--force 忽略软件包及文件的冲突
--noscrīpts 不运行预安装和后安装脚本
--prefix 将软件包安装到由 指定的路径下
--ignorearch 不校验软件包的结构
--ignoreos 不检查软件包运行的操作系统
--nodeps 不检查依赖性关系
--ftpproxy 用 作为 FTP代理
--ftpport 指定FTP的端口号为

通用选项
-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为

测试1: (MySQL 的RPM安装包可以到http://download.mysql.cn下载)
[root@localhost Desktop]# rpm -ivh --test MySQL-server-5.0.18-0.i386.rpm
Preparing...                ########################################### [100%]
测试2:
[root@localhost Desktop]# rpm -ivh --percent --includedocs MySQL-server-5.0.18-0.i386.rpm
Preparing...                ########################################### [100%]
==============================================================================
Start MySQL
%% 0.000014
……

%% 0.854988
%% 1.126469
%% 1.397949

……
%% 97.192089
%% 97.463569
%% 97.526597
……
%% 99.888485
%% 99.999474
%% 100.000000
061117 11:18:32 [Warning] Asked for 196608 thread stack, but got 126976
061117 11:18:33 [Warning] Asked for 196608 thread stack, but got 126976
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h localhost.localdomain password 'new-password'
See the manual for more instructions.

Please report any problems with the /usr/bin/mysqlbug scrīpt!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at https://order.mysql.com
Starting MySQL..[  OK  ]


二、删除
命令格式:
rpm -e ( or --erase) options pkg1 ... pkgN
参数
pkg1 ... pkgN :要删除的软件包
详细选项
--test 只执行删除的测试
--noscrīpts 不运行预安装和后安装脚本程序
--nodeps 不检查依赖性
通用选项
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为

:暂无测试

三、升级
命令格式
rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm
参数
file1.rpm ... fileN.rpm 软件包的名字
详细选项
-h (or --hash) 安装时输出hash记号 (``#'')
--oldpackage 允许"升级"到一个老版本
--test 只进行升级测试
--excludedocs 不安装软件包中的文档文件
--includedocs 安装文档
--replacepkgs 强制重新安装已经安装的软件包
--replacefiles 替换属于其它软件包的文件
--force 忽略软件包及文件的冲突
--percent 以百分比的形式输出安装的进度。
--noscrīpts 不运行预安装和后安装脚本
--prefix 将软件包安装到由 指定的路径下
--ignorearch 不校验软件包的结构
--ignoreos 不检查软件包运行的操作系统
--nodeps 不检查依赖性关系
--ftpproxy 用 作为 FTP代理
--ftpport 指定FTP的端口号为

通用选项
-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为
:暂无测试

四、查询

命令格式:
rpm -q ( or --query) options
参数:
pkg1 ... pkgN :查询已安装的软件包
详细选项
-p (or ``-'') 查询软件包的文件
-f 查询属于哪个软件包
-a 查询所有安装的软件包
--whatprovides 查询提供了 功能的软件包
-g 查询属于 组的软件包
--whatrequires 查询所有需要 功能的软件包

信息选项
显示软件包的全部标识
-i 显示软件包的概要信息
-l 显示软件包中的文件列表
-c 显示配置文件列表
-d 显示文档文件列表
-s 显示软件包中文件列表并显示每个文件的状态
--scrīpts 显示安装、卸载、校验脚本
--queryformat (or --qf) 以用户指定的方式显示查询信息
--dump 显示每个文件的所有已校验信息
--provides 显示软件包提供的功能
--requires (or -R) 显示软件包所需的功能
通用选项
-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为

五、校验已安装的软件包
命令格式:
rpm -V ( or --verify, or -y) options
参数
pkg1 ... pkgN 将要校验的软件包名
软件包选项
-p Verify against package file
-f 校验所属的软件包
-a Verify 校验所有的软件包
-g 校验所有属于组 的软件包


详细选项
--noscrīpts 不运行校验脚本
--nodeps 不校验依赖性
--nofiles 不校验文件属性

通用选项
-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为


六、校验软件包中的文件
语法:
rpm -K ( or --checksig) options file1.rpm ... fileN.rpm
参数:
file1.rpm ... fileN.rpm 软件包的文件名
Checksig--详细选项
--nopgp 不校验PGP签名
通用选项
-v 显示附加信息
-vv 显示调试信息
--rcfile 设置rpmrc文件为

七、其它RPM选项
--rebuilddb 重建RPM资料库
--initdb 创建一个新的RPM资料库
--quiet 尽可能的减少输出
--help 显示帮助文件
--version 显示RPM的当前版本

===========================================
RPM查询篇  找linux工作,招linux人才,到Linuxeden人才频道
   
2001-12-04    otto       点击: 9327

(雨亦奇 赵建利 2001年12月03日 11:16)

RPM不仅在安装,升级,卸载方面工作出色,而且在查询方面比其它软件包管理工具更胜一筹。这从以下几种情况可以看出:
* 当你在浏览系统文件时,发现一个文件,想知道它来自哪个软件包时,可以用RPM来查询得知;
* 当你的朋友给你发送来一个软件包,但你不知道这是个什么样的软件包,不知道它做些什么,安装些什么,来源是哪里。这时,你可以用RPM查询搞定;
* 几个月前你安装了XFree86窗口软件,但现在你忘了它的版本号,也不知它的说明文档在哪里。这时,你可以用RPM查询一下这个软件包,得到这方面的信息。

RPM的查询还有一个高级功能,即定制输出功能。你可用--queryformat(或-qf)来定制一下输出格式,这样,RPM查询得到的信息将以你定制的格式输出,这样很是方便,尤适合于程序的自动处理。

命令格式
查询RPM格式的软件包,可使用如下命令格式:
rpm -q [查询选项1 查询选项2...]


注: 也可使用--query代替-q,效果相同。

选项列表



选项详解
指定用选项中ftp与http相关的四个选项(--ftpproxy,--ftpport,--httpproxy,--httpport)和通用选项的解释,请参见<<精通RPM之二--安装篇>>,本文不再赘述。下面对指定用选项做些解释:

指定用选项可分为如下几类:
一、软件包选择类
此类选项在一次只能选择一个,选择多个时RPM将提示错误:
rpm: one type of query/verify may be performed at a time

从查询方面看,一个是查询那些已安装的软件包,一个是查询未安装的软件包。
1. 查询已安装的软件包,使用下列选项:
(1) -a (或--all) : 查询所有已安装的软件包
# rpm -q -a
setup-2.0.2-1
filesystem-1.3.4-5
basesystem-6.0-5
agrep-2.04-5
aktion-0.3.6-2
amor-0.5-1
dhcpcd-1.3.17pl2-1
ldconfig-1.9.5-15
glibc-2.1.2-12
chkconfig-1.0.6-2
......
#


注: 本例查找当前系统中安装的所有软件包,输出很多,仅列出几个,剩下的省略掉了(以......表示)。
(2) -g (或--group) : 查询有哪些软件包属于指定类别
RPM根据软件功用的不同,将软件分为以下若干类:(括号内为注释)
Amusements/Games (娱乐/游戏)
Amusements/Graphics(娱乐/图形)
Applications/Archiving (应用/档案)
Applications/Communications (应用/通讯)
Applications/Databases (应用/数据库)
Applications/Editors (应用/编辑器)
Applications/Emulators (应用/仿真器)
Applications/Engineering (应用/工程)
Applications/File (应用/文件)
Applications/Internet (应用/因特网)
Applications/Multimedia (应用/多媒体)
Applications/Productivity (应用/产品)
Applications/Publishing (应用/印刷)
Applications/System (应用/系统)
Applications/Text (应用/文本)
Development/Debuggers (开发/调试器)
Development/Languages (开发/语言)
Development/Libraries (开发/函数库)
Development/System (开发/系统)
Development/Tools (开发/工具)
Documentation (说明文档)
System Environment/Base (系统环境/基础)
System Environment/Daemons (系统环境/守护)
System Environment/Kernel (系统环境/内核)
System Environment/Libraries (系统环境/函数库)
System Environment/Shells (系统环境/接口)
User Interface/Desktops (用户界面/桌面)
User Interface/X (用户界面/X窗口)
User Interface/X Hardware Support (用户界面/X硬件支持)
Other (其它)


注意: 类别是大小写敏感的,这一点输入时要小心。如果用户想要查询当前系统安装了哪些游戏类的软件包,可这样做:
# rpm -q -g Amusements/Games
clanbomber-1.01-1
kdegames-1.1.2-1
xbill-2.0-6
xboard-4.0.0-3
xboing-2.4-7
xgammon-0.98-14
xjewel-1.6-11
xpat2-1.04-10
xpilot-3.6.2-6
xpuzzles-5.4.1-7
xtrojka-1.2.3-6
#


如果用户想查询若干类别的软件包时,可以把类别都列出来,一起查询,如:
# rpm -q -g Applications/Editors Applications/File
emacs-20.3-15
emacs-nox-20.3-15
emacs-X11-20.3-15
vim-common-5.6-12
vim-minimal-5.6-12
vim-X11-5.6-12
fileutils-4.0-3
bzip2-0.9.5d-1
findutils-4.1-32
git-4.3.17-6
gzip-1.2.4-15
slocate-1.4-7
stat-1.5-12
file-3.26-6
#


注: 本例查询结果中前6个为"应用/编辑器"类别,后8个为"应用/文件"类别。
(3) -f (或--file) : 查询有哪些软件包拥有指定文件这个选项非常有用。当用户不清楚某个文件属于哪个软件包时,可试试这个选项。假如我记不清/usr/sbin/ftpd这个文件在哪个包中,现在用RPM查询:
# rpm -qf /usr/sbin/ftpd
inet6-apps-0.36-3
#


现在知道了,它在inet6-apps-0.36-3包中。命令中-qf是-q -f的缩写,当选项仅带一个减号时,多个选项可以合并在一起,如-a -b -c三个选项可写作-abc,执行效果相同。
(4) --whatrequires : 查询有哪些包需要指定功能
本选项指示RPM从所有已安装的软件包中,查询有哪些软件包提供了用户指定的功能,命令行上可输入一个或多个功能。
# rpm -q --whatrequires /bin/ps libc.so.6 | head
autofs-3.1.3-2
agrep-2.04-5
aktion-0.3.6-2
amor-0.5-1
chkconfig-1.0.6-2
libtermcap-2.0.8-16
bash-2.03-10
ncurses-4.2-18
info-3.12f-4
fileutils-4.0-3
#


注: 本例从系统中查询哪些软件包需要/bin/ps和libc.so.6功能,通过管道输出前10行内容。
(5) --whatprovides : 查询有哪些包提供指定功能
本选项指示RPM从所有已安装的软件包中,查询有哪些软件包提供了用户指定的功能。命令行上可输入一个或多个功能。
# rpm -q --whatprovides libc.so.6 /bin/ps
glibc-2.1.2-12
no package provides /bin/ps
#


注: 本例从系统中查询有哪些软件包提供libc.so.6与/bin/ps功能,结果是glibc-2.1.2-12包提供了libc.so.6,而没有包提供/bin/ps功能。
(6) --triggeredby : 查询有哪些包被指定的包触发本选项指示RPM从所有已安装的软件包中,查询有哪些包可被用户指定的包触发。指定的包可输入一个或多个。
# rpm -q --triggeredby file
foo-8.0-1
#


注: 本例查询后得知,安装或卸载foo-8.0-1包,将会触发与file包相关的脚本程序执行。

2. 查询未安装的软件包: (仅有一个选项可用)
(1) -p : 查询指定包裹文件的信息
使用本选项,通过指定一个或多个包裹文件名,RPM就可以获取相应包裹的有关信息。包裹文件可以是一般形式,也可是ftp/http形式。
# rpm -qp -l --ftpport 2121 ftp://zzz:pass@linux/zhsoft/file-3.26-6.i386.rpm
/usr/bin/file
/usr/man/man1/file.1
/usr/man/man4/magic.4
/usr/share/magic
#


注: 本例查询ftp形式的包裹,显示其文件列表(-l选项使然,下面要讲到)。ftp用户名zzz,密码为pass,远程机为linux,文件名为/zhsoft/file-3.26-6.i386.rpm,ftp使用2121端口。
二、信息显示类
本类选项可同时选择多个,以显示多种信息。
1. -i : 显示软件包信息
当用户需要了解软件包的头部信息时,要使用该选项。
# rpm -qi file
Name: file Relocations: /usr
Version : 3.26 Vendor: Red Hat Software
Release : 6 Build Date: 1999年03月23日 星期二 05时32分29秒
Install date: 2001年10月14日 星期日 21时18分25秒 Build Host: porky.devel.redhat.com
Group : Applications/File Source RPM: file-3.26-6.src.rpm
Size: 211946 License: distributable
Packager: Red Hat Software
Summary : A utility for determining file types.
Description :
The file command is used to identify a particular file according to the
type of data contained by the file. File can identify many different
file types, including ELF binaries, system libraries, RPM packages, and
different graphics formats.

You should install the file package, since the file command is such a
useful utility.
#


上述输出中,包含多个域,各个域的含义为:
Name : 软件名;Relocations : 重定位目录前缀(一个或多个);
Version : 版本号;Vendor : 开发商;
Release : 释出号;Build Date : 包建立时间;
Install date : 安装时间; Build host : 包建立主机;
Group: 类别; Source RPM : 源代码包;
Size : 大小; License : 许可证;
Packager : 打包者;
Summary : 软件简介;
Description : 详细描述。


2. -l (或--list) : 显示软件包文件列表
当用户想知道软件包包含哪些文件时,要使用该选项。输出时,一行一个文件名,形成文
件列表。下例列出file包中文件:
# rpm -qlv file
-rwxr-xr-x root root23948 3月 23 1999 /usr/bin/file
-rwxr-xr-x root root12023 3月 23 1999 /usr/man/man1/file.1
-rwxr-xr-x root root 6625 3月 23 1999 /usr/man/man4/magic.4
-rwxr-xr-x root root 169350 3月 23 1999 /usr/share/magic
#


注: 本例列文件时选用了通用选项-v,这样列出的格式同ls命令列出的格式,从中可以看到各个文件的权限,属主,属组,大小,最后修改时间及文件名等信息。

3. -d (或--docfiles) : 显示软件包说明文档RPM将软件包中的文件分为三类,一是配置文件,一是说明文档,再一是其它文件(包括可执行程序及数据文件等)。通过-d选项,可列出包中所有说明文档。下例列出file包中说明文档:
# rpm -qd file
/usr/man/man1/file.1
/usr/man/man4/magic.4
#



4. -c (或--configfiles) : 显示软件包配置文件使用本选项可列出包中所有配置文件。下例列出lze包中的配置文件:
# rpm -qc lze
/etc/funkey.def
/etc/inputme.def
#



5. -s (或--state) : 显示软件包文件状态RPM已安装的软件包中各个文件可拥有如下4种状态:
* normal(正常): 这表明文件未被其它软件包修改过。
* replaced(已替换): 这表明文件已被其它软件包修改替换过了,不再是原先的文件了。* not installed(未安装): 这表明文件未安装。有一种原因可导致这种情况发生,这就是当安装软件包时使用了--excludedocs选项(或是通过设置%_excludedocs 宏为1),说明文档未被安装到系统中。当用RPM查询此软件包状态时,所有说明文档均显示此状态。
* net shared(网络共享): 这表明文件处于网络共享状态。这一状态是RPM用来支持NFS(网络文件系统)的,用于避免一个NFS客户端系统删除一个正在共享的文件时,另一NFS客户端系统无法正常使用含此文件的软件包。有两种情况可使文件在此状态,一是文件安装在真实网络共享的目录里,二是文件安装在RPM资源配置文件中%_netsharedpath宏所确定的目录里。
# rpm -i --excludedocs file-3.26-6.i386.rpm
# rpm -qs file
normal/usr/bin/file
not installed /usr/man/man1/file.1
not installed /usr/man/man4/magic.4
normal/usr/share/magic
#


注: 本例先安装file包裹文件,选用--excludedocs表明不安装说明文档。而后再查询file包文件的状态,可以看到其说明文档均为not installed(未安装),其它文件为normal(正常)状态。

6. -R (或--requires) : 显示软件包所需的功能
所谓功能,可以是软件包标识,可以是文件(如共享库libc.so.6等),也可以是虚拟的名字。软件包的依赖关系,就是依靠功能来实现的。RPM安装软件包时,如果所需功能不存在,则其依赖关系不满足,RPM将中断安装过程。
# rpm -q -R lze
/bin/sh
ld-linux.so.2
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
#


注: 本例查询lze包所需的功能。

7. --provides : 显示软件包提供的功能
一个软件包,可以提供若干功能,这些功能可以是动态链接库等实际的文件,也可以是虚拟的名字(只要其它软件包可以用就行了)。如果想查询某个包提供了哪些功能,要用--provides
选项。
下面的例子查询一个包裹文件所提供的功能:
# rpm -qp --provides zlib-1.1.3-6.i386.rpm
libz.so.1
libz.so.1(GCC.INTERNAL)
#


注: 本包裹文件提供的功能是libz.so.1动态链接库。

8. --conflicts : 显示软件包冲突的功能
何谓冲突?冲突就是不同软件包之间不能共存的现象。RPM制作软件包时,可以记录下与本软件包不能共存的功能,这样安装该包时,若冲突的功能已然存在,则RPM将中止安装。
下面的例子查询at-3.1.7-8包是否有与其冲突的功能:
# rpm -q --conflicts at-3.1.7-8
crontabs <= 1.5
#


注: 本例显示at包与版本号小于1.5的crontabs包有冲突存在。

9. --scripts : 显示软件包内置的脚本程序
scripts 即脚本,指的是用SHELL语言编写的程序。选用本选项时,RPM将输出软件包所含的各类脚本程序的内容。总共有5类这样的脚本程序,即安装前脚本程序 (preinstall),安装后脚本程序(postinstall),卸载前脚本程序(preuninstall),卸载后脚本程序 (postuninstall)和校验脚本程序(verify)。
下面的例子列出zsh包的脚本程序:

# rpm -q --scripts zsh-3.0.7-4 | nl
1 postinstall script (through /bin/sh):
2 if [ ! -f /etc/shells ] ; then
3 echo "/bin/zsh" > /etc/shells
4 else
5 echo "/bin/zsh" >> /etc/shells
6 fi
7 /sbin/install-info /usr/info/zsh.info.gz /usr/info/dir /
8 --entry="* zsh: (zsh). An enhanced bourne shell."
9 preuninstall script (through /bin/sh):
10 if [ "$1" = 0 ] ; then
11 /sbin/install-info --delete /usr/info/zsh.info.gz /usr/info/dir /
12 --entry="* zsh: (zsh). An enhanced bourne shell."
13 fi
14 postuninstall script (through /bin/sh):
15 if [ "$1" = 0 ] ; then
16 if [ -f /etc/shells ] ; then
17 TmpFile=`/bin/mktemp /tmp/.zshrpmXXXXXX`
18 grep -v '^/bin/zsh$' /etc/shells > $TmpFile
19 cp -f $TmpFile /etc/shells
20 rm -f $TmpFile
21 chmod 644 /etc/shells
22 fi
23 fi
#


注: 本例利用管道技术给查询的每行输出加上了行号,便于观察解释。
第2-8行: 为安装后脚本程序(postinstall)的源代码;
第10-13行: 为卸载前脚本程序(preuninstall)的源代码;
第15-23行: 为卸载后脚本程序(postuninstall)的源代码。
例中所有脚本程序均通过/bin/sh解释执行,本例没有安装前脚本程序(preinstall)和
校验脚本程序(verify)。

10. --triggers : 显示软件包内置的触发脚本程序
触发脚本程序是scripts类脚本程序的扩展,它用于软件包之间的交互控制。触发脚本
程序有安装时触发脚本程序(triggerin),卸载前触发脚本程序(triggerun)和卸载后触发脚
本程序(triggerpostun)三种。
下面的例子列出zsh包中的触发脚本程序:
# rpm -q --triggers zsh-3.0.7-4
triggerpostun script (through /bin/sh) -- zsh <= 3.0.7-2
if [ ! -f /etc/shells ] ; then
echo "/bin/zsh" > /etc/shells
else
echo "/bin/zsh" >> /etc/shells
fi
#


注: 输出的第1行说明脚本程序的类别(为卸载后触发脚本程序triggerpostun),用什么程序解释(一般为/bin/sh),和触发的条件(在--之后描述)。本例的触发条件为zsh的版本小于或等于3.0.7-2。如果条件成立,则此脚本程序将会执行。输出的第2-6行为卸载后触发脚本程序的源代码。

11. --changelog : 显示软件维护记录
changelog即软件维护记录,用它来记录什么人,什么时间,改动了软件的什么地方。通
过查看维护记录,开发者或用户可以了解软件的开发进展情况。
下面的例子查询lze包的维护情况:
# rpm -q --changelog lze-6.0-2
* 五 5月 01 1998 雨亦奇
- 增加多窗口操作
* 一 3月 24 1997 雨亦奇
- 增加块操作命令
#


注: 从本例中就可以看出来,维护记录的书写有一定的规范:以星号(*)开头的行记录维护时间,维护人及其电子邮箱,而以减号(-)开头的行则记录维护的具体内容。

12. --dump : 显示软件包中所有文件的属性信息
如果用户想查看某个软件包内文件的属性信息,请用--dump选项。
# rpm -q --dump file
/usr/bin/file 23948 922138347 abaf6cfd51588ac7c484526fbdb84e5b 0100755 root root 0 0 0 X
/usr/man/man1/file.1 12023 922138346 76d9ff6567ab64a53eab50911272f5c1 0100755 root root 0 1 0 X
/usr/man/man4/magic.4 6625 922138346 b8d126803709f0da7f39f5125a132cd3 0100755root root 0 1 0 X
/usr/share/magic 169350 922138346 3bd2eaf3c5e0e84153ba7df38b7561fc 0100755 root root 0 0 0 X
#


现在根据例子的输出,解释一下RPM包中各个文件所拥有的属性信息:(以第1行为例)
/usr/bin/file : 为文件名;
23948 : 指文件大小(字节数);
922138347 : 指文件最后修改时间(秒数);
abaf6cfd51588ac7c484526fbdb84e5b : 指根据文件内容计算出的MD5检查和;
0100755 : 指文件存取权限;
root : 指文件属主;
root : 指文件属组;
0 : 配置文件标志,为0表示该文件非配置文件,为1表明该文件是配置文件;
0 : 说明文档标志,为0表示该文件非说明文档,为1表明该文件是说明文档;
0 : 指文件类型,为0表示普通文件,非0表示设备文件,包含主从设备号;
X : 符号连接内容,如果文件不是符号连接,则此值为X。

三、定制输出类
定制输出是RPM一项强有力的功能,当用户想要RPM按自己的格式输出软件包信息时,可以通过使用--qf(或--queryformat)选项来实现定制。

定制输出要指定格式化的字符串(类似printf的格式串),该字符串以单引号'或双引号"引住。格式串中可包括普通文本,含转义符的文本,功能标签和数组循环三种不同的组件。

* 普通文本
格式串中的普通文本将按原样输出。

* 含转义符的文本
RPM定义的转义符为/,称作反斜杠。当RPM遇到此字符时,会根据预先定义的转义序列,把后面的字符解释后输出。

转义序列如下:
/a : 输出响铃字符(值为7),效果是喇叭鸣叫一声。
/b : 输出退格符(值为8),效果是删除光标前面一个字符,且光标后退一个字符位置。
/f : 输出换页符(值为12),根据终端解释的不同,效果也不相同,有的是实现清屏操作,有的则是换一行。
/n : 输出换行符(值为10),效果是光标移到下一行。
/r : 输出回车符(值为13),效果是光标回到行首。
/t : 输出跳格(值为9),根据终端解释的不同,效果也不同,有的是输出一个空格,有的 则输出最多8个空格。
/v : 输出垂直方向的跳格(值为11),用处不大。
// : 输出反斜杠(/)这个字符。


* 功能标签
RPM内置了很多功能标签,如NAME表示软件名,VERSION表示版本号,RELEASE表示释出号等。输出功能标签所表示的内容时,需用这样一种格式:

%[输出宽度]{功能标签}
注:输出宽度可选,正值表示右对齐输出,负值表示左对齐输出。
如格式串中使用%{NAME}时将输出软件名,使用%20{NAME}时则右对齐输出软件名,宽度为20,而使用%-20{NAME}时则按宽度为20左对齐输出软件名。看看下面的实际例子就会明白:
# rpm -q --qf "%{NAME}:%20{NAME}:%-20{NAME}:/n" file
file:file:file:
#


功能标签书写不区分大小写,即NAME也可输作name,Name等等。功能标签还可以带有选项,选项用":选项名"表示,选项名有大小写之分。如% {FILEMODES}默认以数字形式输出,如采用perms选项,即%{FILEMODES:perms},输出结果将采用rwx的形式。请看下面的例子:
# rpm -q --qf "%{filenames} %{FILEMODES:perms}/n" file
/usr/bin/file -rwxr-xr-x-
#


注: %{filenames}表示包中的文件名。

RPM常用功能标签表




注: 可用rpm --querytags命令查到RPM内置的所有功能标签。

* 数组循环
对于功能标签是数组的,可以用数组循环(用[与]括住的部分)来输出数组的全部内容。数组循环内部可包含功能标签,普通文本和含转义符的文本。RPM将根据循环内部一个或多个数组类型的功能标签所拥有的单元个数,取其最小值,循环同样次数,输出解释或转义后的数据。对于功能标签仅含一个单元的,若想输出多次,则需要在功能标签前面加个等号(=)。

下面的例子以数组循环的方式,输出file包所含的各个文件的文件名及权限,同时输出每一个文件时都要先输出软件包标识。
# rpm -q --qf "[%{=NAME}-%{=VERSION}-%{=RELEASE} : %-20{FILENAMES} : %{FILEMODES:perms}/n]" file
file-3.26-6 : /usr/bin/file : -rwxr-xr-x-
file-3.26-6 : /usr/man/man1/file.1 : -rwxr-xr-x-
file-3.26-6 : /usr/man/man4/magic.4 : -rwxr-xr-x-
file-3.26-6 : /usr/share/magic : -rwxr-xr-x-
#


通过使用定制输出,我们可以很方便地查找出系统中占用空间最大的软件包。
# rpm -q -a --qf "%{NAME} %{SIZE}/n" | sort -nr +1 | head -1
kernel-source 65824967
#


注: -a项选择所有已安装的软件包,--qf项定制查询格式, 格式串中用功能标签NAME输出软件名,用SIZE输出软件大小,查询得到的数据通过管道送sort命令,对第2列降序排序后由head命令取第1行内容,这即是占用空间最大的软件包。

http://www.linuxeden.com/doc/20451.html
=================================

如何得到一个已安装的RPM软件包的总大小?

文章选项: 打印
xyb版主
(veteran)
04-02-04 12:10
   
[精华] Re: 如何得到一个已安装的RPM软件包的总大小? 新 [re: gucuiwen]     

rpm -q --info openssh | grep Size | awk '{print $3}'

文章选项: 打印
xyb版主
(veteran)
04-02-04 12:20
   
[精华] Re: 如何得到一个已安装的RPM软件包的总大小? 新 [re: gucuiwen]     

这样也可以,和用前一个得到的值相同:
for i in `rpm -ql openssh`; do if test -f $i; then ls -ld $i; fi; done| awk '{sum=sum+int($5)}END{print sum}'

[bobxie@simon bobxie]$ for i in `rpm -ql openssh`; do if test -f $i; then ls -ld $i; fi; done| awk '{sum=sum+int($5)}END{print sum}'
627058
[bobxie@simon bobxie]$ rpm -q --info openssh | grep Size | awk '{print $3}'
627058

文章选项: 打印
gywx
(enthusiast)
04-02-13 10:54
   
[精华] Re: 如何得到一个已安装的RPM软件包的总大小? 新 [re: gucuiwen]     

rpm -q --queryformat "%{SIZE}/n" packagename


但好像这个值好像和软件包的真正大小还是有一定差距的。


--------------------
各位英雄各位好汉!有钱的捧个钱场,没钱的给捧个人场

文章选项: 打印
lhl
(Pooh-Bah)
04-02-13 11:44
   
[精华] Re: 如何得到一个已安装的RPM软件包的总大小? 新 [re: gywx]     


rpm -q --queryformat "%{FSSIZES}" xxx




--------------------
时间永是流驶,BBS依旧不太平。

文章选项: 打印
xyb版主
(veteran)
04-02-13 11:45
   
[精华] Re: 如何得到一个已安装的RPM软件包的总大小? 新 [re: gywx]     

这个尺寸不是你安装的软件包的大小,而是这个包装到你的系统后所有文件占用的系统空间的大小,这从
for i in `rpm -ql openssh`; do if test -f $i; then ls -ld $i; fi; done| awk '{sum=sum+int($5)}END{print sum}'
这条命令可以看得很清楚。

文章选项: 打印
gywx
(enthusiast)
04-02-13 14:09
   
[精华] Re: 如何得到一个已安装的RPM软件包的总大小? 新 [re: xyb]     

咳,都怪我看贴不仔细.谢谢!


http://www.linuxforum.net/forum/showflat.php?Board=vrml&Number=471699
================================

[保留] 如何查看redhat一个RPM软件包占用磁盘空间的大小?
http://www.chinaunix.net 作者:xzh2002  发表于:2007-10-28 16:46:11
【发表评论】【查看原文】【Linux讨论区】【关闭】

用命令方式


 wangzhixu 回复于:2005-10-01 09:43:45

????????????

 编号1124 回复于:2005-10-01 10:56:37

rpm -qf soft
先查查都安装了那些文件,然后查这些文件占用的空间吧

 bingosek 回复于:2005-10-01 12:31:08

比如说你要通缉sysstat所占的空间:
du -k -c `rpm -ql sysstat`

 brucewoo 回复于:2005-10-08 09:11:31

不错,非常好用

 别爱我我没钱 回复于:2005-10-15 11:15:45

[root@RADIUS sysconfig]# du -c -k 'rpm -ql sysstat'
du: `rpm -ql sysstat': No such file or directory
0       total
[root@RADIUS sysconfig]#

 别爱我我没钱 回复于:2005-10-15 11:17:45

du: `rpm -ql sysstat': No such file or directory
呵呵,不成呀!
没有运行rpm -ql sysstat这个命令嘛!

 q1208c 回复于:2005-10-15 11:19:27

引用:原帖由 "别爱我我没钱" 发表:
du: `rpm -ql sysstat': No such file or directory
呵呵,不成呀!
没有运行rpm -ql sysstat这个命令嘛!
 :em06:  :em06: 用反引号, 就是1前面那个.

 临风轩主 回复于:2005-10-15 12:35:50

用管道也可以吧
du |rpm -ql sysstat

 jilin_wyq 回复于:2005-10-19 23:53:05

用管道也可以吧
du |rpm -ql sysstat

试了,不行

 寂寞烈火 回复于:2005-10-20 00:28:54

引用:原帖由 "临风轩主" 发表:
用管道也可以吧
du |rpm -ql sysstat

反了!
try:


rpm -ql packname|du -sh



 網中人 回复于:2005-10-20 02:03:31

rpm -qi package-name | grep '^Size'

 hellwolf 回复于:2007-10-27 20:27:30

$ rpm -q --qf "%{SIZE}/n" rpm
4289085

 sanyork 回复于:2007-10-28 16:46:11

# rpm -qi sysstat | grep Size




原文链接:http://linux.chinaunix.net/bbs/viewthread.php?tid=620861
转载请注明作者名及原文出处

===========================

OCP Java17 SE Developers 复习题15(完) ======================= 答案 ================================================ 答案 ================================================ 答案 ================================================ 答案 ======================== 阅读详情

相关推荐

有图有真相 MATLAB实现基于BO-BP贝叶斯算法(BO)结合反向传播神经网络(BP)进行多输入单输出回归预测(代码已调试成功,可一键运行,每一行都有详细注释) 还请多多点一下关注 加油 谢谢 你的

本文介绍了一个基于MATLAB的BO-BP(贝叶斯优化结合反向传播神经网络)多输入单输出回归预测模型。该模型具有以下特点: 功能完整:包含数据模拟生成、参数设置、贝叶斯优化超参数搜索、BP神经网络训练、预测评估等完整流程。 交互性强:提供图形界面参数设置窗口和运行控制面板,支持暂停/继续/绘图功能。 优化算法:采用贝叶斯优化自动搜索最佳网络结构(层数、神经元数量)和训练参数(学习率、批大小等)。 性能评估:提供6种评估指标(RMSE、MAE、R²等)和8种可视化图表,包括预测散点图、误差分布等。 技术实现:

优质创作者: 人工智能技术领域 对于有一定基础的 MATLAB和Python带具体需求都可以详谈 MATLAB和Python可以提供代码调试服务加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢 1728

C#中 '??'、'?:'、'?' 的区别

1、可空类型修饰符(?) 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。 例如:string str = null ;是正确的 int a = null;编译器就会报错 为了使值类型也可为空,用可空类型修饰符“?”来表示,表现形式为“T?”。 例如: int?表示为可空的整形,DataTime?表示可空的时间。 T?其实是System.Nullable(泛型结构)的缩写形式...

weixin_44819220的博客 1万+

VxWorks环境搭建与学习:vxworks6.8和workbench3.2

VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。

qq_41854911的博客 8468

c语言3f,C语言%.4f与%3f代表是什么意思?

C语言%.4f代表输出小数位为4的浮点数。%3f代表输出场宽为3的浮点数。格式占位符(%)是在C/C++语言中格式输入函数,如scanf、printf等函数中使用。其意义就是起到格式占位的意思,表示在该位置有输入或者输出。其中,%f,%F,%e,%E,%g,%G 用来输入输出实数,可以用小数形式或指数形式输入输出。可以在“%”和字母之间插进数字表示最大场宽。如:%9.2f表示输出场宽为9的浮点数,...

weixin_39768762的博客 2万+

美团mtgsig 3.1.0算法还原:从加密入口到d1生成的完整链路拆解

本文详细拆解了美团mtgsig 3.1.0签名算法的完整逆向过程。通过定位加密入口函数eH,理清a6、a5、a8到d1的生成依赖链,并运用插桩技术,在JSVMP混淆环境下逐步还原了核心参数的生成逻辑,为逆向工程实践提供了清晰的纯算还原方法论。

oo7890的博客 776

保姆级教程:在Ubuntu 20.04上搞定pybind11,解决‘找不到头文件’的坑

本文提供了一份详细的Ubuntu 20.04下pybind11配置指南,重点解决常见的'找不到头文件'问题。从环境准备、安装策略到三种专业解决方案(修改CMakeLists.txt、环境变量方案、绝对路径包含),帮助开发者高效搭建C++与Python的桥梁。

weixin_28829325的博客 284

【Emoj】看看csdn支持哪些表情

准备以后csdn写博客插入一些表情,所以贴上来测试一下csdn 的表情。 Smileys & People Find emojis by name or description ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ☺️ ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ????

韩旭051的博客 7万+

Nvidia AGX Xavier刷机指北

因为工作的关系,要在AGX上安装CUDA。nvidia官网上没找到适合AGX版本的CUDA,只能走刷机的路子。刷机过程中,也遇到一些坑,做个记录。 需要有一台ubuntu系统的电脑作为主机Host。我的主机系统为Ubuntu18.04 整个刷机过程为: 在Host上安装sdkmanager,整个刷机过程主要通过sdkmanager来操作。 在Host自动下载一些系统组件,各种deb包 Host上制作OS系统镜像,烧录到AGX中 Host上之前下载好的deb包,安装到AGX中。 完结,撒花 ...

sinat_38685124的博客 6292

详解ts中的?、??、||、!、!!、!.、?:、 ?.

详解ts中的?、??、||、!、!!、!.、?:、 ?.

m0_67444502的博客 1万+

ADRC自抗扰控制:工程抗扰“黑科技”,附C代码实战!

自抗扰控制(ADRC)是一种革新性的强鲁棒控制策略,通过主动估计和补偿系统扰动,无需精确数学模型即可实现优异控制性能。本文详细解析ADRC三大核心组件:跟踪微分器(TD)实现指令柔化,扩张状态观测器(ESO)实时估计总扰动,非线性状态反馈(NLSEF)完成动态补偿。针对二阶系统,文章提供完整的参数设计方法和C语言实现框架,包括关键函数fhan和fal的代码实现。ADRC将复杂对象"线性化"为积分器串联系统,显著提升抗扰能力,特别适用于电机控制、飞行器姿态等存在模型不确定性和强干扰的场景。

技术工作者 1730

uniapp实战:mui-player插件如何完美适配m3u8/flv直播流(附完整代码)

本文详细介绍了如何在Uniapp中使用mui-player插件完美适配m3u8和flv直播流,提供从基础配置到高级优化的全流程解决方案。通过动态加载策略、响应式布局和内存管理,实现跨平台稳定播放,适用于企业级直播应用开发。

weixin_29001655的博客 233

【typescript】详解ts操作符中的?、?:、?.、??、||、|、!、!.、!!

下面是TS种?.、?:、??、||、!.、!!的基本介绍:?表示该属性或参数为可选项?. 是指对象属性,可以理解为对象自动加上undefined?: 是指可选参数或者属性??表示只有当左侧为null和undefined时, 才会返回右侧的数|| 表示只有当左侧为0、null和undefined时, 才会返回右侧的数!是指非空断言操作符!. 是指断言,告诉 ts 该对象里一定有某个值!!是指把表达式强行转换为boolean类型,常用于类型判断。

qq_36375343的博客 3940

基于多模态融合的反无人机视觉跟踪算法研究

本研究提出了一种基于多模态融合的反无人机视觉跟踪算法,通过整合可见光、红外、深度等多种视觉信息源,提高了对无人机的跟踪精度和可靠性。设计并实现了多模态特征提取方法,针对不同模态图像的特点提取了有效的特征信息,为多模态融合提供了基础。研究了多种多模态融合策略,包括特征级融合、决策级融合和混合融合,并通过实验对比分析了它们的优缺点,确定了适合反无人机视觉跟踪的融合方法。选择并改进了跟踪算法,将多模态融合信息融入到跟踪过程中,提高了算法对复杂环境和无人机运动变化的适应性。

AI的内部世界的博客 1349

WebSocket与发散创新的融合:探索实时通信的未来之路========================

WebSocket是一种网络通信协议,允许服务器与客户端之间进行全双工通信。与传统的HTTP协议不同,WebSocket建立连接后,客户端和服务器可以互相发送数据,而无需每次都发起新的连接请求。这使得实时数据传输成为可能,广泛应用于实时聊天、股票交易、实时游戏等场景。

aichiyv1234的博客 49

深度学习笔记——前向传播与反向传播、神经网络(前馈神经网络与反馈神经网络)、常见算法概要汇总

本文简要介绍深度学习的前向传播与反向传播,以及前馈神经网络与反馈神经网络。

haopinglianlian的博客 3042

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Layer 2方案:探索区块链技术的创新发散之路========================

Layer 2方案是在区块链基础层(Layer 1)之上构建的扩展解决方案,旨在解决区块链面临的性能瓶颈问题。它通过提供额外的功能和服务,如交易处理、隐私保护等,来增强区块链系统的性能。Layer 2方案主要包括状态通道、闪电网络、侧链等技术。这些技术可以有效地提高区块链系统的交易速度、降低交易成本,并增强系统的可扩展性和隐私保护能力。

yzbABC1234的博客 91

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

======================.Net中的选择结构 if if -else ========================

if结构的语法: if(关系表达式或者bool类型的值) { 代码; } 执行过程:程序运行到if处,首先判断if后面小括号中的条件,如果条件成立的话,就执行if所带的 大括号中的代码. 如果条件不成立的话,它就不会执行,直接跳过if结构,有可能一条代码都不会执行. 例如://编程实现:如果蹲厕所时间30分钟,那么就不用出来了. static void Mai...

weixin_30553065的博客 108

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

生成对抗网络(GANs)的发散创新应用探索========================

生成对抗网络(GANs)是一种深度学习技术,通过生成器(Generator)和判别器(Discriminator)之间的对抗性训练,生成逼真的数据样本。近年来,GANs已成为计算机视觉、自然语言处理等领域的研究热点。本文详细探讨了生成对抗网络(GANs)的原理、最新进展以及在实际应用中的发散创新。通过代码示例、流程图等形式,我们深入剖析了GANs的工作机制及其在图像生成、风格迁移等领域的创新应用。随着技术的不断发展,GANs将在更多领域发挥重要作用。

zzq678912345的博客 299

MATLAB实现遗传算法优化微网调度

MATLAB实现遗传算法优化微网调度

corn1949的博客 1690

Vue新建项目与npm使用.

learn C:\Users\71027>npm config get registry https://registry.npm.taobao.org/ 确定是淘宝镜像. 上一次新建项目的经历. 网友的教程 ? Project name comment ? Project description 一个留言系统.可以添加留言.查看所有留言. ? Author learning <**...

gwdfff的博客 374

OCP Java17 SE Developers 复习题08

======================= 答案 ================================================ 答案 ================================================ 答案 ================================================ 答案 ========================

十八年后又是一条好汉的博客 1428

【笔记1】Python编程:从入门到实践(第2版) - 埃里克·马瑟斯

形参名*toppings中的星号让Python创建一个名为toppings的空元组,并将收到的所有值都封装到这个元组中。函数体内的函数调用print()通过生成输出,证明Python能够处理使用一个值来调用函数的情形,也能处理使用三个值来调用函数的情形。它以类似的方式处理不同的调用。形参**user_info中的两个星号让Python创建一个名为user_info的空字典,并将收到的所有名称值对都放到这个字典中。else是一条包罗万象的语句,只要不满足任何if或elif中的条件测试,其中的代码就会执行。

dsbss的博客 2816

Python - 动态规划之寻找并显示所有路径

一.引言 一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 求可能的路径个数。 二.动态规划实现 1.代码实现 这是动态规划最基础的一个题目,转化到坐标系中,主要信息有两个: A.网格大小 M x N,起始点 (0,0) 终点 (m-1, n-1) B. 每次只能向下或者向右移动,假设当前点 (k, j),则下一步的坐标可能为 (.....

BITDDD小栈 4444

从零配置一个规范的 Python Git 仓库(适用于 Gitee / GitHub)

本文介绍了如何规范配置一个Python Git仓库,适用于Gitee/GitHub托管。主要内容包括:1)创建空仓库并选择MIT-0开源协议;2)配置.gitignore文件,自动过滤Python编译文件、虚拟环境、IDE配置等非必要内容;3)设置.gitattributes统一换行符(LF)和文本编码(UTF-8),确保跨平台一致性。文章提供了详细的配置模板,并解释了各配置项的作用,帮助开发者创建规范、干净的Python项目仓库。

主要分享关于C++学习中遇到的问题,请多多指教~ 1330

Redis日志按天切割并压缩存储本地磁盘及日志备份文件定时清理

1、lliunx下redis日志备份及清理 2、日志定时备份及清理 3、lliunx下日志定时备份及备份日志定时清理 4、lliunx下日志备份及备份日志压缩 5、定时任务配置及取消

huanglm_OneWholeLife的博客 1万+

怎么让IDE开发工具知道哪个区域的代码是一块的?

有时候一个代码源文件中内容过多时,我们可能想要对其进行分区,比如我想要将我的实体类分为字段行为规则校验创建方法四个部分或分区。但是,我该怎么告诉我的划掉划掉IntelliJ IDEA 并让它知道我的意思呢?但是,朋友们有没有发现,无论设计的多么独特,无论自己玩的多嗨,IDE都不鸟你,再花哨对于IDE来说也只是普通的代码注释罢了。那有没有一种办法能让IDE提供一种支持呢?比如能够识别出来我想要标记的这一块代码区域?聪明的小伙伴一定猜到了,那必须得有啊!不然也不会有我这篇文章了。

Xi Minghui's blog 1207
上一篇: RED HAT linux 系统整理RPM
下一篇: fedora 11 install wine
skyremember
博客等级 码龄20年 204粉丝 484原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值