Nykypäivän verkkomaailmassa taistelu käyttäjien houkuttelemiseksi jatkuu edelleen, ja sovellusten valmistajat suosivat mobiili- tai verkkosovelluksia. Työpöytäsovellukset ovat yhä vähemmän merkityksellisiä. Lisäksi heillä on taipumus olla vain rikkaita verkkosovelluksia - Electron on suosittu alusta.
Tarkoittaako tämä sitä, että hylkäämme pian työpöydän alustana? Ei, tietysti ei, en sanoisi sitä. Vaikka GUI-sovellukset näyttävät pysähtyneen viime aikoina, on olemassa joukko työpöytäsovelluksia, jotka kasvavat edelleen.
Oletko koskaan nähnyt elokuvaa hakkereiden kanssa? Suurimman osan ajasta nämä ihmiset näytetään työskentelevän monitorien edessä, joissa on jonkinlainen pääte (yleensä tummalla taustalla ja vaalealla etualalla). Tämä pääte puolestaan yleensä tulvii hahmoilla, joilla on ilmeisesti jokin merkitys niitä lukevalle henkilölle.
Tällaisia hakkereiden kuvauksia toiminnassa pilkataan usein ammattikehittäjät , ja on jopa joitain ohjelmia, jotka simuloivat erilaisia 'hakkeri' -efektejä vain huvin vuoksi.
Reaalimaailmassa komentorivityökaluja ei kuitenkaan käytetä niiden viihde-arvoon.
Tässä artikkelissa keskitytään komentoriviliittymän (CLI) työkalujen käytäntöön. CLI-komentojen tunteminen ja laatutyökalujen käyttäminen voivat tehdä sinusta tuottavamman ja avata oven myös erilaisille automaation lähestymistavoille, jotka ovat paljon käytännöllisempiä tekstirajapintojen kuin GUI-sovellusten kanssa.
Voit parantaa tekemällä toistuvia tehtäviä käyttöliittymässä siihen pisteeseen, että useita napsautuksiasi kuulla yhtenä. Ongelmana on, että tämä ei paranna erikoistuneen komentosarjan tehokkuutta. Lisäksi samojen toimintojen suorittaminen manuaalisesti tuo mukanaan sekä kognitiivisen lisäkuormituksen että suuremman inhimillisen virheen mahdollisuuden. Kuten tavallista, luotamme tietokoneisiin tehtävien hoitamisessa, jotka ihmiset saattavat kokea tylsiksi, toistuviksi tai ylivoimaisiksi.
On syytä tietää, että päätelaite voi tarjota monenlaisia liittymiä. On ei-interaktiivisia elementtejä, kuten Ls , jotka yksinkertaisesti ottavat parametrit ja tuottavat tuloksen. On interaktiivisia tai puoli-interaktiivisia rajapintoja, jotka löytyvät useimmiten paketinhallinnasta. ('Haluatko varmasti jatkaa asennusta vahvistamattomasta lähteestä?') Sitten on olemassa tekstikäyttöliittymiä (TUI), jotka ovat interaktiivisia käyttöliittymäsovelluksia, jotka on suunniteltu sopimaan päätelaitteen rajoituksiin. Luultavasti tunnetuin on Keskiyön komentaja (mc), erittäin suosittu klooni (90-luvulta) Nortonin komentaja .
Jos haluat tulla konsolin asukkaaksi, sinun on varustettava itsellesi mahdollisimman pieni joukko komentorivin kehitystyökaluja - välttämättömiä. Asiat, joiden kanssa et todellakaan voi elää, ovat yksi interaktiivinen kuori (tavoittele jotain nykyaikaista, jolla on kätevä ripsien loppu) ja a tekstieditori .
Nyt mainitsen UNIX-filosofia , joka on usein perusta työkalun tekijöiden suunnittelupäätöksille, olipa tietoinen vai ei. Jotkut keskeisistä kohdista voidaan tiivistää seuraavasti:
Ensimmäinen asia, jonka näet terminaalia avattaessa, on kuori. Tämä on osa, joka mahdollistaa käyttäjän ja koneen välisen vuorovaikutuksen. Se tulkitsee komentosi, jakaa ne ohjelmien nimiksi ja argumenteiksi ja suorittaa kaikki siihen heittämäsi komentot.
Historiallisesti kuoria on ollut monia erilaisia. Suosituimpia ovat csh (C Shell) ja erilaiset Bourne Shell -toteutukset (tunnetaan yleisesti yksinkertaisesti nimellä sh ). Bourne Shell levisi Korn Shelliin, joka sai myös jonkin verran pitoa ja jota harrastajat käyttävät edelleen. Csh on tällä hetkellä oletuskuori joissakin BSD-järjestelmissä, kun taas melkein kaikki muut UNIX-tyyppiset käyttöjärjestelmät suosivat jonkin tyyppistä Bourne Shelliä. Linux-jakelut suosivat yleensä lyödä Mac OS X: n mukana tulee zsh oletusvaihtoehtona.
On muitakin mahdollisuuksia, mutta ne ovat paljon vähemmän suosittuja, paitsi Microsoft PowerShell Windows-järjestelmissä. PowerShell on saanut inspiraationsa osittain interaktiivisista UNIX-kuoreista, kuten zsh, ja osittain .NET-ajonaikaisesta toiminnasta. Sen sijaan, että kaikkea pidettäisiin tekstinä, yleisenä käsitteenä UNIX-maailmassa, se mahdollistaa olio-orientoidun datankäsittelyn.
Vaikka Microsoft PowerShell on melko suosittu Windows-ympäristössä, monet UNIX-alkuperää olevat ohjelmat (merkittävimmät ovat Git, Autotools tai Make) haluavat mieluummin joitain Bourne Shellin muunnelmia. Tämän vuoksi hankkeet, kuten msys (sisältyy Git for Windows -sovellukseen), Cygwin , tai viimeaikainen [WSL] Microsoft . Jos haluat Linux-tyyppisen tuntuman Windowsissa, MSys on paras vaihtoehto tässä. Jos haluat monipuolisen Linux-ympäristön, joka kykenee suorittamaan tavanomaisia Linux-binäärejä, WSL on oikea tapa edetä. Jostain välissä olevasta: UNIX-sovellusliittymä, mutta käännetty Windowsin suoritustiedostona (käytä sitä vain, kun tiedät todella, miksi sitä tarvitset) -Cygwin on vastaus.
Kun olet tutustunut kuoreesi, haluat hankkia hyödyllisiä taitoja. Koska suurin osa koodaustyöstä kiertää tekstin kirjoittamisen (koodi, README, vahvistusviestit), interaktiivisten tekstieditorien hyvä tuntemus on välttämätöntä. Valittavanasi on monia, ja koska toimittaja on yksi kehittäjien tarpeellisimmista työkaluista, on todennäköisesti niin monta mielipidettä, mikä editori on paras.
Valtaosa suositut tekstieditorit voidaan jakaa kahteen perusryhmään: Yksinkertaiset tekstieditorit Y ohjelmoitavat tekstieditorit .
Molemmat voivat olla hyviä koodin kirjoittamiseen, mutta kuten nimestä käy ilmi, ohjelmoitavat tarjoavat mahdollisuuden muokata ja muokata editoria vastaamaan täydellisesti tarpeitasi. Tällä on kuitenkin hinta, koska heillä on taipumus olla jyrkempi oppimiskäyrä, ja niiden perustaminen voi kestää kauemmin.
Yksinkertaisten tekstieditorien joukossa GNU Nano se on yleisimpiä. Se on itse asiassa toimittajan klooni huippu joten jos yhtä ei ole käytettävissä järjestelmässäsi, voit kokeilla toista. Toinen nykyaikaisempi vaihtoehto molemmille on toimittaja mikro . Jos haluat jotain yksinkertaista ja laajennettavaa samanaikaisesti, tämä on hyvä paikka aloittaa.
Monet kehittäjät luottavat ohjelmoitaviin muokkaajiin eri aloilta, kuten tulin Y GNU Emacs . Molemmat toimittajat voivat toimia konsoli- tai GUI-tilassa, ja molemmilla oli vaikutuksia muissa ohjelmistoissa esiintyviin avainten sidoksiin. Molemmat tarjoavat API: n lisäksi myös todellisia sisäänrakennettuja ohjelmointikieliä. Emacs keskittyy LISP: ään ja Vim käyttää omaa VimL: ää, mutta se tarjoaa myös rajapintoja muille suosituille komentosarjakielille (kuten Lua, Perl, Python tai Ruby). Mainitsemisen arvoinen on myös uudempi lähestymistapa Vimiin, nimeltään Neovim koska se alkaa saada vakavaa seuraajaa.
Se voi olla hämmentävää, mutta siellä on myös toimittaja nimeltä me joka on Vimin edeltäjä (mikä muuten tarkoittaa ' Me parantunut'). Se on paljon yksinkertaisempi kuin Vim, mutta jos olet tarpeeksi luottavainen kirjoittamaan Vimiin, sen ei pitäisi olla haaste sinulle, jos pidät tarpeellisena käyttää vi: tä.
Koska pico / GNU Nano ja vi / Vim on yleensä esiasennettu useisiin järjestelmiin, on hyvä ainakin ymmärtää niiden perusasiat (Vimistä poistuminen on tunnetusti vaikea ongelma aloittelijoille). Tällä tavalla, jos sinun on muokattava jotain etäkoneella, se on valmis riippumatta siitä, mikä editori on jo olemassa. Yksityisellä laitteellasi voit käyttää mitä tahansa editoria, joka on sinulle miellyttävin.
Viimeinen asia, joka on pidettävä mielessä, on, että järjestelmälläsi voi olla ns. Oletuseditori.
Ympäristömuuttuja $ EDITOR
osoittaa oletuseditoriin ja Bourne-yhteensopivissa kuoreissa (sh, bash, ksh, zsh) näet sen kirjoittamalla echo $ EDITOR
. Jos arvo eroaa henkilökohtaisesta valinnastasi, voit asettaa sen lisäämällä export EDITOR = my-awesome-editor
komentotulkin suorituksen kokoonpanoon ( ~ / .profile
, ~. / Bashrc
, ~ /. zshrc
ja niin edelleen).
Muut ohjelmat, kuten versionhallintajärjestelmät ja sähköpostiohjelmat, käyttävät tätä editoria, kun he tarvitsevat pidemmän tekstinsyötön.
Heti kun aloitat vakavien asioiden tekemisen CLI: ssä, törmäät siihen, että pystyt pitämään vain yhden sovelluksen auki milloin tahansa. Koodaamisen yhteydessä haluat ehkä muokata koodia, suorittaa sen, korjata virheet ja suorittaa uudelleen. Kun etsit virhettä, haluat ehkä listata lokit ja nähdä, mitä kirjataan, kun lähetät pyynnön palvelimelle. Tyypillisesti tämä tarkoittaa jatkuvaa vaihtamista kahden sovelluksen välillä tai useiden pääteikkunoiden avaamista.
Tässä päätelaite multiplekseri voi auttaa sinua. Kun puhutaan multipleksereistä, jotkut ihmiset olettavat heti, että aihe on GNU-näyttö . Se oli ensimmäinen laatuaan laajennettu työkalu, ja se on edelleen erittäin suosittu nykyään (se asennetaan usein oletusarvoisesti). Sen moderni korvaus on tmux mikä ei yllättäen tarkoittaa t erminaali mu moninkertainen x On.'
Näiden kahden avulla voit avata useamman kuin yhden ikkunan tietyssä pääteistunnossa ja vaihtaa näiden istuntojen välillä vapaasti. Niiden avulla voit jakaa ikkunat paneeleiksi, mikä auttaa ajaa useita sovelluksia samanaikaisesti ja tarkkailla niiden tuottoa reaaliajassa (muuttamatta ikkunoita). Lisäksi he työskentelevät asiakas-palvelin-tilassa, mikä tarkoittaa, että voit irrottaa ne milloin tahansa ja palata myöhemmin jatkamaan työtä siellä, missä jäit. Tämä viimeinen ominaisuus johti näytön suosioon, kun ihmiset halusivat jatkuvia istuntoja. IRC .
Useimmissa käyttötapauksissa GNU-näytön tai tmuxin pitäisi olla hyvä sinulle, mutta jos jostain syystä huomaat, että ne ovat liian raskaita resursseille, on myös kevyempiä vaihtoehtoja. On dtach / atach ja on abdQco . Niiden soveltamisala on tarkoituksella rajoitettu, mutta ne voivat hoitaa tehtävänsä hyvin.
Tässä vaiheessa voit alkaa miettiä kaikkien edellä mainittujen ohjelmistojen asentamista koneellesi. Yksi ongelma on, että jokaisella työkalulla on erilaiset asennusohjeet. Joskus sinun on ladattava lähteet ja koottava ne itse, joskus saat itsenäisen binaarin ja joskus saat kutsutun binaaripaketti , mikä yleensä tarkoittaa pakattua suoritettavaa tiedostoa yhdessä joidenkin metatietojen kanssa.
Ohjelmistojen asennusprosessin helpottamiseksi käyttöjärjestelmien luojat keksivät pakettien hallinta-konseptin. Yksinkertaisesti sanottuna paketinhallinta on kuin sovelluskauppa CLI: lle ja työpöytäsovelluksille. Se edeltää todellisia sovelluskauppoja muutamalla vuosikymmenellä. Ongelmana on, että melkein jokaisella järjestelmällä on oma paketinhallinta. Debian-, Ubuntu- ja GNU / Linux-johdannaiset jakelut käyttävät APT: tä, Red Hat -pohjaiset jakelut suosivat yumia tai DNF: ää, muilla Linux-jakeluilla on eksoottisempia tapoja asentaa ohjelmistoja ja niin myös BSD: n eri kloonit. Sisäänrakennettujen pakettien hallintaohjelmien lisäksi on myös käyttäjän asentamia kuten Suklaa MS Windowsille ja Homebrew Mac OS X: lle / Mac OS: lle. Kun haluat kirjoittaa ohjeet ohjelman asentamiseen, voit kirjoittaa tapauksia kullekin näistä järjestelmistä. Se tuntuu liikaa, eikö olekin?
Onneksi viimeinen mainituista järjestelmistä, Homebrew, voi olla kannettavin, kiitos Linuxbrew , Homebrew-portti GNU / Linux-järjestelmille. Hauska on, että se toimii jopa WSL: ssä, jos haluat saada samanlaisen käyttökokemuksen Microsoft Windowsissa. Huomaa, että WSL: ää ei tueta virallisesti.
Joten mitä muuta Homebrew tarjoaa siirrettävyyden lisäksi? Ensinnäkin se ei häiritse järjestelmäpaketteja, joten kaikki asentamasi asuvat erillisessä käyttöjärjestelmän kerroksessa. Pakettien asentamiseen ei myöskään vaadita juurioikeuksia. Sinulla voi siis olla vakaita ja testattuja järjestelmäkokonaisuuksia, mutta samalla tarkistaa uudemmat versiosi uhraamatta järjestelmän vakautta.
Jos haluat testata toimittajia, mainitsin aiemmin, että kaikki mitä sinun tarvitsee tehdä Homebrew- tai Linuxbrew-järjestelmässä, suorita tämä komento:
brew install emacs micro nano vim neovim
.
Se, mistä olemme jo keskustelleet, on epäilemättä hyödyllistä työlle. Mutta on myös sovelluksia, jotka, vaikka eivät ole välttämättömiä, tuovat silti mukavuutta jokapäiväiseen elämään. Et ehkä tarvitse niitä, mutta ne on aina syytä tietää.
Komentohistorian haku voi olla työlästä. Vaikka bash ja zsh ovat Ctrl + R-näppäimet, se näyttää vain yhden korvauksen kerrallaan. Lisäksi sinun on kirjoitettava tarkka teksti, jota käytit aiemmin. Koska tämä on melko yleinen toiminto, näyttää komentojonon käytön jälkeen olevan hyvä paikka parantaa.
Interaktiiviset suodattimet, kuten fzy , percol , pala tai fzf auttaa suodattamaan pitkiä tekstirivejä. Tämä voi olla edellä mainittu komentohistoria, kaikki projektihakemiston koodirivit tai luettelo find.
Yleisenä ajatuksena on esitellä sinulle kaikki käytettävissä olevat rivit ensin ja luottaa sitten sumeaihin hakualgoritmeihin suodattamaan kaikki, jotka eivät vastaa toisiaan.
Esimerkiksi linkittämällä Ctrl + R ja fzf näyttöön tulee luettelo uusimmista komennoista, joita voit selata nuolilla ylös tai alas tai kirjoittaa git
näyttää vain komennot, joilla Git on jonnekin sisällä. Henkilökohtaisesti työskennellessäni kuoren kanssa, jolla ei ole interaktiivista suodatinta, tunnen yhtäkkiä olevan hukkaan. Tämä ominaisuus on todella vakuuttava!
Voit myös asettaa interaktiivisen suodattimen saataville ohjelmoitavaan tekstieditoriin. Tällä tavalla sinulla on yhtenäiset hakuominaisuudet kuoresi ja editorisi välillä.
Facebook PathPicker se oli suuri apu työskennellessäni pääasiassa C ++ -projektien kanssa. Kääntäjän tuottama virheloki voi olla melko suuri ja epämiellyttävä, ja kyky löytää todelliset polut kyseisen lokin sisällä oli valtava tuottavuus.
Missä tahansa tekstitiedostossa tai näytön sisällössä, kun sitä käytetään tmux , fpp suodattaa kaiken paitsi tiedostopolut. Sitten se esittelee käyttöliittymän, jossa voit valita yhden tai useamman näistä poluista ja suorittaa komennon niiden kanssa. Yleisin vastaus olisi tietysti tiedostojen avaaminen editorissa, mikä on oletustoiminto.
Ainakin yhtä hankkeista, joissa työskentelet, todennäköisesti käytetään Mennä versionhallintajärjestelmänä. Vaikka Git on täysin tehokas, se ei ole erinomaisen käyttäjäkokemuksen huippu. Säästääksesi vähän stressiä lukemalla kaikki Git-ohje $ SUBCOMMAND
-vaihtoehdot, suosittelen tarkistamaan tig . Se tarjoaa mukavan konsolin käyttöliittymän toiminnoille, jotka hyötyvät siitä, kuten log
tai blame
.
Toinen työkalu, jonka tarkoituksena on auttaa GIt-käyttäjiä, on tehdä , joka on lyhenne sanoista Korjaa kaikki ristiriidat . Kuten olet ehkä arvannut, se on kätevä, kun törmäät yhteen sulautumisen tai ohittamisen aikana. Se on vaihtoehto muille yhdistämistyökaluille, kuten vimdiff.
90-luvulla oli aika, jolloin kaikki halusivat kahden paneelin tiedostojen hallinnan. Suuntaus alkoi Nortonin komentaja . Monet muut seurasivat samaa polkua, mutta se, joka edelleen näkee vakaan käyttäjäkunnan, on Keskiyön komentaja . Ilmeisin käyttötapaus on mc: n käyttö paikallisten tiedostojen käsittelyssä, mutta se on myös erittäin hyödyllinen työskenneltäessä etäkoneiden kanssa.
Kuten useimmat komentoriviohjelmat, se on erittäin kevyt, joten sen suorittaminen ssh: n kautta ei ole ongelma, ja tuettujen FTP- ja FISH-protokollien ansiosta paikallinen tiedostojärjestelmä voi näkyä paneelissa ja kaukosäädin toisessa. Kätevä toiminto, kun haluat välttää tiedostojen nimien kirjoittamista tai kopiointia argumentteina scp: hen.
'Kaikki työ ja ei leikkiä tekevät Jackista tylsän pojan.' he sanovat. On olemassa monia ohjelmia, komentoriviä ja niin edelleen, jotka ovat vain hauskaa. Videopeli Rogue kuuluu tähän luokkaan. Hän antoi jopa koko pelilajille nimen! Muita suosittuja leluja ovat onni Y lehmänpäivä , mikä voi tehdä siitä vähemmän tylsän päivän, jos käytät niitä esimerkiksi jossain CI-skripteissäsi.
Mutta joillekin meistä konsolin käytön tärkein piirre on tunne hakkeri elokuvissa. Ei enää salaisuuksia Y Hollywood Hacker he edustavat tätä ryhmää hyvin. Kokeile, kun joku seuraa sinua työskentelemässä, ja hakkereidesi uskottavuus kasvaa varmasti!
Joten mikä on niin hienoa komentorivillä, joka korvaa kulutetut tunnit kuoren, editorin ja kaikkien kytkinten käytön oppimisessa eri sovelluksissa? Lyhyt vastaus on tuottavuus , joka tulee kahdesta asiasta:
Yksi on se, että kun sinulle esitetään vain pääteikkuna eikä mitään muuta, voit keskittyä voimakkaammin, koska ei ole paljon häiritä sinua. Ei ilmoituksia, ei mainoksia, ei kuvia söpöistä pennuista. Vain sinä ja tavoitteesi.
Toinen asia on automaatio. Voit laittaa useita toimintoja, jotka on usein yhdistetty komentosarjaan, ja kutsua sitä myöhemmin kokonaisuutena sen sijaan, että kirjoitat ne kaikki käsin joka kerta. Voit palata nopeasti kirjoittamaasi erityisen monimutkaiseen komentoon etsimällä komentotulkihistoriaasi. Pohjimmiltaan voit tallentaa ja toistaa mitä tahansa, ja koodi on saatavana dokumentaationa tekemäsi.
Kyky lisätä aliaksia vaikuttaa myös tuloihin. Esimerkiksi huomaan itseni usein luovan Gitissä sitoumuksia päivittämällä saman täydelliseksi (toistaiseksi). Kun olen valmistellut halutut tiedostot, suoritan git carmh
. Älä yritä etsiä sitä käsikirjasta, koska se on yksityinen aliakseni, mikä tarkoittaa commit --amend --reuse-message = HEAD
. Tallenna kirjoittaminen varmasti.
Asia on, että ihmiset kyllästyvät toistamaan samoja toimia uudestaan ja uudestaan, ja ikävystyminen vähentää keskittymistä. Tämä voi johtaa virheisiin ja virheisiin. Ainoa tapa välttää niitä ei ole kietoa korkean ja matalan fokuksen toimintoja. Kirjoituskoodi on erittäin keskittynyttä ja sitouttamisviestin ja sisällön tarkistaminen on erittäin tärkeää, mutta kun sinun on toistettava useita mekaanisia napsautuksia täällä ja siellä päästäkseen sitoutumisen tarkistusvaiheeseen, kohdistus todennäköisesti pienenee. Komentorivi ei tietenkään ole vapaa tällaisista mekaanisista toiminnoista, mutta automaation ansiosta voit välttää suurimman osan niistä.
Sinulla saattaa olla jo osa joistakin tai kaikista tässä artikkelissa mainituista komentorivityökaluista. Olet ehkä oppinut jotain uutta ja hyödyllistä lukemalla sen. Jos on, niin erinomainen. Tavoitteenani ei ollut tarjota yleiskatsausta ja vertailua erilaisista työkaluista, vaan esitellä joitain tärkeitä työkaluja, jotka olen kokenut hyödylliseksi päivittäisessä työssäni, toivoen, että saatat löytää myös niistä hyödyllisiä.
Siellä on paljon mielenkiintoisempia komentoriviohjelmia, ja jos olet kiinnostunut niistä, suosittelen tutustumaan kuratoituun luetteloon Mahtava kuori joistakin parhaista käytettävissä olevista shell-komennoista
Useimmilla graafisen käyttöliittymän sovelluksilla on päätelaitevastaava. Tämä sisältää verkkoselaimet, sähköpostiohjelmat, chat-asiakkaat (IRC, Slack, XMPP), PIM-paketit tai laskentataulukot. Jos tiedät hyviä esityksiä, joita en ole maininnut, ilmoita ne kommenteissa.