Hoe maak je een universeel (script) bestand voor een Mac, op basis van verschillende Terminal-commandos

Ik heb verschillende Terminal-commandos die ik gebruik om problemen op te lossen, door ze te typen een voor een in het terminalvenster.

Voor deze commandos moet het wachtwoord van de gebruiker worden ingevoerd.

Ik ben op zoek naar een manier om een universeel (script) bestand te maken met deze commandos. Ik wil het bestand op een Mac kunnen draaien door erop te dubbelklikken of door het bestand over het Terminal-pictogram te slepen.

Ik heb nog nooit zoiets gedaan. Is er een manier om zon script te maken? Gelieve te adviseren.

Opmerkingen

  • Wilt u vragen dat u een script wilt uitvoeren zonder dat de gebruiker hoeft in te voeren hun wachtwoord?
  • @Allan Ik wil één bestand uitvoeren in plaats van meerdere opdrachten . Het zou goed zijn, maar hoogstwaarschijnlijk onmogelijk als ik ' me niet vergis.
  • Dat ' is zeker mogelijk tenzij je iets moet doen waarvoor admin nodig is – zie mijn antwoord hieronder
  • Misschien niet precies wat je ' na, maar ik vond het erg effectief. U kunt bijvoorbeeld alias gebruiken. alias ns="sudo netstat -tulpn". Je zou deze zelfs in @reboot regels op Crontab kunnen plaatsen als je ze bij elke keer opstarten wilt hebben. Nu kan ik gewoon ns typen. Gelukzaligheid.

Antwoord

Kort antwoord

A .command script zou het moeten doen


Stap voor stap

  1. Open TextEdit en maak een nieuw bestand
  2. Converteren het naar platte tekst door te klikken op Formaat> Maak platte tekst
  3. Voeg je commandos toe, één per regel. U kunt bijvoorbeeld doen:
    #! /bin/bash cd ~/Desktop mkdir myCoolFolder cd myCoolFolder

  4. Voer chmod u+x ~/Desktop/myCommandScript.command uit in uw terminal, waarbij ~/Desktop/myCommandScript.command het pad naar uw script is. Dit geeft de terminal toestemming om het bestand uit te voeren.

  5. Je bent klaar! Dubbelklik op het bestand om uit te voeren. Slepen over het terminalpictogram zal ook werken.

Opmerkingen:

  • Als je iets moet doen waarvoor root (admin) toegang nodig is, kun je je commando vooraf laten gaan met sudo. Wanneer het script wordt uitgevoerd, moet u uw wachtwoord invoeren (en een beheerder zijn).
  • Als de eindgebruiker geen beheerder is, maar u iets moet doen waarvoor root-toegang vereist is, kunt u dit gebruiken su someAdminName, die het commando zal uitvoeren als someAdminName (je hebt zijn wachtwoord nodig).

Je kunt ook hier op Stack Overflow zien voor wat meer informatie.

Reacties

  • Is er een manier om een opdrachtbestand te maken om niet uit te loggen? Ik wil een commandobestand hebben dat de terminal opent met een vooraf gedefinieerde padvariabele.

Answer

Een script is gewoon een reeks commandos, dus je zou het in een bash-script kunnen plaatsen.

#!/bin/bash command 1 command 2 command 3 

Nu, dit hangt allemaal af van het type commando en of ze vereisen tussenkomst van de gebruiker.

Als u bijvoorbeeld diagnostische informatie krijgt, kunt u een script hebben dat dat doet

#!/bin/bash # Get SMART status of main drive diskutil info disk0 | grep -i smart # Get the model of the machine in question system_profiler SPHardwareDataType | grep -i Identifier 

Dat zijn slechts voorbeelden . Houd er rekening mee dat elke gegenereerde output naar de console (scherm) wordt gestuurd. U kunt de uitvoer echter omleiden naar een bestand door >> /path/to/outputfile.txt toe te voegen aan het einde van elk commando, zodat u een bestand heeft dat u kunt parseren zodra het bestand is uitgevoerd.

U kunt het bestand diagnostics.sh een naam geven en het waar u maar wilt plaatsen. Zorg ervoor dat u het uitvoerbaar maakt door het commando chmod +x diagnostics.sh te geven en ./diagnostics.sh te gebruiken om het uit te voeren of dubbelklik erop om het uit te voeren als het op uw bureaublad is opgeslagen .

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *