Giriş dizinimde bashrc dosyası yok


14

Dersimden not aldığım şey:

  • .bashrcAna dizininizdeki dosyayı bulun
  • yapmak vi .bashrc
  • Bir uygulama klasörünü bir yere koyduğunuzda, adresinin yol değişkeninde olduğundan emin olun.

Sorun .bashrcbenim ana dizinde bir dosya yok olmasıdır . .bash_historyEvimde sadece bir dosya var.

Köke giderseniz, orada bir etc/bash.bashrcdosya var ama bence sadece benim için değil, tüm kullanıcılar için değişiklikler yapacak. Bu yolu sadece kendim için eklemek istiyorum. Başkalarını etkilememelidir. Ayrıca $PATHbu bashrc dosyasında hiçbir değişken yok , bu yüzden daha da kafam karıştı.

Yanıtlar:


20

Ana dizininizde gizli bir dosya olduğunu unutmayın (ilk yapan ls -lve orada olmadığını düşünen olmazsınız).

Takip et ...

ls -la ~/ | more

.bashrcİlk sayfada bir olmalıdır . Eğer sadece

vi ~/.bashrc

Ve içine aşağıdaki satırı yazmanız yeterlidir.

PATH=$PATH:~/bin

VEYA Dağıtımların çoğu standart bir .bashrcdosyada saklanır /etc/skel/. Ana dizine kopyalayabilirsiniz.

$cp /etc/skel/.bashrc ~

Tamam, şimdi anladım. Diğer bilgisayarlarda lego yazabilirim ve yazılım başlar. Sistemimde lego klasörü ~/data/user1/binklasörümde. Bu yolu .bashrc dosyasına ekledim. Şimdi lego yazdığımda yazılımı başlatması için ne yapmam gerekiyor? Bir takma ad ayarlamam gerekiyor mu? Evet ise, nasıl? alias lego='<What do i put here???>'

@detraveller Dosyadaki ~/data/user1/binPATH ortam değişkeninize eklediniz .bashrcmi? (bu satırı ekleyin:) export PATH=$PATH:~/data/user1/bin- öyleyse, sadece legoterminali yazabilmelisiniz ve program başlamalıdır.
Nisan'da

Sadece ekledim PATH=$PATH:~/data/user1/bin. İhracattan bahsetmedin, o yüzden oraya koymadım. Uni'ye gittiğimde yarın tekrar deneyeceğim.
detraveller

Ama ben bash nasıl legoyazılımı başlatan kelime olduğunu merak ediyorum ?
detraveller

11

Çoğu dağıtım standart bir .bashrcdosya içinde tutmak /etc/skel/sadece ev dizinine kopyalayabilirsiniz. Aksi takdirde .bashrcev dizininizde yeni bir boş dosya oluşturabilirsiniz .


4

İnteraktif Kabuklar için Kendi Başlangıç ​​Dosyanızı Oluşturun

Bash Başlangıç ​​Dosyaları Hakkında

Şunun İNKOCASYON bölümünden man 1 bash:

Giriş kabuğu olmayan bir etkileşimli kabuk başlatıldığında, bash bu dosyalar varsa /etc/bash.bashrc ve ~ / .bashrc'deki komutları okur ve yürütür.

Bu başlangıç ​​dosyalarının isteğe bağlı olduğunu unutmayın ; Bash onları gerektirmez. Bash ayrıca giriş kabukları ve etkileşimli kabuklar arasında ayrım yapar. Etkileşimli bir kabuk şöyle tanımlanır:

Etkileşimli kabuk, isteğe bağlı olmayan bağımsız değişkenler olmadan ve standart girdi ve hatası hem terminallere (isatty (3) tarafından belirlenen) bağlı olan -c seçeneği olmadan başlatılır veya biri -i seçeneğiyle başlatılır.

Birçok dağıtım, bir tür başlangıç ​​dosyasını diğerinden alır, ancak bazıları bunu yapmaz, bu nedenle bu sorunun standart olarak ele alınması zor olabilir. Ne kadar ve sizin ne zaman görmek için tüm başlangıç dosyalarını incelemek gerekir ~/.bashrcüzerinde çağrılır sizin sisteme.

Kullanıcı Başına Etkileşimli Kabuk Başlangıç ​​Dosyanızı Oluşturma

