小编Fah*_*tha的帖子

在基于 Debian 的系统中,我们如何清除已经卸载的软件包的配置文件?

更具体地说,我想做相当于将--purge标志添加到以下命令

sudo apt-get autoremove --purge [package name]
Run Code Online (Sandbox Code Playgroud)

到系统上不再存在的软件包。

最好,我想知道如何对特定的软件包和系统中的每个卸载的软件包执行此操作。

packaging ubuntu debian apt package-management

16
推荐指数
2
解决办法
5391
查看次数

你如何记住命令选项?

我很想知道您使用什么技巧来记住各种命令的选项?一直查找手册页既费时又不酷!

shell command

14
推荐指数
2
解决办法
9679
查看次数

在 Debian 中查找提供特定替代方案的所有软件包

Debian 发行版有Debian Alternatives System。来自维基:

Debian 替代系统为实现相同或相似功能的多个程序创建了一种方法,这些程序将被列为同时安装的替代实现,但其中一个特定实现被指定为默认实现。例如,许多系统同时安装了多个文本编辑器。vi 程序是一个经典的编辑器示例,它有许多实现,例如 nvi、elvis、vim 等,但是应该指定哪一个作为默认?

通常,Debian 中有多个软件包提供了特定的替代方案。如何获得 Debian 存储库中存在的所有此类软件包的完整列表?让我们以 vi 替代品为例。

注意:对已安装的软件包列表进行这样的查询很容易,但这不是这个问题所要问的。

debian package-management alternatives

13
推荐指数
4
解决办法
1200
查看次数

跨非特权 lxcontainers 共享 unix 套接字

我有两个非特权容器,我想在它们之间共享一个 unix 套接字。每个容器在主机上都有自己的用户,并具有单独的 subuid 和 subguid 映射。

我尝试在容器中创建组并将它们映射到主机上的一个组。但是,这不起作用。我不想创建额外的用户,以尽可能减少所涉及的用户数量和潜在的安全漏洞,而不会将容器相互暴露。

socket lxc containers

13
推荐指数
1
解决办法
1161
查看次数

交换无限数量的列

我有一个带列的文件。请参阅下面的示例:

a b c ... z  
1 2 3 ... 26
Run Code Online (Sandbox Code Playgroud)

我想交换第一个成为最后一个,第二个成为最后一个之前的所有列......等等。

z y x ... a  
26 25 24 ... 1
Run Code Online (Sandbox Code Playgroud)

是否有一个班轮(awksed)可以做到这一点?
我知道awk当只有几列时可以使用,但我希望能够对具有数千列的文件执行此操作。

tac这对于线条来说是完美的。
我想我正在寻找列的等效项。

rev 对我没有用,因为它还交换了列中的内容。

sed awk text-processing columns

12
推荐指数
4
解决办法
1248
查看次数

使用 gcc 时安装 g++(仅限 C) -- RH6

我有一台 RHEL 6 机器,它带有gcc但没有g++. gcc 版本是 4.4.4 20100726(这是我从 中得到的gcc --version)。

我怎样才能让 g++ 工作?目前,shell 只返回“未找到命令”。

rhel gcc software-installation

11
推荐指数
1
解决办法
1万
查看次数

从文件中去除尾随空格

这个问题的答案与sed的去除尾随空白已大部分的答案,但我想

sed -i 's/[ \t]*$//' $1
Run Code Online (Sandbox Code Playgroud)

能够将任意数量的文件参数作为命令行上的 shell 脚本,包括 glob 参数。即假设脚本被称为strip_trailing_whitespace. 然后我希望能够做到这两点

strip_trailing_whitespace foo.cc bar.cc
Run Code Online (Sandbox Code Playgroud)

strip_trailing_whitespace *.cc *.hh
Run Code Online (Sandbox Code Playgroud)

从表单的所有文件中去除尾随空格*.cc*.hh. 不基于上面引用的答案的论点也可以。

sed shell-script whitespace

11
推荐指数
2
解决办法
2万
查看次数

裁剪 JPG 图像

这是一个关于图像文件裁剪的问题。

