Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >理解 Linux 中的 su 命令和 /etc/profile 文件

理解 Linux 中的 su 命令和 /etc/profile 文件

作者头像
运维开发王义杰
发布于 2023-08-10 08:55:11
发布于 2023-08-10 08:55:11
1K0
举报

Linux 中,了解如何切换用户和设置环境变量是非常重要的。本文将介绍 su 命令以及 /etc/profile 文件的作用。

首先,让我们来了解 /etc/profile 文件。它是 Linux 系统中的一个全局配置脚本,主要用于设置所有用户的全局环境变量。这包括如何修改 $PATH 环境变量,定义全局环境变量(例如 JAVA_HOMEPYTHONPATH 等),设置全局 shell 选项,以及初始化工具。需要注意的是,修改 /etc/profile 需要 root 权限,并且修改后的设置在下次登录时才会生效。如果需要立即生效,可以使用 source /etc/profile 命令。

然后是 su 命令,它用于在当前会话中切换到不同的用户。su 命令有几种不同的使用方式,其中一些包括:

  • susu username:这将启动一个非登录 shell,系统将不会读取 /etc/profile 或目标用户的 ~/.bash_profile, ~/.bash_login~/.profile 文件。
  • su -su -lsu --loginsu - username:这将启动一个登录 shell,系统将会读取并执行 /etc/profile 和目标用户的 ~/.bash_profile, ~/.bash_login~/.profile 文件。因此,如果目标用户的这些文件中定义了与 /etc/profile 中相同的环境变量,那么 /etc/profile 中的全局变量设置将会被覆盖。
  • su -psu --preserve-environment:这将以目标用户的身份启动一个非登录 shell,但保留原始用户的环境变量。这意味着环境变量不会被重置为目标用户的环境,而是保持原样。

