linux用户source .bashrc或.profile找不到文件
之前在debian遇到这种情况,新增加的用户,每次登入的路径都显示sh-42$必须su - 用户名才能恢复正常,并且用户目录下的.bashrc和其他的配置文件都没有办法source,导致一系列问题。
如果是这种情况,极有可能是linux的默认启动shell不正确,su切换成超级用户,vi /etc/passwd查看用户相应的启动shell,对比其他正常的用户的启动shell,如果不一样则修改成相同即可。。
例如其他正常用户的shell为/bin/bash ,异常用户对应的shell是/bin/sh,则将其改为/bin/bash。
Linux .bashrc .bash_profile 和 .profile之间的区别
1 概述
bash shell使用一些启动文件去设置环境变量,这些启动文件为shell本身和系统用户确定某些bash shell配置,在本文中,我们将了解.bashrc .bash-profile 和 .profile之间的区别。
2 交互式和非交互式shell
Bash在交互式shell中提供了两种模式选项,登录和非登录 (login and non-login)。
当我们使用ssh登录到系统时,我们得到一个交互式登录的shell (interactive login shell),这个shell在被调用时会读取启动文件。
然而,当我们在一个已经登录的shell上调用一个新的shell时,我们得到的是一个交互式的、非登录的shell。这个shell只执行.bashrc文件
当shell不需要任何人类干预即可执行命令时,我们将其称为非交互式shell (non-interactive shell)。例如,当脚本生成子shell来执行命令时,子shell是非交互式shell,子shell不会执行任何启动文件,它从创建它的shell中继承了环境变量。
3 bash启动文件
启动文件包含shell启动时需要执行的命令。因此,shell会自动执行这些启动文件中的命令来设置shell。这个过程发生在显示命令提示符之前。
3.1 .bash_profile 的意义
.bash_profile文件包含用于设置环境变量的命令,因此shell将继承这些变量。
在交互式登录shell中,bash首先查找 /etc/profile 文件。如果找到,bash将在当前shell中读取并执行它。结果是 /etc/profile为所有用户设置环境配置
类似地,bash然后检查主目录(cd ~ 进入的目录为主目录)中是否存在 .bash_profile。如果存在,则bash在当前shell中执行 .bash_profile,Bash然后停止寻找其他文件,如 .bash_login 和 .profile。
如果bash没有找到 .bash_profile,那么它将按照顺序查找 .bash_login 和 .profile,并只执行第一个可读的文件。
让我们研究一个示例 .bash_profile文件。这里我们重新设置并导出PATH变量
echo "Bash_profile execution starts.." PATH=$PATH:$HOME/bin; export PATH; echo "Bash_profile execution stops.."
在交互式登录shell的命令提示符之前,我们将看到下面的输出
Bash_profile execution starts.. Bash_profile execution stops.. [example@example ~]$
3.2 .bashrc 的意义
.bashrc包含特定于bash shell的命令。每个交互式非登录shell首先读取 .bashrc,通常,.bashrc是添加别名和bash相关功能的最佳场所。
bash shell在主目录中查找 .bashrc文件,并使用source在当前shell中执行它。
让我们通过样例认识 .bashrc文件
echo "Bashrc execution starts.." alias elui='top -c -u $USER' alias ll='ls -lrt' echo "Bashrc execution stops.."
在交互式非登录shell的命令提示符之前,我们将看到下面的输出
[example@example ~]$ bash Bashrc execution starts.. Bashrc execution stops.. [example@example ~]$
3.2 .profile 的意义
在交互式shell登录过程中,如果在主目录中不存在 .bash_profile,则bash寻找 .bash_login,如果发现**.bash_login** 则bash执行它。如果 .bash_login 不存在主目录中,则bash寻找 .profile 并执行它。
.profile 可以保持与 .bash_profile 或 .bash_login 的配置。它控制着出现的提示,键盘声音,要打开的 shell 以及覆盖 /etc/profile文件中设置的变量的单个配置文件设置。
4 区别
在每次交互登录时,bash shell都会执行 .bash_profile。如果在主目录中找不到 .bash_profile,bash将执行从 .bash_login 和 .profile 中找到的第一个可读文件。但是,在每次交互式非登录shell启动时,bash都会 .bashrc。
通常情况下,环境变量会被放入 .bash_profile。由于交互式登录shell是第一个shell,因此环境设置所需的所有默认设置都被放入**.bash_profile**。因此,它们只设置一次而且在所有子shell中继承。
同样地,别名和函数也会被放入 .bashrc 确保每次从现有环境中启动shell时都加载这些
然而,为了避免登录和非登录交互shell设置的差异。.bash_profile 调用 .bashrc。因此,我们将看到下面的代码片段被插入**.bash_profile**,以便在每个交互式登录shell上 .bashrc 也在同样shell执行:
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi PATH=$PATH:$HOME/bin export PATH
注意:
总而言之,在使用环境之前,shell需要其启动文件以配置shell环境。
在本文中,我们检查了各种shell模式。然后,我们了解了各种bash启动文件的重要性。最后,我们检查了这些启动文件之间的差异。
以上是linux用户source .bashrc或.profile找不到文件怎么解决的详细内容。更多信息请关注PHP中文网其他相关文章!

