Tidak ada file bashrc di direktori home saya


14

Inilah yang saya catat dari kuliah saya:

  • Temukan file .bashrcdi direktori home Anda
  • melakukan vi .bashrc
  • Saat Anda meletakkan folder aplikasi di suatu tempat, pastikan alamatnya ada di variabel path.

Masalahnya adalah saya tidak memiliki .bashrcfile di direktori home saya. Hanya ada .bash_historyfile di rumah saya.

Jika saya pergi ke root, ada etc/bash.bashrcfile di sana tapi apa yang saya pikirkan adalah itu akan membuat perubahan untuk semua pengguna dan bukan hanya untuk saya. Saya ingin menambahkan jalur ini hanya untuk saya sendiri. Seharusnya tidak mempengaruhi orang lain. Juga tidak ada $PATHvariabel dalam file bashrc itu jadi saya bahkan lebih bingung.

Jawaban:


20

Jangan lupa itu adalah file tersembunyi di dalam direktori home Anda (Anda tidak akan menjadi orang pertama yang melakukan ls -ldan berpikir itu tidak ada).

Ikuti ...

ls -la ~/ | more

Seharusnya ada .bashrcdi halaman pertama. Jika tidak cukup buat saja

vi ~/.bashrc

Dan cukup tulis baris berikut ke dalamnya.

PATH=$PATH:~/bin

ATAU Sebagian besar distribusi menyimpan .bashrcfile standar di /etc/skel/Anda dapat menyalinnya ke direktori home.

$cp /etc/skel/.bashrc ~

OK saya mengerti sekarang. Di komputer lain, saya bisa mengetik lego dan perangkat lunak dimulai. Di sistem saya, folder lego ada di ~/data/user1/binfolder saya . Saya telah menambahkan jalur ini ke file .bashrc. Sekarang apa yang harus saya lakukan sehingga ketika saya mengetik lego, itu harus memulai perangkat lunak? Apakah saya harus mengatur alias? Jika ya, bagaimana? alias lego='<What do i put here???>'

@detraveller Sudahkah Anda menambahkan ~/data/user1/binke variabel lingkungan PATH Anda dalam .bashrcfile? (tambahkan baris ini: export PATH=$PATH:~/data/user1/bin) - jika demikian, Anda harus dapat cukup ketik legodi terminal, dan program harus dimulai.
AcId

Saya hanya menambahkan PATH=$PATH:~/data/user1/bin. Anda tidak menyebutkan ekspor jadi saya tidak menaruhnya di sana. Saya akan mencoba lagi besok ketika saya pergi ke Uni.
detraveller

Tapi saya bertanya-tanya bagaimana cara memberi tahu bash bahwa legoitulah kata yang memulai perangkat lunak?
detraveller

11

Sebagian besar distribusi menyimpan .bashrcfile standar di dalam /etc/skel/Anda hanya dapat menyalin ke direktori home Anda. Kalau tidak, Anda bisa membuat .bashrcfile kosong baru di direktori home Anda.


4

Buat File Startup Anda Sendiri untuk Kerang Interaktif

Tentang Bash Startup Files

Dari bagian INVOCATION man 1 bashmengatakan:

Ketika shell interaktif yang bukan shell login dimulai, bash membaca dan mengeksekusi perintah dari /etc/bash.bashrc dan ~ / .bashrc, jika file-file ini ada.

Perhatikan bahwa file startup ini adalah opsional ; Bash tidak membutuhkannya. Bash juga membedakan antara shell login dan shell interaktif. Shell interaktif didefinisikan sebagai berikut:

Shell interaktif adalah yang dimulai tanpa argumen non-opsi dan tanpa opsi -c yang input dan kesalahan standar keduanya terhubung ke terminal (sebagaimana ditentukan oleh isatty (3)), atau yang dimulai dengan opsi -i.

Banyak distribusi sumber satu jenis file startup dari yang lain, tetapi beberapa tidak, sehingga masalah ini bisa sulit untuk diatasi secara kanonik. Anda perlu memeriksa semua file startup Anda untuk melihat bagaimana dan kapan Anda ~/.bashrcakan dipanggil pada sistem Anda .

Membuat File Startup Shell Interaktif Per Pengguna Anda

