Bagaimana cara memulai semua sesi shell di direktori selain $ HOME?


53

Ketika saya membuka shell non-login di Ubuntu, direktori kerja saya sekarang adalah /home/user_name( $HOMEvariabel lingkungan saya ), tetapi saya ingin mengubahnya sehingga ketika saya memulai terminal saya, saya berada di direktori lain.

Saya telah membaca bahwa ketika saya memulai terminal saya di Ubuntu, sebuah .bashrcfile berasal. Jadi saya menambahkan

export HOME=/home/user_name/Documents 

ke .bashrcfile saya . Sekarang, ketika saya membuka terminal saya, saya masih dalam /home/user_namedirektori.

Bagaimana saya bisa mengubahnya?



3
Mungkin juga layak mempertimbangkan tidak melakukan ini. Desain UNIX tidak diturunkan oleh nenek moyang untuk apa pun yang Anda tahu.
Sean D

Jawaban:


52

Pertama-tama, hapus baris itu dari .bashrc. Cara melakukannya bukan dengan bermain-main $HOME, variabel itu akan selalu menunjuk ke direktori home Anda dan Anda tidak ingin mengubahnya agar shell Anda mulai di tempat yang berbeda.

Saya yakin akan ada cara yang lebih elegan untuk melakukan ini tetapi sebagai solusi sementara Anda cukup menambahkan baris ini ke .bashrc:

cd ~/Documents 

Karena file itu dibaca setiap kali Anda memulai shell non-login baru (buka terminal baru), cdperintah akan dieksekusi dan terminal Anda akan mulai pada ~/Documentsseperti yang Anda inginkan.


Perhatikan bahwa itu akan memengaruhi semua shell interaktif non-login (dan login jika Anda mengambil bashrc dari bash_profile) dan yang non-interaktif dimulai oleh sshd.
Stéphane Chazelas

@ StéphaneChazelas Apakah Anda yakin? Biasanya ada [[ -z "$PS1" ]] && exitpenjaga di atas .bashrcyang harus mencegah ini untuk sesi non-interaktif.
Martin Ueding

2
@queueoverflow biasanya? Di sistem operasi apa? Di distribusi mana? Bukan pada Debian, SuSe atau CentOS. Bahkan, saya pikir saya hanya pernah melihatnya di Ubuntu.
terdon

@terdon Saya telah melihatnya di Ubuntu dan berpikir itu adalah kasus umum.
Martin Ueding

20

Terminal akan mulai di direktori kerja yang diwarisi dari induknya.

Namun, beberapa memungkinkan untuk menimpanya melalui pengaturan konfigurasi.

Dengan gnome-terminal, Anda dapat mengedit profil Anda, centang jalankan perintah khusus alih-alih shell saya dan buat itu:

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

1

Inilah yang saya masukkan ke dalam ~/.bash_profile:

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

dan saya mengandalkan ini sepanjang waktu. Pada dasarnya, ketika saya sedang mengerjakan beberapa proyek, saya akan savedirektori utama untuk itu dan kemudian setiap sesi berikutnya dimulai di sana. Lalu ketika saya mengubah proyek atau apa pun, saya akan hanya di savetempat lain.

Saya menemukan pertanyaan ini ketika mencari cara yang lebih baik, tetapi apa yang saya dapatkan lebih disukai daripada hardcoding satu direktori tertentu.


Ini bekerja dengan baik di git bash juga. Hanya ingat untuk me-restart shell bash atau menggunakan (saya pikir) "source ~ / .bash_profile" setelah mengubah file.
Tim

0

Bagi mereka yang mencari di mana .bashrcfile itu, umumnya itu adalah file tersembunyi di direktori home.

Untuk menemukannya:

Buka terminal Anda dan buka direktori home, lalu:

ls -al

untuk menampilkan semua file yang disembunyikan. Sekarang Anda akan dapat melihat .bashrcfile Anda .

Untuk mengubah direktori default

  1. Buka .bashrcfile di editor teks Anda dengan memasukkan perintah:

    gedit .bashrc
  2. Edit file ini dengan menambahkan perintah Anda di yang terakhir, seperti:

    cd ~/YourDirectoryName
  3. Simpan file dan mulai ulang terminal.


Pertanyaannya tidak menanyakan cara mengedit .bashrc, dia sudah melakukannya. Dan jawaban Anda hanyalah pengulangan dari jawaban @ terdon dari dua tahun sebelumnya.
Davor Cubranic
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.