总的来说,su 命令和 /etc/profile 文件是 Linux 中的两个非常重要的工具,它们可以帮助你管理用户和环境变量。理解它们的工作方式可以帮助你更有效地在 Linux 环境中工作。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维开发王义杰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
.bashrc、.bash_profile 和 .environment 之间有什么区别?
这些年来,我使用过许多不同的基于 Unix 的系统,似乎每次使用的 Bash 版本在决定运行哪些启动脚本方面都有不同的机制。为了完成诸如设置环境变量、别名以及打印启动信息(例如 MOTD,欢迎语)等任务,到底应该将这些配置放在哪个启动脚本中才是合适的?
程序熵
2025/05/21
730
.bashrc、.bash_profile 和 .environment 之间有什么区别?
【科研利器】关于 “.bash_profile” 和 “.bashrc”区别的总结
项目环境部署是很多人的薄弱项,一些简单的工作可以照着搜索来的步骤凑合部署成功,但并不明白其中的原理,偶尔遇到一些 ERR ,就无从下手。项目环境部署,需要一些基础服务,如 java 环境,tomcat 环境、mysql 等等;服务部署成功后,还需要给其配置环境变量;要配置环境变量,就要用到 bashrc 或 bash_profile 文件,可是他们有啥区别,一直不明白,今天看到这篇文章,结合自己实践,分享给各位。
自学气象人
2022/11/02
9970
【科研利器】关于 “.bash_profile” 和 “.bashrc”区别的总结
Linux环境变量介绍和区别简介
LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。设置方法如下(其中,LIBDIR1和LIBDIR2为两个库目录):
用户2929716
2018/08/23
7670
Linux 之 /etc/profile、~/.bash_profile 等几个文件的执行过程
在登录Linux时要执行文件的过程如下: 在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个, 执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile。 如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。 因为在 ~/.bash_profile文件中一般会有下面的代码: if [ -f ~/
小小科
2018/05/02
2.1K0
关于Linux环境变量
最近在配置开发环境,遇到了很多不懂的问题。主要还是linux操作系统相关的,分享给宝宝们!一提到环境配置就不得不说环境变量,so,今天的主题是环境变量。
用户3258338
2019/07/19
4.5K0
关于Linux环境变量
Linux系统中三类重要文件的作用与区别
Linux系统中,有三种文件类型出现的非常频繁,那就是profile、bash_profile、bashrc文件。 因为名称的缘故,很多人会把这三类文件的作用记混,因此我们今天就来详细盘点一下这三类文件的作用及区别。 1. profile文件 1.1 profile文件的作用 profile(/etc/profile),用于设置系统级的环境变量和启动程序,在这个文件下配置会对所有用户生效。 当用户登录(login)时,文件会被执行,并从/etc/profile.d目录的配置文件中查找shell设置。 1.2
小小科
2018/05/04
3.8K0
Linux系统中三类重要文件的作用与区别
Linux 下的JDK环境的搭建
配置jdk环境遇到的问题: 在使用cp指令复制文件夹时,出现错误如下: ~/programs/qt$ cp p20_gotocelldialog ./p22_gotocelldialog cp: 略过目录"p20_gotocelldialog" 解决方法:cp 后加-r 原因: 用man命令查看cp指令 -R, -r, --recursive               copy directories recursively 当目录不为空时需要递归复制文件中的内容,所以需要加上-r选项 sour
拾点阳光
2018/05/10
1.7K0
Ubuntu 环境变量及 ADB 配置
同Windows一样,Ubuntu Linux系统包含两类环境变量:系统环境变量和用户环境变量。系统环境变量对所有系统用户都有效,用户环境变量仅仅对当前的用户有效。
阳光岛主
2019/02/19
3.4K0
《Linux命令行与shell脚本编程大全》 第六章环境变量
很多程序和脚本都通过环境变量来获取系统信息、存储临时数据和配置信息。 6.1 什么是环境变量: bash shell用一个叫环境变量(environment variable)的特性来存储有关shell会话和工作环境的信息。 这项特性允许在内存中存储数据,以便程序能轻松访问到它们。 在bash shell中,分两类: 全局变量:对于shell会话和所有生成的子shell都是可见的 局部变量:只对创建的它们的shell可见 6.1.1全局环境变量 查看全局变量,  $env    $printenv 查看某个
xcywt
2018/01/11
1.1K0
《Linux命令行与shell脚本编程大全》 第六章环境变量
Linux环境变量文件介绍[通俗易懂]
在Linux系统中,环境变量按照其作用范围不同大致可以分为系统级环境变量和用户级环境变量。
全栈程序员站长
2022/09/02
9740
Ubuntu系统环境变量详解
<p align="left">使用Ubuntu 进行开发绕不开的就是环境变量的配置,由于Linux系统严格的权限管理,造成Ubuntu系统有多个环境变量配置文件,如果不了解其调用顺序,很有可能遇到配置了环境变量,而没有其作用的问题。本文将介绍Ubuntu Linux系统的环境变量。
用户8705048
2021/06/08
2K0
/etc/profile,/etc/bashrc等文件的区别与作用
当我们在做一些与bash相关的操作时,比如设置别名、登录启动项等,多多少少都会与下面几个文件打交道,用的时候一查,然后又忘了。好记性不如烂笔头,下面老高就帮你理一理这些文件到底是干啥的。
老高的技术博客
2022/12/28
6190
Linux用户管理
不带选项使用 userdel,只会删除用户。用户的家目录将仍会在/home目录下。要完全的删除用户信息,使用-r选项;
说故事的五公子
2020/08/24
3.9K0
解决 Mac和Idea 终端关闭后,环境变量失效,每次都需source ~/.bash_profile 问题
问题 ll 命令可以查看该文件夹下的所有文件信息,包括隐藏的文件, 但当使用此命令时却出现报错
全栈程序员站长
2022/07/19
2.2K0
解决 Mac和Idea 终端关闭后,环境变量失效,每次都需source ~/.bash_profile 问题
.profile中EXPORT变量的问题
操作系统版本是SunOS e2900i-t 5.9 Generic_122300-12 sun4u sparc SUNW,Netra-T12
bisal
2019/01/29
9370
修改环境变量
通过 Shell 命令 export 直接修改 Linux 环境变量 使用 export 设置的变量,只对当前终端 Shell 有效 适合设置一些临时变量
JNingWei
2018/09/28
1.6K0
理解 Linux/Unix 登录脚本
不知道你有没有遇到过这样的场景,当你需要设置一个环境变量,或者运行一个程序设置你的shell或桌面环境,但是不知道在哪里是最方便设置的位置。
哲洛不闹
2018/09/14
1.2K0
理解 Linux/Unix 登录脚本
Linux 之 /etc/profile、~/.bash_profile 等几个文件的执行过程
在登录Linux时要执行文件的过程如下: 在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个,
阳光岛主
2019/02/19
1.2K0
一个cron的环境问题-二更
全局配置文件:这些文件通常位于 /etc 目录下,例如 /etc/profile 和 /etc/bash.bashrc。
二锅头一桶天下
2024/09/07
1760
Linux profile1,bashrc,.bash_profile,.bash_login,.profile,.bashrc,.bash_logout浅析 Part1
profile,bashrc,.bash_profile,.bash_login,.profile,.bashrc,.bash_logout浅析 Part 1
授客
2019/09/12
1.6K0
推荐阅读
相关推荐
.bashrc、.bash_profile 和 .environment 之间有什么区别?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档