相关疑难解决方法(0)

如何列出所有变量名称及其当前值?

如何列出所有变量名称及其当前值?

不仅包括$HOME, $PWDetc 还包括您定义的任何其他。

command-line bash environment-variables

442
推荐指数
7
解决办法
70万
查看次数

在 /etc/environment 与 .profile 中设置 PATH 变量

设置PATHenvvar的首选位置在哪里?

~/.profile或者/etc/environment

PATH在两个地方都设置时是什么情况?最终结果是在这两个地方设置的两个值的串联吗?

paths environment-variables

102
推荐指数
3
解决办法
23万
查看次数

为什么 /etc/profile.d/ 中的脚本被忽略(系统范围的 bash 别名)?

我是 Ubuntu 的新手。我正在运行 13.10 桌面版。

我想为 bash 设置一些系统范围的别名和自定义提示。我找到了这篇文章:

https://help.ubuntu.com/community/EnvironmentVariables

按照本文中的建议,我创建了 /etc/profile.d/profile_local.sh。它归 root 所有,并且与那里的其他脚本一样具有 644 的权限:

root@ubuntu:/etc/profile.d# ll
total 28
drwxr-xr-x   2 root root  4096 Mar 23 08:56 .
drwxr-xr-x 135 root root 12288 Mar 23 09:15 ..
-rw-r--r--   1 root root   660 Oct 23  2012 bash_completion.sh
-rw-r--r--   1 root root  3317 Mar 23 07:36 profile_local.sh
-rw-r--r--   1 root root  1947 Nov 23 00:57 vte.sh
Run Code Online (Sandbox Code Playgroud)

我进一步确认 /etc/profile 调用 /etc/profile.d。它包含以下代码块:

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if …
Run Code Online (Sandbox Code Playgroud)

bash login .profile

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

如何找到某些 bash 函数的定义位置?

Bash shell 中可以使用很多函数。它们的定义可以由 列出set,但是如何找到某些用户定义的函数是在哪些文件中定义的呢?

bash functions

30
推荐指数
2
解决办法
2363
查看次数

我应该将函数放在 .bashrc、.bash_aliases 或 .profile 中吗

我已经读过这篇关于在哪里放置别名的帖子。

现在,假设我的自定义命令非常复杂(在输入中接受参数,由几个相继运行的命令组成,为了清楚起见,我想将其保留为多行,涉及引号、双引号等),所以我想将它定义为一个函数,例如

sshdev_system_loop () {
        while true; do
          echo "[$(date +'%Y-%m-%d %H:%M:%S')] Trying to log into ststem $2 as user $1 ."
          timeout 10 ssh $1@$2
        done
}
Run Code Online (Sandbox Code Playgroud)

我应该把它放在.bash_aliases或 的末尾.bashrc或 中.profile吗?

一方面,我不想把它放进去,.bash_aliases因为它会“破坏”列表

alias alias_name='command/list of commands'
Run Code Online (Sandbox Code Playgroud)

另一方面,.bashrc它看起来像是操作系统管理的文件,所以我不想向其中添加内容。

那么在 Ubuntu 中将功能添加为自定义命令的最佳实践是什么?

command-line bash alias functions bashrc

7
推荐指数
2
解决办法
973
查看次数

TTY 和 GNOME 终端有什么区别?

我知道,终端可以通过启动Ctrl+ Alt+ T。但有时用户说关于使用命令行Ctrl+ Alt+ F2

那么,他们之间的工作有什么区别吗?我什么时候应该在它们之间使用?

什么叫做tty

command-line gnome-terminal tty

5
推荐指数
1
解决办法
7678
查看次数

为什么必须在技术上将 shell 分为登录和非登录类型?

Shell 可以像由文本控制台运行的那样登录,也可以像由 Gnome 终端运行的那样非登录。为什么需要这种复杂性?为什么登录 shell 不能遵循与非登录相同的规则?

bash login environment-variables

5
推荐指数
1
解决办法
50
查看次数

为什么我需要运行 source 命令才能应用 .bashrc 别名?

虽然我知道该source命令在当前 shell 中执行程序,但我不太明白为什么我们需要运行source .bashrc来“重新加载”.bashrc 文件。

根据我的理解,我们不会通过向 .bashrc 添加别名来运行任何脚本 - 我们source .bashrc只是“重新加载”文件。

为什么不自动重新加载?

也许,我错过了一些东西。

它在幕后是如何工作的?为什么我们需要source这个文件来让新别名在不注销的情况下工作?

command-line bash

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

/etc/profile 和 .bashrc 有什么区别

正如标题所示,我在询问 .bashrc 和 /etc/profile 之间的主要区别。我所知道的是 .bashrc 是一个在登录时运行的 shell 脚本(我猜)。我也知道 /etc/profile 是在 ssh 登录或终端登录上运行的。有人可以在这里引导我朝着正确的方向前进吗?

bash bashrc

2
推荐指数
1
解决办法
8258
查看次数

帮助我理解 .profile、.bashrc 等

我目前的理解是每次打开新终端时都会运行添加到这两个文件的命令。那是对的吗?因为在很多地方,我看到建议将我想在登录时执行的命令放在那里,但是如果每次打开新终端时都执行它们,那么我不希望那样。你能帮我理解它们是如何工作的吗?还有它们之间有什么区别?

如果我理解正确,那么我可以在哪里放置我只想在登录时执行的命令,而不是每次打开新终端时执行的命令?我知道我可以从“启动应用程序”的 GUI 执行此操作,但如果可能,我有兴趣在文件中执行此操作。

.profile bashrc startup-applications

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