在玩终端时,我注意到有很多方法可以创建永久别名。
我是 Linux 新手,据我所知,正在做:
sudo ln -s /path/to/executable /usr/local/bin/desired_aliasdesired_alias = '/path/to/executable'到~/.bashrc取消注释这些行~/.bashrc:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Run Code Online (Sandbox Code Playgroud)
并把desired_alias = '/path/to/executable'成~/.bash_aliases
都具有相同的效果。
第一种方法和第二种方法有什么区别?
我在~/.bashrc然后运行中创建了几个新别名source ~/.bashrc并且它起作用了。但是重启终端后它不起作用。我回过头来发现了建议:创建~/.bash_aliases并~/.bashrc附加字符串:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Run Code Online (Sandbox Code Playgroud)
但问题仍然没有解决。有什么建议?
我希望创建一个运行程序 x 的别名,而不更改我所在的当前目录。我现在拥有的是:
alias x = "cd /home/path_to_x && ./x"
Run Code Online (Sandbox Code Playgroud)
这有效,但更改了我的目录。我想做的是:
alias x="./home/path_to_x/x
Run Code Online (Sandbox Code Playgroud)
但是后来我没有得到这样的文件或目录。有人知道解决方法吗?
我正在寻找一种方法来使以下别名适用于任何文件名。
alias dim='cd /home/jason/Documents; vim *the desired file*; cd'
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法可以更改此别名以使其可以输入任何文件名:
dim *the desired file*
Run Code Online (Sandbox Code Playgroud)
并且仍然得到相同的结果。基本上有没有办法将别名后键入的内容调用到别名本身中?就像是:
alias dim='cd /home/jason/Documents; vim <what is typed after alias>; cd'
Run Code Online (Sandbox Code Playgroud) 我在我的.bash_aliases文件中创建了许多别名,它们非常有用,所以如果我想要一个包的所有信息,我会执行以下操作:
allinfo software-center
Run Code Online (Sandbox Code Playgroud)
这相当于:
apt-cache show software-center
Run Code Online (Sandbox Code Playgroud)
由于别名设置为:
alias allinfo='apt-cache show'
Run Code Online (Sandbox Code Playgroud)
但这有一个缺点,我目前无法TAB在使用allinfo而不是实际命令时自动完成。所以我想知道是否有办法克服这个缺点并使它的allinfo software-ce[TAB]工作与实际命令一起使用时的效果相同,而不仅仅是制作一个大的制表符空间?
我正在使用gnome-terminal.
操作系统信息:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 15.04
Release: 15.04
Codename: vivid
Run Code Online (Sandbox Code Playgroud)
包装信息:
gnome-terminal:
Installed: 3.14.2-0ubuntu3
Candidate: 3.14.2-0ubuntu3
Version table:
*** 3.14.2-0ubuntu3 0
500 http://gb.archive.ubuntu.com/ubuntu/ vivid/main amd64 Packages
100 /var/lib/dpkg/status
Run Code Online (Sandbox Code Playgroud) 我在.bashrc文件中设置了几个别名。大多数时候我都需要这些别名,但有时我需要在没有在该特定别名中设置选项的情况下运行这些命令。
如何不执行别名命令?
我想轻松地git-go为此终端行设置别名:
git commit -m "init "; git push; git status
Run Code Online (Sandbox Code Playgroud)
所以当我输入 git-go 时,应该输入这一行。
我怎样才能做到这一点?我看到的答案仅涵盖没有参数的命令的别名。但我想为任意终端线设置别名。
编辑: 我学会了使用函数而不是别名,因为
有关别名的定义和使用的规则有些令人困惑。
和
对于几乎所有用途,shell 函数都比别名更受欢迎。
所以除非必须,否则不要使用别名。 https://ss64.com/bash/alias.html
在.bashrc文件中,可以为命令添加别名,例如
alias geditm = 'gedit --display=D1'
Run Code Online (Sandbox Code Playgroud)
现在我可以geditm在终端中运行并在显示 D1 中打开 gedit。我很好奇是否有办法为 Alt-F2 菜单中的运行命令定义别名,以便我可以Alt+ F2,键入geditm并获得相同的结果。
我有兴趣在一般情况下这样做,而不仅仅是为了 gedit。
如何在 Ubuntu 16.04 中创建系统范围的别名来捕捉包?
我想快速安装 Blender。我发现,有可以安装的Blender-tpaw包。不幸的是,安装它后,它可以在终端中使用 name blender-tpaw,而不是blender.
所以首先我尝试运行命令sudo snap alias blender-tpaw blender,根据:https : //insights.ubuntu.com/2017/01/28/ubuntu-core-how-to-enable-aliases-for-your-snaps-commands / . 但这就是我所拥有的:
error: cannot perform the following tasks:
- Enable aliases for snap "blender-tpaw" (cannot enable alias "blender" for "blender-tpaw", no such alias)
Run Code Online (Sandbox Code Playgroud)
然后我尝试建立符号链接,sudo ln -s /snap/bin/blender-tpaw /usr/local/bin/blender但在这种情况下发生了非常奇怪的事情:现在当我输入blender终端时,我得到了snap命令的输出......
我也试过在 /etc/profile.d/alias.sh
alias blender='blender-tpaw'
Run Code Online (Sandbox Code Playgroud)
但这仅适用于我的 Ubuntu 16.04 服务器,但不适用于 Ubuntu 16.04 桌面。
我想在别名中插入不同可能的拼写变体,例如cat命令。我可以使用一些符号来表示“或”还是应该在新行上?
alias at|cart|cst '/bin/cat'
Run Code Online (Sandbox Code Playgroud)