有哪些好的 bash 教程?我想了解更多有关 bash shell 命令以及如何使用它们的信息。
给定命令的历史:
1 pwd
2 mysql -u root -p
3 ps -ef | more
4 top
5 mysql -h 192.168.1.101 -u root -p
Run Code Online (Sandbox Code Playgroud)
当您按向上箭头时,您可以滚动浏览所有这些命令。我之前在某处读过(并在我的工作 PC 上完成过)你可以设置 BASH,这样当我第一次输入p然后按向上箭头时,它只会滚动历史中以“p”开头的所有命令(pwd和ps -ef | more)。当我输入mysql然后按向上时,它只会滚动以“mysql”开头的所有命令。
我想设置我的笔记本电脑来使用它,但我又找不到说明了。
鉴于 Windows XP 的 Cygwin 的标准安装,我想创建一个标准的资源管理器快捷方式,打开一个已经在我选择的目录上打开的 bash shell。该目录是一个 UNC 路径。标准 cygwin.bat 不起作用,因为它调用 cmd.exe,而 cmd.exe 不喜欢 UNC 路径。理想情况下,它不会启动 cmd.exe 或任何其他 shell 来打开 bash。我试过操作 .bashrc 并从我的 Unix 时代挖掘我的记忆,但遗憾的是,这些日子缺乏。我尝试过的各种解决方案几乎都有效,但并不完全有效。
这一切都始于一个简单的
alias gv='gvim --remote-quiet'
Run Code Online (Sandbox Code Playgroud)
现在gv Space Tab在通常应该给出文件名的地方什么也不给。奇怪,
alias gvi='gvim --remote-quiet'
Run Code Online (Sandbox Code Playgroud)
按预期工作。我显然有一个解决方法,但我想知道是什么吸引了我gv的特殊处理。compopt没有帮助,因为gv与ls正确完成文件名完成共享相同的设置。
$compopt gv
compopt +o bashdefault +o default +o dirnames -o filenames +o nospace +o plusdirs gv
$ compopt ls
compopt +o bashdefault +o default +o dirnames -o filenames +o nospace +o plusdirs ls
Run Code Online (Sandbox Code Playgroud)
该complete命令稍微有用一点,但它没有告诉我为什么我的两个字符被挑出来进行更改:
$ complete -p gv
complete -o filenames -F _filedir_xspec gv
$ complete -p ls
complete -o filenames -F _longopt ls
$ complete -p …Run Code Online (Sandbox Code Playgroud) 是什么意思,或者下面有什么作用?
set -o emacs
Run Code Online (Sandbox Code Playgroud)
我在某处看到过,而且我是 Emacs 用户,所以这让我很好奇。
我的最后一行.bash_profile是:
alias cp=/usr/local/bin/gcp
Run Code Online (Sandbox Code Playgroud)
但是,这被 my 中的条目压扁了$PATH:
$which cp
/bin/cp
11:54:32/OCspark $type cp
cp is aliased to `/usr/local/bin/gcp'
Run Code Online (Sandbox Code Playgroud)
我原以为别名会覆盖PATH.. ?
我有一个 150GB 的 xml 文件,我想将其缩短(即截断)到大约 1GB - 是否有我可以使用的简单(bash 或类似)命令,或者我是否必须走编程路线(在 vi 或 emacs 中编辑它)即使在大型铁系统上也是噩梦)?
(我并不特别担心信息丢失,我想要一个更短的文件,这样我就可以测试一个软件,而不用等待几个小时的答案,一个更短的文件将允许我这样做。)
NO_PROXY环境变量的解释似乎没有正式标准化。并且特定程序的大多数文档对其确切解释(例如 emacs)相当模糊。
这让我很难回答一个我很好奇的问题:
是否
NO_PROXY=.example.com匹配所有example.com,subdomain.example.com和sub.domain.example.com?
我想NO_PROXY在我的系统内尽可能多的上下文中设置变量以匹配一堆主域以及这些主域的所有子域。
有谁知道实际上在实践中的实施有多多样化NO_PROXY?为了实现我的目标,我是否需要为每个域指定以下内容?:
export NO_PROXY=example.com,.example.com,*.example.com
Run Code Online (Sandbox Code Playgroud) 运行 git bash 时,我可以使用Alt+在我的根目录打开一个新的 bash 窗口F2
我可以在当前目录路径打开一个 windows 资源管理器窗口
$ explorer .
Run Code Online (Sandbox Code Playgroud)
试
$ sh
Run Code Online (Sandbox Code Playgroud)
在我的位置打开一个新的终端窗口刚刚返回
sh: __git_ps1: command not found
Run Code Online (Sandbox Code Playgroud)
并在不运行 git 的情况下在当前窗口中打开 shell。
如何在我的位置快速打开一个新的 bash shell?
我正在关注文档并在 Windows 10 命令提示符下执行一些命令:
export OPENAI_LOG_FORMAT='stdout,log,csv,tensorboard'
export OPENAI_LOGDIR=path/to/tensorboard/data
tensorboard --logdir=$OPENAI_LOGDIR
Run Code Online (Sandbox Code Playgroud)
我认为这export是一个 Unix 命令,而 Windows 中的等效命令是setx. 我已经执行了前两个命令,当我尝试第三个命令时,$OPENAI_LOGDIR没有正确检测到。有人可以帮助解决 Windows 中的这些问题吗?
bash ×10
linux ×2
shell ×2
unix ×2
alias ×1
autocomplete ×1
bash-alias ×1
command-line ×1
cygwin ×1
emacs ×1
export ×1
git ×1
history ×1
proxy ×1
terminal ×1
unc ×1
windows ×1
windows-10 ×1