维护模式在Linux系统管理中扮演关键角色,帮助进行系统修复、升级和配置变更。1.进入维护模式可以通过GRUB菜单选择或使用命令“sudosystemctlisolaterescue.target”。2.在维护模式下,可以执行文件系统修复和系统更新等操作。3.高级用法包括重置root密码等任务。4.常见错误如无法进入维护模式或挂载文件系统,可通过检查GRUB配置和使用fsck命令修复。

使用Linux维护模式的时机和原因:1)系统启动问题时,2)进行重大系统更新或升级时,3)执行文件系统维护时。维护模式提供安全、控制的环境,确保操作的安全性和效率,减少对用户的影响,并增强系统的安全性。

Linux中不可或缺的命令包括:1.ls:列出目录内容;2.cd:改变工作目录;3.mkdir:创建新目录;4.rm:删除文件或目录;5.cp:复制文件或目录;6.mv:移动或重命名文件或目录。这些命令通过与内核交互执行操作,帮助用户高效管理文件和系统。

在Linux中,文件和目录管理使用ls、cd、mkdir、rm、cp、mv命令,权限管理使用chmod、chown、chgrp命令。1.文件和目录管理命令如ls-l列出详细信息,mkdir-p递归创建目录。2.权限管理命令如chmod755file设置文件权限,chownuserfile改变文件所有者,chgrpgroupfile改变文件所属组。这些命令基于文件系统结构和用户、组系统,通过系统调用和元数据实现操作和控制。

MaintenancemodeInuxisAspecialBootenvironmentforforcalsystemmaintenancetasks.itallowsadMinistratorStoperFormTaskSlikerSettingPassingPassingPasswords,RepairingFilesystems,andRecoveringFrombootFailuresFailuresFailuresInamInimAlenimalenimalenrenmentrent.ToEnterMainterMainterMaintErmaintErmaintEncemememodeBoode,Interlecttheboo

Linux的核心组件包括内核、文件系统、Shell、用户空间与内核空间、设备驱动程序以及性能优化和最佳实践。1)内核是系统的核心,管理硬件、内存和进程。2)文件系统组织数据,支持多种类型如ext4、Btrfs和XFS。3)Shell是用户与系统交互的命令中心,支持脚本编写。4)用户空间与内核空间分离,确保系统稳定性。5)设备驱动程序连接硬件与操作系统。6)性能优化包括调整系统配置和遵循最佳实践。

Linux系统的五个基本组件是:1.内核,2.系统库,3.系统实用程序,4.图形用户界面,5.应用程序。内核管理硬件资源,系统库提供预编译函数,系统实用程序用于系统管理,GUI提供可视化交互,应用程序利用这些组件实现功能。

Linux的维护模式可以通过GRUB菜单进入,具体步骤为:1)在GRUB菜单中选择内核并按'e'编辑,2)在'linux'行末添加'single'或'1',3)按Ctrl X启动。维护模式提供了一个安全环境,适用于系统修复、重置密码和系统升级等任务。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3汉化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript开发工具