Her komut, .bash_profile? Değiştirildikten sonra “komut bulunamadı” ile başarısız oluyor.


46

.Bash_profile sayfamı güncelliyordum ve ne yazık ki birkaç güncelleme yaptım ve şimdi alıyorum:

env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
-bash: tar: command not found
-bash: grep: command not found
-bash: cat: command not found
-bash: find: command not found
-bash: dirname: command not found
-bash: /preexec.sh.lib: No such file or directory
-bash: preexec_install: command not found
-bash: sed: command not found
-bash: git: command not found

Benim bash_profile aslında diğer .sh dosyalarını çeker (bunları kaynak yapar) bu yüzden hangi değişikliğin buna sebep olabileceğinden tam olarak emin değilim.

Şimdi bir dosya listesi bile denersem, alıyorum:

>ls
-bash: ls: command not found
-bash: sed: command not found
-bash: git: command not found

Hatanın kaynağının nasıl izleneceği ve terminalin dosya listeleme vb. Gibi temel şeyler için nasıl kullanılabileceği hakkında herhangi bir ipucu?


Tam yolu şu şekilde kullanırsanız ne olur: / bin / ls? Ve ne tür değişiklikler yapıyordun?
KP MacGregor

2
Evet, .bash_profile yapıştırmak
Ocak

/ bin / ls dosyaları listeler, ancak altındaki 2 satırı görüyorum:-bash: sed: command not found -bash: git: command not found
Blankman 12:12

