我正在尝试将所有命令错误输出重定向到这样的文件:
exec 2>errlog.txt
Run Code Online (Sandbox Code Playgroud)
但是执行上面的行给我留下了一个“冻结”的终端——终端根本不响应我的输入。更有趣的是使用重定向标准输出exec效果很好。错误重定向有什么问题?
我在 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 的解决方案通常都会有所帮助。
Linux下操作稀疏文件的函数有哪些?(假设在 C 中,非常欢迎有关其他系统的注释)例如:
语境:
我想到的最初问题是我man rsync的--sparse选择之后:
为什么rsync的--sparse选项有冲突--inplace?
它是文件系统调用api的限制吗?
从数据结构的角度来看,如果源稀疏文件被视为非连续数据块的序列,那么我对“r”同步的期望会在目标上解除分配源中不存在的那些范围,分配丢失的范围,休息相应地更新(即使使用标准的 rsync 滚动散列算法,将所有剩余序列视为一个,或在每个序列上单独运行)。
参考:
man rsync
Run Code Online (Sandbox Code Playgroud)
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不可能以稀疏的方式覆盖数据。
我试图了解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 相关联?
如何将环境变量从sshd的环境传递到新的 SSH 会话?
我sshd在 Kubernetes pod 中运行。Kubernetes 在容器环境中设置了各种变量,包括 API 服务器:KUBERNETES_PORT=tcp://100.64.0.1:443
现在,我的问题是这个环境变量没有传递给新的 SSH 会话,他们需要它来配置kubectl.
为什么当我尝试..从目录中删除时我收到错误:
rm: refusing to remove '.' or '..' directory: skipping '..'
Run Code Online (Sandbox Code Playgroud)
在你问我为什么要这样做之前:只是因为。