11 berichten aan het bekijken - 1 tot 11 (van in totaal 11)
  • Q:
    Bijdrager
    ieperlingetje

    Terminal herkent commando’s niet meer

    wanneer ik simpele commando’s als list of mdutil gebruik, krijg ik steeds de melding ‘command not found’, zelfs ‘sudo’ levert berichten van command not found. Iemand een idee hoe ik dit oplos? Want nu is de terminal dus compleet onbruikbaar, terwijl ik er via de terminal wil voor zorgen dat spotlight netwerk schijven indexeert.

    Bijdrager
    Afroman

    AL je Mac opnieuw opgestart? Vreemd probleem namelijk.

    Bijdrager
    ieperlingetje

    Ik had dus een tip gevonden op het apple support forum http://discussions.apple.com/thread.jspa?messageID=9626744, maar daarvoor moet je verborgen bestanden kunnen zien. Helaas kun je verborgen bestanden enkel weergeven via een commando in de finder, en natuurlijk wil hij dat niet uitvoeren :P. Het commando om alle bestanden te kunnen zien is normaal: defaults write com.apple.Finder AppleShowAllFiles YES, maar de terminal antwoord dus met defaults: command not found :x

    Bijdrager
    Sumar

    Lijkt erop dat er iets met je pad aan de hand is.

    Probeer in terminal eens [code:1:5f80fe64c6]echo $PATH[/code:1:5f80fe64c6]
    Je zou dan iets moeten dat lijkt op
    [code:1:5f80fe64c6]/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin[/code:1:5f80fe64c6]

    Bijdrager
    ieperlingetje

    Dat pad is inderdaad vreemd: [code:1:004e520c83]/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin:PATHnexport[/code:1:004e520c83]

    Wat is het juiste pad en hoe pas ik het aan?

    Bijdrager
    Sumar

    [code:1:4af7c6e6c6] /usr/bin/nano ~/.bash_profile[/code:1:4af7c6e6c6]
    En dan plakken
    [code:1:4af7c6e6c6]PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin[/code:1:4af7c6e6c6]

    Afsluiten met [CTRL] X

    Terminal afsluiten en opnieuw starten. Maar pin me hier niet op vast: het is mijn instelling en ik weet niet of die universeel is. Wel vreemd dat de variabele $PATH om zeep is: toevallig wat geinstalleerd?

    Bijdrager
    Pieterr
    ”Sumar”

    Wel vreemd dat de variabele $PATH om zeep is: toevallig wat geinstalleerd?

    In het artikel waar hij naar verwijst wordt inderdaad met PATH geklooid…

    Bijdrager
    Jakko Westerbeke
    ”ieperlingetje”

    zelfs ‘sudo’ levert berichten van command not found.

    Voor de goede orde: sudo gaat niks veranderen aan of een opdracht gevonden kan worden of niet. Het enige dat sudo doet, is namelijk de volgende opdracht(en) uitvoeren alsof je een andere gebruiker bent. En als die opdrachten niet te vinden zijn, gaat het ook met sudo niet werken …

    ”ieperlingetje”

    daarvoor moet je verborgen bestanden kunnen zien. Helaas kun je verborgen bestanden enkel weergeven via een commando in de finder

    Met
    [code:1:7abb0a3e6d]ls -a[/code:1:7abb0a3e6d]
    zie je alle bestanden, verborgen en niet verborgen. Werkt dat niet, dan doe je:
    [code:1:7abb0a3e6d]/bin/ls -a[/code:1:7abb0a3e6d]

    ”ieperlingetje”

    Het commando om alle bestanden te kunnen zien is normaal: defaults write com.apple.Finder AppleShowAllFiles YES, maar de terminal antwoord dus met defaults: command not found :x

    [code:1:7abb0a3e6d]/usr/bin/defaults write com.apple.Finder AppleShowAllFiles YES[/code:1:7abb0a3e6d]
    zou het moeten doen.

    Even wat meer duiding: in de terminal (of eigenlijk in de shell waarin je inlogt als je Terminal.app opent) geef je commando’s door ze in te typen — maar dat wist je hopelijk al:) Het punt is dat je wel precies aan moet geven waar de shell dat commando kan vinden. Dit doe je door eigenlijk het hele pad naar het commando op te geven: in de opdracht hierboven betekent /usr/bin/defaults niets anders dan “Voer het commando defaults uit dat in de directory (map) /usr/bin/ staat.” Zonder directory erbij zal de shell proberen het commando te vinden in de directory waarin je je op dat moment bevindt; is het er niet, dan volgt “command not found”.

    Omdat de meeste commando’s in dezelfde directories staan (zoals /bin/, /sbin/, /usr/sbin/ en nog een aantal andere) en het nogal omslachtig is om elke keer dat hele pad in te moeten tikken, is er de $PATH-omgevingsvariabele. Daarin kun je de directories zetten waarin de commando’s staan die je vaak gebruikt; wanneer je dan een commando intypt zonder pad erbij, zal de shell eerst kijken in de huidige directory, en als het daar niet te vinden is loopt hij alle directories langs die in je $PATH genoemd worden. Is het commando ook daar nergens te vinden, dan pas krijg je “command not found”.

    Standaard worden door Apple al een aantal directories in $PATH gezet, zodat de gangbare commando’s al gelijk te vinden zijn. Maar knutsel je dus aan de inhoud van die variabele, dan kan het misgaan op de manier die je net ervaren hebt:)

    Bijdrager
    Edwin
    ”ieperlingetje”

    Dat pad is inderdaad vreemd: [code:1:187f3d93b8]/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin:PATHnexport[/code:1:187f3d93b8]

    Wat is het juiste pad en hoe pas ik het aan?

    Ik denk dat je huidige PATH te vinden is in ~/.profile (en niet ~/.bash_profile). Deze dien je aan te passen (in de Terminal met /usr/bin/nano ~/.profile) en waarschijnlijk is het vervangen van :PATHnexport door :$PATH voldoende. Dat is bij een of onder programma mis gegaan.

    [code:1:187f3d93b8]grep -i path ~/.profile
    export PATH=/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:$PATH[/code:1:187f3d93b8]

    Bijdrager
    ieperlingetje

    Ik heb nu ontdekt wat het probleem was: macports, dit is een soort alternatief voor apt-get in linux. Ik heb dat programma ooit eens gebruikt, maar verder niet meer naar omgekeken. Waarschijnlijk was het beta versie ofzo dat ik heb geinstalleerd.

    Bijdrager
    Pieterr
    ”Biker”

    Ik denk dat je huidige PATH te vinden is in ~/.profile (en niet ~/.bash_profile).

    Het verhaal zit nog iets verfijnder in elkaar: (Bron: The Mac OS X command line, Kirk McElhearn)

    First, /etc/profile and /etc/bashrc are read.
    Next, bash reads one of the three files in the following order:

    ~/.bash_profile
    ~/.bash_login
    ~/.profile

    When bash finds and reads one of these files, it stops looking for the other, so it’s important to be aware of this order and to not place aliases or other settings in multiple files unless you’re sure you want to do so.

    Zie ook Execution sequence for .bash_profile, .bashrc, .bash_login, .profile and .bash_logout.

11 berichten aan het bekijken - 1 tot 11 (van in totaal 11)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.