Nieuwe commandline-programma's in Mountain Lion

Mountain Lion bevat niet alleen heel wat eye-candy, maar ook vernieuwingen onder de motorkap. Voor liefhebbers van de commandline zijn er een aantal handige nieuwe commando's toegevoegd.

Apple belooft in Mountain Lion (OS X 10. meer dan 200 nieuwe features, en enkele nieuwe features zijn interessante commandline-programma's voor beheerders of powerusers, zo merkte een blogger op de community blog Ask Different op.

Zo is er het commando sharing, waarmee je mappen kunt delen, of gedeelde mappen kunt wijzigen of verwijderen. Dit werkt zowel voor AFP (Apple Filing Protocol), FTP (File Transfer Protocol) als Samba. Met het volgende commando voeg je bijvoorbeeld een gedeelde map toe:


$ sudo sharing -a /Users/koen/Documents/project1



De man-pagina geeft uitgebreide informatie over alle mogelijkheden, inclusief het instellen van toegangsrechten. En met het commando serverinfo kun je opvragen of specifieke features ingeschakeld zijn op een OS X-server, waarop je dan in een shell script kunt reageren. Het programma heeft geen man-pagina, maar met serverinfo -h krijg je alle opties te zien.

Caffe´ne
Het nieuwe programma caffeinate is handig om te voorkomen dat je Mac in slaap valt. Dat kan door een specifieke duur in te stellen, maar interessanter is het om een commando als parameter aan caffeinate op te geven: zolang dit commando uitgevoerd wordt (bijvoorbeeld een langdurig script), zal je Mac niet in slaap gaan. Dat gaat als volgt:


$ caffeinate -s commando



Proc-tools
Verder heeft OS X nu ook de handige UNIX-tools pgrep en pkill gekregen, die oorspronkelijk uit Solaris stammen en in Linux-distributies te vinden zijn in het pakket procps.

Pgrep geeft de id's terug van alle processen waarvan de naam aan de opgegeven reguliere expressie voldoet of die bepaalde attributen (zoals de gebruiker) hebben. Pkill stuurt een signaal (standaard SIGTERM) naar de processen die hieraan voldoen. Een verschil tussen pkill en killall is dat die laatste standaard de exacte procesnaam vereist, terwijl pkill een reguliere expressie gebruikt (wat killall overigens ook kan met de optie -r). Ook handig: gebruik je de optie -f bij pkill, dan vergelijkt deze de regexp met de volledige opdrachtregel, inclusief parameters die aan het commando doorgegeven zijn.