小编Pet*_*des的帖子

为什么附加到日志文件是 2>&1 而不是 2>>&1

我将 STDOUT 和 STDERR 重定向到一个文件,并且一直在增长,所以我总是使用“附加”重定向;这是>>

我的命令是 command >> logfile 2>&1

它有效。

但是 STDERR 重定向有一个>,我用它来“创建”文件,擦除前一个文件,如command > outlog 2> errlog

为什么在这种情况下它不删除日志文件?

bash shell redirection stderr append

46
推荐指数
2
解决办法
5885
查看次数

如果 Windows 7 不支持 WSL,那么什么是“基于 UNIX 的应用程序的子系统”?

大家都说Linux的子系统或WSL,仅在Windows 10的支持。

WSL 选项的屏幕截图

所以如果这是真的,有人能解释一下 Windows 7 中这个看起来非常相似的选项是什么意思吗?它究竟有什么作用?

基于 Unix 的应用程序选项子系统的屏幕截图

windows unix windows-subsystem-for-linux

37
推荐指数
2
解决办法
2万
查看次数

看着一些东西被写到一个带有尾巴的文件中

我有一个 python 程序,它正在慢慢地生成一些输出。

我想在一个文件中捕获它,但我也认为我可以用尾巴观看它。

所以在一个终端中我正在做:

python myprog.py > output.txt
Run Code Online (Sandbox Code Playgroud)

并在另一个终端:

tail -f output.txt
Run Code Online (Sandbox Code Playgroud)

但是在 python 程序运行时,尾巴似乎没有向我显示任何东西。

如果我按 ctrl-c 来杀死 python 脚本,突然尾部output.txt开始填满。但不是在 python 运行时。

我究竟做错了什么?

linux redirection command-line stdout

26
推荐指数
4
解决办法
5434
查看次数

为什么我的“grep”停止过滤它认为是“二进制”的非 ASCII 文件?

我正在使用 Windows-10 计算机,使用 WSL。

NLog我正在调查由C# 应用程序生成的日志文件。我期望日志条目出现在整个文件的各处,但我看到以下内容:

Linux prompt> grep "geen mengcontainer" logfile.log
2023-03-07 07:25:08.7971 | Warn | ... | geen mengcontainer.
2023-03-07 07:25:09.8285 | Warn | ... | geen mengcontainer.
2023-03-07 07:25:10.8754 | Warn | ... | geen mengcontainer.
Binary file logfile.log matches
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,在 07:25:10 之后,grep即使文件在当天剩余的时间里继续前进,也会停止。似乎有一些字符告诉grep该文件不是文本文件,而是二进制文件,导致grep停止工作。

有关该文件的更多信息:

Linux prompt>file logfile.log
logfile.log: ASCII text, with CRLF line terminators
Run Code Online (Sandbox Code Playgroud)

有关我的 Linux WSL 安装的更多信息:

Linux prompt>uname -a
Linux ComputerName 4.4.0-19041-Microsoft
  #2311-Microsoft Tue Nov 08 17:09:00 PST …
Run Code Online (Sandbox Code Playgroud)

linux grep textfiles binary-files windows-subsystem-for-linux

15
推荐指数
1
解决办法
3381
查看次数

YouTube(例如)可以发送一次视频文件并让多个用户流式传输吗?

YouTube(例如)可以发送一次视频文件并让多个用户流式传输吗?或者,即使所有用户都居住在同一地区,YouTube 是否需要将文件单独发送给每个人?

如果是第二种情况,除了P2P之外,还有什么方法可以让ISP处理并行性或类似的事情吗?

(编辑)除了 YouTube 之外,是否可以发送一次文件,然后多次下载,可能同时(实时)。我的意思是,我们可以将一个文件发送到多个 IP,而只需要上传一次吗?(这里不讨论云服务)

networking internet isp multicast video-streaming

13
推荐指数
4
解决办法
4008
查看次数

受益于在仅额定为 2400 MHz RAM 的 CPU 上使用 3400 MHz RAM

情况

我打算购买支持高达 3866 MHz 内存速度的主板。处理器将是 Intel i7-7700K,4x 4.20GHz,支持高达 2400 MHz 的内存速度。在这种情况下,CPU 似乎是瓶颈。

问题

  • 对于这种配置,购买以 3400 MHz 运行的内存是否有任何显着的性能提升?
  • 如果内存速度快于支持的cpu内存速度,系统是否能正常工作并稳定运行?
  • 更高的内存速度会不会有缺点?

memory cpu performance intel-core-i7

11
推荐指数
2
解决办法
1万
查看次数

使用 ptrace 时如何区分“syscall”和“int 80h”

据我所知,ptrace 只能通过 PTRACE_SYSCALL 获取系统调用号,但是 x86 和 x64 中的系统调用号是不同的。那么有没有办法找出这个系统调用的真正起源?

我现在正在编写一个程序来通过系统调用号限制其他一些系统调用,我知道 x86 和 x64 上的系统调用号,但是一些程序使用“int 80h”而不是“系统调用”,这样他们就可以做危险的事情我限制在 x64 上。例如,我在 x64 上禁止了 fork(),他们可以使用 'int 80h(2)'(fork()) 而我认为他们正在使用 'syscall(2)'(open()),因此他们可以打破限制. 尽管 ptrace 可以跟踪它们并获取系统调用号,但我无法区分系统调用实际来自何处。

linux sandbox kernel chroot

7
推荐指数
1
解决办法
807
查看次数

X86 地址空间控制器?

我知道在 x86 上,某些物理内存地址范围映射到 BIOS,其他映射到 RAM,还有一些映射到 I/O 设备。

我想知道哪个硬件组件负责此映射/转换。

我的猜测是芯片组或 MMU,或者 CPU 本身的某种芯片选择逻辑。

64-bit computer-architecture x86 cpu-architecture

6
推荐指数
1
解决办法
421
查看次数

微操作缓存是如何标记的?

根据Real World Technologies关于“英特尔的 Sandy Bridge 微架构”的文章:

“Sandy Bridge 的 uop 缓存被组织成 32 组和 8 路,每行 6 uop,总共 1.5K uop 容量。uop 缓存严格包含在 L1 指令缓存中。每行还保存元数据,包括行中有效 uop 的数量和对应于 uop 缓存行的 x86 指令的长度。映射到 uop 缓存的每个 32B 窗口可以跨越一组 8 路中的 3 条,最多 18 路 uop – 大约 1.8B/uop。如果一个 32B 的窗口有超过 18 个 uop,它就无法放入 uop 缓存中,必须使用传统的前端。微码指令不保存在 uop 缓存中,而是由指向微码 ROM 的指针和可选的前几个 uop 表示。”

'每个 32B 窗口(来自指令缓存)被映射到 uop 缓存中,可以跨越一组 8 路中的 3 路'

因此,假设我们有一个 32B 指令窗口,它将是 L1 指令缓存行的一半,在该行上,只有偏移位不同,但该行上所有字节的标记位和设置位都相同。

解码 32 字节窗口后,uop 将使用与用于从 L1 指令缓存中检索 …

cache intel-core-i7 cpu-architecture cpu-cache

5
推荐指数
1
解决办法
1173
查看次数