AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-164309

Enlico's questions

Martin Hope
Enlico
Asked: 2025-02-11 02:14:58 +0800 CST

socat 监听器如何知道与其连接的进程已被终止?

  • 9

据我所知,一旦建立了 TCP 连接,除非两端中的一端实际发送了消息,否则就不会有实际的数据流,它们都会被阻塞在接收消息的调用中。也就是说,两端都不会定期向另一端发送消息说“只是为了让你知道,我还活着”。

如果是这样的话,那么我预计如果通信通道的任一端突然关闭(例如kill -KILL it,但也只是拔掉整台机器的电源线),那么另一端就不会知道。

举一个具体的例子,我可以通过以下方式在两个终端之间建立连接socat:

  • 从一个终端监听并记下 PID
    $ socat -d4 TCP-LISTEN:12345 -
    $ # ctrl-z
    $ jobs -l
    [1]+ 958602 Stopped                 socat -d4 TCP-LISTEN:12345 -
    $ fg
    
  • 从另一个终端连接并记下该 PID
    $ socat -d4 TCP-CONNECT:localhost:12345 -
    $ # ctrl-z
    $ jobs -l
    [1]+ 958730 Stopped                 socat -d4 TCP-CONNECT:localhost:12345 -
    $ fg
    

(由于调试消息,两个socat命令都会产生相当多的输出-d4。)

现在,如果我打开第三个终端问题

$ kill -KILL 958730

我看到在第二个Killed终端中打印的内容,其中的调试行并不比之前打印的多,但在第一个终端中我确实看到了更多的输出:socat

2025/02/10 18:04:42 socat[958602] D select -> (, 0x0, 0x0, 0x0, NULL/0.000000), 1
2025/02/10 18:04:42 socat[958602] D read(122, 0x61dbb1b48000, 8192)
2025/02/10 18:04:42 socat[958602] D read -> 0
2025/02/10 18:04:42 socat[958602] N socket 1 (fd 122) is at EOF
2025/02/10 18:04:42 socat[958602] D data loop: sock1->eof=3, sock2->eof=0, closing=1, wasaction=1, total_to={0.1000000}
2025/02/10 18:04:42 socat[958602] D select(1, &0x1, &0x0, &0x0, &0.500000)
2025/02/10 18:04:43 socat[958602] D select -> (, 0x0, 0x0, 0x0, &0.000000), 0
2025/02/10 18:04:43 socat[958602] I poll timed out (no data within 0.500000 seconds)
2025/02/10 18:04:43 socat[958602] I shutdown(122, 2)
2025/02/10 18:04:43 socat[958602] D shutdown()  -> 0
2025/02/10 18:04:43 socat[958602] D tcsetattr(0, 0, {00006506,00000005,000000bf,00008a3b, 15,15, 03,1c,7f,15,04,00,01,00,11,13,1a,00,12,0f,17,16,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00})
2025/02/10 18:04:43 socat[958602] D tcsetattr() -> 0
2025/02/10 18:04:43 socat[958602] D tcsetattr(1, 0, {00006506,00000005,000000bf,00008a3b, 15,15, 03,1c,7f,15,04,00,01,00,11,13,1a,00,12,0f,17,16,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00})
2025/02/10 18:04:43 socat[958602] D tcsetattr() -> 0
2025/02/10 18:04:43 socat[958602] N exiting with status 0
2025/02/10 18:04:43 socat[958602] D exit(0)
2025/02/10 18:04:43 socat[958602] D starting xioexit()
2025/02/10 18:04:43 socat[958602] D finished xioexit()

但我不明白,如果因为SIGKILL它是由内核直接处理的而不能在用户代码中捕获/处理,那么958730就不应该做任何事情,比如发送一条消息说“对不起,我快死了”,因此958602永远不应该知道这件事。

我的推理缺陷在哪里?

linux
  • 1 个回答
  • 609 Views
Martin Hope
Enlico
Asked: 2025-02-03 15:28:23 +0800 CST

为什么连接到 VPN 会从我的本地用户创建新的登录?

  • 6

当我在家工作时,我通过以下命令从我的 Linux 机器连接到 VPN:

$ sudo openconnect --protocol=anyconnect -u usernameatwork --authgroup=MFA foo.bar.baz.work

这将要求我

  1. 插入我的本地用户的密码,因为我正在运行sudo,
  2. 在工作VPN中输入我的用户密码,
  3. 由于 MFA,请使用另一台设备进行确认。

