假设我通过视觉模式选择了一些文本:
我怎样才能清除其中的所有空格?这样就0 0 0 0 0 0 0 1 0 1 0 1
变成了000000010101
。
为 Firewalld 创建服务时,您会看到不同的选项卡 Ports
Protocols
Source-Port
等(见屏幕截图)。现在我的问题是如何理解“协议”选项卡的功能?在设置端口时,ports
您已经为某些端口指定了协议。我想知道这个protocols
选项卡的功能有什么不同?
我问这个问题是因为我刚遇到一个问题,在i had set tcp/udp ports
玩游戏时我仍然无法使用这些端口连接到服务器。我不得不在“作为客户端”udp
下添加protocol
端口。我以前从来没这么做过。我想知道为什么?为什么在“端口”下设置 UDP 端口不够?它有什么不同?它允许某些协议的所有端口吗?否则我真的不明白它到底有什么作用?
最近几天,我经常需要将大段文本粘贴到 VIM 编辑器中,我注意到这个操作似乎是逐行执行的。也就是说,如果我在粘贴过程中按下 ESC 键或输入任何内容,粘贴就会立即中断。
我想知道是否有办法使粘贴变得“原子化”——确保一次性粘贴全部内容,而忽略任何中间的击键?
可在 Linux RHEL 和 macOS 中重现。
我正在尝试从网络命名空间内捕获流量,并以非特权用户身份在主机上使用 Wireshark 查看。为此,我tcpdump
在目标网络命名空间内运行,并将捕获的数据写入/tmp/fifo
主机可访问的命名管道。
当我尝试通过运行在主机上的 Wireshark 中查看此流量时wireshark -k -i /tmp/fifo
,收到错误消息:
Couldn't run dumpcap in child process: Permission denied
运行ls -l /bin/dumpcap
输出权限-rwxr-xr-- 1 root wireshark
,这解释了为什么dumpcap
不属于该组的用户无法执行wireshark
。
由于用户实际上只是从管道读取字节,因此不需要 root 权限或能力。我可以把用户添加到wireshark
组,但该dumpcap
二进制文件有一些我不太想授予的能力。或者,我可以剥离这些能力dumpcap
,使其可由所有人执行。简单测试一下,这种方法确实有效,但可能会dumpcap
以意想不到的方式崩溃,因为它本来就是用这些能力来执行的。
有没有更直接的方法来实现我的目标?
sort
有选项--ignore-leading-blanks
:
-b, --ignore-leading-blanks
ignore leading blanks
为什么没有sort
选项--ignore-trailing-blanks
(忽略尾随空白)?
$ sort --version
sort (GNU coreutils) 8.32
我有一个嵌入式系统,带有 ft200xd 芯片,可以进行 USB 转 I2C 连接。我想观察一下数据。
我有一个驱动程序, /dev/ttyFT200XD0
我打算使用 strace,类似于
strace -r read=0
,但这需要找到文件描述符,而我一直不知道该怎么做。如果我尝试
# dmesg | grep -i FT200X
[ 16.916980] ft200xd 0-0022: Probing ft200xd_probe:407:
[ 16.945958] ft200xd 0-0022: Probed, id: 000000
但不幸的是,我看不到任何/proc/tty/driver
能够提供帮助的东西。
我已经加载了驱动程序。
/proc/tty/driver
如何找到用于 strace 的文件描述符,或者我应该使用其他方法来查看数据?
感谢您的指点
我希望该命令默认启用 Tab 补全功能,firefox
这样我就能轻松打开当前文件夹中的任何文件/文件夹,而不仅仅是那些匹配的文件/文件夹@(?([xs])htm?(l)|pdf|txt)
(也就是来自 的正则表达式/usr/share/bash-completion/completions/firefox
)。例如,我会Readme.md
在 Firefox 中打开 Markdown 文件(例如 ),因为我有一个插件可以很好地渲染这些文件。
Stack Exchange 网络中有很多关于此问题的问题,有些正确地建议这样complete -r firefox
做,但这似乎只是暂时的。以下是一些伪 bash 命令:
$ ls
foo.txt Readme.md bar.adoc
$ firefox <TAB> # only completes foo.txt
$ complete -p firefox
complete -F _firefox firefox
$ complete -r firefox # try to disable it
$ complete -p firefox
bash: complete: firefox: no completion specification
$ firefox <TAB> # only completes foo.txt
$ complete -p firefox
complete -F _firefox firefox # it's baaaaack!
$ complete -r
$ firefox <TAB> # completes all 3 files
最后那个complete -r
命令确实有效,但我不想太过繁琐。我想保留其他命令的特殊完整功能。
如果我无法彻底删除firefox
我的自定义 Tab 补全功能~/.bashrc
,我想接下来我会尝试手动删除/usr/share/bash-completion/completions/firefox
(以及其他一些提到 Firefox 的功能)。如果可能的话,我希望避免弄乱软件包里的文件bash-completion
。
我使用的是 Ubuntu 22.04 自带的默认 Bash (v5.1.16)。为了方便起见,我使用了 gnome-terminal。
感觉这个问题之前就应该在这里回答过,但我的搜索还没有找到确切的案例。
我有一个文件(实际上是一个 hosts 文件),里面有一个标记行。我有一些脚本可以添加和删除标记行前面的行。
但存在删除过程会留下添加过程创建的空白行的风险。
所以我想要一种方法来删除文件中标志行之前的所有空白行。
感觉这应该是可能的sed
,但我发现的在线示例不包括这种情况(讽刺的是,它们包括相反的情况 - 在匹配行之前添加一个空白行)
有没有简单的方法可以做到这一点?
不一定非要使用sed
,任何其他标准文本处理工具也可以。
最好进行就地编辑,但如果确实有必要,可以复制到临时文件,然后再复制回来。
示例输入(无法发布精确数据)
10.8.7.6 static-host1
10.8.7.7 static-host2
10.8.8.5 static-host3
10.8.8.6 static-host4
# Start of dynamic section
10.9.9.8 dynamic-group1-host1
10.9.9.9 dynamic-group1-host1
10.9.8.7 dynamic-group2-host1
10.9.8.8 dynamic-group2-host2
# End of dynamic section
10.10.11.12 static-host5
10.10.11.13 static-host6
10.10.11.17 static-host7
10.10.11.18 static-host8
示例输出
10.8.7.6 static-host1
10.8.7.7 static-host2
10.8.8.5 static-host3
10.8.8.6 static-host4
# Start of dynamic section
10.9.9.8 dynamic-group1-host1
10.9.9.9 dynamic-group1-host1
10.9.8.7 dynamic-group2-host1
10.9.8.8 dynamic-group2-host2
# End of dynamic section
10.10.11.12 static-host5
10.10.11.13 static-host6
10.10.11.17 static-host7
10.10.11.18 static-host8
对于任何解决方案来说,假设要删除的空格之前的最后一行总是以相同的模式开头是合理的,通常是 RFC1918 地址(例如 10. 或 192.168.)
对于另一条评论,是的,空行对于可读性来说是必要的,这就是为什么我的脚本在添加的节之间添加了空行。删除节时,我可以删除“该节第一行之前的任何空行”,但这会引发同样的问题——删除与模式匹配的行之前的一个或多个空行。
(希望很明显)全面删除文件中的所有空行是不可接受的。
我正在考虑购买一台 Linux 笔记本电脑,但我以前只使用过 Mac,并且我有一个与此相关的安全问题。
对于 Mac,制造商(Apple)同时支持操作系统和硬件。因此,理论上,Apple 不仅会修补他们在 macOS 中发现的错误和漏洞,还会修补他们在 MacBook 实际硬件中发现的错误/漏洞,以及 macOS 与硬件交互过程中产生的任何错误/漏洞。
如果我买了一台笔记本电脑并在上面安装了 Linux,我大概可以指望我的 Linux 发行版的开发者会修补我的 Linux 操作系统中的 bug 和漏洞。但是,谁(如果有的话)会修补与我的笔记本电脑硬件相关的 bug 和漏洞呢?
截至今天,当我尝试打开 Discord 时,它提示我需要更新到 0.0.89 版本。问题是,我已经用的是 0.0.90 版本了。我对此很有信心,因为 Linux Discord 客户端要求我手动安装和下载每个新版本,而我拥有 0.0.90 版本文件。
的输出discord --version
与此一致,但我注意到一个相当奇怪的消息:
[Updates] You are living in the future! Come back time traveller!
完整输出:
isikyus@Raeltar:~/Downloads$ discord --version
Discord 0.0.90
Starting app.
Starting updater.
4/15/2025, 9:38:46 PM GMT+10 [Modules] Modules initializing
4/15/2025, 9:38:46 PM GMT+10 [Modules] Distribution: remote
4/15/2025, 9:38:46 PM GMT+10 [Modules] Host updates: enabled
4/15/2025, 9:38:46 PM GMT+10 [Modules] Module updates: enabled
4/15/2025, 9:38:46 PM GMT+10 [Modules] Module install path: /home/isikyus/.config/discord/0.0.90/modules
4/15/2025, 9:38:46 PM GMT+10 [Modules] Module installed file path: /home/isikyus/.config/discord/0.0.90/modules/installed.json
4/15/2025, 9:38:46 PM GMT+10 [Modules] Module download path: /home/isikyus/.config/discord/0.0.90/modules/pending
splashScreen.initSplash(false)
CDM component API found
blackbox: 4/15/2025, 9:38:46 PM GMT+10 0
----------------------------------------------
CDM completed with status: cdm-ready-success
blackbox: 4/15/2025, 9:38:46 PM GMT+10 1 Discord starting: {"releaseChannel":"stable","version":"0.0.90"}, modulepath: /home/isikyus/.config/discord/0.0.90/modules
blackbox: 4/15/2025, 9:38:46 PM GMT+10 2 ✅ webContents.created web1 ""
blackbox: 4/15/2025, 9:38:46 PM GMT+10 3 ✅ window.created win1 "discord"
21:38:46.701 › DiscordSplash.signalReady
splashScreen: SPLASH_SCREEN_READY
splashScreen.webContentsSend: SPLASH_SCREEN_QUOTE SPLASH_SCREEN_QUOTE [ 'Hold Tight — Loading Discord' ]
4/15/2025, 9:38:46 PM GMT+10 [Modules] No updates to install
splashScreen: no-pending-updates
4/15/2025, 9:38:46 PM GMT+10 [Modules] Checking for host updates.
splashScreen: checking-for-updates
splashScreen.updateSplashState checking-for-updates checking-for-updates {}
splashScreen.webContentsSend: SPLASH_UPDATE_STATE SPLASH_UPDATE_STATE [ { status: 'checking-for-updates' } ]
21:38:46.751 › Slow network is detected. See https://www.chromestatus.com/feature/[SOME HEX STRING] for more details. Fallback font will be used while loading: file:///usr/share/discord/resources/app.asar/app_bootstrap/splash/[SOME HEX STRING].woff2
21:38:46.765 › DiscordSplash.onStateUpdate: {"status":"checking-for-updates"}
21:38:46.765 › Splash.onStateUpdate: {"status":"checking-for-updates"}
blackbox: 4/15/2025, 9:38:46 PM GMT+10 4 ✅ webContents.did-finish-load web1
[Updates] You are living in the future! Come back time traveller!
4/15/2025, 9:38:47 PM GMT+10 [Modules] Host update is available. Manual update required!
splashScreen: update-manually 0.0.89
splashScreen.updateSplashState update-manually update-manually { newVersion: '0.0.89' }
splashScreen.webContentsSend: SPLASH_UPDATE_STATE SPLASH_UPDATE_STATE [ { status: 'update-manually', newVersion: '0.0.89' } ]
splashScreen: update-check-finished true 1 true
21:38:47.114 › DiscordSplash.onStateUpdate: {"status":"update-manually","newVersion":"0.0.89"}
21:38:47.115 › Splash.onStateUpdate: {"status":"update-manually","newVersion":"0.0.89"}
21:38:47.117 › Slow network is detected. See https://www.chromestatus.com/feature/5636954674692096 for more details. Fallback font will be used while loading: file:///usr/share/discord/resources/app.asar/app_bootstrap/splash/[SOME HEX STRING].woff2
21:38:47.701 › Splash.updateCountdownSeconds: undefined
21:38:48.701 › Splash.updateCountdownSeconds: undefined
21:38:49.701 › Splash.updateCountdownSeconds: undefined
21:38:50.701 › Splash.updateCountdownSeconds: undefined
21:38:51.701 › Splash.updateCountdownSeconds: undefined
21:38:52.701 › Splash.updateCountdownSeconds: undefined
splashScreen: SPLASH_SCREEN_QUIT
blackbox: 4/15/2025, 9:38:52 PM GMT+10 5 before-quit
blackbox: 4/15/2025, 9:38:52 PM GMT+10 6 window.close win1
[SOME HEX STRING]
我添加了占位符,以防实际的十六进制字符串在我的帐户中是唯一的。我怀疑不是,但你还是要小心谨慎。
我查看了https://discord.com/tags/changelog,但那里最后一篇帖子是三月份的。我能找到的最后一篇补丁说明是https://discord.com/blog/discord-patch-notes-april-3-2025。如果4月3日有更新,我肯定能注意到。
为什么 Discord 告诉我需要早期版本,降级是否安全?