apt-get在安装或升级软件包时如何停止所有交互式提示?
我正在尝试编写一个非交互式脚本来在服务器上安装软件包,每当升级需要安装新内核时,apt-get总是忽略该-y选项并提示我选择更新 grub.lst 的选项。我总是想安装包维护者的版本。如何禁用此提示?
在我的 HTPC 上使用 LightDM/Xfce 桌面运行 Jessie (Debian 8) 后,它在 W7 上几乎停止运行。我无法克服的一件事是必须输入密码——这对于看电视来说不是一件正常的事情。
按照Debian Wiki上的说明,我自动选择了我的登录名。但这仍然需要密码,并且不允许像空密码/普通密码这样的半修复。
是否可以在没有登录名/密码的情况下直接进入 Xfce 会话?
我在其中创建了一个目录d和一个文件f。然后我只给了自己对该目录的读取权限。我明白这应该意味着我可以列出文件(例如这里),但我不能。
will@wrmpb /p/t/permissions> ls -al
total 0
drwxr-xr-x 3 will wheel 102 4 Oct 08:30 .
drwxrwxrwt 16 root wheel 544 4 Oct 08:30 ..
dr-------- 3 will wheel 102 4 Oct 08:42 d
will@wrmpb /p/t/permissions> ls d
will@wrmpb /p/t/permissions>
Run Code Online (Sandbox Code Playgroud)
如果我更改写入和执行的权限,我可以看到该文件。
will@wrmpb /p/t/permissions> chmod 500 d
will@wrmpb /p/t/permissions> ls d
f
will@wrmpb /p/t/permissions>
Run Code Online (Sandbox Code Playgroud)
为什么是这样?我正在使用 MacOS。
编辑:参考@ccorn 的回答,我使用的是鱼并type ls给出以下内容:
will@wrmpb /p/t/permissions> type ls
ls is a function with definition
function ls --description 'List …Run Code Online (Sandbox Code Playgroud) 我在维基百科$RANDOM上阅读了 RNG并在TLDP上运行,但它并没有真正解释这个结果:
$ max=$((6*3600))
$ for f in {1..100000}; do echo $(($RANDOM%max/3600)); done | sort | uniq -c
21787 0
22114 1
21933 2
12157 3
10938 4
11071 5
Run Code Online (Sandbox Code Playgroud)
为什么大约 2 倍以上的值更倾向于 0、1、2,而不是 3、4、5,但是当我更改最大模数时,它们几乎平均分布在所有 10 个值上?
$ max=$((9*3600))
$ for f in {1..100000}; do echo $(($RANDOM%max/3600)); done | sort | uniq -c
11940 0
11199 1
10898 2
10945 3
11239 4
10928 5
10875 6
10759 7
11217 8
Run Code Online (Sandbox Code Playgroud) 在为基于 Debian 的 Linux 系统下载 MySQL Workbench 时,我遇到了两个软件包。第一个被调用mysql-workbench-community_8.0.30-1ubuntu22.04_amd64.deb,而第二个被调用mysql-workbench-community-dbgsym_8.0.30-1ubuntu22.04_amd64.deb,后者的大小更大:
这两个包有什么区别?我应该使用哪一个?
我正在阅读 cron 和 anacron 之间的区别,我意识到 anacron 与 cron 不同,它不是守护进程。所以我想知道如果它不是守护进程,它实际上是如何工作的。
我找到了这个网站;它有包含所有艺术品的zip 文件(主页上的链接)。其中一些具有.ans扩展名,它们看起来像在 Linux/Unix 上使用的 ANSI 转义码,但是当我cat在 XFce 终端中使用打开其中一个时,它会产生垃圾(但是是彩色的)。它们看起来不像图片库。
链接中主要图稿的第一行如下所示(从 Emacs 复制):
[0;1m[30mthere is no substitute [0;33mÜܲ[1;43m°±²²[40mÛ[43mÛ²±[0;33mÝ ßÜ[1;43m²²²[40mÛÛ²[40m[K
Run Code Online (Sandbox Code Playgroud)
文件类型是 DOS,但它们只能在 Windows 上创建。
在搜索 ANSI 艺术时,我还发现该网站的zip 文件仅包含带有.ans扩展名的文件,而且它们在 Linux 上也无法正确呈现(第 2 页的画廊)。
我的问题是:
我有一个文本文件,每行包含一个文件名:
111_c4l5r120.png
123_c4l4r60.png
135_c4l4r180.png
147_c4l3r60.png
15_c4l1r120.png
...
Run Code Online (Sandbox Code Playgroud)
我想把它转换成这个形状:
111_c4l5r120.png 111
123_c4l4r60.png 123
135_c4l4r180.png 135
147_c4l3r60.png 147
15_c4l1r120.png 15
...
Run Code Online (Sandbox Code Playgroud)
使用此代码:
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "$line" >> output.txt
echo "$line" | cut -d'_' -f 1 >> output.txt
done < "$1"
Run Code Online (Sandbox Code Playgroud)
但是,结果是:
111_c4l5r120.png
111
123_c4l4r60.png
123
135_c4l4r180.png
135
147_c4l3r60.png
147
15_c4l1r120.png
15
...
Run Code Online (Sandbox Code Playgroud)
我应该如何更改我的脚本以获得所需的输出?
有没有办法使用 dpkg 查看包的不同版本之间的更改日志?
如果我想知道例如,为什么在最近的更新中升级了“passwd”,有没有办法使用 dpkg 来查看发生了什么变化?
$ dpkg -l passwd
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii passwd 1:4.2-3.1 amd64 change and administer password an
Run Code Online (Sandbox Code Playgroud)
它正在升级到 1:4.2-3.3...
我知道在 Debian 中,我可以查看软件包说明,并从那里查看链接的Debian 更改日志。
但这并不适用于所有基于 deb 的发行版,快速浏览一下新内容是很尴尬的。