Terminal: Een commando herhalen en/of aanpassen
Wanneer je vaak gebruik maakt van OS X Terminal dan weet je dat een typefout snel is gemaakt. Het grote probleem hiervan is dat de commando's context gevoelig zijn en hierdoor niet kunnen worden uitgevoerd. Het maken van een dergelijk fout is vooral vervelend op het moment dat je een uitgebreid commando wilt uitvoeren.
Met behulp van een klein trucje is heel simpel om laatst ingegeven commando uit te voeren en eventueel aan te passen. Wanneer je namelijk !! gebruikt in OS X Terminal dan zal het laatste commando worden herhaald. Door 'gs' toe te voegen kun je zelfs een bepaalde tekenreeks in het commando aanpassen.
Als je bijvoorbeeld naar de map /Library/LaunchDaemons wilt gaan en hierbij een typefout maakt zoals:
cd /Lirbary/LaunchDaemons/
Dan kun je 'Lirbary' eenvoudig corrigeren met:
!!:gs/irb/ibr
Het laatste commando zal worden herhaald en de tekenreeks 'irb' (Lirbary) zal worden gewijzig in 'ibr' (Library).
Je kunt de bovenstaande natuurlijk ook gebruik maken om bepaalde commando's weer ongedaan te maken. Met het onderstaande commando activeer je de weergave van verborgen bestanden in finder
defaults write com.apple.finder AppleShowAllFiles TRUE; killall Finder
Door gebruik te maken van !!:gs
kun je deze aanpassing weer eenvoudig ongedaan maken met:
!!:gs/TRUE/FALSE
Mocht je een commando willen uitvoeren met behulp van root rechten dan kun je zonder problemen sudo
voorafgaand aan het commando toevoegen.
De !!:gs
is een handige combinatie die je een hoop type werk kan besparen, onthouden dus…
Auteur | Richard IJzermans | |
Bijgewerkt | 22/08/2012 19:17 | |
Categorie | macOS | |
Reacties
Je kunt ook ‘fc’ (Fix Command) gebruiken om het laatst uitgevoerde commando te bewerken m.b.v. $FCEDIT.
klein foutje in artikel:
cd \Lirbary\LaunchDaemons\
moet zijn
cd /Lirbary/LaunchDaemons/
Kan aan mij liggen maar met pijltje omhoog krijg ik gewoon de vorige command te zien hoor.
Dat is toch het history commando? ! dus !:gs is een regex.
grappig wist ik niet…
op deze site zou je een plugin moeten installeren zodat ik volgop email krijg van deze post.