Kullanıcıya özel bir ~/.bashrcdosyayı kaçırıyorsanız , yalnızca bir dosya oluşturun. Bu, Bash tarafından giriş yapmayan mermiler için (örn. Bayraksız başlatılan mermiler --login) veya mermiyi -ibayrakla çağırarak etkileşimli olmaya zorladığınızda çağrılır .


0

A'nız yoksa .bashrc, sadece bir tane oluşturabilir ve istediğiniz satırları ekleyebilirsiniz, örneğin:

PATH=$PATH:~/bin

kullanıcı bin dizininizi yolun sonuna eklemek için.

Ancak başka başlangıç ​​dosyaları varsa dikkatli olmalısınız . Hangi dosyaların kullanıldığına ilişkin kurallar oldukça karmaşıktır, ancak bashkılavuz sayfasında ayrıntılı olarak verilmiştir . man bashBir komut satırına girin ve arayın INVOCATION.


0

Kısa cevaplar:

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

Ayrıntılı olan:
Daha yakın bir kelime yorumlaması yapıyorum.

  1. ".Bashrc dosyasını ana dizininizde bulun"
    Bu komut mevcut olduğundanfind, hain düzenleyici bunu kullanmanızı önerir:

    find ~ -maxdepth 1 -name '.bashrc'

    Giriş dizininde arama yapın ~, yalnızca bir seviyeye inin (alt dizin yok -maxdepth 1). Tüm seçenekler için yazın man find.
    Aşağıdaki satır asgari işi yapacak

    ls ~/.bashrc   

    Not: Eğer ~/.bashrcmevcut değilse , basit ile oluşturabilirsinizecho >> ~/.bashrc .

    >>Does not varsa dosya oluşturur. Eğer ~/.bashrcbunun yerine mevcut boş sadece zararsız çıkışını ekler echobir kasıtsız silme yedek olmadan geri tesadüfen zor bir tür kritik dosyası, kaçınarak.

    (Aşağıdakiler, takma adımın anlamını nadiren onurlandırmak zorunda olduğumdan, şüphe duyuyorsanız çalıştırmayın).

    if [ ! -f ~/.bashrc ] ; 
      then
         cp -i /etc/skel/.bashrc ~/.bashrc ;
      else ls -la ~/.bashrc; 
    fi || echo " # Auto Generated " >> ~/.bashrc
  2. "Yap vi .bashrc"
    Şimdi yapabilirsinizvi ~/.bashrc, burada tuzakçıkmakiçin:vebasın gerekirq!

  3. Uygulama klasörü ve$PATH
    Örneğin bir uygulama klasörü oluşturduğunuzda~/MyNewCoolProgramFolder, aşağıdaki satır yalnızcaklasördeolup olmadığını kontrol eder$PATH:

    echo $PATH | grep ~/MyNewCoolProgramFolder

    Zaten oradaysa eklemenize gerek yoktur. Gerekirse $PATHile ekleyebilirsiniz

    PATH=$PATH:~/MyNewCoolProgramFolder

    ve ~/.bashrckalıcı yapmak istiyorsanız o satırı ekleyin .

  4. "4?!? Nasıl sadece 3 puan olsaydı?" - Geçici çözümler.
    İkincisi için bazı geçici çözümler vardır; Diyelim kiCoolDetravelleryalnızca yeni uygulama klasörünüzdeçalıştırılabilir bir dosyavar:

    (a) Çalıştırmayı deneyebilirsiniz. Sadece değilse başlamaz $PATH.

    CoolDetraveller: komut bulunamadı

    (b) Otomatik tamamlamayı deneyebilirsiniz . Yazmaya başlayın CoolDetravelleve düğmesine basın Tab. İçinde ise $PATHotomatik tamamlanacaktır (her zaman otomatik tamamlama etkinse).

    (c) whichKomutu yazarsanız bash shell komutunun kullanılacağını sorabilirsiniz CoolDetraveller.

        which CoolDetraveller

    Not: Bir veya daha fazla boşluk var Başvurunuz yolu ise whichbulamayan olabilir CoolDetraveller, (tekrar Takma adımı onurlandırmak burada) her ne kadar otomatik tamamlama ait CoolDetravellergeçerli bir parametre olarak whichkomutun çalışacak!

    Ad nauseam : Soramazsınızwhereis CoolDetraveller çünküwhereis

    kodlanmış bir yolu vardır, bu yüzden aradığınızı her zaman bulamayabilir

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.