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

Ruslan's questions

Martin Hope
Ruslan
Asked: 2019-10-09 02:23:54 +0800 CST

为什么`date`忽略TZ环境变量?

  • 3

在 Ubuntu 18.04 上,我有以下行为date:

$ date --version | head -n1
date (GNU coreutils) 8.28
$ date
Вт окт  8 13:18:18 MSK 2019
$ TZ=UTC date
Вт окт  8 10:18:23 UTC 2019

到目前为止,一切都很好。但现在我试图在 Raspbian 9 上做同样的事情:

$ date --version | head -n1
date (GNU coreutils) 8.26
$ date
Tue Oct  8 13:18:50 MSK 2019
$ TZ=UTC date
Tue Oct  8 13:18:51 MSK 2019

dateRaspbian 版本忽略TZ环境变量的原因可能是什么?

date
  • 2 个回答
  • 1565 Views
Martin Hope
Ruslan
Asked: 2019-04-14 22:27:15 +0800 CST

当输出文件为 /dev/null 时,为什么 tar 似乎会跳过文件内容?

  • 23

我有一个目录,其中包含超过 400 GiB 的数据。我想检查所有文件是否可以正确读取,所以我想到的一个简单方法是将tar其放入/dev/null. 但相反,我看到了以下行为:

$ time tar cf /dev/null .

real    0m4.387s
user    0m3.462s
sys     0m0.185s
$ time tar cf - . > /dev/null

real    0m3.130s
user    0m3.091s
sys     0m0.035s
$ time tar cf - . | cat > /dev/null
^C

real    10m32.985s
user    0m1.942s
sys     0m33.764s

上面的第三个命令在运行了很长时间后被Ctrl+强行停止了。C此外,当前两个命令工作时,包含的存储设备的活动指示器.几乎总是处于空闲状态。使用第三个命令时,指示灯会持续亮起,表示极度忙碌。

所以看来,当tar能够查出它的输出文件是/dev/null,即/dev/null直接打开有tar写入的文件句柄时,文件体就出现了跳过。(添加v选项以tar打印目录中的所有文件为tar“红色”。)

所以我想知道,为什么会这样?是某种优化吗?如果是的话,那为什么还要tar对这种特殊情况进行如此可疑的优化呢?

我在 Linux 4.14.105 amd64 上使用 GNU tar 1.26 和 glibc 2.27。

tar null
  • 2 个回答
  • 2581 Views
Martin Hope
Ruslan
Asked: 2019-04-03 02:22:48 +0800 CST

为什么我用 grep -I 得到“二进制文件匹配”?

  • 5

在下面的示例中,grep行为奇怪:它提供了-I选项,根据手册页,它应该grep忽略二进制文件(类似于--binary-files=without-match),但我仍然得到“二进制文件匹配”输出。

