修复树莓派PATH变量

使用lnmp一键工具安装完nmp后,重启进入系统就提示bash command not found

然后试了试service,who等命令也无法使用

只有最基本的系统命令ls,cat等可以用

看来安装lnmp后,我的PATH变量被动了

先临时修改下PATH,便于后面操作

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:$PATH

然后检查~/.profile,/etc/profile是否存在,存在

检查其中的PATH赋值是否异常

经过排查,发现/etc/profile中的PATH赋值异常,修改之重启OK!

在此分享正确的原始~/.profile/etc/profile文件

~/.profile 内容

# ~/.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

**/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 [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/usr/sbin:/usr/sbin:/bin"
else
#old bak  PATH="/usr/local/sbin:/usr/local/usr/sbin:/usr/sbin:/bin:/usr/local/games:/usr/games"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin:/sbin:/usr/local/games:/usr/games"
fi
export PATH

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

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

Over!

发布于