我刚刚注意到

  • 在步骤 1 之前,who我的本地机器告诉我我是唯一一个登录到我的计算机的人:
    myself   tty1         2025-01-14 17:47
    
  • 在步骤 1 之后,who我的本地机器告诉我刚刚再次登录:
    myself   tty1         2025-01-14 17:47
    myself   pts/2        2025-02-03 07:17
    

输出的第二行是什么意思?

我的意思是,我已经连接到 VPN。为什么这意味着我重新登录了自己的系统?

arch-linux
  • 1 个回答
  • 21 Views
Martin Hope
Enlico
Asked: 2025-02-01 22:27:08 +0800 CST

我是否正确理解了知道文件的用户 ID 对其他文件系统上该文件的可访问性的影响?

  • 5

在O'Reilly 的《Classic Shell Scripting》中,Arnold Robbins 和 Nelson HF Beebe 写了以下内容:

如果将用户附加到用户 ID 100 的文件系统smith安装到或导入到已分配给用户 的用户 ID 为 100 的文件系统jones,则jones可以完全访问的文件。即使目标系统上存在smith另一个名为 的用户,情况也是如此。smith

说实话,我不确定我是否真的理解了这件事的含义。

这是否意味着如果我有一个闪存驱动器,mount并且我在其上有一个在我的系统上创建的cp文件,那么可以使用用户名(可能为此目的专门创建)在另一个系统上访问该闪存驱动器,然后该用户可以访问我在我的系统上对该文件的访问权限?myselfumountmountmyself


现在我写了它,我开始认为它没有什么奇怪的,从某种意义上说,文件没有被加密或任何东西,并且myself cp在闪存驱动器上读取文件确实意味着我正在尝试共享它,所以它在其他地方可读并没有什么问题/不安全。

我是否遗漏了什么?

linux
  • 3 个回答
  • 38 Views
Martin Hope
Enlico
Asked: 2025-02-01 21:15:57 +0800 CST

执行 cp /path/to/a /p/t/b 后,根据 /path/to/a 和所有目录的文件权限,确定 b 的文件权限的规则是什么?

  • 8

在O'Reilly 编写的《Classic Shell Scripting》中,Arnold Robbins 和 Nelson HF Beebe 编写了以下示例:

$ umask
023
$ rm -f foo
$ cp /bin/pwd foo
$ ls -l /bin/pwd foo
-rwxr-xr-x   1 root    root     10428 2001-07-23 10:23 /bin/pwd
-rwxr-xr--   1 jones   devel    10428 2002-09-21 16:37 foo

生成的权限字符串rwxr-xr--反映了权限的丢失:组丢失了写访问权限,其他丢失了写和执行访问权限。

现在,023开头的输出告诉我,在当前 shell 中,新创建的文件的访问权限将被w删除g,并且wx已被删除o,因此,虽然我理解“其他文件丢失执行访问权限”,但我没有得到“组丢失写访问权限”或“其他文件丢失写访问权限”,因为它们一开始都没有。

您认为这只是该评论措辞不准确,还是我遗漏了什么?

此外,我在我的系统上尝试过,但结果让我更加困惑:

$ umask 
0023
$ cp /bin/pwd ~/foo
$ ls -l /bin/pwd ~/foo 
-rwxr-xr-x 1 root   root   35072 Jan 18 19:17 /bin/pwd*
-rw-r--r-- 1 myself myself 35072 Feb  1 12:54 /home/myself/foo

现在, 的输出应该意味着0023删除和(其中实际上只有存在,因此在这种情况下它是唯一被删除的),但相反,看起来和的权限也已被删除。wgwxoxoxug

这是为什么?

在哪里可以找到所有规则来决定当我创建和复制文件时会发生什么情况(就权限而言)?

linux
  • 1 个回答
  • 40 Views
Martin Hope
Enlico
Asked: 2025-01-18 21:05:11 +0800 CST

无法配置端口转发

  • 5

今天早上,我尝试在另一个网络上的一台机器上设置端口转发,以允许 SSH 访问。

相关配置页面需要填写以下字段(这是从意大利语翻译而来的原始截图):

Name: _________
Protocol: __________
Remote host IP address: ___.___.___.___ ~ ___.___.___.___
Host LAN: ___________
WAN port: ____ ~ ____
LAN host port: ____

