小编4ae*_*1e1的帖子

OS X终端中的`git`和`less`集成:防止将`less`的输出写入tty

在OS X终端中,less它自己或其他程序调用时man,在我们退出后它的输出将不会被写入ttyless.例如,如果我们运行less README,我们会暂时被引导到一个屏幕上

SO rocks.
README (END)
Run Code Online (Sandbox Code Playgroud)

按下之后q,输出less会消失,我们最终会得到类似的结果

$less README
$    # shell waiting for input
Run Code Online (Sandbox Code Playgroud)

但是,如果less被调用git(在我的情况下git设置为寻呼机)则不是这种情况less -r.退出后,输出less始终写入tty.例如,如果我们运行git log --oneline,如果日志很短less则甚至不会被调用; 如果日志长于一个屏幕,那么我们会less像往常一样暂时指向输出屏幕:

0000000 set the pager of git to less
......
1111111 what's wrong with git?
(END)
Run Code Online (Sandbox Code Playgroud)

按下之后q,整个东西都被写入了tty,所以我们最终得到了类似的东西

$git log --oneline # OMG!!!
0000000 set the …
Run Code Online (Sandbox Code Playgroud)

git macos terminal command-line less-unix

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

GNU 并行:-k(保持输出顺序)会影响速度吗?

正如标题中所说,我想知道该-k选项(强烈)是否会影响 GNU 并行的速度。

man parallel_tutorial存在关于讨论--ungroup--line-buffer,其声称--linebuffer,其unmixes输出线,比要慢得多--ungroup。那么-k当工作数量很大时,也许也会导致大幅放缓?

(我没有在man parallel或 中找到这个主题man parallel_tutorial;我也没有在谷歌上找到任何东西。不过我还没有完成man parallel,所以如果我错过了一些搜索较少的东西,请原谅。)

parallel-processing gnu-parallel

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

命令替换中的 Heredoc:引号或括号不平衡时出错(bash 和 zsh)

考虑以下用于打印单引号的模糊脚本,该脚本适用于ksh

#!/bin/ksh
echo "$(cat <<EOF
'
EOF
)"
Run Code Online (Sandbox Code Playgroud)

输出:

'
Run Code Online (Sandbox Code Playgroud)

bash 3.2.51(1)然而,当我在 OS X 上运行相同的脚本时,

#!/bin/ksh
echo "$(cat <<EOF
'
EOF
)"
Run Code Online (Sandbox Code Playgroud)

bash 报告以下错误:

./heredoc-within-cmdsubst: line 3: unexpected EOF while looking for matching `''
./heredoc-within-cmdsubst: line 6: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

并运行zsh 5.0.2

#!/bin/zsh
echo "$(cat <<EOF
'
EOF
)"
Run Code Online (Sandbox Code Playgroud)

zsh 报告以下错误:

./heredoc-within-cmdsubst:6: unmatched "
Run Code Online (Sandbox Code Playgroud)

当单引号被双引号或括号替换时,也会发生类似的错误。如果我用匹配的单引号/双引号/括号来平衡单引号/双引号/括号,那么脚本在 bash 和 zsh 中都可以正常运行。

这个问题只是 bash 和 zsh(相关版本)中的一个错误,还是这里违反了任何语法规则?

bash shell zsh

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

使用 git bash 启动 MongoDB

kevin@KEVIN-PC MINGW64 /C/MongoDB/bin
$ ls
bsondump.exe*  mongodump.exe*    mongoperf.exe*     mongotop.exe*
libeay32.dll*  mongoexport.exe*  mongorestore.exe*  ssleay32.dll*
mongo.exe*     mongofiles.exe*   mongos.exe*
mongod.exe*    mongoimport.exe*  mongos.pdb
mongod.pdb     mongooplog.exe*   mongostat.exe*

kevin@KEVIN-PC MINGW64 /C/MongoDB/bin
$ mongod.exe
bash: mongod.exe: command not found
Run Code Online (Sandbox Code Playgroud)

我在我的 windows8.1 上安装了 Windows 64 位 2008 R2+ 版本的 mongoDB。谁能告诉我为什么在启动 mongod.exe 时出现命令未找到错误?

bash mongodb

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

zsh命令行编辑器:输入命令时返回上一行

请注意,我不是在谈论历史上的前几行.我在谈论当前多行命令中的前一行.

例如,当我在zsh中键入多行命令时(_表示光标):

$ for i in {1..5}; do
for> echo i_
Run Code Online (Sandbox Code Playgroud)

在这一点上,我可能会改变主意,并希望让i循环通过{1..10},所以我需要回到上一行.但是,我无法弄清楚如何做到这一点,如⌫,或←,或者C-b,或者我能想到的第二行开头的所有停靠点.那么,是否有可能退回去?提前致谢.

实际上,这不仅限于zsh.例如,我从来没有在bash中想到这一点.

我已经花了相当多的时间谷歌搜索没有任何调查结果,所以请原谅我并责怪我的谷歌如果这是显而易见的.


供您参考,我正在使用Emacs键绑定,以及

$ bindkey | grep delete
"^D" delete-char-or-list
"^H" backward-delete-char
"^[[3~" delete-char
"^?" backward-delete-char
Run Code Online (Sandbox Code Playgroud)

不确定这是否有帮助.

shell command-line zsh

4
推荐指数
2
解决办法
1238
查看次数

初始化':rack-test需要一个机架应用程序,但没有给出(ArgumentError)

从Selenium切换到时,我一直收到此错误PhantomJs/Poltergeist.谁知道我做错了什么?如果我将驱动程序切换到selenium,脚本可以正常工作.每当我注释掉default_driver = :selenium并替换为javascript_driver = :poltergeist我遇到此错误.

initialize': rack-test requires a rack application, but none was given (ArgumentError)
Run Code Online (Sandbox Code Playgroud)

这都是ruby文件,没有rails.

require 'rubygems'
require 'capybara'
require 'capybara/dsl'
require "open-uri"
# require "date"
# require 'active_support/core_ext/integer/inflections'
require 'capybara/poltergeist'
# require 'selenium-webdriver'
require 'pry'
require 'phantomjs'
# require 'database_cleaner'

Capybara.run_server = false
Capybara.javascript_driver = :poltergeist
# Capybara.default_driver = :selenium
Capybara.app_host = 'https://www.sameplsite.com'


module MyCapybaraTest
  class Test
    include Capybara::DSL

    def login_site
        visit('https://www.sameplsite.com')
        # binding.pry
        click_link('Log in')
        fill_in('email', :with => 'joefrank@sharklasers.com')
        fill_in('password', …
Run Code Online (Sandbox Code Playgroud)

ruby selenium web-scraping phantomjs poltergeist

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

Zip 文件夹排除某些文件夹

我正在尝试备份我的 www 文件夹,但 www 中的 .config 等隐藏文件夹已添加到备份中。我想排除文件夹“备份”和所有以点开头的文件夹(和文件)。

问题在于它将所有隐藏文件夹(如 .config)复制到 zip 文件中。

当前代码:

zip -r /var/www/backups/site/$(date +\%Y-\%m-\%d-\%H-\%M).zip /var/www -x "*backups*" "*.*" "*/.*"
Run Code Online (Sandbox Code Playgroud)

linux ubuntu

3
推荐指数
2
解决办法
8577
查看次数

如何在 git diff 输出中正确显示重音符号

当我运行 git diff 命令时,文件列表中所有带有重音符号的文件显示效果不佳:

\n\n
 git diff --name-status xxxx yyyyyy\n
Run Code Online (Sandbox Code Playgroud)\n\n

返回

\n\n
M       "\\303\\251\\303\\251.txt"\n
Run Code Online (Sandbox Code Playgroud)\n\n

我怎样才能保留口音来拥有这个?:

\n\n
M       "\xc3\xa9\xc3\xa9.txt"\n
Run Code Online (Sandbox Code Playgroud)\n\n

谢谢

\n\n

编辑:我指定该文件以 UTF-8 编码,并尝试使用 OSX 中的 git 2.3.2 和 Ubuntu 中的 git 1.9.1

\n

git

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

iTerm 2 未使用正确的默认配置文件启动

当 iTerm 2 启动时,它使用一个不存在的名为“default”的配置文件。

在此处输入图片说明

如果我打开一个新选项卡,我会在开始时得到预期的行为:

在此处输入图片说明

这是我的个人资料:

在此处输入图片说明

是什么让我的真实默认值无法在开始时加载?

iterm2

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

为什么Unix通配符"*"不包含".*"?

考虑只有一个文件的目录.foo.然后rm -rf *不会删除.foo; 只会rm -rf .*.为什么会这样?(我想这已经是与默认的...,但有什么设计理念?我倾向于当他们都应该要删除的文件点留下.)

unix linux shell wildcard

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