$ cat <<'EOF' | uudecode > test-file
begin 664 /dev/stdout
M>`&5SLU*Q$`0!&#/>8J^"TM/=^8/1%2\>1`\>.^9Z=D-9!))9@7?WBB^@%"G
MHOBHO+8V=2!'-WU3A9PX%*8PBB:VGK@6)Y*HFAB(.2;.;$SQPX=LNG3(>2SH
MDJE!5;R+E9P21J::8U2+?@R>RK&7:[^L&[Q=]UD6>)$D?9<O_82[Y$\&S4_,
MP[G)-)_RVN[!6(S.>F0/M\B(P]$>5[O^%_$8+/(?,CSI+]%DD;/"^^,K3`OD
,6?8=GK6MPS?WDU!"
`
end
EOF
$ grep -I 8 test-file
Binary file test-file matches
$ grep --binary-files=without-match 8 test-file
Binary file test-file matches

显然,grep考虑文件二进制,但仍然尝试匹配并报告结果。为什么-I选项规定的“二进制文件”没有被忽略?

我在 Ubuntu 18.04 上使用 GNU grep 3.1。

grep binary
  • 1 个回答
  • 6796 Views
Martin Hope
Ruslan
Asked: 2019-01-14 01:40:58 +0800 CST

如何从挂起的无法杀死的应用程序中释放键盘和鼠标?[复制]

  • 19
这个问题在这里已经有了答案:
强制指针取消抓取的命令(捕获的鼠标释放) 4 个答案
3年前关闭。

假设我有一个 X 应用程序,它将键盘和鼠标作为其正常的操作模式(例如 QEMU),但是由于某个地方的错误,它真的很难挂起(例如卡在磁盘睡眠中)。通常我会从远程终端杀死一个应用程序kill(1),但如果该应用程序处于磁盘睡眠模式,它就不能真正被杀死。我可以通过该实用程序终止此应用程序与 X 服务器的连接xkill,但这次我不能这样做,因为鼠标被抓住了,所以xkill将无法运行。

那么,如果我愿意牺牲这个客户端,但无法通过操作系统的方式杀死它,我该如何从 X 客户端的抓取中释放我的键盘和鼠标?

x11 keyboard
  • 3 个回答
  • 7082 Views
Martin Hope
Ruslan
Asked: 2018-08-15 13:12:23 +0800 CST

Android 上的 Magisk 如何在没有 setuid 和功能的情况下作为 su 工作?

  • 2

我在另一个答案中读到,在 Android 上,su二进制文件避免需要setuid使用文件系统功能,如cap_setuid. 但后来我尝试检查这一点,令我惊讶的是,我发现我的支持 Magisk 的 Android 8.0 系统上没有设置任何功能。

这是我检查的方式:

  1. 通过 SimpleSSHD 登录
  2. scp'ed 以下二进制文件取自 Debian arm64 软件包libcap2,libcap2-bin并且libc6:
    • getcap
    • libc.so.6
    • libcap.so.2.25
    • libcap.so.2
    • ld-2.27.so
  3. 在电话上进行了以下终端会话:

$ su
# whoami
root
# exit

$ type su
su is /sbin/su

$ ls -lh /sbin/su
lrwxrwxrwx 1 root root 12 2018-08-12 22:40 /sbin/su -> /sbin/magisk

$ ls -lh /sbin/magisk
-rwxr-xr-x 1 root root 94 2018-08-12 22:40 /sbin/magisk

$ sed 's@^@> @' /sbin/magisk
> #!/system/bin/sh
> unset LD_LIBRARY_PATH
> unset LD_PRELOAD
> exec /sbin/magisk.bin "${0##*/}" "$@"

$ ls -lh /sbin/magisk.bin
-rwxr-xr-x 1 root root 71K 2018-08-12 22:40 /sbin/magisk.bin

$ file /sbin/magisk.bin
/sbin/magisk.bin: ELF shared object, 32-bit LSB arm, dynamic (/system/bin/linker), stripped

$ LD_LIBRARY_PATH=. ./ld-2.27.so ./getcap -v /sbin/magisk.bin
/sbin/magisk.bin

如您所见,二进制文件中既不setuid存在位,也不存在任何功能。/sbin/magisk.bin发生什么了?它是如何工作的?

android root
  • 1 个回答
  • 1117 Views
Martin Hope
Ruslan
Asked: 2017-12-04 04:47:06 +0800 CST

如何遍历 bash 中不断增加的文件列表?

  • 4

我有一个正在运行的文件生成器,其中每个文件的名称都按字母顺序排列在前一个文件之后。起初我像 一样进行循环for file in /path/to/files*; do...,但我很快意识到 glob 只会在循环之前扩展,并且不会处理循环时创建的任何新文件。

我目前这样做的方式非常丑陋:

while :; do
    doneFileCount=$(wc -l < /tmp/results.csv)
    i=0
    for file in *; do
        if [[ $((doneFileCount>i)) = 1 ]]; then
            i=$((i+1))
            continue
        else
            process-file "$file" # prints single line to stdout
            i=$((i+1))
        fi
    done | tee -a /tmp/results.csv
done

有没有任何简单的方法可以循环遍历不断增加的文件列表,而无需上述黑客攻击?

bash files
  • 1 个回答
  • 248 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