据我了解,

  • Name并不重要,我可以把任何我想放的东西放进去,
  • Protocol应该是TCP
  • Host LAN应该是我想要连接的设备(通过以太网连接到路由器的工作站)分配的 IP
  • WAN port是我想要暴露给外界的端口,例如9022,
  • LAN host port22对于 SSH来说
  • Remote host IP address让我有点困惑的是,我最初以为我可以做192.168.1.1 ~ 192.168.1.255,其中应该包括路由器。

根据https://canyouseeme.org/,上述设置是错误的,因为该网站无法看到我9022。


我还在意大利论坛上看到这个帖子,建议___.___.___.___ ~ ___.___.___.___应填写路由器的地址,对我来说这意味着192.168.1.1 ~ 192.168.1.1。 OP 没有回复并询问更多信息,因此我推测这些设置对他们有效。

linux
  • 1 个回答
  • 23 Views
Martin Hope
Enlico
Asked: 2025-01-04 03:53:05 +0800 CST

将 8GB 文件复制到 30GB Apple 设备(无标签的 USB 棒)时出现“文件太大”

  • 5

我的磁盘上有这个文件:

$ ls -lh /path/to/some.mkv
-rwxr-xr-x 1 enrico enrico 7.4G Dec 17 18:54 /path/to/some.mkv

所以它小于 8 GB,但是当我尝试将它复制到 30GiB 闪存驱动器上时,出现此错误:

cp: error writing '/path/to/some.mkv': File too large

这是驱动器:

$ sudo fdisk -l | tail -n 16

Disk /dev/sdc: 29.3 GiB, 31457280000 bytes, 61440000 sectors
Disk model: USB DISK        
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6f20736b

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sdc1        778135908 1919645538 1141509631 544.3G 72 unknown
/dev/sdc2        168689522 2104717761 1936028240 923.2G 65 Novell Netware 386
/dev/sdc3       1869881465 3805909656 1936028192 923.2G 79 unknown
/dev/sdc4       2885681152 2885736650      55499  27.1M  d unknown

Partition table entries are not in disk order.
$ sudo mount /dev/sdc /mnt/foo
$ cd /mnt/foo
$ df . -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc         30G   16K   30G   1% /mnt/foo
filesystems
  • 2 个回答
  • 89 Views
Martin Hope
Enlico
Asked: 2024-04-12 14:25:21 +0800 CST

如何对名称与模式匹配且内容与模式匹配的所有文件执行命令?

  • 6

假设我想对包含单词 的cmd所有*.cpp和文件执行。*.hppFOO

就找到这些文件而言,我知道我能做到,

find /path/to/dir -name '*.[hc]pp' -exec grep -l 'FOO' {} +

但是扩展处理以便我可以执行(例如cmd对每个文件)执行的正确方法是什么?

我知道我可以在 中-exec bash -c '...'编写“如果文件内容包含,则在文件上FOO运行cmd”逻辑...,但这感觉就像是用大炮射苍蝇。

linux
  • 2 个回答
  • 27 Views
Martin Hope
Enlico
Asked: 2024-01-26 03:17:13 +0800 CST

通知在 Linux 上如何工作?

  • 7

我使用 ArchLinux,但这应该是无关紧要的,除了我经常参考它的 wiki 页面的原因之外。

我认为对通知如何工作以及“玩家”如何交互以使通知发挥作用并没有真正清楚的了解:

  • 有多少玩家参与其中?
  • 什么是通知服务器,它的作用是什么?
  • 什么是通知客户端,它有什么作用?
  • notify-send我可以用这个东西来弹出通知吗?是(好吧,一个)客户端吗?
  • 什么是通知守护进程?
  • 以及 的作用是什么libnotify?

为了理解这一点并在我的系统上设置通知,我参考了这个 wiki 页面。

我先尝试过notification-daemon。仅安装后这并不起作用。为了使调用notify-send成功,必须手动启动它(这意味着执行),以某种方式自动启动它,或者使用此内容/usr/lib/notification-daemon-1.0/notification-daemon创建一个文件/usr/share/dbus-1/services/org.freedesktop.Notifications.service

[D-BUS Service]
Name=org.freedesktop.Notifications
Exec=/usr/lib/notification-daemon-1.0/notification-daemon

然后我尝试了dunst,但是,一旦安装,就可以正常工作,从某种意义上说,可以notify-send正常工作。我认为这从根本上来说是因为它在第一次调用时就启动了notify-send(这意味着我最初的印象是它在我卸载它之后也能工作;那是因为该dunst进程正在运行),但它是如何做到这一点的呢?

