当我忘记了以下引文时,我的早晨咖啡还没有到达我的脑海:
alias grep="grep --color=always"
Run Code Online (Sandbox Code Playgroud)
所以我输入:
alias grep=grep --color=always
Run Code Online (Sandbox Code Playgroud)
留给我:
--color=always
grep=grep
Run Code Online (Sandbox Code Playgroud)
在我的别名中。
当我尝试使用 --color=always 清理时,unalias --color
我得到:
bash: unalias: --: invalid option
unalias: usage: unalias [-a] name [name ...]
Run Code Online (Sandbox Code Playgroud)
我尝试逃避、引用和乞求,但我不知道如何让突击队 unalias 清理混乱。
(我知道重新启动可以解决问题,但肯定有另一种方法)
我使用 Linux 和 Mac,我很快就会教授一些命令行的东西。
我可以在 Windows 上安装什么来给我一个最类似于基本 Mac/Linux Bash shell 的终端窗口?
如果可能,我也希望能够定义 .bash_aliases。
几乎每次我通过命令行(即 bash)“cd”到我机器上的不同目录(在这种情况下,运行 Mac OS X 10.6.7)时,我都会立即输入“ls”以获取内容列表在那个目录中。我试图找出一种覆盖“cd”的方法,以便它更改为请求的目录,然后一次性给我列表。
我已经能够获得我正在寻找的基本功能,并将以下行添加到我的 ~/.bash_profile
function cl() { cd "$@"; ls -l; }
Run Code Online (Sandbox Code Playgroud)
这按预期工作。更改到请求的目录,然后向我显示内容。我遇到问题的地方是试图覆盖“cd”本身而不是创建新的“cl”命令。
下面的事情不工作
##### Attempt 1 #####
# Hangs the command line
function cd() { cd "$@"; ls -l; }
##### Attempt 2 #####
# Hangs the command line
function cd() { 'cd' "$@"; ls -l; }
##### Attempt 3 #####
# Does not change directory.
# Does list contents, but of the directory where you started.
function cd() { /usr/bin/cd "$@"; ls …
Run Code Online (Sandbox Code Playgroud) 我的.bashrc
文件包含一行这样的效果:
alias prog="/path/to/script.sh $(find $(pwd) -name prog)"
Run Code Online (Sandbox Code Playgroud)
当我注释掉这一行时,当我打开一个新终端时,Bash 几乎立即启动。有了这条线,在我的光标出现之前有 4-5 秒的延迟。
删除嵌套命令$(pwd)
等也会再次加快速度。为什么会这样?我还能以某种方式使用嵌套命令吗?
此代码不起作用:
scp ~/Desktop/favicon.ico nameOfBashAlias:/public_html/mySite/templates/blog/
Run Code Online (Sandbox Code Playgroud)
别名是:
alias nameOfBashAlias='ssh myUsername@11.11.11.111'
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
是否可能类似于以下代码,例如运行多个bash
?
scp ~/Desktop/favicon.ico (nameOfBashAlias)>:/public_html/mySite/templates/blog/
Run Code Online (Sandbox Code Playgroud)
我没有让上面的代码工作。
我经常忘记用 sudo 运行命令,所以我发现自己经常sudo !!
在之后立即打字。
我试过别名这个,但 bash 扼杀了这一!!
部分。有没有办法在别名中表示这个快捷方式?
我的最后一行.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
.. ?
我正在使用 Fedora 25,并在我的 bash 配置文件中添加了以下别名:
alias releasenotes="dnf updateinfo --refresh info `dnf check-update | cut -d '.' -f 1 | xargs` | less"
Run Code Online (Sandbox Code Playgroud)
(我不能直接使用,dnf updateinfo info
因为https://bugzilla.redhat.com/show_bug.cgi?id=1405191)
我的别名有效,但该命令大约需要 10 秒才能运行,并且由于 bash 在获取配置文件时解析和验证所有别名,因此创建新 shell 会导致 10 秒挂起。这很烦人。
有什么办法可以让 bash 不尝试解析和验证别名——或者只是那个?
我是新手。我在 .bashrc 文件中设置了一个别名,如下所示。
alias myrm='mv /home/user/Trash/*'
Run Code Online (Sandbox Code Playgroud)
目的是当我使用 myrm 注释时,例如 $myrm foo,文件“foo”必须移动到我的主文件夹 (/home/user/Trash) 中的垃圾文件夹。
然后我做了
$source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
在此之后,当我尝试通过键入 $myrm foo 来使用 myrm 时,我收到以下错误消息。
mv: 无法统计 '/home/user/Trash/*': 没有那个文件或目录
如何解决这个问题?
假设我的 ZSH 配置文件中有以下别名定义:
alias myalias="cd /"
Run Code Online (Sandbox Code Playgroud)
如何myalias
在另一个别名中使用?IE:
alias myaliasone="myalias && cd /usr"
Run Code Online (Sandbox Code Playgroud)
我已经尝试过(使用真正的别名,这个别名只是为了示例目的而伪造的),但没有任何反应,而且我无法根据调试或修复某些内容看到任何错误,有什么想法吗?如果这是在另一个别名中使用别名的正确方法,您知道我如何调试它以便找到根本问题或发生了什么吗?