相关疑难解决方法(0)

如何创建永久的 Bash 别名?

我想为rm命令创建一个别名,以便在执行此命令后收到确认消息。所以我正在创建一个这样的别名alias rm='rm -i'。但据我所知,这是一个临时别名,它会一直存在,直到您关闭终端。

正如这里解释的永久保存别名,我需要在终端中执行~/.bash_aliases~/.bashrc命令并在那里添加我的别名。但是当我执行时,~/.bashrc我收到以下错误消息:

bash: /home/bakhtiyor/.bashrc: Permission denied
Run Code Online (Sandbox Code Playgroud)

当我运行时,~/.bash_aliases我收到另一条错误消息,如下所示:

bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.
Run Code Online (Sandbox Code Playgroud)

实际问题是什么,我该如何解决?

bash alias

471
推荐指数
7
解决办法
94万
查看次数

如何创建永久的“别名”?

例如,如果您创建别名:

alias cls="clear"
Run Code Online (Sandbox Code Playgroud)

它存在直到你杀死终端会话。当您启动一个新的终端窗口时,别名不再存在。如何创建存在于每个终端会话中的“永久”别名?

command-line

221
推荐指数
5
解决办法
47万
查看次数

.bashrc 在哪里?

我觉得问得很愚蠢,但我似乎无法在任何地方找到答案。我正在尝试按照这些说明来编辑我的 bash 提示,但.bashrc在我的用户目录 ( ~/.bashrc)、我的主目录或主文件系统目录中都没有。

没有.bashrcin /etc/(但是有一个bash.bashrc)。

我是否.bashrc在我的用户或主目录中创建文件?是否有更好的、更新的指令集来修改 bash 提示?

configuration command-line hidden-files bashrc

148
推荐指数
6
解决办法
116万
查看次数

为什么不为非登录 shell 调用 /etc/profile?

登录和非登录 shell 定义为:

su - $USER # will give you a login shell
bash # will give you a non-login shell
Run Code Online (Sandbox Code Playgroud)

/etc/profile 不会为非登录 shell 调用,例如当您启动 konsole (kde) 时。/etc/profile 仅为登录 shell 调用。

这是为什么?请解释一下,因为我喜欢了解其原理。

command-line login bashrc

62
推荐指数
1
解决办法
9万
查看次数

如何为所有用户预设别名?

我有 Ubuntu 14.04.2。我想让所有用户自动拥有一组特定的别名。我在个人 .bashrc 中设置了别名,但我不想手动将它们复制到其他用户中。理想情况下,它也应该为新创建的用户自动设置这些。

alias users bashrc

59
推荐指数
3
解决办法
8万
查看次数

bashrc 还是 bash_profile?

我知道两个 bash 登录脚本之间的区别:

.bashrc 仅由“非登录”shell 运行。

.bash_profile(or .bash_loginor .profile) 由“登录”shell 执行。

有没有人有一些很好的例子来说明哪些东西更适合仅登录执行,这样我只会将它们放入.bash_profile,但它们实际上没有意义.bashrc

(我知道我们大多数源.bashrc.bash_profile,所以似乎并没有在相反的问题多一点...)

startup bash scripts

49
推荐指数
2
解决办法
2万
查看次数

在 ubuntu 18.04 上启动后运行命令的正确方法是什么?

我需要在计算机启动后运行一批简单的命令,例如

sudo thing
sudo thing1 -p
Run Code Online (Sandbox Code Playgroud)

但对于我的生活,我无法弄清楚如何。我用谷歌搜索又搜索,我一直发现同样的事情:将命令放入 /etc/rc.local 或 /etc/init.d/rc.local 文件中。问题是我的系统上不存在这些文件!此外,我已经读到 /etc/rc.local 无论如何都已弃用,那么正确且简单的方法是什么?

我想知道如何处理这两件事:

  • 计算机启动后运行命令

  • 指定用户登录后运行命令,以指定用户身份运行

    (并且仅通过在终端中编辑内容来实现所有这些,无需 GUI 工具)

谢谢你。

command-line boot init 18.04

8
推荐指数
0
解决办法
3万
查看次数

我应该在 .bashrc 还是 .profile 中放置别名?

我希望每次打开 shell 时都可以使用以下别名:

export ZONE="us-eastern1-c"
export INSTANCE_NAME="myInstance"
alias gc='gcloud compute ssh --zone=$ZONE jupyter@$INSTANCE_NAME -- -L 8080:localhost:8080'
Run Code Online (Sandbox Code Playgroud)

我应该把它放进去.bashrc还是.profile?另外,扫描.bashrc我发现:

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi
Run Code Online (Sandbox Code Playgroud)

那么,这里的最佳做法是什么?我应该将别名(所需的环境变量)放在第三个文件中.bash_aliases吗?我不是配置文件扩散的忠实粉丝,但如果使用这.bash_aliases是最佳实践,我会这样做。

command-line bash alias environment-variables bashrc

7
推荐指数
1
解决办法
3981
查看次数

所有用户的别名

我创建了一个这个文件: /etc/profile.d/pycharm_alias.sh

startPyCharm() {...

}

alias py=startPyCharm
Run Code Online (Sandbox Code Playgroud)

我重新启动了 PC,但是别名不可用:

===> alias
...empty
Run Code Online (Sandbox Code Playgroud)

如果我通过 ssh 登录到 PC,则别名可用:

===> ssh root@localhost
..
root@pc:~# alias
alias py='startPyCharm'
Run Code Online (Sandbox Code Playgroud)

如何为 ubuntu linux 系统的所有用户提供别名?

我们使用 bash shell。

alias environment-variables bashrc

7
推荐指数
1
解决办法
1220
查看次数

为什么我必须这样做`。.bash_profile` 每次我创建一个新的别名?

每次我在我的 .bash_profile 文件中添加一个新别名时,我发现我必须. .bash_profile在我的终端中执行命令才能使其工作。

为什么别名不能自动工作?

bash alias

4
推荐指数
1
解决办法
2471
查看次数