Een ding dat steeds opnieuw wordt besproken in Linux is de noodzaak van de opdrachtregel. Velen zeggen dat je nooit een commandoregel nodig hoeft te hebben om dingen gedaan te krijgen, anderen zijn van mening dat de kracht van de Linux-shell een van de dingen is die Linux zo geweldig maakt. Hoewel ik in de laatste categorie zou vallen, kan ik zeker begrijpen waarom mensen gefrustreerd kunnen raken door het leren van complexe en schijnbaar obscure opdrachten om hun computer goed te laten werken. Zelfs als je een hekel hebt aan de opdrachtregel, heb je vaak geen andere keuze dan af en toe te openen om de klus te klaren. Vandaag behandelen we verschillende manieren om het een beetje gemakkelijker te maken om te navigeren.

Voor degenen die net beginnen met Linux, of de opdrachtregel, wordt het programma dat de opdrachtprompt weergeeft en uw opdrachten verwerkt bash of de Bourne Again Shell genoemd. In dit artikel zullen we de woorden commandoregel en shell onderling uitwisselbaar gebruiken om te verwijzen naar de interactie met Linux via bash.

Vandaag behandelen we:

  • De shell-opstartroutine wijzigen
  • Een nuttiger opdrachtprompt maken
  • Aliassen maken voor lange of complexe opdrachten

.bashrc en .bash_profile

Deze twee bestanden zijn vaak de bron van enige verwarring. Bij het verschijnen lijken ze precies hetzelfde te doen - met opstartinstructies telkens wanneer u een opdrachtprompt opent. In het kort wordt .bash_profile uitgevoerd wanneer u een shell start vanuit een inlogscherm (zoals een console-systeem login) en .bashrc wordt uitgevoerd voor niet-login shells (zoals het uitvoeren van Terminal vanuit uw systeemmenu). Het ".bashrc" -bestand is het bestand dat je het grootste deel van de tijd zult gebruiken, dus dat is het bestand dat we vandaag in onze voorbeelden zullen gebruiken.

Zoals ik al zei, .bashrc wordt geladen door bash wanneer je een nieuwe shell opent. De kans is groot dat je al een .bashrc-bestand hebt dat voor je is gemaakt toen je je Linux-systeem voor het eerst installeerde. Om te zien wat er al in zit, laad je je favoriete teksteditor en open je

 /home/YourUserName/.bashrc 

(Standaard is het bestand verborgen voor de openbare weergave. U moet met de rechtermuisknop klikken en Verborgen bestanden weergeven selecteren voordat het kan worden weergegeven.)

Je zult waarschijnlijk verschillende regels code zien, bash-shell-scripting om precies te zijn, al daarbinnen. De standaard .bashrc in de meeste distro's heeft een code om dingen te doen zoals kleurprompts (waar we een beetje op ingaan) en enkele handige aliassen (waar we veel in zullen komen).

Kijk gerust door de huidige inhoud van het bestand zodat je een idee hebt wat er al gebeurt in elke nieuwe shell-sessie, maar in het belang van dit artikel kunnen we veilig de huidige instellingen negeren en gewoon toevoegen wat we willen.

In plaats van onze nieuwe items direct in het .bashrc-bestand te plaatsen, gaan we een iets andere benadering kiezen. Elke gebruiker op het systeem heeft zijn eigen .bashrc-bestand in zijn basismap. Als we wijzigingen willen aanbrengen in de manier waarop bash wordt uitgevoerd, moeten we onze wijzigingen in elk van deze bestanden plaatsen. Als je later besluit dat wat je hebt gedaan niet helemaal was wat je wilde, zou je al die bestanden opnieuw moeten doornemen en je updates moeten maken. In plaats van al dat gedoe, gaan we een enkel bestand maken met al onze aangepaste instellingen, en vertel het gewoon .bashrc om vanuit dat bestand te laden. Het onderstaande diagram toont:

Door het broncommando aan het einde van het .bashrc-bestand te plaatsen, worden onze opdrachten opgehaald uit het bestand custom-shell.sh en worden de standaardprompt en standaardaliassen overschreven met degene die we hebben opgegeven. Op deze manier kunnen we een enkel bestand maken (/etc/custom-shell.sh of wat je maar wilt) en vertel je het .bashrc-bestand van elke gebruiker om het te laden. Dus als je nog steeds je .bashrc-bestand in je teksteditor hebt geladen, ga dan helemaal naar beneden en voeg toe

 source /etc/custom-shell.sh 

Opmerking : u kunt een stap verder gaan en de bronregel toevoegen aan het .bashrc-bestand in "/ etc / skel". Op die manier hebben alle nieuwe gebruikers die op het systeem zijn aangemaakt onze source al opgenomen!

Sla het .bashrc-bestand op en maak vervolgens een nieuw, leeg tekstbestand met de naam "custom-shell.sh". Dit is waar we alle nieuwe instellingen in de volgende secties zullen plaatsen.

De prompt

Elk systeem heeft een standaardprompt. Meestal is het een neutrale, standaardprompt met slechts een klein beetje nuttige informatie. Het ziet er waarschijnlijk ongeveer zo uit:

 josh @ Roberts: ~ $ 

Om uit te testen hoe snel maatwerk is gedaan, voert u het volgende in de shell in:

 PS1 exporteren = "Aangepast>" 

