Linux 系统操作与配置全解析
1. Linux 中的 shell 变量
在 Linux 系统里,shell 变量有着重要作用。以 HISTFILE 变量为例,在大约第 18 行,你能看到它包含着 /home/<username>/.bash_history 文件的路径。
当我们打开一个 shell 时,Bash 会分配一块特殊的内存(RAM),用于存储当前会话中输入的命令日志。当会话结束(比如输入 $ exit ),Bash 会把当前会话输入的命令追加到 HISTFILE 变量指定的文件中,对于普通用户来说,这个文件就是 /home/<username>/.bash_history 。
在多用户系统中,假设系统管理员需要控制你的机器并使用 $ su 命令进入子 shell。由于 HISTFILE 是局部 shell 变量,不会被导出到环境中,所以你的 HISTFILE 不会传递给管理员的子 shell。管理员执行 $ su 时,HISTFILE 会在其所在的子 shell 中重新定义,指向管理员自己的 .bash_history 文件。这样就能保证你和管理员的命令历史记录相互隔离。
如果使用 $ export 命令将 HISTFILE 导出到环境中,后续生成的子 shell 会继承这个变量。这可能导致管理员的子 shell 加载你的 .bash_history 文件,使你的命令历史记录在管理员翻阅
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



