大佬教程收集整理的这篇文章主要介绍了linux – 管道到更少-S而不清除命令行历史记录中的输出,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
但是,如果我这样做,一旦退出较少,命令的输出将不会保留在命令行历史记录中
当你退出时,有没有办法配置less以保持历史记录中的命令输出?
例如.如果你看看git diff,你可以执行水平滚动然后退出但是输出仍然保留在历史记录中,然后你可以输入新的命令……我基本上想要为我的自定义bash命令模拟它.同样在git diff中,它在现场执行水平滚动(即不使用新的屏幕),命令行历史记录仍然可见,而少用它会在自己的屏幕上执行,你将无法看到命令线路历史,而“减少”.是否有可能在较少的情况下模拟这种git diff-like机制?
如果有任何其他解决方案,没有使用更少的随意抛出它
更新的问题
所以假设我这样做:
cat loremipsum | less -FRSX Lorem ipsum dolor sit amet,consectetur adipiscing elit. Nullam sed
然后我向右按两次,使其向右滚动两次.然后我按q退出更少.屏幕上保留的输出将是:
cat loremipsum | less -FRSX Lorem ipsum dolor sit amet,consectetur adipiscing elit. Nullam sed ESCOC Dictum diam. Nullam quis urna ullamcorper,accumsan quam vitae,aliquet ESCOD nisl. Maecenas vitae lorem orci. Ut vel est erat. Cras quis sagittis sapien,ac volutpat metus. username@server:~/httpdocs$
但是在git diff中你做同样的事情,然后按q,只有最后一部分(即我滚动到右边的屏幕的最后一部分)
git diff nisl. Maecenas vitae lorem orci. Ut vel est erat. Cras quis sagittis sapien,ac volutpat metus. username@server:~/httpdocs$
将保留在屏幕上
我如何才能实现这一点
ls -la | less -SX
这可以防止在显示输出之前保存和清除屏幕,以及在退出时清除和恢复屏幕.
更新
我拉了一个git工作区,想出了git diff实际上在做什么:
$pstree -p | grep git |-xterm(6021)---bash(6023)---sh(6104)---git(17708)---less(17709) $cat /proc/17709/cmdline | xargs -0 echo less $cat /proc/17709/environ | xargs -0 --replace echo {} | grep LESS LESSOPEN=|/usr/bin/lesspipe.sh %s LESS=FRSX $
所以git diff没有将选项传递给less.相反,它将LESS环境变量设置为FRSX.这与将-FRSX选项传递给less相同.那么,你得到了-FRSX你需要的东西:
ls -la | less -FRSX
以上是大佬教程为你收集整理的linux – 管道到更少-S而不清除命令行历史记录中的输出全部内容,希望文章能够帮你解决linux – 管道到更少-S而不清除命令行历史记录中的输出所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。