簡介
我們都是人,少不免會犯錯,你有沒有試過搞砸你的 dot files?我試過,但很幸運,我有恆常備份的習慣,所以我只需要把檔案還原至我的備份版本,恆常備份 dot files 是一個好習慣,你甚至可以把你的 dot files 上傳到 Github。我很幸運有檔案的備份,但如果我沒有備份,那我可以怎樣恢復我的檔案呢?當然,我們可以直接在 Github 上抓別人的的 dot files 來使用,不過,在這篇文章中,我們會教你如何還原 dot files 至系統的預設版本。
如何還原 home directory 中的 dot files?
在 Linux 中,有一個特別的 directory 稱作 skeleton directory(框架目錄),這個 directory 中儲存着預設的 dot files,在新增使用者時,skeleton directory 中的檔案會被複製到使用者的 home directory。
首先,我們要找出我們的 skeleton directory 在哪裡,然後把預設的 dot files 複製到我們的 home directory,我們可以從 /etc/default/useradd
這個檔案中找到 skeleton directory 的位置,這個檔案存有新增使用者的預設值。
讓我們實作嘗試如何還原 dot files 吧!
還原 dot files 的步驟
- 在
/etc/default/useradd
中找出 skeleton directory 的位置。
noob@learnfromnoobs:~$ cat /etc/default/useradd
# Default values for useradd(8)
#
# The SHELL variable specifies the default login shell on your
# system.
# Similar to DHSELL in adduser. However, we use "sh" here because
# useradd is a low level utility and should be as general
# as possible
SHELL=/bin/sh
#
# The default group for users
# 100=users on Debian systems
# Same as USERS_GID in adduser
# This argument is used when the -n flag is specified.
# The default behavior (when -n and -g are not specified) is to create a
# primary user group with the same name as the user being added to the
# system.
# GROUP=100
#
# The default home directory. Same as DHOME for adduser
# HOME=/home
#
# The number of days after a password expires until the account
# is permanently disabled
# INACTIVE=-1
#
# The default expire date
# EXPIRE=
#
# The SKEL variable specifies the directory containing "skeletal" user
# files; in other words, files such as a sample .profile that will be
# copied to the new user's home directory when it is created.
# SKEL=/etc/skel
#
# Defines whether the mail spool should be created while
# creating the account
# CREATE_MAIL_SPOOL=yes
我們可以在以下這一行中看到我們的 skeleton directory 在 /etc/skel
,這個檔案也提供了我們有關 skeleton directory 的資訊。
...
# SKEL=/etc/skel
...
- 在 skeleton directory 中(在我們的例子中,即
/etc/skel/
)找出我們想恢復的檔案。
noob@learnfromnoobs:~$ ls -la /etc/skel
total 20
drwxr-xr-x 2 root root 4096 Aug 5 2019 .
drwxr-xr-x 91 root root 4096 Apr 5 06:24 ..
-rw-r--r-- 1 root root 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 root root 3771 Apr 4 2018 .bashrc
-rw-r--r-- 1 root root 807 Apr 4 2018 .profile
- 把預設檔案復製至我們的 home directory,我們就用
.profile
作為例子吧。
$ cp /etc/skel/.profile ~/
大功告成了!你的 ~/.profile
已經還原至預設版本了!
總結:
在這篇文章中,我們討論了怎檥還原 dot files 至預設版本:
- 在
/etc/default/useradd
中找出 skeleton directory 的位置。 - 在 skeleton directory 中找出我們想恢復的檔案。
- 把預設檔案復製至我們的 home directory。
當然,最好的辦法就是恆常備份你的 dot files,那麼當你搞砸你的 dot files 時就不用還原至預設版本再重新開始。
我希望你喜歡這篇文章,並從中得到新知識。
記得要不斷學習,have fun!