我在Linux Mint系统上,使用bash和zsh作为shell。 我只是手动安装Texlive,我希望它在我的path。 我认为添加下面的行.profile会很好,但zsh不加载.profile。 if [ -d "/usr/local/texlive/2013/bin/i386-linux" ] ; then PATH="/usr/local/texlive/2013/bin/i386-linux:$PATH" fi if [ -d "/usr/local/texlive/2013/bin/x86_64-linux" ] ; then PATH="/usr/local/texlive/2013/bin/x86_64-linux:$PATH" fi if [ -d "/usr/local/texlive/2013/texmf/doc/man" ] ; then MANPATH="/usr/local/texlive/2013/texmf/doc/man:$MANPATH" fi if [ -d "/usr/local/texlive/2013/texmf/doc/info" ] ; then INFOPATH="/usr/local/texlive/2013/texmf/doc/info:$INFOPATH" fi 显然,所有提到“将其添加到.zshrc / .bashrc”的东西都是不正确的,因为这只会影响我(只有一个用户),而且只会影响到这两个shell。 (我在我的机器上拥有pipe理权限。)
我想将一个命令绑定到zsh中的一个键组合,这在OSX和Linux上是不同的。 我目前的状态是 if [[ "$(uname)" == "Darwin" ]]; then bindkey "^e" some-command # Ctrl+E for OSX else bindkey "^[e" some-command # Alt+E for Linux fi 但是,这不适用于这两个系统之间的ssh连接。 所以实际上,我不想检查我的shell在哪个操作系统中运行,而是在我的terminal运行在哪个操作系统中。有没有办法获取这些信息? 请不要关注绑定中使用的密钥的细节。 这在这一点上不相关:) 编辑:为了使事情更清楚: terminal是这样的,你input你的命令,像Iterm2 , Guake或Xterm shell是东西,接收和执行像Bash , Zsh或Fish这样的命令
我有一些简单的shell代码将在控制台中执行,但不是在脚本中执行。 以下是我缺乏进展的说明。 我试图隔离我的触摸屏的xinput设备号码。 这些线路在控制台上工作: % NAME="Atmel maXTouch Digitizer" % DEVICE=`xinput | grep "$NAME" | grep -o "id=[0-9]+" | tr -d id=` % echo Device found: $DEVICE Device found: 12 在一个脚本中,这些确切的线条什么都不产生 % touchscreen Device found: 这一个class轮产生相同的价值: % echo `xinput | grep "Atmel maXTouch Digitizer" | grep -o "id=[0-9]+" | tr -d id=` 12 在一个脚本中,单行也只产生一个空白行,这可以消除不良引用作为一个可能的原因。 为了弄清楚发生了什么,我打破了代码。 在控制台,都是金色的: […]
我通过ssh连接到远程机器,在我的~/.ssh/config使用这个: Host myserver User myusername ProxyCommand ssh myserver2 exec nc myserver 22 但是,当我试图拉动远程git存储库,我得到这个错误: % git pull myserver:~/mygitrepository zsh:1: command not found: git-upload-pack fatal: The remote end hung up unexpectedly 问题是我的git可执行文件不在$ PATH定义的标准path中。 在远程机器上: % which git-upload-pack /c5/shared/git/1.7.6/bin/git-upload-pack 并在本地机器上: % ssh myserver "env | grep PATH" PATH=/usr/local/bin:/bin:/usr/bin ssh不读取.zshrc或.bashrc中的远程PATH定义。 我怎样才能定义通过ssh git可执行文件的PATH?
是否可以自定义zsh,以便当我input时,比如说, sudo ls ,然后按Alt-h查看命令ls手册页。 run-help的默认行为是向我显示命令sudo的手册页,而不是ls 。
我一直在试图创造一个奇特的哦,我的zsh主题,但不幸的是,我已经遇到了一个恼人的路障。 eval gray='$FG[245]' yellow='226' ret=$? # error check [[ $ret -ne 0 ]] && yellow='100'#THIS LINE NOT FUNCTIONING #prompt PROMPT='$gray%~ $(git_prompt_info)${FG[$yellow]}%(!. ⚡ .»)%{$reset_color%}' RPROMPT='$gray%n:%m%{$reset_color%}$?' 这是我到目前为止,第六行不工作,虽然我已经尝试了单括号,我试着添加运行它为sh而不是zsh,我也试过交换$ ret为$? 甚至把整个事情推到一个完整的如果然后设置,到目前为止,没有任何工作。 我是否以某种方式弄乱了语法,或者由于环境或实现而无法工作? 注意: 这是哦,我的ZSH所以这个configuration文件是修改terminal的命令提示符,$? 是上次运行命令的返回值。
我决定给zsh一个尝试。 首先,我将描述事情现在如何运作,然后描述我希望他们如何工作。 可以说,我有2个子文件夹在当前的文件夹,第一个“文件”,第二个“下载”。 如果我input“CD D”并按TAB,它将自动完成“Do”。 再按一次TAB,它将自动完成“文件”。 再次按Tab键,将自动完成“下载”。 再次按TAB,它会自动完成“文件”(我明白,这里不能像Bash那样回去“做”)。 在这一点上,我不得不压缩input两次来改变目录。 (先inputselect“文件”,然后input命令执行命令)。 我想如何performancezsh: 如果我input“CD D”并按TAB,我想自动完成“文档”。 再次按TAB,应该自动完成“下载”。 再次按TAB,应该自动完成“文档”。 按一次Enter,目录应该变成“Documents”。 我怎样才能做到这一点? 🙂
tmux可以像下面的图片一样显示大的时间,有没有什么办法像这样显示大数字,比如我想要实时显示用户数量。
我试图利用GRB的git助手( https://github.com/garybernhardt/dotfiles/blob/master/.githelpers )来打印我的git日志。 第62行的git log –graph –pretty="tformat:${LOG_FORMAT}"命令工作的很好; 在iTerm中用颜色打印。 但是,只要将它传送到pretty_git_format ,就不会显示任何颜色。 直到几个星期前,这已经工作了好几年了。 zsh有没有改变,我现在需要configuration不同? 我使用iTerm2和zsh版本zsh 5.4.2(x86_64-apple-darwin16.7.0)。
编写一个shell脚本的最好方法是访问与之相关的文件,这样我就可以从中调用它。 “简单”意味着最简单/推荐的方式,将跨越不同的系统/炮弹工作。 例 说我有一个文件夹~/MyProject子文件夹scripts/和files/ 。 在scripts/ ,我有一个shell脚本foo.sh ,它想要访问files/中的files/ : if [ -f "../files/somefile.ext" ]; then echo "File found" else echo "File not found" fi 它会正常工作如果我做cd ~/MyProject/scripts && ./foo.sh ,但它将失败, cd ~/MyProject && scripts/foo.sh