在平常的开发中,我们经常会遇到一种情形,就是想查看某个大一点的文本里面的内容, 除了我们使用 vim 这种轻量级的编辑器浏览看之外,还有一种方法是 就是 cat 的用法。
最简单的用法就是:
cat a.txt | less
然后这个时候键入 /
,这个时候再键入你想查找的字符就可以了。如果一屏放不下不要紧,
接着使用n
就可以继续查找了。
我们知道,dpkg是deb包的安装后端程序,而 apt-get 则是这个命令的前端,其中, 我们使用
apt-get install xx
会自动解决依赖问题,而 dpkg -i xx
则不会,这个时候,需要我们在
联网的状态下运行 apt-get install -f
即可。
今天我们补充几个 dpkg的几个高级用法。
使用“dpkg-deb -I somepackage.deb”,您可能会大致了解该软件包提供的具体内容。
(base) user@CI_Server:~/local$ dpkg-deb -I deepstream-5.1_5.1.0-1_arm64.deb
new Debian package, version 2.0.
size 572891552 bytes: control archive=18320 bytes.
1127 字节, 10 行 control
74007 字节, 584 行 md5sums
855 字节, 14 行 * postinst #!/bin/bash
2805 字节, 32 行 * prerm #!/bin/bash
Package: deepstream-5.1
Version: 5.1.0-1
Architecture: arm64
Maintainer: NVIDIA Corporation
Installed-Size: 1631299
Depends: cuda-cudart-10-2 | cuda-cudart-11-1, cuda-cudart-dev-10-2 | cuda-cudart-dev-11-1, cuda-npp-10-2 | libnpp-11-1, cuda-npp-dev-10-2 | libnpp-dev-11-1, cuda-cufft-10-2 | libcufft-11-1, libvisionworks (>= 1.6.0), libvisionworks-dev (>= 1.6.0), gstreamer1.0-libav, gstreamer1.0-plugins-bad, gstreamer1.0-plugins-good, libcairo2 (>= 1.15.10), libglib2.0-0 (>= 2.56.4), libgstreamer1.0-0 (>= 1.14.1), libgstreamer1.0-dev (>= 1.14.1), libgstreamer-plugins-base1.0-0 (>= 1.14.1), libgstreamer-plugins-base1.0-dev (>= 1.14.1), libnvinfer7 (>= 7.1.0), libnvinfer-dev (>= 7.1.0), libnvparsers7 (>= 7.1.0), libnvparsers-dev (>= 7.1.0), libnvonnxparsers7 (>= 7.1.0), libnvonnxparsers-dev (>= 7.1.0), libnvinfer-plugin7 (>= 7.1.0), libnvinfer-plugin-dev (>= 7.1.0), libpangocairo-1.0-0 (>= 1.40.14), libx11-6, libgstrtspserver-1.0-0, libnvvpi1 (>= 1.0.13)
Section: Utils
Priority: standard
Homepage: http://developer.nvidia.com/jetson
Description: Nvidia DeepStreamSDK runtime libraries, development files and samples
‘dpkg-deb -c somepackage.deb’ 列出将要安装的所有文件。
# a. mkdir tmp && cd tmp
# b.
sudo dpkg --control ../eswin-l4e-logo_0.0.1_arm64.deb ./DEBIAN
# c.
sudo dpkg --vextract ../eswin-l4e-logo_0.0.1_arm64.deb ./
# 此时,返回上一级目录
sudo dpkg-deb --build tmp eswin-l4e-logo_0.0.2_arm64.deb
即可生成一个新的deb包。
其实,这篇文章不应该这么放置的。我目前最大的问题就是,自己给自己的目标实现不了, 比如说,周末干点啥,但是一点行动力没有。
不知道没什么这样,原本想着周末好好充实自己,但是呢,时间也很快,根本没有可记得 留念的东西记载。
这是我个人感触最大的地方,因为作为职场新人,你首先面对的就是领导。我想说的是,不管面对什么样的领导, 首先做好自己的事情。
在新的部门,由于部门人手不够,自己做的事情确实有点杂,除了向我的直系领导抱怨外,自己在做这些事情的 同时,确实有点心力交瘁,一个事情处理不好,就会影响另一件事情的开展。既然这样的话,那就努力让自己开启 多线程,尽力去做好吧,抱怨是没用的。
Boss给我说了一件事,小事也有很多琢磨的地方。关键是,我身边的环境,并不支撑自己能够高效的让自己去做这些事情。
看了士兵突击的某一集,记住了一句话,简单的事情重复做,重复的事情认真做。
再一次记录下这个操作:
repo init -u ssh://[email protected]:29418/metis-station/manifest -b metis-dev --repo-url=ssh://[email protected]:29418/tools/git-repo
-b
指定分支, --repo-url
的参考分支,主要是节约下载宽带流量的。
那么,我从gerrit上的网站看到一个URL:
http://10.12.130.33/gerrit/c/metis-station/swtest/+/532
如果CI工程师告诉你说,使用git clone下,这个 swtest repo, 则需要以下的命令:
# 1. # clone
git clone ssh://[email protected]:29418/metis-station/swtest/
# 这个时候你只是下载了一个repo,但是需要像 repo init的那样,进入对应的分支。
# 2. checkout
git checkout metis-dev
#3. git pull
git pull
剩下的则是git的一些操作。
在程序中经常看见eval的用法,最初不太熟悉,故特意记录一下。
假设,set 11 22 33 44
,如果打印第4个参数,则直接使用echo $4
就可以,但是,
如果不知道有几个具体的参数时怎么办。
eval echo "\$$#"
相当于命令被执行两次,第一次语义替换,第二次才是真正打印命令。