linuxubuntuetc/profile的问题

author author     2023-03-01     131

关键词:

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

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

if [ "$PS1" ]; then
if [ "$BASH" ]; then
PS1='\u@\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

umask 022

LD_LIBRARY_PATH=./
export LD_LIBRARY_PATH
我想将当前目录当作 so文件的目录。请问错在哪?每次我打开Shell都需要 source /etc/profile 或者. /etc/profile 才能生效如何让它自动生效?

首先你要确认profile这个文件时再哪个目录执行的,./这个目录是一直变化的,如果你在/root下面执行profile, 你的.so目录就会是/root,如果你在/etc下面执行,那么就会变成/root.系统开机的时候应该是在特定的目录下执行了profile去配置文件
要解决该问题,你要么用绝对路径,要么就自己写一个脚本放到对应的目录,然后在该目录下执行该脚本。
参考技术A 看你用的是bash,可能ubuntu里的bash不会自动source /etc/profile,所以你将那条export命令放在~/.bashrc里试试。另外,LD_LIBRARY_PATH=./ 是不合适的,这里应该用绝对路径。追问

我是程序员,我就是希望我的可执行文件与So等库文件放在一起时SHELL可以自动找到并加载 。我也希望我的当前目录是变化 的,所以我使用相对路径。请问相对路径难道不行吗?

追答

你自己的so文件总得放在某个或者某几个固定的path里吧,也就是说不会经常变动,那么你就直接指定绝对路径好了。

bash启动的时候source /etc/profile,这个进程有自己的“默认工作目录”(每个进程都有自己的默认工作目录),但我觉得此时这个工作目录应该不是你的"~"(home path),所以你写的那条export用相对路径不会生效。而当你手动source /etc/profile的时候你是处在合理的工作目录中的(你手动cd就能去合适的目录),所以可以生效。

如果你的so目录有很多个,那么只好在.bashrc里指定多个目录给LD_LIBRARY_PATH变量了(这样也有可能造成混乱,特别是命名重复时)。建议可以临时在shell里用export设置一下,随用随开。

本回答被提问者采纳
参考技术B rm掉,系统会自动重新生成。
或者你可以看看同目录底下有没有profile.bak,profile.backup,profile.******
如果有,直接重命名覆盖源文件。

如何使/etc/profile文件修改后立即生效

方法1:让/etc/profile文件修改后立即生效,可以使用如下命令:#./etc/profile注意:.和/etc/profile有空格方法2:让/etc/profile文件修改后立即生效,可以使用如下命令:#source/etc/profile参考技术Asource/etc/profile这两个文件一般是linux系统中存在,... 查看详情

如何使/etc/profile文件修改后立即生效

方法1:让/etc/profile文件修改后立即生效,可以使用如下命令:#./etc/profile注意:.和/etc/profile有空格方法2:让/etc/profile文件修改后立即生效,可以使用如下命令:#source/etc/profile参考技术Asource/etc/profile这两个文件一般是linux系统中存在,... 查看详情

source/etc/profile怎么执行

参考技术A在Linux的终端中输入后回车执行 查看详情

ubuntu~/.profile啥意思~

~/.profile什么意思~~:主文件夹.:隐藏文件整个的意思就是:主文件夹下的隐藏文件profile,是一个个人系统变量设置文件。参考技术A指当前用户的配置文件,如果你安装JAVA的JDK一般会在这配置文件里设置路径信息 参考技术B一... 查看详情

如何使/etc/profile中修改的配置立刻生效

参考技术A/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置./etc/bashrc:为每一个运行bashshell的用户执行此文件.当bashshell被打开时,该文件被读取.~/... 查看详情

ubuntu下关于/etc/profile的问题请教高手:)

配置tomcat5.5时,改动了profile文件,后来我又把自己添加的东西给删掉了,可是现在进不去ubuntu了,提示错误信息为:ubuntu/etc/profile:1:Syntaxerror:"("unexpected现在我的profile文件内容如下:#/etc/profile:system-wide.profilefilefortheBournes... 查看详情

mac下打开./bash_profile

参考技术A进入当前用户的home目录编辑.bash_profile文件这时./bash_profile就会打开可以在后面加入要写入的环境变量(注意:从后往前读,注意覆盖)更新刚配置的环境变量 查看详情

