誤刪.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軟件,默認是不顯示隱藏文件的,你需要手動設置一下。
然后重開終端。
對於誤刪的話,你沒法source,所以問題不大。直接在當前終端按照上面的步驟恢復就行了。
如果你清空.bashrc文件內容或者PATH變量沒有重寫,source后也不影響操作,還是可以按上面步驟操作。
不過要是重寫了PATH變量並且source ./bashrc后,又還沒其他終端可用,怎么獲取之前的設置我就不知道了。
最后,雖然我盡量還原了,但.bashrc里的有些設置還是不能還原。還是影響到當前使用。