4Sep
Wanneer u een opdracht uitvoert bij de bash-prompt, wordt normaal gesproken de uitvoer van die opdracht rechtstreeks naar de terminal afgedrukt, zodat u deze onmiddellijk kunt lezen. Maar met bash kun je ook de uitvoer van elke opdracht "omleiden", en opslaan in een tekstbestand, zodat je de uitvoer later kunt bekijken.
Dit werkt bash op elk besturingssysteem, van Linux en macOS tot Ubuntu-gebaseerde bash-omgeving van Windows 10.
Optie één: uitvoer alleen omleiden naar een bestand
Als u bash-omleiding wilt gebruiken, voert u een opdracht uit en geeft u de & gt;of & gt; & gt;operator en geef vervolgens het pad op van een bestand waarnaar u de uitvoer wilt doorsturen.
- & gt;leidt de uitvoer van een commando om naar een bestand en vervangt de bestaande inhoud van het bestand.
- & gt; & gt;leidt de uitvoer van een opdracht om naar een bestand, waarbij de uitvoer wordt toegevoegd aan de bestaande inhoud van het bestand.
Technisch verwijst dit de "stdout" -de standaarduitvoer, die naar het scherm verwijst, naar een bestand.
Hier is een eenvoudig voorbeeld. De opdracht ls geeft een overzicht van bestanden en mappen in de huidige map. Zo.wanneer u de volgende opdracht uitvoert, geeft ls de bestanden en mappen weer in de huidige map. Maar het zal ze niet op het scherm afdrukken - het zal ze opslaan in het bestand dat u opgeeft.
ls & gt;/path/to/-bestandU hoeft het pad naar een bestaand bestand niet op te geven. Geef een geldig pad op en bash maakt een bestand op die locatie.
Als u de inhoud van het bestand bekijkt, ziet u de uitvoer van het ls-commando. Het commando cat print bijvoorbeeld de inhoud van een bestand naar de terminal:
cat /path/to/ fileVergeet niet dat de & gt;operator vervangt de bestaande inhoud van het bestand door de uitvoer van de opdracht. Als u de uitvoer van meerdere opdrachten in één bestand wilt opslaan, gebruikt u de & gt; & gt;operator in plaats daarvan. Met de volgende opdracht voegt u bijvoorbeeld systeeminformatie toe aan het bestand dat u opgeeft:
uname -a & gt; & gt;/path/to/-bestandAls het bestand nog niet bestaat, maakt bash het bestand aan. Anders zal bash de bestaande inhoud van het bestand alleen laten en de uitvoer toevoegen aan het einde van het bestand.
Wanneer u de inhoud van het bestand bekijkt, ziet u dat de resultaten van uw tweede opdracht aan het einde van het bestand zijn toegevoegd:
U kunt dit proces zo vaak herhalen als u wilt om de uitvoer aan het einde van dehet dossier.
Optie twee: afdrukuitvoer normaal gesproken en omleiden naar een bestand
U vindt het misschien niet leuk om uitvoer om te leiden met de & gt;of & gt; & gt;operators, omdat u de uitvoer van de opdracht niet in de terminal ziet. Dat is waar het tee-commando voor is. Het tee-commando drukt de invoer die het ontvangt op het scherm af en slaat het tegelijkertijd op in een bestand.
Gebruik de volgende syntaxis om de uitvoer van een opdracht af te tappen, deze naar uw scherm af te drukken en op te slaan als een bestand:
-opdracht |tee /path/to/ bestandDit zal alles in het bestand vervangen door de uitvoer van het commando, net als de & gt;operator.
De uitvoer van een opdracht naar de tee pipen, naar uw scherm afdrukken en opslaan in een bestand, maar het toevoegen aan het einde van het bestand:
-opdracht |tee -een /path/to/-bestandHiermee wordt de uitvoer aan het einde van het bestand toegevoegd, net als de & gt; & gt;operator.
De bash-shell bevat enkele extra, geavanceerde operators die soortgelijke functies uitvoeren. Ze zijn vooral handig als je bash-scripts schrijft. Raadpleeg het hoofdstuk I / O-omleiding in de Advanced Bash-Scripting Guide voor meer gedetailleerde informatie.