Fremskynde Terminal Workflow med kommandoalaser og .profile

Hva er de mystiske ".profile" og ".bash_profile" -filene du har hørt om? Hvordan går du om å legge til noe på PATH, som mange programmer ber deg om å gjøre (men ingen forklare hvordan)? Hva er aliaser og hvordan kan de hjelpe arbeidsflyten din? Lær alt dette og mye mer i denne artikkelen om å ta dypere kontroll over OS X.


Lære å bruke .profile for å sette opp aliaser

Hvis du har gjort noe annet enn å surfe sosiale nettverk og se filmer på Mac, vet du at det er noen mystiske ting som skjer under hetten. Kanskje du har installert et program som Homebrew pakkebehandling som ba deg om å gjøre noe uklart som "Legg til / usr / local / sbin på din vei", eller kanskje du har hørt ordet "alias command" nevnt eller hadde en søknaden forteller deg å "legge til X i profilen din".

Aliasene som presenteres i denne artikkelen, vil øke hastigheten på arbeidsflyten din.

Gjennom denne artikkelen er det min hensikt å dekke grunnleggende om disse tilsynelatende svarte magiske handlinger og for å få deg introdusert til den fantastiske verden av aliaser. Mens du oppretter aliaser på den måten som er beskrevet i denne artikkelen, vil være uvurderlig for programvareutviklere, vil tilfeldige brukere lett finne en bruk for dem også.

Hva er Aliases?