这两个 和notification-daemon都位于“通知服务器 > 独立”dunst部分下,但它们也称为“通知守护程序”;这是否意味着通知守护程序和通知服务器是同义词?如果不是,区别在哪里?

从用户(我)的角度来看,这两种美学之间有区别吗?我的意思是,当一个正在运行与另一个正在运行时,我发现通知看起来不同。顺便说一句,这里出现了“他们在提供什么服务?”的问题,因为在我看来,他们只是在等待其他工具向他们发送通知,以便他们可以以良好的方式展示它们。或者他们俩都做这两件事?无论哪种情况,通知最初来自哪里?他们如何到达通知框?

不管怎样,如果我想对通知进行自定义操作怎么办?假设我想获取所有这些内容并拥有自己的 shell 脚本,只需将它们附加到一个文件中~/notifications。这是否意味着我正在编写自己的通知服务器?还是客户?或者是什么?

我问的原因是我想尝试一下可以在xmobar状态栏中显示通知的想法(我与 XMonad 窗口管理器一起使用),所以我试图理解所有的部分。

我还看了一下statnot它看起来非常非常瘦并且没有多余的装饰,但是参考我的上一段,感觉使用statnot仍然意味着我仍然需要编写一个配置,通过函数update_text调用xmobar 或 xmonad 公开的一些 API。这样我就无法控制,比如说,我想一次显示多少个通知。

我有点迷失了:/

试图从桌面通知规范中理解我的这个问题的含义并没有成功:D


(1) 但我的 中存在一个预先存在的“错误” ~/.xinitrc,所以我必须首先解决该问题。

linux
  • 2 个回答
  • 137 Views
Martin Hope
Enlico
Asked: 2023-11-03 14:55:15 +0800 CST

撤销添加 Ubuntu 专用存储库并在 Debian 上更新的效果

  • 5

太长了;博士

如何在 Debian 上修复此错误

E: The repository 'https://deb.nodesource.com/node_current.x nodistro Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

如果错误是运行这个

sudo add-apt-repository ppa:agornostal/ulauncher -y && sudo apt update

哪个是为 Ubuntu 设计的?

完整故事

我想在 Debian 11 机器上安装ulauncher,所以我在链接页面查找Ubuntu (Debian)指令,然后运行命令

sudo add-apt-repository universe -y && sudo add-apt-repository ppa:agornostal/ulauncher -y && sudo apt update && sudo apt install ulauncher

失败了,因为那是通过 PPA (Ubuntu) 安装,我没有读过,因为上面的Ubuntu (Debian)欺骗我认为这些说明是常见的(我通常是 ArchLinux 用户,所以我不是不再用于在 Ubuntu 或 Debian 上安装东西)。

错误很简单

Error: 'universe' invalid

所以我尝试执行

sudo add-apt-repository ppa:agornostal/ulauncher -y && sudo apt update && sudo apt install ulauncher

失败了

E: The repository 'http://ppa.launchpad.net/agornostal/ulauncher/ubuntu noble Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'https://deb.nodesource.com/node_current.x nodistro Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

那时我更仔细地阅读了说明,发现在 Debian 上我应该执行这些命令

sudo apt update && sudo apt install -y gnupg
gpg --keyserver keyserver.ubuntu.com --recv 0xfaf1020699503176
gpg --export 0xfaf1020699503176 | sudo tee /usr/share/keyrings/ulauncher-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/ulauncher-archive-keyring.gpg] \
          http://ppa.launchpad.net/agornostal/ulauncher/ubuntu jammy main" \
          | sudo tee /etc/apt/sources.list.d/ulauncher-jammy.list
sudo apt update && sudo apt install ulauncher

所以我尝试了,但错误仍然与上面相同,所以我知道我需要以某种方式撤消我的第一次针对 Ubuntu 的尝试。我试过这个:

sudo add-apt-repository -r ppa:agornostal/ulauncher

所以来自 Debian 特定指令的第一个命令

sudo apt update && sudo apt install -y gnupg

仍然有错误,但少了一些:

E: The repository 'https://deb.nodesource.com/node_current.x nodistro Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

我该如何解决?

debian
  • 1 个回答
  • 41 Views
Martin Hope
Enlico
Asked: 2022-09-26 06:45:55 +0800 CST