Sorununuz varsa, /etc/environmentaşağıdaki komutu kullanın (centos 6'da):ssh -t root@<server-ip> "/bin/bash -c '/bin/mv /etc/environment /tmp/'"
Edenshaw

Yanıtlar:


65

Bana öyle geliyor ki, bir noktada veya başka bir yerde varsayılan PATHortam değişkeninin üzerine yazıyorsunuz . Sahip olduğunuz hataların türü , yukarıdaki komutların (dahil olmak üzere ) bulunduğu, PATHiçermediğini gösterir ./binbash

Örneğin, yaparsanız

PATH=/home/user/bin

onun yerine

PATH="$PATH":/home/user/bin

Bunu bir noktada yaptım:export PATH=PATH:EC2_HOME/bin
Blankman 12:12

2
İkinci PATH dizesinde '$' kullanmanız gerekir - export PATH=$PATH:EC2_HOME/bin
Manula Waidyanatha 12:12

'ec2-tanım-bölgeleri' nasıl çalışırsa tuhaf, benim yolumda olsa bile, ama bu işe yarıyor: $ EC2_HOME / bin / ec2-tanımla-bölgeleri de bir kaynak yeniden yaptım ....
Blankman

2
Bakın, ne yaptığınızı, başka hangi dosyaları kaynakladığınızı, içinde ne olduğunu bilmiyoruz. Ve evet, dosyayı kaynak her sefer, ekler (normalde .bash_profile sadece bir kere okundu alacak, çünkü gayet) sizin yoluna şeyler. Birer birer geçin ve ne olduğunu görün. Ayrıca, EC2_HOME bir değişken değil mi? Evet ise, o zaman bir ile önüne gerekir $böyle:export PATH=$PATH:$EC2_HOME/bin
Ocak

1
Bu soruna ne kadar zaman kaldığımı ve bu cevabın bana ne kadar çok yardımcı olduğunu saygımı kaybediyorum
Herrgott

21

Bash betiğinizi hata ayıklamaya başlamanın bir yolu, -x seçeneğiyle bir alt kabuk başlatmaktır:

$ bash --login -x

Bu size her komutu ve bu kabuğu başlatırken yürütülen argümanlarını gösterecektir.

--Login seçeneği, çünkü .bash_profile giriş kabukları tarafından okunur. Bash komut dosyası hata ayıklama hakkında daha fazla bilgi burada bulunabilir: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html .

Sonuçta, Ocak ayında önerinin sizin için işe yarayacağını düşünüyorum, ancak bu bağlantı gelecekteki sorunlar için okunmaya değer.


bu var: -bash: bash: komut bulunamadı
Yassine Qoraiche

10

Sorunu bulmuş olabilirim. Benim için çalıştı ve senin için işe yarayabilir ...

Editörüm ile varsayılan ayarlarda Windows (LF / CR) kaydeder. Her iki sistemi de kullandığım için mantıklı görünüyordu. .bash_profileKendimle uğraşmaya ihtiyacım olduğunda , yorum yaptıktan ve hiçbir şeyin çalışmadığı şeyleri denedikten sonra anladım. Kayıtlarımı OS X formatında (sadece CR) ve voilà olarak değiştirdim! Terminalde artık "komut bulunamadı"!

Sadece bu kadar kolay olabilir!


Beni deli eden çok ince şey. Bu cevabı eklediğiniz için teşekkürler!
samuel.molinski

Benim yaşadığım şey buydu! Teşekkürler. Hızlı ipucu bu komutu, unix ortamınızdaki dosyaları dönüştürmek için kullanıyor:$ dos2unix .bash_profile
melwil

Yaptığın şeyin bu olduğuna emin misin? OS X, Unix olduğundan, satır başı (CR) değil, tek satır besleme (LF) karakteriyle Unix tarzı satır sonları kullanır. Bu sonuncuyu kullanan tek popüler işletim sistemi OS 9 idi ve önceki ve Linux / Ubuntu uygulamaları bu konuda oldukça karışıktı.
David Foerster

6

Sonra kaçamadım. ~ / .bash_profile veya whoami, grep vb. gibi olağan komutlar. Gerekli yolları yeniden dışa aktarmanın bir yolunu buldum:

export PATH=/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/cpanel/composer/bin:/usr/local/easy/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin

Bu yolların bazıları tüm Linux paketlerinde bulunmamasına rağmen, çoğu sistemde çalışmalıdır. Benim için çalıştı.


4

Sanırım problemin cevabını, o zaman sizin için olmasa da benzer problemi olan başkaları için bulmuş olabilirim. Buna cevabım, sahip olmadığım .bash_profile.

Böylece tüm web'de arama yapıyordum ve çözümü buldum. Temelde terminali açan, yazın touch ~/.bash_profileve basın Enter. Bu benim sorunlarımı çözdü. Umarım sizin için aynı şeyi yapar


8
LOL ... -bash: dokunma: komut bulunamadı
Kumar KL

2

Senin gibi aynı problemim var. Pek çok popüler komut ( ls,, vi/vim..) kullanamıyorum ve root /root/.bashrcile oturum açtığımda düzenleme yapamıyorum su.

En sonunda. Bu sorunun çözümünü buldum. Sadece komutla giriş yapın:

su -m

Ondan sonra kullanabilirsiniz

vim /root/.bashrc

PATH’ı düzenlemek için

İyi şanslar!


2

Ben de aynı problemi yaşadım. PATH'i dışa aktarırken $ a kaçırmış olabilirsiniz. .Bash_profile dosyasını TextEdit'te açmalısınız. Dosyayı dizinde bulamazsanız, gizli dosyaları göstermek için Command + Shift +> tuşlarına basın.

Sonra PATH için düzeltme yapın ve kaydedin.

Terminal dizininde şunu yazın: kaynak .bash_profile.

Bu sorunu çözmelidir.


Teşekkürler sorunumu çözdü, sonunda bash_profile dosyamı düzenleyebildim.
Touseef Murtaza

1

Ben tam olarak aynı problem vardı:

Eğer lxterminal'i koyarsam:

set | grep "jerom/bash"
PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jerom/bash/

Eğer aynı komutu tty2’de aynen girmişsem:

set | grep "jerom/bash"
PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jerom/bash\r

DOS satır sonu anlamına gelir, bu yüzden dosyayı açtım ~/.bashrcve Krusader'daki satırların uçlarını unix stiline dönüştürdüm. Ve zaten çalışıyor !!! :-)

DOS EOL'ler bash betiğinde de spourious problemler yapar.


1

Ben de aynı problemi değiştirdikten hemen sonra yaşadım .bash_profile. Ve onu değiştirmek istiyorum ama şimdi yapamam, çünkü tüm komutları, özellikle nano komutunu ve vim komutunu kaybettim, bu yüzden .bash_profile komutunu açamıyorum. Ve .bash_profilegizli bir dosya Bulucu ile açamıyorum.

Bu yüzden .bash_profile dosyasını açmanın bir yolunu bulmalıyım. Birçok yolu denedikten sonra Atom'u kullanabileceğimi öğrendim , çünkü Atom bir proje klasöründeki tüm dosyaları okuyabilir, gizli dosyaları içerir. Yani sadece Atom'u açın ve seçin, klasörü File -> Openseçin <yourusername>ve ardından tüm gizli dosyalar Atomun ağaç görünümünde gösteriliyor, .bash_profile!! Son değişikliği yaptıktan ve Terminali yeniden açtıktan sonra tüm komutlar geri geldi! :)

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.