Aliaser er snarveier til kommandoer. For eksempel (hvis du bruker Terminal til å gjøre noe, som å gå inn i ditt / Brukere / [brukernavn] / Nettsteder / mappe, bruker du sannsynligvis

$ cd / Brukere / [brukernavn] / Nettsteder

eller

$ cd ~ / Nettsteder

Når du er der, må du sannsynligvis skrive inn et bestemt prosjekt, (for eksempel "myProject"), og du gjør dette ved å skrive

$ cd myProject

Mens du skriver alt ut i en kommando, slik som:

$ cd ~ / Nettsteder / myProject

er ikke veldig tidkrevende, det kan bli kjedelig, spesielt i dypt nestede mapper, eller hvis du trenger å bytte mapper ofte.

Med aliaser kan du gjøre det raskere.

Aliaser hjelper deg med å forkorte lange kommandoer eller kommandokjeder.

Prøv å åpne Terminal (ved å gå til Programmer -> Verktøy -> Terminal) og skrive

$ alias goto_web = "cd ~ / Nettsteder"

Kontroller at en mappe som heter Sites, finnes i din hjemmemappe, og opprett en mappeprofil i den. Deretter utfør følgende kommando i terminal:

$ alias goto_myP = "goto_web; cd myProject"

Skriv nå "goto_myP" og se på magien som skjer når du trykker på Enter. Det gikk automatisk inn i ~ / Sites / myProject, uansett hvor du var da du skrev det ut. Fordelene er todelt:

  1. Du kan skrive goto_ og trykke på TAB-tasten for å få en liste over mulige goto-aliaser du har definert hittil.
  2. Hvis rotmappen til webprosjektene dine endres (for eksempel Nettsteder til MySites), er alt du trenger å gjøre, å endre hovedgoto_web-aliaset, og endringene kaskader til alle de andre som bruker det.

Sette opp aliaser manuelt

Trøbbel i paradis

Det er et problem, skjønt. Så snart vi logger ut, er aliasene vi definerte denne veien borte. De lagres ikke hvor som helst, og operativsystemet ble ikke fortalt å sette dem opp igjen når vi logger inn igjen. Så hvordan håndterer vi dette problemet? .Profilfilen.

Så snart brukeren logger ut, forsvinner de terminaldefinerte aliasene.

La oss starte med det grunnleggende.

Hva er .profile?

Hvis en fils navn starter med "." (dot) karakter, den filen er skjult

"." (prikk) foran bestemte filnavn betyr at filen er "skjult". Denne notasjonen er vanligvis der for systemfiler som ikke bør være synlige som standard og vil enten bare komme i vei ved å være irriterende eller ved å være volatile fordi deres endring kan påvirke systemet på en uønsket måte.

.DS_Store-filene tilhører for eksempel i kategorien "irriterende" og er opprettet av søknaden "Finder" i hver mappe du åpner med den. Hvis du går gjennom mapper gjennom terminalen ved hjelp av "cd mappenavn", blir ikke .DS_Store-filene opprettet. Finder lagrer imidlertid noen informasjon i dem som lar den holde oversikt over filsystemet ditt og forbedre surfing og søkbarhet.

I et beslektet notat er den nevnte .profilfilen en skjult fil. Det er en valgfri fil som forteller systemet som kommandoer kjører når brukeren hvis profilfil den logger inn. For eksempel, hvis brukernavnet mitt er bruno og det er en .profil i / Brukere / bruno /, alt innholdet vil bli utført under innloggingsprosedyren.

Du kan se hvor vi skal med dette, ikke sant? Vi bruker .profilfilen til å lagre våre aliaskommandoer ovenfra, for å utføre dem på hvert innlogging, slik at disse aliasene blir vedholdende.

Innholdet i en .profilfil utføres på hver logg inn av eieren av filen

Hva er .bash_profilen da? Det er akkurat det samme, men under et annet navn. Unix-skallet du logger på, i dette tilfellet OS X, ser etter etc / profil og laster det hvis det eksisterer. Da ser det etter ~ / .bash_profile, ~ / .bash_login og endelig ~ / .profile, og laster den første av disse finner man.

Jeg bruker .profile, men hvis du foretrekker eller har noen av de andre, kan du omdøpe / fusjonere dem til en, gjøre hva du vil med dem. Syntaxen deres er identisk - bare husk at bare en er lastet, og operativsystemet ser etter dem i den rekkefølgen som er nevnt ovenfor. Mer informasjon om disse filene finnes her.

Finne .profil

Men hvis det er skjult, hvordan ser vi det? Hvordan kan vi redigere en fil vi ikke skal se? Som den store kommandanten Hannibal ville si - "vi vil enten finne en [.profile-fil], eller lag en". Ok, han sa "vei", men kjernen er den samme. Dette er de to vanligste måtene å vise skjulte filer på:

Den første er å gjøre dem synlige for deg, men likevel skjult. Denne måten anbefales ikke for uformelle brukere. Skriv inn følgende kommando i Terminal:

standardinnstillinger skriv com.apple.finder AppleShowAllFiles TRUE

Følg dette opp med en Finder-omstart:

$ killall Finder

Dette fortalte Finder å slutte å ignorere skjulte filer i mappene den åpner, og tvunget den til å starte på nytt og bekrefte de nye innstillingene. Hvis du åpner en mappe i Finder nå, bør du se en .DS_Store-fil i den, og kanskje til og med noen andre skjulte mapper og filer som i min egen hjemmemappe under.


Etter å ha gjort metode én, vil du kunne se skjulte filer og mapper i Finder

Den andre metoden er å se bare på filene du trenger, gjennom Terminal. Start terminal, og gå til din hjemmemappe ved å skrive følgende:

$ cd ~ /

Tips: Du kan også gå til din hjemmemappe ved å bare skrive inn cd og følge den opp med et mellomrom.

Når du er der, skriv inn dette:

$ ls -a

Dette lister (ls) innholdet i mappen du er i, og -en parameteren vi la til, forteller at den viser "alle" filer - inkludert skjulte.


Ved å bruke metode to, vil skjulte filer og mapper bli avslørt i Terminal

Bruk en av de to metodene ovenfor for å finne ut hvilke skjulte filer hjemmappen inneholder, og kontroller at en .profil eller .bash_profile-fil er der. Hvis en av dem eksisterer, flott. Hvis de ikke er til stede, opprett .profile-filen ved å bruke Terminal, slik som:

$ touch ~ / .profile

På en eller annen måte er vi nå sikker på at .profilfilen eksisterer. La oss nå legge til noen kommandoer til det!

Populere .profilfilen

Vi må først åpne filen for redigering. Siden det er enklere å redigere en fil i et tekstredigeringsprogram med en faktisk GUI, vil vi ikke redigere gjennom terminal, men gjennom TextEdit. Skriv inn følgende:

$ open -e ~ / .profile

Eller bare dobbeltklikk filen hvis du brukte metode en for å vise skjulte filer og velge TextEdit fra vinduet Programvalg. Kommandoen "åpen" åpner en fil ved hjelp av standardprogrammet hvis det kan finne ut hva det er, -e forteller det å bruke standard tekstredigeringsprogram for det nåværende operativsystemet, og den siste delen er filen vi vil åpne.

Når filen er åpen, kan vi legge til følgende linjer:

 alias goto_web = "cd ~ / Nettsteder" alias goto_myP = "goto_web; cd myProject" alias reload_profile = ". ~ / .profile"

Lagre og avslutt nå. De to første aliasene har allerede blitt forklart ovenfor. Når det gjelder den tredje - hvis du noen gang endrer .profilfilens midtsession som vi nettopp gjorde, må den bli lastet opp for å tre i kraft.

Du vil vanligvis gjøre dette manuelt ved å skrive

$ kilde ~ / .profile

eller bare

$. ~ / .Profile

Men vi kan like godt gjøre livet enklere rett utenfor flaggermuset og definere et alias for det også. Vi kan imidlertid ikke bruke det enda, fordi profilet ikke har blitt lastet, for å hindre at denne fanger 22 fra å smelte våre hjerner, utfør en av kommandoene ovenfor (manuell tilbakestilling).

Hvis du noensinne endrer .profilfilens midtsession, må den bli lastet opp for å tre i kraft.

Når du er ferdig, gi det en tur. Skriv "goto_web" og se om det fungerer. Når du reboot eller logger ut og logger på igjen, bør aliaset fortsatt være i live og skal fortsatt fungere. "Reload_profile" -aliaset vil nå fungere også.

Det er alt der er til det! Du kan nå legge til dine egne aliaser. Ikke føl deg begrenset til bare goto aliaser heller (merk: de trenger ikke å bli kalt goto_ *, jeg kaller dem bare for gruppering), leker og eksperimenterer med dine favoritt Terminal-kommandoer. Her er en del av min egen fil med inline-kommentarer for din bekvemmelighet:


 # Se http://www.shellperson.net/using-sudo-with-an-alias/ alias sudo = "sudo" # Dette hjelper meg å redigere filer som min bruker ikke er eier av alias edit = "SUDO_EDITOR =" open -FWne "sudo -e" # Aliaset som tar meg hit - for å redigere disse aliasene alias edit_profile = "open -e ~ / .profile" # Jeg gjør mye webutvikling, så jeg må redigere disse ikke- eide filer ganske ofte alias edit_hosts = "edit / etc / hosts" alias edit_httpd = "edit /etc/apache2/httpd.conf" alias edit_php = "rediger /etc/php.ini" alias edit_vhosts = "edit / etc / apache2 / ekstra / httpd-vhosts.conf "# Noen av mine goto-kommandoer, inkludert en for å åpne php-utvidelsesmappen for når jeg trenger å installere egendefinerte utvidelser alias goto_mw =" goto_web; cd mindworks "alias goto_web =" cd ~ / Nettsteder "alias goto_phpext = "sudo open / usr / lib / php / extensions / no-debug-non-zts-20100525" # Dette aliaset ødelegger rekursivt alle .DS_Store-filer i mappen jeg er for øyeblikket i alias killDS = "find. DS_Store -type f -delete "# Et alias for å starte min tilpassede MySQL insta llation i stedet for standard en alias mysql = "/ usr / local / mysql-5.5.25-osx10.6-x86_64 / bin / mysql -u root" # Dette aliaset laster opp denne filaliaset reload_profile = ". ~ / .profile "# Mac sitter fast ofte og er ekstremt sakte og ustabil ved avstengning. Dette tvinger en nedleggelse. alias poweroff =" sudo / sbin / shutdown -h nå "# Innstilling for den nye UTF-8 terminalstøtten i Lion / Mountain Lion eksport LC_CTYPE = en_US.UTF-8 eksport LC_ALL = en_US.UTF-8 # Legger til alle disse stiene til PATH-variabelen. Tykktarmen (:) er sti separatoren. # Når du trenger å "legge til noe på banen" Du skal legge til banen til den kjørbare filen til denne listen over stier, skilt av et kolon. Eksporter PATH = "/ usr / local / bin: / usr / local / sbin: / usr / bin: / bin: / usr / sbin: / sbin: / usr / X11 / bin"

Konklusjon

Uansett om bruk av terminalen er uformell eller tung, kan .profilfilen gjøre livet ditt uendelig enklere. Å ha de mest brukte kommandoene alt på ett sted hvor du ikke bare kan se dem når du glemmer noen av dem, men også automatisk laster dem inn på hver innlogging, kan lett barbere timene av en arbeidsuke.

Hva er best, de fleste kommandoene er * nix-kompatible, så ikke bare kan du ta filen med deg til en annen OS X-maskin, du kan også inkludere den i Linux-maskinene dine hvis du bruker noen. Med .profilfilen er hastighetsoppgraderingen av arbeidsflyten din inneholdt i en enkelt fil du enkelt kan ta med deg.

Spill rundt med det, gjør opp noen flere aliaser som kan være nyttige (for eksempel vise / gjemme skjulte filer med en enkelt kommando - jeg lar deg finne ut den ene ut alene), og gi arbeidsflythastigheten et nivå opp.