我的 ~./profile 有什么问题?

我的 ~./profile 有什么问题?

我对 Linux 还很陌生。我一直在尝试安装 ant、java 和 android sdk。在此过程中,我一直在弄乱我的 ~/.profile 和 /etc/.profile(我知道这很危险)。好吧,我做错了什么,重启了电脑,当我尝试登录时,它会将我踢回到登录屏幕。我最终使用 tty 重命名了我的 ~/.profile,并创建了一个新的 ~/.profile,我刚刚删除了配置文件的最后一部分。这是我弄乱的原始文件,我将其重命名为 .profile.copy:

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

PATH="$PATH:~/adt/sdk/tools:~/adt/sdk/platform-tools"

ANT_HOME=/home/computeruser/

PATH=${PATH}:${HOME}/bin
PATH=${PATH}:${ANT_HOME}/bin

PATH="$+PATH:/usr/lib/jvm/java-7-openjdk-amd64/bin:~/adt/sdk/:/usr/bin/ant" 
PATH="$+PATH:/usr/bin:/bin:/home/computeruser:/home/computeruser/apache-ant-1.9.4:/home/computeruser/apache-ant-1.9.4/bin:/home/computeruser/adt/sdk/tools:/home/computeruser/adt/sdk/platform-tools"

在现在实际起作用的 ~/.profile 中,我刚刚删除了该行

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

以及下面的所有行。现在 ant 命令和 sdk 命令当然不起作用了。但是如果我重新添加这些行,我的电脑又会坏掉。

当我最初更改 ~/.profile 时,我一时没意识到必须重启计算机才能使 ~/.profile 的更改生效(或者至少有时必须重启?)。这就是为什么会有重复的类似行。我甚至不太明白在更改环境变量时我在做什么,如果能帮助我了解哪些可以添加回我的 ~/.profile,哪些不能添加回我的 ~/.profile,我将不胜感激。

这是我的 /etc/.profile,以防这里出现问题:

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

在此先感谢任何帮助我了解这些文件中发生的情况以及如何在不损坏我的计算机的情况下使它们再次工作!

答案1

尝试一下这样的改变:

ANT_HOME=/home/computeruser/apache-ant-1.9.4
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
SDK_HOME=$HOME/adt/sdk

PATH=$PATH:$SDK_HOME/tools:$SDK_HOME/platform-tools:$HOME/bin:$ANT_HOME/bin:$JAVA_HOME/bin
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

我删除了一些多余的路径,并定义了变量以提高可读性

当你改变时.profile你应该运行:

   source ~/.profile

或从终端会话注销并重新登录。

相关内容