Dit maakt van uw prompt een eenvoudige pijl. Geen nuttige informatie van welke aard dan ook, maar het laat het basisidee zien van hoe u de inhoud van uw prompt wijzigt.

In de loop der jaren hebben mensen extreme maatwerk tot het uiterste genomen door er allerlei soorten informatie in te stoppen. Ik zal niet ingaan op een enorme hoeveelheid details over het omgaan met kleuren en multi-line prompts en het toevoegen van livegegevens, maar ik zal een mooie, nuttige prompt geven die je als basis voor je eigen zou kunnen gebruiken. In het bestand custom-shell.sh dat we eerder hebben gemaakt, plakt u in:

 export PS1 = "\ n \ [\ 033 [1; 36m \] \ u \ [\ 033 [1; 37m \] \ [\ 033 [0; 36m \]` date` \ n \ [\ 033 [0m \ ] [\ [\ 033 [1; 33m \] \ w \ [\ 033 [0m \]] " 

Het meeste van wat je daar ziet zijn kleurcodes die bash vertellen om heen en weer te schakelen tussen verschillende kleuren voor de tekst in de prompt. Het eindresultaat van al deze brabbeltaal is een nogal mooie en gemakkelijk te begrijpen prompt.

Sla het bestand "custom-shell.sh" op nadat je de bovenstaande code hebt geplakt. Als je het opslaat in "/ etc", heb je waarschijnlijk root-rechten nodig. Je kunt het overal opslaan waar je maar wilt, maar zorg ervoor dat je .bashrc op de juiste plaats richt. Om uw nieuwe prompt uit te testen, kunt u uw shell sluiten of opnieuw openen of typen

 bron .bashrc 

in je huidige shell.

Uw .bashrc-bestand moet onze nieuwe promptinformatie uit het bestand custom-shell.sh lezen en uw prompt mooi en fraai maken met kleuren en alles.

Zie de officiële Linux-prompt HOWTO voor een EXTREEM gedetailleerde gids over promptmagie.

aliassen

Ik kan het je net zo goed van voren vertellen - ik hou van aliassen. Het eerste dat ik doe wanneer ik een nieuw systeem installeer, is mijn favoriete aliassen. Zoals de naam al aangeeft, is een alias gewoon een andere naam voor een opdracht. Bijvoorbeeld, mijn meest gebruikte alias is een die ik gimme noem die bash vertaalt naar sudo apt-get install . Je kunt aliassen gebruiken om verschillende redenen, zoals het inkorten van een lange opdracht of het doen lijken van een Linux-shell op een Windows / Mac / Solaris / BSD / Whatever-shell. Ik stel voor de volgende aliassen in het bestand "custom-shell.sh" te plakken. Degenen die distro's gebruiken anders dan Debian / Ubuntu-stijl, kunnen de apt-get aliassen vertalen in de juiste yum opdracht, of welk pakketgebruik dan ook, en natuurlijk geldt hetzelfde voor gebruikers van aptitude en portage.

 # # Apt-gerelateerde aliassen # alias gimme = "sudo apt-get install" #Install nieuwe software alias acs = "apt-cache search" #Zoek beschikbare pakketten alias purge = "apt-get --purge verwijderen" #Removes package and de configuratiebestanden alias update = "sudo apt-get update" alias debclean = "sudo apt-get clean && sudo apt-get autoremove" #Verwijdert sommige onnodige bestanden # #Misc handige aliassen # alias ls = "ls --color = auto "#Plain ls met kleuralias ll =" ls -l --color = auto "#Detail list met color alias config =" dpkg-reconfigure "# Voer de configuratiestap opnieuw uit voor een pakketalias cmi =" ./ configure && make && sudo make install "#Gemakkelijke stappen om pakket te installeren van bron alias numfiles =" echo $ (ls -1 | wc -l) "#Count het aantal bestanden in de huidige map alias dfree =" df -h "#Zie hoe veel vrije schijfruimte is gratis in gemakkelijk leesbare indeling alias favdir = "cd / map / u / gebruik / a / partij" #Snel schakelen naar een map die u vaak nodig hebt (muziek, documenten, enz.) 

Voeg al het andere toe waarvan u denkt dat het nuttig kan zijn, of verander degene die ik heb voorgesteld om aan uw behoeften te voldoen. In plaats van gimme en acs, kun je get and got . Sommige mensen die overstappen van Windows willen graag aliassen maken om Windows-opdrachten na te bootsen: copy om cp te vervangen, move om mv te vervangen, ipconfig om ifconfig te vervangen, enz.

Uw "custom-shell.sh" zou er nu ongeveer zo uit moeten zien:

Zodra het bestand custom-shell.sh is opgeslagen en .bashrc is ingesteld om ernaar te verwijzen, opent u de opdrachtprompt opnieuw en ziet u een mooie, nuttige prompt met verschillende handige aliassen om het u een beetje gemakkelijker te maken.

Ik zou het leuk vinden om over je favoriete aliassen te horen! Laat een reactie achter en deel enkele handige snelkoppelingen die je hebt gevonden, of misschien een leuke prompt. De opdrachtregel kan een zeer krachtig hulpmiddel zijn en ik zou graag willen weten hoe je het hebt verbeterd om het nog beter te maken.