ssh 是否允许访问虚拟控制台、终端仿真器或什么?[复制]

  • 1
这个问题在这里已经有了答案:
“终端”、“外壳”、“tty”和“控制台”之间的确切区别是什么? (10 个回答)
23 天前关闭。

据我了解,终端仿真器是一个基于 GUI 的程序,它为我提供了一个类似终端的视口,并允许我与它进行交互,就像我对终端所做的那样,除了它具有来自的所有支持X 系统,所以我怀疑这ssh user@ip不会让我访问在远程机器上运行的终端仿真器。如果我想使用它,我需要通过 VNC 连接到那台机器,然后在该桌面上打开一个终端仿真器窗口。

但是我是否可以访问虚拟控制台(例如,在我通过Ctrl++获得的远程计算机上的物理控制台Alt)?我可以,这让我可以访问 X 附带的剪贴板,所以感觉我也不在虚拟控制台中......F2ssh -X ...


至于提议的副本,由于我的问题专门针对 SSH,我可以收集的信息如下:

  • SSH(将一台机器上的终端与另一台机器上的程序连接起来)

    从接受的答案,

  • 伪终端使用 PTY“设备”来安排控制台应用程序和在用户空间中运行的终端制作程序之间的通信。示例是基于 X 的终端仿真器和 sshd,它们为每个登录会话分配一个假名。

    从另一个答案,

  • 可能有一些应用程序“模拟”终端接受用户的击键并将它们发送到某个地方(xterm 和 ssh 是很好的例子)。内核中有一个称为伪终端的 API 。所以你的tty可能真的连接到某个应用程序而不是真正的终端。Xterm 使用 X11 显示文本,而 ssh 使用网络连接。

    从另一个答案;

所以我的问题的答案似乎是“它可以访问伪终端”。

ssh x11
  • 1 个回答
  • 37 Views
Martin Hope
Enlico
Asked: 2022-04-02 00:03:43 +0800 CST

为什么提示显示在终端的顶部,而不是底部?

  • 1

我为什么要问这个?

你可以猜到,这主要是出于好奇。但是,为什么我的脑海里会涌现出好奇心呢?

好吧,有一段时间我注意到我很不高兴,在我跑去clear清理终端屏幕之后,我不得不把眼睛从屏幕底部移开,在连续命令和他们的命令之后提示结束了输出,到屏幕的顶部。

那是我将其插入我的~/.bashrc:

__prompt_to_bottom_line() {
  tput cup $LINES
}
alias clear='clear && __prompt_to_bottom_line'

对我来说,运行后提示在底部clear意味着提示总是在底部,从不在顶部。其他一切都和平常一样。

其他人呢?

我想我不是唯一一个感到这种必要性的人。以这个问题为例:用户希望提示始终位于顶部,输出位于其下方,但顺序相反(但一个命令的一个输出,即使是多行,也不会颠倒,很明显)。

如果您考虑一下,该用户希望在屏幕上看到tac的正是我所期望的(除了多行输出没有反转)。

所以我的问题是

为什么终端设计有这种不统一的行为?我所说的非均匀是指它从一种除非一个 s 否则永远不会重复的情况开始,这将在clear命令后更改命令,提示在屏幕下方移动,最终提示最终处于“稳定”位置屏幕底部,它不会再从那里移动,除非一个clears.

输出向下/向上推总是在顶部/底部的线不是更适合眼睛的设计吗?

shell prompt
  • 1 个回答
  • 168 Views
Martin Hope
Enlico
Asked: 2022-03-12 09:06:45 +0800 CST

有没有一种方法可以快速将 dir 更改为其中一个作业正在运行的位置?

  • 2

的输出jobs看起来像这样

[1]   Stopped                 TERM=xterm-256color vim --servername vim ~/.gitconfig
[2]-  Stopped                 TERM=xterm-256color vim --servername vim ~/.vimrc  (wd: ~)
[3]+  Stopped                 TERM=xterm-256color vim --servername vim i3blocks.conf  (wd: ~/.config/i3/configs)

其中部分(如果存在)显示相应作业开始的目录。(wd: path)path

有几次我想搬到那个目录来做一份工作。

有这样做的实用程序吗?

bash cd-command
  • 2 个回答
  • 30 Views
Martin Hope
Enlico
Asked: 2022-01-22 05:55:38 +0800 CST

有没有办法让 find 使用 shell 的 extglob shell 选项?

  • 4

