我在使用 Mac OS X 的终端 (TERM=xterm) 时遇到了一个问题:有时它会进入一种状态,在这种状态下,从顶部滚动的行不会添加到回滚缓冲区中。我没有使用screen或类似的;这是终端选项卡内的一个普通 bash shell。
打开新标签后,它不会立即执行此操作。我相信这是我在问题选项卡中运行的东西的副作用。我的猜测是它与 xterm 仿真有关,可能与滚动区域有关。
什么没有奏效:
reset在选项卡中运行有没有可靠的方法来重置终端和/或 xterm 状态?
任何人都可以解释发生了什么,即使唯一的解决方法是关闭选项卡并打开一个新选项卡?
我想在 zsh 上设置命令完成以在键入后显示主机名
ssh [TAB]
Run Code Online (Sandbox Code Playgroud)
从我的 .ssh/config 文件中取出名称(最好是从 known_hosts 和 /etc/hosts 以及任何其他有意义的地方)并呈现一个列表。
它目前做了一些这样的事情,但是
所以我想在输入 ssh [TAB] 后在(最好是单个)列表中包含已知的用户名和已知的主机名
(我在 Google 之前来到这里是因为 1)它会导致答案被存储在这里,并且 2)它可能更有效。如果没有其他人回答,我会寻找答案。)
我希望输入的每个命令都转到日志服务器。已经配置了将所有日志发送到日志服务器的 syslog-ng。
我对任何和所有方法都感兴趣。我希望对流氓用户和安全性进行一些讨论,但第一个主要目标是简单地记录会话。所有会话都通过 ssh,但也应记录控制台连接命令。我希望任何 shell 都能发生这种情况,但主要的 shell 是 bash。(同样,我知道流氓用户可以创建自己的外壳......)
我可以访问一个以前设置的 FreeBSD 盒子,上面有许多监狱。其中一个监狱是一个 SQL 服务器,它没有启用 ssh。
如何从主机访问该监狱上的 shell?(我拥有它的 root 权限。)
在设置机器的启动脚本中,我想运行
chsh -s /bin/zsh
Run Code Online (Sandbox Code Playgroud)
但是,这需要用户的密码。如何将密码作为参数传递?或者如果我有 sudo 权限,我可以以某种方式绕过这一步吗?或者,是否有另一种方法可以更改默认启动 shell?
我有 1 个源服务器,其中包含我想复制到其他 7 个服务器的大约 30GB 的文件。我目前将文件 SCP 转移到前四台服务器,并在传输完成后将 SCP 转移到最后 3 台服务器。
使用 BitTorrent 将文件一次分发给所有 7 个人会更快吗?每个服务器之间的内部连接已经快速且一致。我知道这可能会减轻源服务器的一些负担,但是分发文件是否需要更长的时间?
我可以从 shell 使用什么好的脚本化客户端?我希望每个人都在 100% 后停止播种。
我在bashDebian 6.0.6 机器上编写 gpg 脚本时遇到了一些问题。我有一个执行批量操作的脚本,并希望在尝试继续之前确保 gpg-agent 可用。
由于 gpg-agent 在已经运行时启动,将不采取任何行动并返回成功,因此确保代理存在非常简单:
eval $(gpg-agent --daemon)
Run Code Online (Sandbox Code Playgroud)
gpg-agent 开始,或将报告:
gpg-agent[21927]: a gpg-agent is already running - not starting a new one
Run Code Online (Sandbox Code Playgroud)
如果已经运行,则返回 0(成功)。
当代理已经在另一个会话中运行时,就会出现问题。gpg-agent说它已经在运行......但gpg它自己然后声称它不可用。
$ gpg-agent --version
gpg-agent (GnuPG) 2.0.19
libgcrypt 1.5.0
$ gpg --version
gpg (GnuPG) 1.4.13
$ eval $(gpg-agent --daemon)
gpg-agent[21927]: a gpg-agent is already running - not starting a new one
$ gpg -d demo-file.asc
gpg: gpg-agent is not available in this session
Run Code Online (Sandbox Code Playgroud)
这让我感到沮丧和困惑。似乎gpg-agent …
从 shell 脚本更改 my.cnf 中的 mysql 绑定地址的最佳方法是什么?有没有办法使用像 mysqladmin 这样的工具,或者我应该使用 sed 还是我应该简单地将它附加到 my.cnf 并希望第二个条目覆盖第一个条目(这听起来很恶心)。我尝试为 vagrant 编写一个简单的 shell 配置器,它在安装 mysql-server 后运行,以允许来自 vm 外部的连接。
我想将Server1和Server2的日志同步到LogServer.
对于Server1:
rsync -avz -e 'ssh -p 2188' user@server1:/usr/local/servers/logs/* /usr/local/logs/
Run Code Online (Sandbox Code Playgroud)
这个有效,但对于Server2:
rsync -avz -e 'ssh -p 2188' user@server2:/usr/local/servers/logs/* /usr/local/logs/
Run Code Online (Sandbox Code Playgroud)
它失败:
shell-init: error retrieving current directory: getcwd: cannot access parent directories: no such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: no such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: no such file or directory
rsync: getcwd(): No such file …Run Code Online (Sandbox Code Playgroud)