我是Linux/Unix编程的新手,正在学习本教程:https://www.tutorialspoint.com/unix/unix-environment.htm。
在本教程中,它指出主目录中的.profile文件初始化变量,并将路径变量初始化为:$ PATH =/bin:/usr/bin$
但是,当我打印我的.profile文件的内容时,我会得到以下内容:
1 # ~/.profile: executed by the command interpreter for login shells.
2 # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
3 # exists.
4 # see /usr/share/doc/bash/examples/startup-files for examples.
5 # the files are located in the bash-doc package.
6 # the default umask is set in /etc/profile; for setting the umask
7 # for ssh logins, install and configure the libpam-umask package.
8 #umask 022
9 # if running bash
10 if [ -n "$BASH_VERSION" ]; then
11 # include .bashrc if it exists
12 if [ -f "$HOME/.bashrc" ]; then
13 . "$HOME/.bashrc"
14 fi
15 fi
16 # set PATH so it includes user's private bin directories
17 PATH="$HOME/bin:$HOME/.local/bin:$PATH"我的问题是
(1)项变量没有初始化?
(2)路径变量被初始化为记忆体(?)--因为我找不到任何名为'HOME‘的文件夹,所以路径$HOME/bin和$HOME/..local/bin没有意义;$PATH也是哪个文件夹?
发布于 2020-05-24 01:49:30
术语集在哪里?
有关1,请参见https://unix.stackexchange.com/questions/198794/where-does-the-term-environment-variable-default-get-set。在命令行中,您可以键入:
echo $TERM如果没有输出,这就意味着没有设置术语变量。只要FYI,如果条件是变量,您可以使用$TERM输出它的值。
什么是家/$HOME?
对于2,HOME设置为主目录。如果您以kaind身份登录,您的HOME变量很可能设置为/home/kaind。它的值可以使用$HOME检索。请参阅https://superuser.com/questions/271925/where-is-the-home-environment-variable-set以查看如何设置HOME。
什么是路径/$PATH?
PATH="$HOME/bin:$HOME/.local/bin:$PATH"意味着路径变量被设置为:分隔的路径。第一个是$HOME/bin。扩展到/home/kaind/bin。然后,你有$HOME/..local/bin。扩展到/home/kaind/..local/bin。诸若此类。
你的程序如何被执行?
如果您在$HOME/bin或$HOME/..local/bin中有一个可执行文件,则可以在命令行中直接键入该程序,而无需提供完整的路径。
例如,假设您有一个名为/home/kaind/script的文件夹。在这个过程中,您有一个名为run.sh的可执行文件。work.sh在/home/kaind/bin下面。
为了执行run.sh,您必须键入:
$> /home/kaind/scripts/run.sh
or
$> $HOME/scripts/run.sh
or
$> ~/scripts/run.sh (~ is an alias for $HOME)为了从下面的/home/kaind/bin执行work.sh,您可以键入完整的路径,但不必输入,因为/home/kaind/bin (又名$HOME/bin)在您的路径中。因此,您可以键入:
$> work.sh来执行它。键入程序时,将逐个检查路径变量中列出的路径。如果程序被找到,它就会被执行。
发布于 2020-05-24 01:23:58
$TERM变量是一个环境变量,它控制终端是否有颜色。变量$HOME设置为主目录。要了解这一点,您可以这样做:
echo $HOME或
cd $HOME您需要在变量的开头加上$,否则bash将不知道您引用的是变量,而是将其视为字符串。
https://stackoverflow.com/questions/61980501
复制相似问题