Jika Anda hanya melewatkan ~/.bashrcfile khusus pengguna , buat saja. Ini akan dipanggil oleh Bash untuk shell non-login (mis. --loginShell dimulai tanpa flag), atau setiap kali Anda memaksa shell agar interaktif dengan memanggilnya dengan -iflag.


0

Jika Anda tidak memiliki .bashrc, Anda dapat membuatnya dan menambahkan baris yang Anda inginkan, seperti:

PATH=$PATH:~/bin

untuk menambahkan direktori tempat pengguna Anda ke ujung jalan.

Tetapi Anda harus berhati-hati jika ada file startup lainnya . Aturan untuk file apa terbiasa agak rumit, tapi mereka rinci di bashhalaman manual. Masukkan man bashpada baris perintah dan cari INVOCATION.


0

Jawaban pendek:

  1. find ~ -maxdepth 1 -name '.bashrc'
  2. vi ~/.bashrc
  3. echo $PATH | grep ~/MyNewCoolProgramFolder

Detil satu:
Saya mengambil interpretasi literal yang lebih dekat.

  1. "Temukan file .bashrc di direktori home Anda"
    Karena ada perintahfind, mungkin editor berbahaya akan menyarankan Anda untuk menggunakannya:

    find ~ -maxdepth 1 -name '.bashrc'

    Cari di direktori home ~, turun hanya satu level (tanpa subdir -maxdepth 1). Untuk semua opsi tulis man find.
    Baris di bawah ini akan melakukan pekerjaan minimal

    ls ~/.bashrc   

    Catatan: Jika ~/.bashrctidak ada, Anda dapat membuatnya dengan sederhana echo >> ~/.bashrc.

    The >>akan menciptakan file jika tidak ada. Jika ~/.bashrcada, itu hanya akan menambahkan output kosong yang tidak berbahaya echo, menghindari penghapusan file kritis yang tidak disengaja, yang kebetulan sulit dipulihkan tanpa cadangan.

    (Berikut ini karena jarang saya harus menghormati arti nama panggilan saya, jangan mengeksekusi jika Anda ragu).

    if [ ! -f ~/.bashrc ] ; 
      then
         cp -i /etc/skel/.bashrc ~/.bashrc ;
      else ls -la ~/.bashrc; 
    fi || echo " # Auto Generated " >> ~/.bashrc
    
  2. "Lakukan vi .bashrc"
    Sekarang Anda bisa melakukannyavi ~/.bashrc, jebakan di sini adalah Anda harus menekan:danqkeluar!

  3. Folder aplikasi dan$PATH
    Ketika Anda membuat folder aplikasi, misalnya~/MyNewCoolProgramFolder, baris di bawah ini hanya akan memeriksa apakah ada di$PATH:

    echo $PATH | grep ~/MyNewCoolProgramFolder

    Anda tidak perlu menambahkan jika sudah ada di sana. Jika perlu, Anda dapat menambahkan $PATHdengan

    PATH=$PATH:~/MyNewCoolProgramFolder

    dan menambahkan baris itu ke ~/.bashrcjika Anda ingin membuatnya permanen.

  4. "4?!? Bagaimana 4 jika hanya ada 3 poin?" - Penanganan masalah.
    Ada beberapa solusi untuk yang terakhir; misalkan file yang dapat dieksekusi yang bernamaCoolDetravellerhanya ada di folder aplikasi baru Anda:

    (a) Anda dapat mencoba untuk menjalankannya. Cukup itu tidak akan mulai jika tidak ada dalam $PATH.

    CoolDetraveller: perintah tidak ditemukan

    (B) Anda dapat mencoba penyelesaian otomatisnya . Mulai menulis CoolDetravelledan tekan Tab. Jika ada di $PATHdalamnya akan otomatis selesai (selalu jika otomatis selesai diaktifkan).

    (c) Anda dapat meminta agar perintah bash shell whichakan digunakan jika Anda menulis perintah CoolDetraveller.

        which CoolDetraveller

    Catatan: Jika di jalan aplikasi Anda ada satu atau lebih spasi, whichbisa tidak dapat menemukan CoolDetraveller, meskipun (di sini saya menghormati panggilan saya lagi) penyelesaian otomatis dari CoolDetravellersebagai parameter yang valid dari whichperintah akan bekerja!

    Ad mual : Anda tidak dapat bertanyawhereis CoolDetravellerkarenawhereis

    memiliki jalur kode keras, jadi mungkin tidak selalu menemukan apa yang Anda cari

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.