简而言之,我本能地写了一个这样的命令来查找这两个文件prefix.ext并向prefix_suffix.ext下层级

find /some/path -type f -name 'prefix?(_suffix).zip'

但它不起作用。

因为man find, under-name patter将模式称为“shell 模式”,所以我在徘徊是否可以控制应该使用哪种模式,特别是是否extglob可以使用选项。

bash shell
  • 3 个回答
  • 457 Views
Martin Hope
Enlico
Asked: 2018-11-03 06:05:06 +0800 CST

保护用户编辑的 *.desktop 文件免于升级

  • 0

我喜欢编辑/usr/share/applications/*.desktop文件(幸运的是,只是其中的一部分)以满足我的需要。但是,当更新相关应用程序时,我所做的那些编辑会丢失。我该如何面对这种不便?

一种可能性是保留*.desktop文件的单独版本,所以问题是我应该将编辑后的版本放在哪里,以使它们优先于原始版本/usr/share/applications/?

作为附带问题:很明显我应该不时检查是否对原始文件进行了一些重要更改,并在需要时手动选择这些更改。在这方面可能的方法是什么?

upgrade .desktop
  • 1 个回答
  • 50 Views
Martin Hope
Enlico
Asked: 2018-07-18 08:42:47 +0800 CST

Bash skip-completed-text 是如何工作的?

  • 7

更简洁的版本

在创建这两个文件时"\t": menu-complete,~/.inputrc

$ touch one.two.txt
$ touch one.four.txt

下面开始写,

$ ls one

打Tab,你会得到

$ ls one.four.txt

现在将光标移动到 just before four、 delete four、 write only t,然后Tab再次点击。你会得到

$ ls one.two.txt.txt

有没有办法防止.txt在此工作流程中重复?

原始问题

当我按下 时,我使用menu-completebash 函数循环完成Tab,我对此很满意。但是以下情况经常发生在我身上。

假设我在longparthardtoremember.with.QQQQQQQ.extension包含文件的目录中查找文件

longparthardtoremember.with.AAAAAAA.nice.long.extension
longparthardtoremember.with.BBBBBBB.very.nice.long.extension
...

如果 I Tab-complete$ long将插入第一个文件名。那时,我想移动到文件名的中间,删除AAAAAAA部分,键入B,然后Tab再次完成。如果我这样做,后面的所有部分BBBBBBB也会被插入,从而导致重复,这显然是我不希望的。

使用vi编辑模式,我处理这个问题的速度相当快(我快速移动到重复的部分并将其删除),但它仍然很烦人。

纯属偶然,我skip-completed-text在 bash 的手册页中找到了 bash 选项。这不是我需要的吗?我已经设置了它on,但我看不出工作中完成的行为有任何区别Tab。我误解了手册页吗?

bash autocomplete
  • 2 个回答
  • 355 Views
Martin Hope
Enlico
Asked: 2018-07-02 22:14:26 +0800 CST

用于弹出菜单中“打开文件夹”的默认应用程序

  • 3

例如,当我输入 时,xdg-mime query filetype Video/movie.mkv输出为video/x-matroska; 如果我再输入xdg-mime query default video/x-matroska,输出是mplayer.desktop,这确实是我输入时使用的应用程序xdg-open Video/movie.mkv。我为其设置了特定默认应用程序的其他文件类型也是如此。

另一方面,当我在 Dropbox 托盘图标弹出菜单中单击“打开 Dropbox 文件夹”,或者当我在传输的下载文件列表中右键单击并“打开文件夹”时,没有任何反应;所以,我希望没有应用程序与目录相关联。

考虑到这一点,到目前为止我尝试的是 run xdg-mime query filetype Video,它返回inode/directory,然后 run xdg-mime query default inode/directory,它返回ranger.desktop我的文件管理器。如果一切正常,这听起来完全符合我的预期,但事实并非如此。

为什么当我在弹出菜单中单击“打开文件夹”等时没有任何反应?

arch-linux directory
  • 1 个回答
  • 1337 Views
Martin Hope
Enlico
Asked: 2018-06-15 10:24:15 +0800 CST

i3 - 我的桌面的一些可恶的字体大小

  • 3

由于我在 Arch Linux 上安装了 i3,我注意到字体太大(我首先看到的是底部的 i3bar),所以我更改了.config/i3/config文件中的字体大小(现在该行显示为font pango:DejaVuSansMono Nerd Font Mono 5.

很快我注意到应用程序的菜单栏的尺寸太大了,所以我用 Lxappearance 编辑它(现在默认字体是DejaVuSansMono Nerd Font Booksize 4)并且 Lxappearance 的 GUI 本身看起来很完美。

但其余部分仍然没有,正如您从屏幕截图中看到的那样:在浮动窗口中字体太大,我会说是巨大的,而在右侧Open窗口中它很小,如果不是不可见的话Audacity;TikZiT最后在左边的窗口上看起来很正常。

此外(我不知道如何拍照,但我确信它不会为这个问题添加任何内容),如果我右键单击 Dropbox 图标,我会在白色弹出窗口中看到一个巨大的字体-向上菜单(我通过将光标悬停在该图标上看到的相同字体);当我对 Skype (不在图片中)做同样的事情时,我看到的字体是 Arc-dark 弹出菜单上的小字体。

我对 ArchLinux 和 i3 生活的这个从头开始自己动手的世界很陌生。我宁愿在一两个星期后不放弃。

在此处输入图像描述

编辑 1

这是另一张图片,其中B字体看起来还不错(我说不错,因为我什至不知道它们来自哪里),而A字体太小了。哪些不是由qt5ct.

在此处输入图像描述

编辑 2

我开始认为 GTK 和 Qt 之间可能没有冲突:正如您在下面的屏幕截图中看到的那样,我设置了与qt5ct(左)和lxappearance(右)相似但绝对不相同的主题,但是pavucontrol(中)使用 GTK , 呈现那个不可读的小字体。

在此处输入图像描述

[![在此处输入图像描述][4]][4]

gui fonts
  • 1 个回答
  • 2874 Views
Martin Hope
Enlico
Asked: 2018-06-14 07:47:08 +0800 CST

保管箱服务失败或成功取决于在登录屏幕上花费的时间

  • 0

我想我在过去几分钟内已经做了十几次系统重启来检查这个奇怪的行为。似乎 dropbox 服务在启动时成功或失败取决于我在输入密码的登录屏幕上花费了多少时间。我没有做过任何计时,所以我不知道确切的时间是多少,但不会超过半打秒。

当我快速输入密码时,Dropbox 启动,确实我验证了以下内容,

$ systemctl status dropbox@enrico.service
● dropbox@enrico.service - Dropbox
   Loaded: loaded (/usr/lib/systemd/system/dropbox@.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/dropbox@enrico.service.d
           └─override.conf
   Active: active (running) since Wed 2018-06-13 17:07:04 CEST; 6min ago
 Main PID: 1006 (dropbox)
    Tasks: 84 (limit: 19660)
   Memory: 148.0M
   CGroup: /system.slice/system-dropbox.slice/dropbox@enrico.service
           ├─1006 /usr/bin/dropbox
           ├─1052 dbus-launch --autolaunch 9f3c6fabb4aa40d1b7d5b3a3881af003 --binary-syntax --close-stderr
           ├─1053 /usr/bin/dbus-daemon --syslog-only --fork --print-pid 5 --print-address 7 --session
           └─1057 /usr/bin/dunst

Jun 13 17:07:05 greywarden dropbox[1006]: dropbox: load fq extension '/opt/dropbox/PyQt5.QtWebKitWidgets.so'
Jun 13 17:07:05 greywarden dropbox[1006]: dropbox: load fq extension '/opt/dropbox/PyQt5.QtWidgets.so'
Jun 13 17:07:05 greywarden dropbox[1006]: dropbox: load fq extension '/opt/dropbox/PyQt5.QtPrintSupport.so'
Jun 13 17:07:05 greywarden dropbox[1006]: dropbox: load fq extension '/opt/dropbox/PyQt5.QtDBus.so'
Jun 13 17:07:05 greywarden dbus-daemon[1053]: [session uid=1000 pid=1051] Activating service name='org.freedesktop.Notifications' requested by ':1.0' (uid=1000 pid=1006 comm="/usr/bin/dropbox ")
Jun 13 17:07:05 greywarden org.freedesktop.Notifications[1053]: Warning: 'allow_markup' is deprecated, please use 'markup' instead.
Jun 13 17:07:05 greywarden org.freedesktop.Notifications[1053]: Warning: The frame section is deprecated, width has been renamed to frame_width and moved to the global section.
Jun 13 17:07:05 greywarden org.freedesktop.Notifications[1053]: Warning: The frame section is deprecated, color has been renamed to frame_color and moved to the global section.
Jun 13 17:07:05 greywarden org.freedesktop.Notifications[1053]: Warning: Unknown keyboard shortcut: mod4+grave
Jun 13 17:07:05 greywarden dbus-daemon[1053]: [session uid=1000 pid=1051] Successfully activated service 'org.freedesktop.Notifications'

另一方面,当我输入密码的速度太慢时(例如键入、退格、重新键入……)或者我在看书时根本不看屏幕,输出是

$ systemctl status dropbox@enrico.service
● dropbox@enrico.service - Dropbox
   Loaded: loaded (/usr/lib/systemd/system/dropbox@.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/dropbox@enrico.service.d
           └─override.conf
   Active: failed (Result: exit-code) since Wed 2018-06-13 17:15:03 CEST; 39s ago
  Process: 1031 ExecStart=/usr/bin/dropbox (code=exited, status=250)
 Main PID: 1031 (code=exited, status=250)

并且保管箱确实没有运行(没有托盘图标)。

我在 ArchLinux 和 LightDM 登录管理器上运行 i3。我遵循了维基页面上的防止自动更新和自动启动部分,但我不太可能混淆了使用 systemd 启动时的自动启动和使用 systemd登录时的自动启动,这可能是问题的根源。

arch-linux systemd
  • 1 个回答
  • 127 Views
Martin Hope
Enlico
Asked: 2018-06-06 12:42:11 +0800 CST

打开程序后键盘死机,鼠标继续工作

  • 3

总的来说,我对 Linux 并不陌生,但对 Arch 还是陌生的。我已经安装了两次(第一次在 HDD 上,只是在等待 SSD 交付给我时尝试,第二次,几天后,在 SSD 上),i3 和其他程序为了有可用的桌面环境。顺便说一句,我的选择是基于我的品味(Vim 上瘾)和对官方 Arch wiki 页面的纯粹阅读之间的匹配。

目前有一件事情让我非常恼火:当我打开 Spotify(从 AUR 安装aurman -S,通过 )或 Qutebrowser(官方,通过sudo pacman -S)以及可能的其他应用程序时,无论是从终端urxvt还是通过rofi,我都会遇到完全的“冻结” " 持续长达五十秒 (!) 的键盘,而鼠标仍然与环境完美交互。例如,我可以做这件有趣的事:

  1. 打开 Spotify,然后
  2. 继续用左手在键盘上做任何事情,例如
    • 在按住的1同时2,用手指交替和狂热地按住$mod,Alt在我的情况下,用拇指,
    • 或者在浏览器或无辜终端的文本框中随机按字母键
    • 或者,为了清楚我的尝试,将我愤怒的猫按在整个键盘上
  3. 同时,使用右手通过鼠标成功地从一个工作区移动到另一个工作区(使用屏幕左下角的编号图标),并与任何鼠标交互的东西进行交互(下一首歌曲、提高音量、更改音频输出pavucontrol,...)。显然,如果我移动到带有全​​屏程序的工作区,我将被困在该工作区中,直到那漫长的五十(或多或少)秒过去。
  4. 键盘再次开始工作,就像我从未按下过这些键一样(例如,如果我在终端中按下字母,那些“过去”的字母不会出现)。

键盘是带 USB 接收器的无线罗技 K270(无线 M185 鼠标来自同一个盒子),但老实说我不知道​​我还能提供什么其他细节,所以请问我。(我真的不认为文件系统可以在这件事中发挥任何作用,但是,如果我错了,它是btrfs。)

我的主板是 X399 Aorus Gaming 7,并且有

  • 1 x 白色USB 3.1 Gen 1 端口(来自用户手册,虽然它在 I/O 防护罩上标记为USB 3.0 BIOS,因为它是旨在刷新 BIOS 的 Q-Flash 端口)
  • 5 x 蓝色USB 3.1 Gen 1 端口(来自用户手册,而它们在I/O 护罩上标记为USB 3.0 )
  • 2 x 黄色USB 3.1 Gen 1 端口(来自用户手册,而在 I/O 护罩上标记为USB 3.0 DAC-UP )
  • 1 x 红色USB 3.1 Gen 2 Type-A 端口(来自用户手册,在 I/O 护罩上标记为USB 3.1 )

9 个端口成对布置,如(字母 = 颜色)

YY
WB
BB
BB
 R
arch-linux keyboard
  • 1 个回答
  • 310 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve