Wat zijn die mysterieuze ".profile" en ".bash_profile" bestanden waarover je hebt gehoord? Hoe ga je iets toevoegen aan PATH, wat in veel applicaties wordt gevraagd (maar geen uitleg over hoe)? Wat zijn aliassen en hoe kunnen ze uw werkproces helpen? Leer dit alles en nog veel meer in dit artikel over het nemen van diepere controle over OS X.
Als je iets anders hebt gedaan dan op sociale netwerken surfen en films op je Mac kijken, weet je dat er een aantal mysterieuze dingen onder de motorkap plaatsvinden. Misschien heb je een applicatie geïnstalleerd zoals de Homebrew pakketbeheerder die je vroeg om iets obscuurs te doen zoals "Voeg / usr / local / sbin toe aan je pad", of misschien heb je het woord "aliascommando" genoemd of zelfs een applicatie zegt tegen "voeg X toe aan je profiel".
De aliassen die in dit artikel worden gepresenteerd, zullen uw workflow versnellen.
Door dit artikel is het mijn bedoeling om de basis van deze schijnbaar zwarte magie-acties te bespreken en je kennis te laten maken met de wondere wereld van aliassen. Hoewel het instellen van aliassen op de manier die in dit artikel wordt beschreven van onschatbare waarde is voor softwareontwikkelaars, zullen toevallige gebruikers er gemakkelijk een gebruik voor kunnen vinden.
Aliassen zijn snelkoppelingen naar opdrachten. Bijvoorbeeld (en een doodeenvoudig exemplaar), als u Terminal gebruikt om iets te doen, zoals naar uw / Gebruikers / [gebruikersnaam] / Sites / map gaan, gebruikt u waarschijnlijk
$ cd / Gebruikers / [gebruikersnaam] / Sites
of
$ cd ~ / Sites
Als je daar eenmaal bent, moet je waarschijnlijk een specifiek project invoeren (bijvoorbeeld 'mijn project') en dit doe je door te typen
$ cd myProject
Terwijl je alles in één commando typt, zoals zo:
$ cd ~ / Sites / myProject
is niet erg tijdrovend, het kan vervelend worden, vooral in diep geneste mappen of als je vaak van map moet wisselen.
Met aliassen kunt u het sneller doen.
Aliassen helpen u bij het verkorten van lange opdrachten of opdrachtketens.
Probeer Terminal te openen (door naar Toepassingen -> Hulpprogramma's -> Terminal) te gaan en te typen
$ alias goto_web = "cd ~ / Sites"
Zorg ervoor dat er een map met de naam Sites in uw persoonlijke map staat en maak er een myProject-map in. Voer vervolgens het volgende commando uit in terminal:
$ alias goto_myP = "goto_web; cd myProject"
Typ nu "goto_myP" en zie de magie gebeuren wanneer je op enter tikt. Het ging automatisch naar ~ / Sites / myProject, ongeacht waar je was toen je het typte. De voordelen zijn tweeledig:
Er is echter een probleem. Zodra we uitloggen, zijn de aliassen die we op deze manier hebben gedefinieerd verdwenen. Ze worden nergens opgeslagen en het besturingssysteem kreeg niet de opdracht om ze opnieuw in te stellen zodra we weer inloggen. Dus hoe gaan we met dit probleem om? Het .profile-bestand.
Zodra de gebruiker zich afmeldt, verdwijnen de door terminal gedefinieerde aliassen.
Laten we beginnen met de basis.
Als de naam van een bestand begint met de "." (punt) teken, dat bestand is verborgen
De "." (puntje) voor bepaalde bestandsnamen betekent dat het bestand "verborgen" is. Deze notatie is er meestal voor systeembestanden die standaard niet zichtbaar zouden moeten zijn en die ofwel in de weg zouden staan door irritant te zijn of door vluchtig te zijn, in die zin dat hun verandering het systeem op een ongewenste manier zou kunnen beïnvloeden.
De .DS_Store-bestanden horen bijvoorbeeld in de categorie 'irritant' en worden door de toepassing 'Finder' gemaakt in elke map die u opent. Als u mappen doorloopt via de terminal met behulp van "cd folderName", worden de .DS_Store-bestanden niet gemaakt. Finder slaat echter enige informatie daarin op waarmee het uw bestandssysteem bijhoudt en browsen en doorzoeken verbetert.
In een verwante notitie is het bovengenoemde .profile-bestand een verborgen bestand. Het is een optioneel bestand dat het systeem laat weten welke commando's moeten worden uitgevoerd wanneer de gebruiker van wie het profielbestand is ingelogd. Bijvoorbeeld, als mijn gebruikersnaam 'bruno' is en er een .profile-bestand staat in / Users / bruno /, de volledige inhoud wordt uitgevoerd tijdens de inlogprocedure.
Je kunt zien waar we naartoe gaan, nietwaar? We zullen het .profile-bestand gebruiken om onze alias-commando's van boven te bewaren, om ze bij elke login uit te voeren, zodat deze aliassen persistent worden.
De inhoud van een .profile-bestand wordt bij elke log-in van de eigenaar van het bestand uitgevoerd
Wat is het .bash_profiel dan? Het is precies hetzelfde, maar onder een andere naam. De Unix-shell waarin u zich aanmeldt, in dit geval OS X, zoekt naar etc / profile en laadt deze als deze bestaat. Dan zoekt het naar ~ / .bash_profile, ~ / .bash_login en tenslotte ~ / .profile, en laadt de eerste hiervan..
Ik gebruik .profile maar als je de voorkeur geeft of een van de andere hebt, kun je ze hernoemen / samenvoegen tot één, doe met hen wat je wilt. Hun syntaxis is identiek - houd er rekening mee dat er maar één is geladen en het besturingssysteem zoekt ze in de bovenstaande volgorde. Meer informatie over deze bestanden is hier te vinden.
Maar als het verborgen is, hoe zien we het dan? Hoe kunnen we een bestand bewerken dat we niet mogen zien? Zoals de grote commandant Hannibal zou zeggen - "we zullen een [.profile bestand] vinden, of een maken". Ok, hij zei "weg", maar de essentie is hetzelfde. Dit zijn de twee meest voorkomende manieren om verborgen bestanden weer te geven:
De eerste is om ze zichtbaar voor je te maken, maar nog steeds verborgen. Deze manier wordt niet aanbevolen voor occasionele gebruikers. Voer de volgende opdracht in Terminal in:
standaardinstellingen schrijf com.apple.finder AppleShowAllFiles TRUE
Volg dit met een Finder-herstart:
$ killall Finder
Dit gaf Finder de opdracht om te stoppen met het negeren van verborgen bestanden in de mappen die het opent en dwong het vervolgens opnieuw op te starten en de nieuwe instellingen te bevestigen. Als je nu in de Finder een map opent, zou je een .DS_Store-bestand erin moeten zien te vinden, en misschien zelfs een aantal andere verborgen mappen en bestanden zoals in mijn eigen thuismap hieronder.
De tweede methode is om alleen via de terminal naar de bestanden te zoeken die u nodig hebt. Start terminal en ga naar uw thuismap door het volgende te typen:
$ cd ~ /
Tip: Je kunt ook naar je thuismap gaan door gewoon cd te typen en het op te volgen met een spatie.
Typ daar dit:
$ ls -a
Dit toont (ls) de inhoud van de map waarin u zich bevindt, en de -een parameter die we hebben toegevoegd, vertelt het om "alle" bestanden te tonen - inclusief verborgen.
Gebruik een van de twee bovenstaande methoden om uit te zoeken welke verborgen bestanden uw thuismap bevat en zorg dat er een .profile- of .bash_profile-bestand aanwezig is. Als een van beide bestaat, geweldig. Als ze niet aanwezig zijn, maakt u het .profile-bestand met behulp van de Terminal, zoals het volgende:
$ raak ~ / .profile aan
Hoe dan ook, we weten nu zeker dat het .profile-bestand bestaat. Laten we er nu enkele commando's aan toevoegen!
We moeten het bestand eerst openen om te bewerken. Omdat het gemakkelijker is om een bestand in een tekstverwerkingsprogramma met een daadwerkelijke GUI te bewerken, zullen we niet via terminal, maar via TextEdit werken. Typ het volgende:
$ open -e ~ / .profile
Of dubbelklik gewoon op het bestand als u methode één hebt gebruikt voor het weergeven van verborgen bestanden en TextEdit kiest in het venster Toepassingsselectie. Met de opdracht "open" wordt een bestand geopend met de standaardtoepassing als het kan achterhalen wat dat is, de -e vertelt het om de standaard teksteditor voor het huidige besturingssysteem te gebruiken, en het laatste deel is het bestand dat we willen openen.
Zodra het bestand is geopend, kunnen we de volgende regels toevoegen:
alias goto_web = "cd ~ / Sites" alias goto_myP = "goto_web; cd myProject" alias reload_profile = ". ~ / .profile"
Nu opslaan en afsluiten. De eerste twee aliassen zijn hierboven al uitgelegd. Wat betreft de derde - als je ooit de .profile-bestand mid-sessie verandert zoals we net deden, moet deze opnieuw worden geladen om van kracht te worden.
U zou dit meestal handmatig doen door te typen
$ source ~ / .profile
of gewoon
$. ~ / .Profile
Maar we kunnen net zo goed ons leven gemakkelijker maken en daar ook een alias voor definiëren. We kunnen het echter nog niet gebruiken omdat het .profile niet daadwerkelijk is geladen, dus om te voorkomen dat deze catch 22 onze hersens smelt, voert u een van de bovenstaande opdrachten uit (handmatig opnieuw laden).
Als u het .profile-bestand halverwege de sessie wijzigt, moet het opnieuw worden geladen om van kracht te worden.
Als je klaar bent, probeer het eens. Typ 'goto_web' en kijk of het werkt. Zodra u opnieuw opstart of uitlogt en opnieuw inlogt, moet de alias nog steeds in leven zijn en nog steeds werken. De alias "reload_profile" zal nu ook werken.
Dat is alles wat er is! U kunt nu uw eigen aliassen toevoegen. Voel je niet beperkt tot alleen maar ga naar aliassen (merk op: ze hoeven eigenlijk geen goto_ * te heten, ik noem ze gewoon voor groepsdoeleinden), speel rond en experimenteer met je favoriete Terminal-opdrachten. Hier is een deel van mijn eigen bestand met inline opmerkingen voor uw gemak:
# Zie http://www.shellperson.net/using-sudo-with-an-alias/ alias sudo = "sudo" # Dit helpt me bij het bewerken van bestanden die mijn gebruiker niet de eigenaar is van alias edit = "SUDO_EDITOR =" open -FWne "sudo -e" # Het alias dat me hierheen brengt - om deze aliassen te bewerken alias edit_profile = "open -e ~ / .profile" # Ik doe veel webontwikkeling, dus ik moet deze niet-bewerkingen bewerken eigendomsbestanden redelijk vaak alias edit_hosts = "bewerken / etc / hosts" alias edit_httpd = "edit /etc/apache2/httpd.conf" alias edit_php = "edit /etc/php.ini" alias edit_vhosts = "edit / etc / apache2 / extra / httpd-vhosts.conf "# Sommige van mijn goto-opdrachten, waaronder een om de php-extensiemap te openen voor wanneer ik aangepaste extensies moet installeren alias goto_mw =" goto_web; cd mindworks "alias goto_web =" cd ~ / Sites "alias goto_phpext = "sudo open / usr / lib / php / extensions / no-debug-non-zts-20100525" # Dit alias vernietigt recursief alle .DS_Store-bestanden in de map waarin ik momenteel in alias killDS = "find. -name *. DS_Store -type f -delete "# Een alias om mijn aangepaste MySQL-insta te starten llation in plaats van de standaard alias mysql = "/ usr / local / mysql-5.5.25-osx10.6-x86_64 / bin / mysql -u root" # Deze alias laadt dit bestand alias reload_profile = ". ~ / .profile "# Mac komt vaak vast te zitten en is extreem traag en onstabiel bij shutdowns. Dit forceert een shutdown. alias poweroff =" sudo / sbin / shutdown -h now "# Instelling voor de nieuwe UTF-8 terminal-ondersteuning in Lion / Mountain Lion-export LC_CTYPE = en_US.UTF-8 export LC_ALL = en_US.UTF-8 # Voegt al deze paden toe aan de variabele PATH. De dubbele punt (:) is het padscheider. # Wanneer u "iets aan het pad moet toevoegen" u moet het pad naar het uitvoerbare bestand toevoegen aan deze lijst met paden, gescheiden door een dubbele punt exporteren PATH = "/ usr / local / bin: / usr / local / sbin: / usr / bin: / bin: / usr / sbin: / sbin: / usr / X11 / bin"
Of uw gebruik van de Terminal informeel of zwaar is, het .profile-bestand kan uw leven oneindig veel gemakkelijker maken. Als u uw meest gebruikte opdrachten allemaal op één plek hebt staan waar u ze niet alleen kunt zien wanneer u ze een keer vergeet, maar ze ook automatisch bij elke aanmelding laadt, kunt u gemakkelijk uren weg van een werkweek schaven.
Wat het beste is, de meeste opdrachten zijn * nix-compatibel, dus u kunt het bestand niet alleen meenemen naar een andere OS X-machine, maar u kunt het ook opnemen in uw Linux-machines als u er een gebruikt. Met het .profile-bestand bevindt de snelheidsupgrade van uw workflow zich in een enkel bestand dat u gemakkelijk kunt meenemen.
Speel ermee, bedenk wat meer aliassen die nuttig kunnen zijn (zoals het tonen / verbergen van verborgen bestanden met één enkele opdracht - ik laat je dat zelf uitvogelen) en geef je workflowsnelheid een level-up.