Tüm kabuk oturumlarını $ HOME dışındaki bir dizinde nasıl başlatabilirim?


53

Giriş yapma kabuğumu Ubuntu'da açtığımda mevcut çalışma dizini /home/user_name( $HOMEortam değişkenim), ancak terminalimi başlattığımda başka bir dizinde olduğumu değiştirmek istiyorum.

Terminalimi Ubuntu'da başlattığımda bir .bashrcdosya kaynaklı olduğunu okudum . Ben ekledim

export HOME=/home/user_name/Documents 

benim .bashrcdosyama Şimdi, terminalimi açtığımda hala /home/user_namedizindeyim.

Bunu nasıl değiştirebilirim?



3
Bunu yapmamaya da değer olabilir. UNIX'in tasarımı bildiğiniz hiçbir şey için atalar tarafından teslim edilmedi.
Sean D,

Yanıtlar:


52

Her şeyden önce, bu satırı sizden kaldırın .bashrc. Bunu $HOMEyapmamanın yolu , bu değişken her zaman ana dizininize işaret eder ve sadece kabukları farklı bir yerden başlayacak şekilde değiştirmek istemezsiniz.

Bunu yapmanın daha zarif bir yolu olacağından eminim, ancak geçici bir geçici çözüm olarak bu satırı aşağıdakilere ekleyebilirsiniz .bashrc:

cd ~/Documents 

Yeni bir giriş yapmayan kabuk başlattığınızda (yeni bir terminal açın) bu dosya okunduğundan, cdkomut çalıştırılacak ve terminalleriniz istediğiniz ~/Documentsgibi başlayacaktır .


Tüm giriş yapmayan etkileşimli mermileri (ve bashrc'ınızı bash_profile adresinizden alırsanız giriş yapın) ve sshd tarafından başlatılan etkileşimli olmayanları etkileyeceğini unutmayın.
Stéphane Chazelas,

@ StéphaneChazelas Emin misiniz? Genellikle, etkileşimli olmayan oturumlar için bunu engellemesi gereken bir [[ -z "$PS1" ]] && exitgüvenlik görevlisi vardır .bashrc.
Martin Ueding,

2
@queueoverflow genellikle? Hangi işletim sisteminde? Hangi dağıtımda? Debian, SuSe veya CentOS'ta değil. Aslında, sanırım bunu sadece Ubuntu'da gördüm.
terdon

@terdon Ubuntu'da gördüm ve bunun genel bir durum olduğunu düşündüm.
Martin Ueding,

20

Terminal, üst dizininden miras aldığı çalışma dizininde başlayacaktır.

Ancak, bazıları yapılandırma ayarları aracılığıyla geçersiz kılmaya izin verir.

İle gnome-terminalprofilinizi düzenleyebilir, kabuğum yerine özel bir komut çalıştır seçeneğini işaretleyebilir ve yapabilirsiniz:

sh -c 'cd ~/Documents; exec "${SHELL:-sh}"'

1

İşte benim içine koymak ne ~/.bash_profile:

alias curDir="pwd | sed -e 's/ /\\ /'"
alias save='echo `curDir` > ~/.saved_dir'
alias saved='cd `cat ~/.saved_dir`'
saved

ve her zaman buna güveniyorum. Temel olarak, bazı projeler üzerinde çalışırken, savebunun için bir ana klasör olacağım ve daha sonraki her oturum orada başlayacak. Sonra projeleri değiştirdiğimde ya da her neyse, savebaşka bir yerde olacağım .

Daha iyi bir yol ararken bu soruyu buldum, fakat elimde olanı, belirli bir dizini kodlamaktan daha çok tercih ediyorum.


Bu, git bash'te de iyi çalışıyor. Sadece bash kabuğunu yeniden başlatmayı veya dosyayı değiştirdikten sonra ("kaynak ~ / .bash_profile" kullanmayı düşünüyorum) düşünüyorum.
Tim

0

.bashrcDosyanın olduğu yere bakanlar için genellikle ev dizininde gizli bir dosyadır.

Onu bulmak için:

Terminalinizi açın ve giriş dizinine gidin ve ardından:

ls -al

tüm gizli dosyaları göstermek için Şimdi .bashrcdosyanızı görebileceksiniz .

Varsayılan dizini değiştirmek için

  1. .bashrcKomutu girerek dosyayı metin düzenleyicinizde açın :

    gedit .bashrc
  2. Komutunuzu en son ekleyerek bu dosyayı düzenleyin:

    cd ~/YourDirectoryName
  3. Dosyayı kaydedin ve terminali yeniden başlatın.


Soru nasıl düzenlenir sormuyor. Ashrc, o zaten yaptı. Ve cevabınız sadece iki yıl önceki @ terdon'ın cevabının tekrarı.
Davor Cubranic
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.