当打开特定的 pdf 文件时,evince
决定以“演示模式”打开它。
我在手册页中看到 evince 可以-s
选择以演示模式打开,但我没有调用它。我只是将所有 pdf 文件打开为evince file.pdf
不知何故,evince 自行决定以演示模式打开这种特殊类型的 pdf。
其他 pdf 在普通窗口中打开效果很好。
我怎样才能禁用这种行为?
当打开特定的 pdf 文件时,evince
决定以“演示模式”打开它。
我在手册页中看到 evince 可以-s
选择以演示模式打开,但我没有调用它。我只是将所有 pdf 文件打开为evince file.pdf
不知何故,evince 自行决定以演示模式打开这种特殊类型的 pdf。
其他 pdf 在普通窗口中打开效果很好。
我怎样才能禁用这种行为?
我已经在我的 USB 磁盘上创建了分区parted
parted /dev/sdb
mklabel gpt
mkpart boot fat32 0% 1024MB
set 1 esp on
set 1 boot on
然后我格式化了分区
mkfs.vfat -F 32 /dev/sdb1
安装并复制我的文件
最后,我跑了:
efibootmgr --create --disk /dev/sdb --part 1 --loader /EFI/BOOT/syslinux.efi --label "Syslinux" --unicode
之后,我无法再挂载该分区:
# mount /dev/sdb1 /mnt/tmp/
mount: /mnt/tmp: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error.
dmesg(1) may have more information after failed mount system call.
但该磁盘作为可启动 UEFI 磁盘,因此分区仍然存在。我就是无法安装它!
我在 Debian 12 上这样做
这是strace: https: //ctxt.io/2/AABQzO6_EQ
这很奇怪:
我刚刚发现,如果我首先使用以下命令映射它,我可以安装分区kpartx
:
kpartx -a -p -kpartx- -s -v /dev/sdb
mount /dev/mapper/sdb-kpartx-1 /mnt/tmp/
当我运行efibootmgr
命令时:
efibootmgr --create --disk /dev/sdb --part 1 --loader /EFI/syslinux/syslinux.efi --label "Syslinux" --unicode
我收到此错误:
EFI variables are not supported on this system.
当我尝试加载模块时efivarfs
,出现以下错误:
modprobe efivarfs
modprobe: ERROR: could not insert 'efivarfs': No such device
我正在使用自编译内核,并且我确实有efivarfs
支持:
CONFIG_EFIVAR_FS=m
那么为什么我无法加载模块呢?
我在 Debian 12 上使用内核 6.1.45
我刚刚在 Debian Live-CD 启动系统上进行了测试,得到了同样的错误:
modprobe efivarfs
modprobe: ERROR: could not insert 'efivarfs': No such device
如何创建 UEFI 可启动 CD?
ISOLINUX 没有提及 UEFI: https://wiki.syslinux.org/wiki/index.php ?title=ISOLINUX
虽然 SYSLINUX 确实如此,但特定于 syslinux: https://wiki.syslinux.org/wiki/index.php ?title=Install#UEFI
我已经安装了这些软件包: syslinux syslinux-common isolinux syslinux-efi
我按照说明使用 ISOLINUX 创建旧版(非 UEFI)可启动 CD,文件结构如下:
CD_root/
CD_root/isolinux/
CD_root/isolinux/isolinux.bin
CD_root/isolinux/isolinux.cfg
CD_root/isolinux/ldlinux.c32
我认为这些文件isolinux.bin
和文件ldlinux.c32
仅用于旧版启动。
虽然有 UEFI 特定的,但 /usr/lib/ISOLINUX/ 或其他任何地方都ldlinux.e64
没有。isolinux.efi
要创建 UEFI 可启动 CD,我到底需要做什么不同的事情?
在 Debian 12 上,我安装了额外的语言 hunspell 词典:
但是当我启动 Thunderbird 102 时,它看不到它们。当我单击“语言”时,它只提供默认值English (United States)
当我在本地将词典安装为插件时,Hunspell 词典可以工作。但是,我必须为我的所有配置文件单独安装它。
如何将 hunspell 字典安装为 Debian 软件包并在 Thunderbird 中使用它?
我在 Debian 12 上使用vpnc-connect
and vpnc-disconnect
(来自包vpnc
)。
当我启动时vpnc-connect
它只打印消息:
VPNC started in background (pid: 2345)
但除此之外,这些工具的整个操作是完全无声的。即使发生错误(即密码错误。它只会在提示上再次要求输入密码),也没有日志。
在哪里可以看到 vpnc 日志?它们是否没有通过守护进程设施登录到 rsyslog 中?
我是否必须明确设置日志记录才能启用?
我有一个小型“救援”系统(16MB),我将其作为 ramdisk 启动到 ram 中。我准备的initrd磁盘需要格式化。我认为 ext4 会做得很好,但显然,使用日志或其他高级 ext4 功能是没有意义的。
如何创建最小的 ext4 文件系统?
可能是最简单的最小文件系统?
我需要在 Debian 12 上安装最小的 openbox 系统:
apt-get --no-install-recommends install openbox
apt-get 想要安装其他软件包:
libavahi-client3 libavahi-common-data libavahi-common3
apt-cache show openbox
不将 avahi 怪物显示为依赖项:
取决于:libc6 (>= 2.14)、libglib2.0-0 (>= 2.35.9)、libice6 (>= 1:1.0.0)、libobrender32v5 (>= 3.6.0)、libobt2v5 (>= 3.6.0) 、libsm6、libstartup-notification0 (>= 0.7)、libx11-6、libxau6 (>= 1:1.0.9)、libxcursor1 (>> 1.1.2)、libxext6、libxi6 (>= 2:1.2.99.4)、libxinerama1 、libxrandr2、python3
因此,大概依赖项的依赖项的某些依赖项想要安装它。如何找到依赖avahi的包?
我正在使用自定义 python 脚本来处理日志,并禁止违规 IP。这是我的行/etc/rsyslog.conf
:
local0.* action(type="omprog" name="asterisk" binary="/usr/local/sbin/asterisk.py")
当我的脚本生成一些错误时,我在日志中的任何位置都看不到它(但当我使用给定的输入手动运行脚本时,我确实看到了 python 错误)
我是否必须明确地将错误重定向到某个地方?
我在 Debian 10 上使用 rsyslog 8.1901
在 Debian 12 中,每周运行以下命令:
start-stop-daemon --start --pidfile /dev/null --startas /usr/bin/mandb --oknodo --chuid man -- --quiet
它生成 man 缓存/var/cache/man
但是查看该目录,我看到正在生成所有可能的语言:
...
./zh_CN
./zh_CN/cat1
./zh_CN/cat5
./zh_CN/cat8
./zh_CN/index.db
./zh_TW
./zh_TW/cat1
./zh_TW/cat5
./zh_TW/cat8
./zh_TW/index.db
我将语言设置为英语,如何防止生成无意义的语言?
我有自定义脚本的 zsh 完成规则。我的脚本可以采用零个或多个选项(以 开头-
)和零个或多个任意字符串(模式):
_arguments -S : \
'--foo' \
'--bar' \
'1:pattern:'
此规则仅部分有效,格式如下:
script "somestring" <TAB>
提供--foo
或--bar
并--f<TAB>
自动完成--foo
然而,
script <TAB>
什么都不做,我想在其中列出选项 ( --foo
, --bar
)
甚至当我明确地开始时,--
它也会显示选项,但即使在我输入时也不会自动完成它们--f<TAB>
,而且我想要的选项也没有歧义。
script --f<TAB>
应该自动完成--foo
所以,总而言之,既然string
可以是任何东西,就没有什么可以自动完成的。因此,当我按下时,我想自动完成 --options,不管我是否已经输入了字符串/模式
我想,我必须以某种方式在我的完成规则中指定以任何开头的内容-
都是一个选项,而不是字符串,因此应该从可用选项自动完成
我注意到 Linux 上的 Firefox 和 Chromium 浏览器都可以打开文件/proc/self/mem
进行阅读。据我所知,我系统上没有其他程序读取这个文件。
/proc/self/mem
臭名昭著的是无休止的特权升级漏洞,通常内存被恶意代码覆盖,程序执行被劫持。
这更令人难过,因为浏览器是最暴露的程序,具有最多的攻击面,因为它们从互联网接收不受信任的输入。
有正当理由,为什么现代浏览器需要阅读/proc/self/mem
?
我知道如何改变亮度和伽马xrandr
:
xrandr --output eDP1 --brightness 0.8 --gamma "0.90:0.85:0.80"
但是我怎样才能改变饱和度,即减少颜色的数量并使光谱更接近黑/白?
我需要一种在命令行上更改它的方法,而不是在我的显示器的硬件设置上。
我正在使用 Debian 10
我创建了一个脚本/etc/update-motd.d/foo
#!/bin/sh
echo aaa
exit 0
我希望这个脚本在 ssh 登录时执行,并显示输出。
我的以下几行/etc/pam.d/sshd
:
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so noupdate
我希望它应该在 ssh 登录时执行该脚本。
但这不起作用,ssh 登录时没有打印任何内容。该脚本归 root 所有,拥有 755 权限。
我还需要做什么?
我正在使用 Debian 10。
我想暂时从 ip 1.2.3.4 授予 root 访问权限,仅针对当前会话(直到下一次 sshd 或服务器重启)
我可以将其添加到sshd_config
,然后记得将其删除:
AllowUsers [email protected]
但是有更好的方法吗?我可以在不编辑配置文件的情况下更改当前运行的 sshd 守护进程的当前设置吗?
我知道如何隐藏内核线程ps
:
/bin/ps --pid 2 --ppid 2 --deselect -o user:10,pid,stat,pcpu,pmem,tty,start_time,cmd
我知道如何只显示root拥有的进程:
/bin/ps -U root -o user:10,pid,stat,pcpu,pmem,tty,start_time,cmd
但是如何只显示root拥有的进程,而排除内核线程?
结合以上两个命令不起作用:
/bin/ps --pid 2 --ppid 2 --deselect -U root -o user:10,pid,stat,pcpu,pmem,tty,start_time,cmd
在mc
(午夜指挥官)中,我可以定义用于查看文件的自定义命令,即:
shell/i/.jpg
Open=gpicview %f
View=file %f | less
该命令file %f
必须通过管道传送到寻呼机。我以这里less
为例。
less 的问题是,它在屏幕中间显示一行,并添加了这些字符:
~
~
(END)
我只需要最简单、最愚蠢的寻呼机,它除了显示从管道重定向接收到的内容外,什么都不做。类似于cat
命令的东西,它不会将任何内容添加到它正在显示的文件中。
我可以用什么代替less
?
或者我可以配置less
隐藏那些特殊字符吗?
好的,我已经less
通过使用选项--tilde
和--clear-screen
. 但是,less
仍然显示(END)
在页面底部。
我可以摆脱(END)
吗?如果没有配置选项,我怎么能在源代码中更改它(我可以重新编译更少的包)
我less
在 Debian 10 上使用。less --version
显示:
less 487 (GNU regular expressions)
如何将数据对齐到相对于给定单词的漂亮列中?
例如,我有route -n
命令的输出:
default via 172.20.99.254 dev eth0
87.33.17.71 dev tun0 scope link
89.223.15.12 via 172.20.99.254 dev eth0 src 172.20.99.74
172.20.9.0/24 dev eth0 proto kernel scope link src 172.20.99.74
65.46.5.89 dev tun0 scope link
192.168.11.0/24 dev tun0 scope link
45.211.111.7 dev tun0 scope link
我想通过 word 对齐它dev
,以便包含 word 的列dev
对齐:
default via 172.20.99.254 dev eth0
87.33.17.71 dev tun0 scope link
89.223.15.12 via 172.20.99.254 dev eth0 src 172.20.99.74
172.20.9.0/24 dev eth0 proto kernel scope link src 172.20.99.74
65.46.5.89 dev tun0 scope link
192.168.11.0/24 dev tun0 scope link
45.211.111.7 dev tun0 scope link
我不能天真地用制表符替换第一个空格字符,因为有时我需要 1 个制表符,有时我需要 3 个制表符。