误删.bashr或者清空.bashrc怎么办
遇到这种情况不要慌,问题不大,不要乱操作,赶紧百度。
今天我本想追加一个环境变量。然后呢,少了个>,$PATH我用了下面类似这命令
$ echo 'export PATH=/home/user/cmd/bin' > ~/.bashrc
$ source ~/.bashrc
然后,我就发现除了我刚加的那个命令,其他的啥都用不了。。。
[user@localhost ~]$ ls
bash: ls: command not found...
Similar command is: 'lz'
...
[user@localhost ~]$ lz
bash: lz: command not found...
Similar command is: 'ls'
顿时,我见到这情况就有点慌了,什么ls,cd,pwd的都用不了。然后我就去网上查,一查相关还挺多的。一个简单的方法是用下面的命令
$ cp /etc/skel/.bashrc ~/
新建用户的.bashrc都是从/etc/skel/.bashrc复制过去的。
但是,当时脑子不灵光,心里就想,这啥破方法,我tm的什么命令都用不了,你叫我用这命令? 所以继续查相关文章,不过都是类似方法。
好在,一会功夫,脑袋就开窍了,我之前在xshell已经开了多个终端的,可以在其他终端的环境上还可以用命令啊!随即在其他终端上运行了上面那个命令。
环境变量,别名恢复 不过复制过去的.bashrc文件,里面的内容是初始状态,之前自己设置的内容还是没了。
环境变量可以在其他终端用$PATH获取
$ echo $PATH
/home/user/anaconda3/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/local/lib:/home/user/.local/bin:/home/user/bin
然后vim 打开~/.bashrc
添加
export PATH=/home/user/anaconda3/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/local/lib:/home/user/.local/bin:/home/user/bin
别名的话用alias
$ alias
alias vi='vim'
alias ll='ls -l --color=auto'
...
把输出内容粘贴在.bashrc里保存就行了。
我只开了一个终端怎么办? 可以借助xftp这样的文件传输工具,连接上服务器。手动复制/etc/skel/.bashrc 粘贴回自己的家目录。但是在xftp软件,默认是不显示隐藏文件的,你需要手动设置一下。
文章图片
image.png 然后重开终端。
对于误删的话,你没法source,所以问题不大。直接在当前终端按照上面的步骤恢复就行了。
如果你清空.bashrc文件内容或者PATH变量没有重写,source后也不影响操作,还是可以按上面步骤操作。
【误删/清空.bashrc文件/内容】不过要是重写了PATH变量并且source ./bashrc后,又还没其他终端可用,怎么获取之前的设置我就不知道了。
最后,虽然我尽量还原了,但.bashrc里的有些设置还是不能还原。还是影响到当前使用。