I am just curious about what would happen if I delete the ~/.bashrc
file of a user. Does even the root user have their own ~/.bashrc
file? What if I delete that, or can I?
-
10If a sysadmin deleted my ~/.bashrc file, I'd probably get a bit pissed off. Then I'd restore it from a snapshot.– Digital TraumaJan 25, 2016 at 1:53
-
Nice question, is this related to a specific situation or just a theoretical question?– JimLohseJan 25, 2016 at 2:52
-
1this is just random curiosity :d– juggernauthk108Jan 25, 2016 at 10:39
3 Answers
If you delete a user's ~/.bashrc
nothing special happens. Bash will still start and use the system-wide /etc/bash.bashrc
.
Just like any user root may or may not have a ~/.bashrc
, and if it exists you can delete if you have write permission on /root/
.
-
2It's probably worth noting that if you remove
/etc/bash.bashrc
file, bash will resort to defaults stored in source-code. That version of shell might lack some fancy features (colors, useful prompt, tab-completion), but will be otherwise usable. Jan 24, 2016 at 19:47 -
6If I am not wrong,
bash --rcfile /etc/bash.bashrc
andbash --norc
commands should let you see how bash would look (accordingly without only~/.bashrc
file and without both/etc/bash.bashrc
and~/.bashrc
) without deleting files. Jan 24, 2016 at 20:05 -
2Something special happens haha all the users customizations go away and they get mad at you! :)– JimLohseJan 25, 2016 at 2:39
You cant remove root user .bashrc file unless you are root user.
In case if .bashrc file deleted for your account then you can restore it with
cp /etc/skel/.bashrc ~/.bashrc
But this is not your old .bashrc file. It's a new .bashrc file with default configuration.
Update: Curiosity and over Curiosity
There is no problem as menioned in above answer if you have deleted .bashrc
file. Your system will be using system wide /etc/bash.bashrc file and run as usually.
But If System wide /etc/bash.bashrc
file is using by your system then no aliases , no auto tab completition , no colors.Nothing will work for you.
In case of over curiosity if you have deleted system wide /etc/bash.bashrc
then also no problem, but the only feature that misses here is if you type some command which is not avaliable we used to get command-not-found but after deleting system wide bashrc you wont get even that.
That's all I know for now.
Hope it helps.
-
3
-
@Darkhogg Hey my friend.Thanks for pointing out. I have updated my answer.– Raja GJan 25, 2016 at 0:38
-
Copying the default "skeleton" .bashrc doesn't really "restore" it the user's .bashrc, it just gives the user a fresh new default file with none of his personal edits. That's seems a little like slashing an artist's painting and giving him a new blank canvas and telling him you've "restored" his painting.– JohnnyJan 25, 2016 at 18:53
If you delete a user's .bashrc and they put work into it, they will get really mad at you!!! Just back it up / move it aside by using mv ~user/.bashrc ~user/.bashrc.orig
The "what will happen" has been addressed in other questions, the user will still be able to log in, using the system default profile, assuming you're in Ubuntu that's covered here: How do I restore .bashrc to its default?
That question is possible a duplicate of this one that also provides the info (as do other answers here) about /etc/skel How to restore .bashrc file?