为啥每次进入命令都要重新source/etc/profile才能生效

参考技术A有几种可能,可能是/etc/profile在你调用java前没有被执行;也有可能是,在/etc/profile执行后有别的地方更改了环境变量你可以在运行java出错是,echo这些环境变量,看看是什么输出你是在哪里运行java?如果是bashtermial,建议... 查看详情

source/etc/profile的深坑

参考技术A/etc/profile文件是linux系统的环境变量配置文件详细的profile文件配置可以参考本人另一篇文章一般理解的/etc/profile文件修改之后,只需要source一下可以让文件立即生效以配置linux配置java8,因为linux自带的java7,然后想要升级到... 查看详情

虚拟机linux的/etc/profile怎么恢复更改前的

...恢复到1024了。4、设置永久生效。可以修改配置文件/etc/profile#vi/etc/profile加入一行ulimit -SHn 65536。5、保存退出。然后加载配置文件。#source/etc/profile再次查看ulimit#ulimit-n。参考技术ALinux系统下/etc/profile这个文件是每个用户... 查看详情

linux的/etc/profile文件在说什么呢?能删吗

#/etc/profile:system-wide.profilefilefortheBourneshell(sh(1))#andBournecompatibleshells(bash(1),ksh(1),ash(1),...).if[-d/etc/profile.d];thenforiin/etc/profile.d/*.sh;doif[-r$i];then.$ifidoneunsetifiif["$PS1"];thenif["$BASH"];thenPS1='\u@\h:\w\$'if[-f/etc/b... 查看详情

/etc/profile和/etc/bashrc、~/.bash_profile和~/.bashrc、.zshrc和.zprofile的区别

参考技术A默认情况下,您的Mac使用zsh或bash作为登录Shell和交互式Shell的命令行解释器:如何查看自己使用的是哪一个shell查看系统安装了哪些shell运行中的Bash有两种模式:loginshell和non-loginshell登录Shell非登录Shell从macOSCatalina版开... 查看详情

在ubuntu下配置的~./profile为啥不起作用?

在ubuntu下配置的~./profile为什么不起作用,必须经过source.profile才生效,如果该会话被关闭,.profile文件的配置也不生效,这是什么原因?我装的ubuntu是alternate版本的。注销了,没有作用。只要使用source.profile才起作用,如果关闭... 查看详情

ubuntu18每次启动linux都要source/etc/profile生效java环境变量

...技术C在/etc/bashrc文件末尾配置环境变量或者添加source/etc/profile追答正常你的环境变量配置在etc/profile是可以的,可能你安装新软件时环境变量被覆盖了配置完后,重启机器 查看详情

zsh启动时无法使用已经添加到~/.bash_profile环境变量

参考技术A解决方案:cat~/.zshrc添加 source~/.bash_profile 原因: zshrc是zsh启动时自动加载的,所以通过添加 source~/.bash_profile来激活一下bash_profile里面的内容。 查看详情

shell在脚本中执行了source/etc/profile不生效

...in/bashecho"exportJAVA_HOME=/home/java/jdk1.8.0_144">>/etc/profileecho"exportPATH=$PATH:$JAVA_HOME/bin">>/etc/profilesource/etc/profilejava-version该代码在shell执行完成后在使用java-version的时候就提示,无法找到该命令了需求:在shell完成... 查看详情

mac执行了source~/.bash_profile环境变量不生效

参考技术A自己在~/.bash_profile中配置环境变量,可是每次重启终端后配置的不生效.需要重新执行:$source~/.bash_profile发现zsh加载的是~/.zshrc文件,而‘.zshrc’文件中并没有定义任务环境变量。解决办法在~/.zshrc文件最后,增加一行:sou... 查看详情

问题:mac打开终端后要‘source~/.bash_profile’环境变量才生效

参考技术A每开一次终端,要source~/.bash_profile环境变量才生效。而我电脑的配置自定义为MacOS(10.15)+bash。但打开终端不会再自动读取.bash_profile文件了。在系统加载/etc/profile时执行source命令1.修改文件权限sudochmod777/etc/profile2.进入文... 查看详情