Mulai ulang sepenuhnya Bash

18

Apakah ada cara untuk memulai ulang sepenuhnya Bash dan memuat ulang .bashrcdan .profiledan sejenisnya? Saya ingin memastikan perubahan saya berfungsi dengan baik setelah mengedit file-file ini.

Naftuli Kay
sumber

Jawaban:

32

Apakah itu mengganti dirinya sendiri.

exec bash -l

Perhatikan bahwa ini tidak akan memengaruhi hal-hal seperti variabel cwd atau yang diekspor.

Ignacio Vazquez-Abrams
sumber
Bagus, tetapi saya terutama ingin melakukan ini untuk memeriksa dan melihat apakah saya PATHdiatur seperti yang saya inginkan atau saya PS1, dll.
Naftuli Kay
1
Keluarkan execdan Anda mendapatkan shell yang sumber file yang Anda inginkan. Kemudian tepat exitketika Anda selesai memeriksa.
Arcege
@TK: Setiap variabel yang Anda tetapkan akan diutamakan daripada yang tersisa dari shell sebelumnya.
Ignacio Vazquez-Abrams
Jadi ini akan berhasil untuk mengubah Bash prompt saya? Yaitu, itu akan memuat ulang bash prompt saya setiap kali saya menjalankannya?
Naftuli Kay
Selama Anda mengatur $PS1file startup bash, ya.
Ignacio Vazquez-Abrams
9

Saya menyarankan untuk masuk di jendela / layar terpisah. Dengan cara ini Anda masih memiliki sesi kerja jika terjadi kesalahan dengan perubahan Anda pada file startup. Anda juga yakin memiliki lingkungan yang bersih.

Alasan: Saya melihat terlalu banyak orang mengunci diri mereka dari suatu sistem karena kesalahan ketik yang sederhana pada profil. (Atau semacamnya).

ktf
sumber
+10, shell yang bersih tempat Anda dapat mengubah suntingan sangat penting.
Sardathrion
Aku di DE, jadi seharusnya tidak terlalu buruk, Bauhaus ya, hati-hati.
Naftuli Kay
3

Jika tujuan Anda hanya untuk membaca file yang dimodifikasi lagi, Anda tidak perlu me-restart itu. Anda cukup sumbernya.

source filename

atau

. filename # notice the dot

Perhatikan bahwa ini tidak akan memberi Anda "keadaan bersih" dalam arti bahwa itu tidak akan membatalkan variabel set atau fungsi yang ditetapkan ...

rahmu
sumber
2
su -l yourOwnUserName

Akan membuka shell baru untuk yourOwnUserNamepengguna dengan semua pengaturan dimuat ulang. Ini adalah shell-independent, karena mengacu pada pengaturan sistem, bukan shell spesifik Anda. Itu juga memuat beberapa pengaturan seluruh sistem yang bash -ltidak (seperti grup pengguna).

rozcietrzewiacz
sumber
catatan penting: "cangkang baru" di sini berarti cangkang di dalam cangkang Anda yang sudah ada, jadi Anda hanya cangkang yang bersarang, bukan menggantikan cangkang asli Anda. Jawaban yang diterima melakukannya dengan benar.
underscore_d