不少的资料都说 .bashrc 的路径是 /etc/.bashrc ,但进入到对应文件夹执行 ls -al 后,怎么也找不到这个文件,有可能是系统不一样。那么就全局查找一下:
sudo find / -name .bashrc
发现同名文件不止一个,所需文件路径是 /root/.bashrc ,该文件默认是隐藏的,要执行 ls -al 后才能看到。里面默认的内容是这样的:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
引子
在配置服务器时,碰到这个问题,在网上找了资料,发现大部分都是很简洁的说明,试了好久发现不对,在此记录一下相关点。
操作系统:CentOS 7.6 64位
简介
sudo 是 Unix/Linux 平台上的一个非常有用的工具,它能够让一般用户执行一些超级用户才能运行的指令,root 用户通过在
/etc/sudoers
文件中设置 sudo 条目完成这个过程。推荐使用sudo visudo
命令编辑此文件,它可以检查文件配置是否正确。排查 1:是否安装了 sudo
有人说可能是没有安装,那么直接执行查看版本的指令:
我这里没有问题,接着下一步。
排查 2:sudo 会重置命令 PATH 命令
这个网上说的人不少,个人遇到出问题的指令是重启网络
sudo /etc/init.d/networking restart
。解决方法是:
/etc/sudoers
中有句Defaults env_reset
改成Defaults !env_reset
,这句在文件里是唯一的,很容易找到。.bashrc
文件,添加alias sudo='sudo env PATH=$PATH'
, 这样sudo
执行命令时所搜寻的路径就是系统的PATH
变量中的路径。不少的资料都说
.bashrc
的路径是/etc/.bashrc
,但进入到对应文件夹执行ls -al
后,怎么也找不到这个文件,有可能是系统不一样。那么就全局查找一下:发现同名文件不止一个,所需文件路径是
/root/.bashrc
,该文件默认是隐藏的,要执行ls -al
后才能看到。里面默认的内容是这样的:.bashrc
文件包含用于用户的 bash shell 的 bash 信息,当登录或每次打开新的 shell 时,该文件会被读取。每次修改.bashrc
后,在对应文件夹下需执行source .bashrc
,才能让修改后的设置生效。修改后再执行重启网络命令,还是出现错误提示:
排查 3:是否有该文件
一开始我认为在 Linux 里面主要文件路径应该差不多,看到别人提示说“先检查是否有这个文件”时,于是就去检查一下,发现系统下不是
networking
, 而是network
, 其实从一开始执行下面这条指令就是对的了:使用配置过后的命令也没有问题。
参考资料