我创建了一个这个文件:/etc/profile.d/pycharm_alias.sh
startPyCharm() {...
}
alias py=startPyCharm
我重新启动了 PC,但别名不可用:
===> alias
...empty
如果我通过 ssh 登录到 PC,则别名可用:
===> ssh root@localhost
..
root@pc:~# alias
alias py='startPyCharm'
如何为 ubuntu linux 系统的所有用户提供别名?
我们使用 bash shell。
您可以尝试将其放入
/etc/bash.bashrc
. 它声明的目的是# System-wide .bashrc file for interactive bash(1) shells.
看起来它可能是你想要的。我很惊讶您的 profile.d 解决方案不起作用。别名是个人工具
~/.bashrc
文件中)。Shellscripts(和其他程序)是通用工具
制作一个 shellscript 并将其放在一个目录中,即“每个人的路径”中。
但重要的是要小心以避免覆盖现有程序或将现有程序置于阴影之下。您可以将 shellscript 放在路径中现有程序的前面,这样系统就不会通过
PATH
.换句话说,确保名称是唯一的,以避免其他程序出现问题。
详细提示
这是我在 Lubuntu 18.04.x LTS 中的路径。
我有一个自己的
bin
目录,它会自动找到并放在路径的开头(具有最高优先级)。但路径的其余部分是标准的。我建议你
检查名称是否应该没有冲突
如果没有冲突,创建一个 shellscript(这是一个简单的例子)
使 shellscript 可执行
如果需要 root 权限,请将 shellscript 放入
/usr/local/sbin
,否则放入/usr/local/bin
.该选项
-i
会提示您该名称是否已存在于目标目录中。所有用户如何运行你的 shellscript
当您使 shellscript 可执行并且它位于每个人的目录中时
PATH
,每个人都可以通过其文件名运行它,有几个短字符串尚未用作标准程序的名称,您可以通过测试找到这些名称
例如
在我的计算机中,没有可执行程序,也没有内置具有该名称的 shell,因此我可以将
py
其用作文件名(并且我不需要别名)。py
但是,如果您在将 shellscript 重命名为该名称之前尝试运行,你会发现有这样一个程序(但还没有安装),选择另一个名字可能是个好主意,例如
它可以是从您的原始名称 PyCharm 派生的短名称。
为什么全球
alias
deos不起作用这里
alias
描述了全局不起作用的一个原因:在中使用全局函数
/etc/profile.d
目前您已
/etc/profile.d/pycharm_alias.sh
包含:不必为函数分配全局别名。您可以简单地创建一个名为的全局函数
py
来执行此StartPyCharm
操作。例如,创建
/etc/profile.d/py.sh
包含:将
echo
命令替换为当前StartPyCharm ()
函数的内容。当用户登录并打开他们可以键入的 shell 时,将
py
调用全局函数而不是函数的全局别名。要查看所有功能(全局和本地),请使用
declare -F
为什么你想要所有用户的别名?
为什么不创建可执行脚本?
脚本更简单,可以在所有 shell 中使用,而不仅仅是 bash。
至少在我的情况下,使用脚本而不是别名解决了我的问题。
顺便说一句:这只是一种变通方法,而不是问题的真正解决方案。
您只需
/etc/bash.bashrc
键入以下内容即可导航到:然后在第一个#Comment 之后插入以下代码:
然后你点击Ctrl+ X,然后y,最后Enter。
然后,在控制台中,仅键入
bash
即可开始使用。如果您只想将命令设置为某个帐户,请使用相同的步骤,但路径必须是/home/<user>/.bashrc
.