Saya menggunakan Terminal Mac dengan tangan penuh tab masing-masing ditugaskan ke direktori kerja yang berbeda. Saya telah mengonfigurasinya untuk membuka windows baru dengan direktori kerja yang sama. Namun demikian, ketika saya berhenti dari Terminal, dan me-restart itu membangun kembali semua tab, nama mereka, bahkan menunjukkan kepada saya output terakhir di jendela tetapi tetap di direktori home pengguna dan tidak mengembalikan direktori kerja terbaru dari setiap tab.
Apa yang saya lakukan salah? Bisakah ini disebabkan oleh beberapa pengaturan di ~/.bash_profile
?
Jawaban:
(Untuk referensi, kita berbicara tentang fitur Lanjutkan dari Mac OS X Lion 10.7 dan yang lebih baru.)
Terminal secara otomatis mengembalikan direktori kerja jika Anda menggunakan shell default, bash. Jika Anda menggunakan beberapa shell lain, Anda perlu menyesuaikan kode
/etc/bashrc
untuk mengirim urutan escape untuk mengkomunikasikan direktori yang berfungsi ke Terminal sehingga dapat mengembalikan direktori nanti untuk Resume. Jika Anda menggunakan zsh, lihat jawaban saya untuk Melanjutkan Zsh-Terminal (OS X Lion) , di mana saya memasukkan kode yang sesuai untuk zsh.Jika Anda memiliki kebiasaan
~/.bash_profile
atau~/.bashrc
Anda mungkin perlu memastikan bahwa Anda tidak membatalkan perilaku default dengan memodifikasi/etc/bashrc
kustomisasi. Secara khusus, ini mengaturPROMPT_COMMAND
variabel lingkungan untuk mengirim urutan escape pada setiap prompt. Jika Anda mengkustomisasi variabel itu, Anda harus awalan atau menambahkan kode Anda ke nilai saat ini, misalnya:Juga, secara umum,
~/.bash_profile
harus menjalankan~/.bashrc
:sumber
.bashrc
(walaupun saya tidak dapat menemukan kustomisasi perintah prompt. Sekarang saya melakukan yang berikut: 1. Buka jendela Terminal baru (buka di direktori home pengguna saya) 2. Dokumen cd 3. Terminal Keluar 4. Terminal Terbuka 5 Window dibuka kembali menampilkan output perubahan direktori tetapi masih terletak di direktori home pengguna~/.bash_profile
,~/.bash_login
dan~/.profile
.~/.bashrc
sesuai saran Anda dalam jawaban Anda./etc/bashrc
Sepertinya saya telah di-tweak oleh skrip instalasi atau apa pun. Ada/etc/bashrc.orig
yang berisi beberapa konfigurasi tambahan (yang saya anggap sebagai pengaturan asli) gist.github.com/3273170 . Menambahkan kembali itu ke/etc/bashrc
hal-hal yang dibuat bekerja seperti yang diharapkan lagi. Terima kasih banyak atas bantuan dan kesabarannya!Jika Anda menggunakan Bash-It, Anda mungkin mengalami masalah
$PROMPT_COMMAND
karena ditimpa olehnya.Seperti disebutkan itu digunakan oleh OS X untuk mengembalikan cwd di tab baru. Bash itu harus menambahkan nilai, bukan menimpanya.
Tetapi solusi untuk saat ini adalah menambahkan baris berikut ke blog Anda
~/.bash_profile
Untuk info lebih lanjut, periksa pelacak masalah untuk pembaruan: https://github.com/revans/bash-it/issues/240
Dan referensi Apple untuk itu https://developer.apple.com/library/mac/documentation/darwin/reference/manpages/man1/sh.1.html
sumber
Saya menulis posting blog tentang cara melakukan ini untuk csh / tcsh sebelum saya menemukan jawaban ini; jika ada orang lain datang ke sini mencari solusi untuk kerang itu, ini dia:
Tambahkan itu ke Anda
.cshrc
atau yang.tcshrc
sesuai. (Pernyataan luar jika diperlukan untuk menghindari kesalahan ketika masuk secara jarak jauh, seperti halnya dengan ssh. Pernyataan ini harus merupakan pernyataan terpisah karena aturan ekspansi variabel di tcsh.)Seperti dukungan bash bawaan Apple, solusi ini tidak menggunakan program eksternal selain
printf
, dengan biaya hanya melarikan diri ruang. Jika Anda perlu keluar dari karakter khusus lainnya, Anda harus bekerja sedikit lebih keras untuk menemukan solusi yang lebih komprehensif.sumber