小编mos*_*svy的帖子

使用 exec 重定向 stderr

我正在尝试将所有命令错误输出重定向到这样的文件:

exec 2>errlog.txt
Run Code Online (Sandbox Code Playgroud)

但是执行上面的行给我留下了一个“冻结”的终端——终端根本不响应我的输入。更有趣的是使用重定向标准输出exec效果很好。错误重定向有什么问题?

linux bash

3
推荐指数
1
解决办法
463
查看次数

添加换行符提示是否过长

我在 bash 提示符中显示了我的完整工作目录以及其他信息(git 等),有时它会变得很长。

我想在我的提示末尾添加一个换行符,以便我可以在下一行键入命令,但前提是提示很长,例如超过 50 个字符。

| ~ $ Typing a command here is nice                                              |
Run Code Online (Sandbox Code Playgroud)
| ~/foo/longDirectoryName/longsubirectory/src/package (master +*) $ Typing here s|
| ucks. I want to just start on a new line                                       |
Run Code Online (Sandbox Code Playgroud)

显然,如果我想总是在下一行输入我的命令,我可以添加一个换行符PS1(如这篇文章)。但我还没有找到有条件地做到这一点的方法,因为PS1它只是一个格式字符串。


PS 我实际上正在使用 ZSH 尝试自定义 Agnoster 主题,但我想任何针对 bash 的解决方案通常都会有所帮助。

bash prompt zsh terminal

3
推荐指数
1
解决办法
1962
查看次数

Linux下操作稀疏文件的函数有哪些?

Linux下操作稀疏文件的函数有哪些?(假设在 C 中,非常欢迎有关其他系统的注释)例如:

  • 通过去除文件内部的一部分在文件内部打孔
  • 研究结构,例如生成表示分离的连续数据块的开始和结束的对序列
  • 通过重新分配块范围(即不移动实际数据),在某个时候将文件拆分为两个
  • 调查 inode 和其他相关方面?(也许可以以写时复制的方式将一些块分配给多个文件?)

语境:

我想到的最初问题是我man rsync--sparse选择之后:

为什么rsync--sparse选项有冲突--inplace

它是文件系统调用api的限制吗?

从数据结构的角度来看,如果源稀疏文件被视为非连续数据块的序列,那么我对“r”同步的期望会在目标上解除分配源中不存在的那些范围,分配丢失的范围,休息相应地更新(即使使用标准的 rsync 滚动散列算法,将所有剩余序列视为一个,或在每个序列上单独运行)。

参考:

man rsync
Run Code Online (Sandbox Code Playgroud)
   -S, --sparse
          Try to handle sparse files efficiently so they take up less space on the destination.  Conflicts with --inplace because it's
Run Code Online (Sandbox Code Playgroud)

不可能以稀疏的方式覆盖数据。

linux filesystems rsync inode sparse-files

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

TTY 与普通文件有何不同?

我试图了解ssh-t选项:

-t 强制伪终端分配。这可用于在远程机器上执行任意基于屏幕的程序,这非常有用,例如在实现菜单服务时。多个 -t 选项强制 tty 分配,即使 ssh 没有本地 tty。

所以,TTY 是一个设备。引用 TTY 的一种方法是通过描述符(通过打开 TTY 设备获得)。STDIN、STDOUT 和 STDERR 是描述符。但它们不一定是指 TTY 设备。-t选项强制它们引用 TTY 设备。这是为了理解这个选项的作用的正确推理方式吗?

使用普通的 STDIN、STDOUT 和 STDERR 可能无法实现的 TTY 有什么特别之处?

-t欢迎使用选项用例的示例。

通过哪种机制ssh分配该 TTY?是ssh在服务器上还是在客户端上创建新的 TTY?如何检查这个?(/dev/必须出现一个新节点或其他什么……)这个新的 TTY 如何与现有的 STDIN、STDOUT 和 STDERR 相关联?

ssh pty pseudoterminal

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

如何将环境变量从 sshd 的环境传递到新的 SSH 会话?

如何将环境变量从sshd的环境传递到新的 SSH 会话?

sshd在 Kubernetes pod 中运行。Kubernetes 在容器环境中设置了各种变量,包括 API 服务器:KUBERNETES_PORT=tcp://100.64.0.1:443

现在,我的问题是这个环境变量没有传递给新的 SSH 会话,他们需要它来配置kubectl.

ssh debian sshd aws kubernetes

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

rm:拒绝删除“.” 或“..”目录:跳过“..”

为什么当我尝试..从目录中删除时我收到错误:

rm: refusing to remove '.' or '..' directory: skipping '..'
Run Code Online (Sandbox Code Playgroud)

在你问我为什么要这样做之前:只是因为。

rm error-handling

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