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-29867

x-yuri's questions

Martin Hope
x-yuri
Asked: 2024-03-03 02:06:30 +0800 CST

如果没有 `xhost +local:`,Chromium 不会在 docker 下启动

  • 5
$ xhost
access control enabled, only authorized clients can connect

xterm作品:

$ docker run --rm -it --network host \
  --volume ~/.Xauthority:/root/.Xauthority:ro \
  --env DISPLAY \
  alpine:3.19 sh -euxc 'apk add xterm; exec xterm'

chromium打开一个窗口,似乎接收到按键,但窗口是空的(输出):

$ docker run --rm -it --network host \
  --volume ~/.Xauthority:/root/.Xauthority:ro \
  --env DISPLAY \
  alpine:3.19 sh -euxc 'apk add chromium; exec chromium --no-sandbox'

如果我允许本地连接,xhost它就可以工作:

$ xhost +local:

$ xhost
access control enabled, only authorized clients can connect
LOCAL:

$ docker run --rm -it --network host \
  --volume ~/.Xauthority:/root/.Xauthority:ro \
  --env DISPLAY \
  alpine:3.19 sh -euxc 'apk add chromium; exec chromium --no-sandbox'

$ xhost -local:

人们可以在这里推测它启动了无权访问的非根进程/root/.Xauthority,这就是它失败的原因。那么在哪个用户下呢?这样我就可以提供.Xauthority给所有感兴趣的各方。我该如何调试这个?我该如何让它发挥作用?

docker
  • 1 个回答
  • 17 Views
Martin Hope
x-yuri
Asked: 2022-01-07 06:17:11 +0800 CST

Ctrl-J 的特殊处理

  • 2

当我按下Ctrl-V Ctrl-J外壳(在 下urxvt)时,它会开始一个新行(将光标定位在新行的开头),而不是打印^J.

在vim它打印^@。

同样的情况也出现在虚拟控制台中。

显然有些东西预处理Ctrl-J。它是什么,我如何影响它?

$ stty -a
speed 38400 baud; rows 26; columns 101; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke -flusho -extproc

$ echo $TERM
rxvt-unicode-256color

$ urxvt --help |&  head -1
rxvt-unicode (urxvt) v9.26 - released: 2021-05-14

UPD我正在配置tmux,这种行为让我认为这bind-key C-j send-keys C-j不起作用。

terminal terminal-emulator
  • 2 个回答
  • 211 Views
Martin Hope
x-yuri
Asked: 2021-11-10 17:43:44 +0800 CST

为 INT 设置陷阱在子 shell 中不起作用

  • 1
$ bash -c "trap \"echo INT\" INT; sleep 3" & pid=$!; sleep 1; kill -INT $pid; wait
[1] 27811
INT
[1]+  Done                    bash -c "trap \"echo INT\" INT; sleep 3"

$ (bash -c "trap \"echo INT\" INT; sleep 3" & pid=$!; sleep 1; kill -INT $pid; wait)

你能解释一下为什么SIGINT处理程序在第二种情况下没有被调用吗?

shell subshell
  • 1 个回答
  • 240 Views
Martin Hope
x-yuri
Asked: 2021-10-21 06:24:07 +0800 CST

什么时候inherit_errexit 不起作用?

  • 3
#!/usr/bin/env bash
set -e
shopt -s inherit_errexit
a=$(cat no-such-file)
echo survived
$ /tmp/a.sh
cat: no-such-file: No such file or directory
#!/usr/bin/env bash
set -e
shopt -s inherit_errexit
echo -n $(cat no-such-file)
echo survived
$ /tmp/a.sh
cat: no-such-file: No such file or directory
survived
#!/usr/bin/env bash
set -e
shopt -s inherit_errexit
f() { :; }
f $(cat no-such-file)
echo survived
$ /tmp/a.sh
cat: no-such-file: No such file or directory
survived

还有其他情况吗?还是某种概括?

bash exit-status
  • 1 个回答
  • 479 Views
Martin Hope
x-yuri
Asked: 2019-08-21 23:13:17 +0800 CST

更改内核参数时是否真的需要 sysctl 的 -w 选项?

  • 1

sysctl有这个-w开关。真的需要吗?我试着做:

sysctl vm.max_map_count=262144

它似乎已经成功了。

linux-kernel sysctl
  • 1 个回答
  • 289 Views
Martin Hope
x-yuri
Asked: 2019-03-22 06:24:05 +0800 CST

当服务器空间不足时会发生什么?

  • 2

“用完”我的意思是完全,包括为 root 保留的空间。我还能登录吗?我可以生成进程吗?如果我知道它的位置,我可以删除一个大文件吗?我可以find或ncdu大文件或目录吗?

linux
  • 1 个回答
  • 634 Views
Martin Hope
x-yuri
Asked: 2019-02-04 13:19:32 +0800 CST

如何使用 ssh-agent 作为包装程序?

  • 1

我正在尝试将awesomeWindows 管理器作为ssh-agent. 当我使用startx(ssh-agent startx)时它起作用了。但现在我正试图让它在lightdm.

lightdm开始/usr/bin/xinitrcsession-helper:

#!/bin/bash
exec $HOME/.xinitrc

~/.xinitrc:

ssh-agent awesome

我得到的是:

  509     1   lightdm         /usr/bin/lightdm
  526   509     Xorg            /usr/lib/Xorg :0 -seat seat0 -auth /run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
  877   509     lightdm         lightdm --session-child 14 21
 1003   877       xinitrcse       /bin/bash /usr/bin/xinitrcsession-helper
 1028  1003         awesome         awesome
 1029  1028           ssh-a           ssh-agent awesome

并且set | grep SSH什么也不返回。

然后我开始另一个xterm( ssh-agent xterm) 并且它有效:

 1636     1   xterm           xterm
 1638  1636     bash            bash
 1651  1638       vim             vim
 9435  1651         xterm           xterm
 9447  9435           ssh-a           ssh-agent xterm
 9449  9435           bash            bash
10464  9449             ps              ps -eHo pid,ppid,comm,args
10465  9449             les             less

这里奇怪的是ssh-agent它启动的程序是一个子程序。你能解释一下吗?

以及如何运行awesome以便之后启动的程序可以看到ssh-agent?

UPD关于ssh-agent成为它运行的命令的孩子。那是为了能够替换command为ssh-agent command. 所以,ssh-agentforks 和 parentexec是command.

UPD我的不好,我用xbindkeys的是 start xterm,而前者恰好是之前启动的ssh-agent。就像在,xbindkeys && ssh-agent awesome。所以,它没有SSH_*变量可以传递给xterm. 或者说是我最可能的解释。当使用awesome's 的内置工具启动时xterm,环境变量是可以传递下来的。

environment-variables ssh-agent
  • 1 个回答
  • 832 Views
Martin Hope
x-yuri
Asked: 2018-12-28 08:55:51 +0800 CST

LXC 容器的源 NAT 规则

  • 0

我刚刚注意到MASQUERADE iptables添加的规则lxc有! -d部分:

iptables -t nat -A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE

我的猜测是,-s 10.0.3.0/24 -d 10.0.3.0/24只有在将数据从一个容器发送到另一个容器时才能观察到(ping, ssh,你的名字)。而省略! -d部分只会影响性能。到未知的程度。我对吗?

iptables lxc
  • 1 个回答
  • 606 Views
Martin Hope
x-yuri
Asked: 2018-11-19 10:08:50 +0800 CST

bash 算术扩展似乎容易受到注入攻击

  • 3

假设您希望脚本从环境中获取变量:

#!/usr/bin/env bash
set -eu

if (( ${A-} )); then
    echo true
else
    echo false
fi

(empty)算术扩展在这里处理, 0,情况似乎更合理1,否则:

if [ "${A-}" ] && [ "${A-}" != 0 ]; then

但是之后,

$ A='1 - 1' ./1.sh
false
$ A='B = 1' ./1.sh
true

因此,现在您基本上可以更改通常不希望允许的变量。你有什么建议?如何处理取自环境变量的布尔标志?

bash arithmetic
  • 1 个回答
  • 537 Views
Martin Hope
x-yuri
Asked: 2018-10-23 15:22:46 +0800 CST

如何通过管道减少无缓冲?

  • 1

我正在尝试显示进度,并使其在以下情况下可用less:

while true; do echo -n .; sleep 1; done | less

有没有办法让它工作?

pipe buffer
  • 1 个回答
  • 497 Views
Martin Hope
x-yuri
Asked: 2018-09-11 02:58:35 +0800 CST

如何使用 ld-linux.so 运行程序?

  • 3

动态链接器可以通过运行一些动态链接程序或共享对象来间接运行(在这种情况下,不能传递动态链接器的命令行选项,在 ELF 情况下,动态链接器存储在 .interp程序的一部分被执行)或直接通过运行:

/lib/ld-linux.so.* [选项] [程序 [参数]]

https://jlk.fjfi.cvut.cz/arch/manpages/man/core/man-pages/ld.so.8.en

类似的信息可以在Program Library HOWTO中找到。

但是当我尝试时,

$ LD_DEBUG=libs /usr/lib/ld-linux.so.2 ls
     23325: find library=ls [0]; searching
     23325:  search cache=/etc/ld.so.cache
     23325: 
ls: error while loading shared libraries: ls: cannot open shared object file

$ LD_DEBUG=libs ls
     23503: find library=libcap.so.2 [0]; searching
     23503:  search cache=/etc/ld.so.cache
     23503:   trying file=/usr/lib/libcap.so.2
...

我究竟做错了什么?有没有办法ld-linux.so直接用来运行程序?

linux libraries
  • 1 个回答
  • 7904 Views
Martin Hope
x-yuri
Asked: 2018-08-01 23:14:42 +0800 CST

od 如何处理`\x7f` 之后的符号?

  • -2

以下命令从to传递给od符号:\x00\xff

$ seq 0 255 | awk '{printf("%c", $0)}' | od -c

但我得到的是:

0000000  \0 001 002 003 004 005 006  \a  \b  \t  \n  \v  \f  \r 016 017
0000020 020 021 022 023 024 025 026 027 030 031 032 033 034 035 036 037
0000040       !   "   #   $   %   &   '   (   )   *   +   ,   -   .   /
0000060   0   1   2   3   4   5   6   7   8   9   :   ;   <   =   >   ?
0000100   @   A   B   C   D   E   F   G   H   I   J   K   L   M   N   O
0000120   P   Q   R   S   T   U   V   W   X   Y   Z   [   \   ]   ^   _
0000140   `   a   b   c   d   e   f   g   h   i   j   k   l   m   n   o
0000160   p   q   r   s   t   u   v   w   x   y   z   {   |   }   ~ 177
0000200 302 200 302 201 302 202 302 203 302 204 302 205 302 206 302 207
0000220 302 210 302 211 302 212 302 213 302 214 302 215 302 216 302 217
0000240 302 220 302 221 302 222 302 223 302 224 302 225 302 226 302 227
0000260 302 230 302 231 302 232 302 233 302 234 302 235 302 236 302 237
0000300 302 240 302 241 302 242 302 243 302 244 302 245 302 246 302 247
0000320 302 250 302 251 302 252 302 253 302 254 302 255 302 256 302 257
0000340 302 260 302 261 302 262 302 263 302 264 302 265 302 266 302 267
0000360 302 270 302 271 302 272 302 273 302 274 302 275 302 276 302 277
0000400 303 200 303 201 303 202 303 203 303 204 303 205 303 206 303 207
0000420 303 210 303 211 303 212 303 213 303 214 303 215 303 216 303 217
0000440 303 220 303 221 303 222 303 223 303 224 303 225 303 226 303 227
0000460 303 230 303 231 303 232 303 233 303 234 303 235 303 236 303 237
0000500 303 240 303 241 303 242 303 243 303 244 303 245 303 246 303 247
0000520 303 250 303 251 303 252 303 253 303 254 303 255 303 256 303 257
0000540 303 260 303 261 303 262 303 263 303 264 303 265 303 266 303 267
0000560 303 270 303 271 303 272 303 273 303 274 303 275 303 276 303 277
0000600

后面的字符有什么问题\x7f?

od
  • 1 个回答
  • 619 Views
Martin Hope
x-yuri
Asked: 2018-05-29 10:33:42 +0800 CST

为什么我不需要用less来重置文本属性?

  • 4

该脚本输出 5 行,第三行加下划线:

#!/usr/bin/env bash
set -eu
bold=$(tput bold)
reset=$(tput sgr0)
underline=$(tput smul)
echo 'line 1
line 2
line 3
line 4
line 5' | awk -v bold="$bold" -v reset="$reset" -v underline="$underline" '
    NR == 3 {print underline $0 reset}
    NR != 3 {print $0}
'

如果我没有在第三行的末尾重置(在脚本中),那么以下所有行都带有下划线,包括我接下来键入的命令(在 shell 中)。直到我跑reset。使用less( ./my-script.sh | less -R) 不仅reset(在脚本中)不需要(第三行加下划线),而且它还在tmux( ^O, TERM=screen-256color) 中产生额外的符号:

line 1
line 2
line 3^O
line 4
line 5

但在普通控制台 ( TERM=xterm-256color) 中没有符号。

究竟是什么以及为什么会发生这种情况?有没有办法让脚本在所有这些情况下都能正常工作?

$ ./my-script.sh
$ ./my-script.sh | grep line --color=never
$ ./my-script.sh | less -R

例如,使以下脚本更好地工作。

terminal escape-characters
  • 1 个回答
  • 348 Views
Martin Hope
x-yuri
Asked: 2017-12-07 03:48:52 +0800 CST

为什么删除 npm 意味着在 CentOS 上也删除 nodejs?

  • 0

我正在尝试删除npm(EPEL 存储库),但也yum希望我删除nodejs。这nodejs就是npm的依赖。不是反过来。nodejs没有npm就好了。我错过了什么吗?

yum centos
  • 1 个回答
  • 3668 Views
Martin Hope
x-yuri
Asked: 2017-12-06 05:51:01 +0800 CST

为什么 `journalctl --list-boots` 与 `uptime` 和 `who -b` 报告的不匹配?

  • 3

这是我使用的测试脚本:

last_reboot=$(last reboot | grep 'still running' | awk '{for (i=5; i<=NF; i++) printf $i FS}' | awk '{for (i=1; i<=NF - 2; i++) printf $i FS}')
if [ "$last_reboot" ]; then
    date -d "$last_reboot" '+last reboot: %Y-%m-%d'
fi

days=$(uptime | awk '{print $3}')
hours=$(uptime | awk '{print $5}' | sed -E 's/,$//')
h=$(echo "$hours" | cut -d: -f 1)
m=$(echo "$hours" | cut -d: -f 2)
date -d "- $days days - $h hours - $m minutes" '+uptime: %Y-%m-%d'

who -b | awk '{print "who: " $3}'

journalctl --list-boots | awk '$1 == "0" {print "journalctl: " $4}'

在本地,所有四个日期都匹配。

我在大约 10 台服务器上运行它。last reboot不报告任何内容(可能是因为wtmp被 旋转logrotate)。uptime和who -b匹配。而journalctl没有。究竟journalctl --list-boots报告了什么?为什么它不能匹配其他工具报告的内容?

systemd boot
  • 1 个回答
  • 6276 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