我最近在一家名为“自由新闻杂志”的印度报纸上发布了一条公告。这可以作为The Free Press Epaper在线获得。

现在,人们可以下载以 JPG 文件形式发布在论文中的通知。但是,此 JPG 可以(在我的情况下)包含多个通知。这些通知大多是垂直运行的细长矩形,填充图像。

我想知道是否有人可以建议一种简单的方法来从图像文件中“切片”包含所需通知的片段。如果能让这个切片过程更容易,我也可以转换为另一种格式。必要时使图像变大的方法也将是一个加分项。

image-manipulation

11
推荐指数
3
解决办法
3万
查看次数

bash中路径名的模式匹配

我想对目录中的子目录列表进行操作。考虑:

for x in x86-headers/*/C/populate.sh; do echo $x; done
Run Code Online (Sandbox Code Playgroud)

这给

x86-headers/elf/C/populate.sh
x86-headers/gl/C/populate.sh
x86-headers/gmp/C/populate.sh
x86-headers/gnome2/C/populate.sh
x86-headers/gtk2/C/populate.sh
x86-headers/jni/C/populate.sh
x86-headers/libc/C/populate.sh
Run Code Online (Sandbox Code Playgroud)

但我想要对应于路径第二部分的值 elfgl, 等。我知道如何去除前导x86-headers.

for x in x86-headers/*/C/populate.sh; do i=${x##x86-headers/}; echo $i; done
Run Code Online (Sandbox Code Playgroud)

这使

elf/C/populate.sh
gl/C/populate.sh
gmp/C/populate.sh
gnome2/C/populate.sh
gtk2/C/populate.sh
jni/C/populate.sh
libc/C/populate.sh
Run Code Online (Sandbox Code Playgroud)

我也知道如何去除路径中的后期术语。即下降一级:

cd x86-headers
for x in */C/populate.sh; do i=${x%%/*}; echo $i; done
Run Code Online (Sandbox Code Playgroud)

elf
gl
gmp
gnome2
gtk2
jni
libc
Run Code Online (Sandbox Code Playgroud)

但是,试图将这些结合起来是行不通的。IE

for x in x86-headers/*/C/populate.sh; do i=${${x##x86-headers}%%/*}; echo $i; done
Run Code Online (Sandbox Code Playgroud)

bash: ${${x##x86-headers}%%/*}: bad substitution
Run Code Online (Sandbox Code Playgroud)

毫无疑问,这是不正确的语法,但我不知道正确的语法。当然,可能有更好的方法来做到这一点。如果我使用 Python,我会使用 split …

bash string wildcards patterns

10
推荐指数
2
解决办法
1万
查看次数

使用chromium-widevine Debian 软件包

至少从 Debian 9 (stretch) 开始,Debian 包含 contrib 包 chromium-widevine。这个包的描述是:

这个包提供对widevine内容解密模块的支持。

但是,安装此软件包后,我找不到任何表明 Chromium 识别或正在加载此插件的迹象。Widevine 在这个包中的位置是/usr/lib/chromium/libwidevinecdmadapter.so.

我目前使用这个包是在 Chromium 上播放 Amazon Prime Video。目前我收到错误:

您的网络浏览器缺少数字版权组件。转到 chrome://components,然后在 WidevineCdm 下单击检查更新。

chrome://components 没有在 Chromium 下列出 WidevineCdm。

对于额外的奇怪,我得到:

root@orwell:/usr/lib/chromium# ldd libwidevinecdmadapter.so 
        linux-vdso.so.1 (0x00007ffccbfad000)
        libwidevinecdm.so => not found
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f08c6e5b000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f08c6ad3000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f08c6733000)
        /lib64/ld-linux-x86-64.so.2 (0x000055e84bdbe000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f08c642b000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f08c6213000)
Run Code Online (Sandbox Code Playgroud)

所以libwidevinecdm.so什么都不解决?

知道我应该在这里做什么吗?在chromium-widevine没有任何文件或指示一个应该如何进行。

注意:这个问题已经过时了,至少从 Debian 10/buster 开始,因为 Chromium-widevine 包不再存在。

debian chrome

10
推荐指数
2
解决办法
3万
查看次数