我在我的 .bash_login 中添加了一些 cd blah blah 命令作为别名,以便于更改目录。它工作正常。突然,尽管那里的别名都不起作用。它说找不到命令。我不知道为什么所有这些突然它会停止工作。有什么建议吗?(我确实重新启动了系统)
我很抱歉我实际上是想写 .bash_login
抱歉,如果在其他地方回答了这个问题,我一生都无法找到解决我的特殊情况的方法,我承认这有点奇怪。(注意:由于某种原因,这篇文章中的所有“使用”字样都显示为蓝色,但它们不应该是蓝色的,我不知道如何防止它)。
我在 MacOS 中使用 bash。我的 .bashrc 中有一些别名,它们只是向终端窗口打印一些东西来帮助我记住命令,或者快速向某人展示一个示例(在下面的代码中,我在命令行上创建别名,但实际上我总是将别名放在 .bashrc 中):
556 ~ alias howtotensorboard="echo tensorboard --logdir=logs/ --port=6001"
557 ~ howtotensorboard
tensorboard --logdir=logs/ --port=6001
Run Code Online (Sandbox Code Playgroud)
如果我只在命令行上使用 echo,在反引号前面加上反斜杠允许我将反引号打印到窗口:
559 ~ echo Using \`which python\` etc
Using `which python` etc
Run Code Online (Sandbox Code Playgroud)
但是在别名中做同样的事情实际上是执行 `which python` 而不是将它打印到窗口:
560 ~ alias howtobacktick="echo Using \`which python\` etc"
561 ~ howtobacktick
Using /usr/bin/python etc
Run Code Online (Sandbox Code Playgroud)
TL; DR,我想要的是在 .bashrc 中放置一个别名,该别名使用 echo 打印出一个反引号,以便最后我可以在 bash 中做到这一点:
558 ~ howtobacktick
Using `which python` etc
Run Code Online (Sandbox Code Playgroud)
我在 .bashrc 中的别名中尝试了许多变体,但没有一个起作用。我怎样才能得到我正在寻找的行为?而且,有没有办法专门用回声来做到这一点?
我尝试通过定义 doskey 别名在(docker)容器内运行Laravel 的 Artisan命令。
我的想法是:
php artisan=docker-compose exec apache php artisan $1
Run Code Online (Sandbox Code Playgroud)
但是,它不允许我在密钥中使用空格。知道如何实现这一目标吗?
编辑我为 Windows 制作了一个小的 GUI 工具来运行命令https://github.com/thomasmoors/DockerArtisan
我想为同一个命令创建两个不同的别名而不重复我自己。我怎样才能在 bash 中做到这一点?例如,我希望 listlong 和 longlist 都是“ls -al”的别名。
我在 Windows 上启动了 Ubuntu bash,它随周年更新 1607 一起提供。这个 bash 源.bashrc文件位于/home/philUnix 用户的主目录,而不是 Windows 用户(这将是/mnt/c/Users/Philipp)。在这个文件中还有以下一段代码:
if [ -f .bash_aliases ]; then
. .bash_aliases
fi
Run Code Online (Sandbox Code Playgroud)
由于我的 Windows 主目录中已经有一个别名文件,因此我将其替换为:
if [ -f /mnt/c/Users/Philipp/.aliases_win ]; then
. /mnt/c/Users/Philipp/.aliases_win
fi
Run Code Online (Sandbox Code Playgroud)
当重新启动 bash 或直接使用时,source /mnt/c/Users/Philipp/.aliases_win会给出:
: command not found
: command not found
: command not found
: command not found
: command not found
: command not found
: command not found
Run Code Online (Sandbox Code Playgroud)
所以我删除了尽可能多的别名,直到这些错误消息消失,只在文件中留下这些别名:
(作为参考,完整文件如下所示:https : //github.com/kleinfreund/dotfiles/blob/master/win/bash/.aliases)
# …Run Code Online (Sandbox Code Playgroud) bash bash-alias windows-subsystem-for-linux windows-10-v1607
我想添加一个别名(为了方便起见),它允许我编辑我的 bashrc,如果进行了更改,请提供它,但如果没有进行任何更改,请不要提供(以防我改变主意)。
我最初尝试过,alias vb='vi ~/.bashrc && source ~/.bashrc'但后来我意识到即使只是退出 vi:q或者:q!可能仍然返回成功返回值,这就是它仍然来源的原因。
是否有某种方法可以创建别名,以便在不更改文件的情况下退出 vi 不会产生 .bashrc 来源,但如果某些内容发生了变化,它确实如此?
我的本地网络中有一台 CentOS 主机,我每天都使用它来打开与 Internet 和本地网络中许多(超过 40 个)其他主机的 SSH 连接。我已经设置了 RSA 密钥对来跳过交互式身份验证和一些像这样的 bash 脚本:
[root@beta ~]# cat ~/connections/mywebsite.sh
ssh mywebsitefi@virtualserver123.hostingprovider.fi
Run Code Online (Sandbox Code Playgroud)
当我需要打开与它们的连接时,这很好用,但当我需要将scp文件发送到同一主机时就不行了。
是否可以创建等效于别名的东西来替换这样的 username@host 部分?
[root@beta ~]# scp myfile MYWEBSITE:/var/www
Run Code Online (Sandbox Code Playgroud)
使用 Tab 键自动完成别名的可能性也很棒。
我知道 bash 别名只能用作命令的第一个单词,但是还有其他方法可以实现吗?如果不在 bash 中,也许是另一个 shell?
如何创建-在 Bash 中命名的别名?以下均无效:
alias -='cd -'
alias \-='cd -'
alias '-'='cd -'
Run Code Online (Sandbox Code Playgroud)
有错误:
bash: alias: -=: invalid option
alias: usage: alias [-p] [name[=value] ... ]
Run Code Online (Sandbox Code Playgroud) 我在 Windows 10 上运行 WSL2,并且希望能够在不退出 Linux shell 的情况下从中运行 CMD 命令。具体来说,我想做的是:
wmic diskdrive get Model,Manufacturer,Size,DeviceID,Status,InterfaceType
Run Code Online (Sandbox Code Playgroud)
我如何使用 WSL2 做到这一点?
bash bash-alias cmd.exe windows-10 windows-subsystem-for-linux
我正在尝试写一个别名来做两件事
$alias cde='cd "$@" && echo'
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,当我用
$cde test
test
Run Code Online (Sandbox Code Playgroud)
所发生的只是它回声测试:
看起来我的参数没有传递给第一个语句,而是在整个别名的末尾用完。根据我的理解,$@应该消耗所有参数,以便它永远不会到达回声。有什么办法可以在第一部分而不是第二部分中使用参数?
在我的 中~/.shortcuts,我有一些常用目录的符号链接。
在.bashrc(OS X)中,我这样做:
ls -1 ~/.shortcuts | xargs -I {} alias {}="'cd -P ~/.shortcuts/{}'"
当我alias在终端中运行时,输出显示新添加的别名,但没有一个别名有效。为什么?
我有一些别名,如alias ll='ls -l'在.bash_aliases. 这样. ~/.bash_aliases在.bashrc负载我的自定义别名得很清楚。但是,当我将xargs -t输出重定向到 tmp 文件并在 bashrc 中获取它(就像我的 source 一样.bash_aliases)时,它不起作用。
我究竟做错了什么?
bash-alias ×11
bash ×10
alias ×3
cmd.exe ×2
linux ×2
macos ×2
windows-subsystem-for-linux ×2
bashrc ×1
command-line ×1
shell ×1
shell-script ×1
ssh ×1
terminal ×1
vim ×1
windows ×1
windows-10 ×1