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.

Jawaban:


32

Apakah itu mengganti dirinya sendiri.

exec bash -l

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


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).


+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 ...


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).


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.