O nai upu mai le matou ofisa fa'aliliu: e masani lava ona taumafai tagata uma e fa'aliliu mea fou ma lomiga, ma e le'o i matou. Ae o terminals e le o se mea e faʻafouina tasi i le vaiaso. O le mea lea, ua matou faaliliuina mo oe se tusiga a Antoine Beaupré, lomia i le tautotogo o le 2018: e ui lava i lona "tausaga" tele i tulaga faʻaonapo nei, i lo matou manatu, o mea e leʻi leiloa lona taua. E le gata i lea, o le amataga lenei o se faasologa o tala e lua, ae na matou filifili e tuʻufaʻatasia i latou i se tasi pou tele.
E iai se nofoaga fa'apitoa i fa'amaumauga fa'akomepiuta, ae i le tele o tausaga talu ai na fa'amalosia ai i latou e ola fa'atasi ma le laina fa'atonu ona o feso'ota'iga fa'akomepiuta ua fa'ateleina.
O nisi fa'amaufa'ailoga e iai ni pupu fa'ate'ia fa'ate'ia, fa'atasi ai ma le tele o lo'o i ai se seti o galuega e matua'i ese lava, mai le lagolago mo se feso'ota'iga fa'apipi'i i tusitusiga. E ui ina matou
O pito nei na ou iloiloina:
Atonu e le o ni lomiga lata mai, talu ai na ou faʻatapulaʻaina i fale mautu i le taimi o le tusitusi, lea na mafai ona ou taʻavale i luga o Debian 9 poʻo Fedora 27. Na o le pau lava le tuusaunoaga o Alacritty. E tupuga mai i le GPU-faʻavaveina faʻamau ma ua tusia i se gagana e le masani ai ma fou mo lenei galuega - Rust. Na ou le aofia ai upega tafaʻilagi mai laʻu iloiloga (e aofia ai i luga
lagolago Unicode
Na amata aʻu suʻega i le lagolago Unicode. Ole su'ega muamua ole fa'ailoga ole fa'aalia ole manoa Unicode mai
Ona o le faaletonu, o le xterm e faʻaaogaina le faʻamaufaʻailoga masani "fixed", lea, e tusa ai ma
O nei faʻamalama na ave i Fedora 27, aua na maua ai faʻaiʻuga sili atu nai lo Debian 9, lea e le mafai ai e nisi faʻasologa tuai o faʻamau (faʻapitoa mlterm) ona faʻaogaina lelei fonuka. O le mea e laki na fa'amauina ai i isi fa'aliliuga mulimuli ane.
Vaʻai nei pe faʻapefea ona faʻaalia le laina i le xterm. E foliga mai o le faailoga Mem ma le Semitic mulimuli
“O le tele o polokalame komepiuta e le mafai ona fa'aali sa'o tusitusiga e lua. Mo se faʻataʻitaʻiga, o le igoa Eperu "Sara" e aofia ai mataitusi agasala (ש) (lea e aliali mai i le itu taumatau), sosoo ai ma le resh (ר) ma mulimuli ane o ia (ה) (lea e tatau ona aliali mai i le agavale)."
O le tele o faʻailoga e le manuia lenei suʻega: Alacritty, VTE e maua mai Gnome ma XFCE terminals, urxvt, st ma xterm faʻaalia "Sara" i le faʻasologa faʻasolosolo, e peiseai na matou tusia le igoa "Aras".
O le isi fa'afitauli i tusitusiga fa'atasi, e mana'omia ona fa'aoga tutusa, aemaise lava pe a fa'afefiloi tusitusiga RTL ma LTR. O tusitusiga RTL e tatau ona tamo'e mai le itu taumatau o le fa'amalama fa'amalama, ae o le a le mea e tatau ona tupu mo fa'amau e le mafai ona fa'aogaina le LTR English? O le tele o latou e leai ni masini fa'apitoa ma fa'aoga uma tusitusiga i le agavale (e aofia ai i le Konsole). O tuusaunoaga o pterm ma mlterm, lea e tausisi i tulaga ma fa'aoga sa'o ia laina.
Puipuiga fa'aofi
O le isi vaega taua ua ou faailoaina o le puipuia o le fa'aofiina. E ui ina lauiloa lautele o sipela e pei o:
$ curl http://example.com/ | sh
o tulafono e tulei ai tulafono, e toaitiiti tagata latou te iloa o tulafono natia e mafai ona sosolo i totonu o le faʻamafanafanaga pe a kopi ma faapipii mai se upega tafaʻilagi, tusa lava pe a maeʻa suʻesuʻega faʻaeteete.
git clone git: //git.kernel.org/pub/scm/utils/kup/kup.git
e liua i se fa'alavelave pe a pasi mai le upega tafa'ilagi a Horn i totonu o le laina:
git clone /dev/null;
clear;
echo -n "Hello ";
whoami|tr -d 'n';
echo -e '!nThat was a bad idea. Don'"'"'t copy code from websites you don'"'"'t trust!
Here'"'"'s the first line of your /etc/passwd: ';
head -n1 /etc/passwd
git clone git://git.kernel.org/pub/scm/utils/kup/kup.git
E faapefea ona aoga? O lo'o iai le tulafono leaga i totonu o le poloka , lea e ave'esea mai le va'aiga a le tagata fa'aoga le CSS.
set enable-bracketed-paste on
Ae paga lea, o loʻo faʻaalia foi e le nofoaga o suʻega a Horn le auala e faʻafefe ai lenei puipuiga e ala i le faʻatulagaina o tusitusiga lava ia ma faʻamaeʻa le faʻaogaina o le Bracketed mode i ai. E aoga lenei mea ona e le sa'o sa'o ona fa'amama e nisi fa'asologa o le sola ese a'o le'i fa'aopoopoina a latou lava. Mo se faʻataʻitaʻiga, i aʻu e leʻi mafai lava ona faʻamaeʻaina suʻega a Konsole e tusa lava pe saʻo le faʻatulagaina .inputrc faila. O lona uiga e faigofie ona e fa'aleagaina lau fa'atulagaina o faiga ona o se talosaga e le'i lagolagoina po'o se atigi e le sa'o le fa'atulagaina. E sili ona mata'utia lenei mea pe a o'o i totonu o 'au'aunaga mamao, lea e le masani ai le fa'atulagaina o galuega fa'aeteete, aemaise lava pe a tele au masini mamao.
O se fofo lelei i lenei faʻafitauli o le faʻapipiʻi faʻamaufaʻailoga plugin mo le terminal urxvt, lea e na'o le fa'atoga e fa'aofi so'o se tusitusiga e iai laina fou. Ou te leʻi mauaina se filifiliga sili atu ona malupuipuia mo le osofaʻiga o tusitusiga na faʻamatalaina e Horn.
Tabs ma talaaga otooto
O se mea lauiloa i le taimi nei o le lagolago mo se faʻaoga faʻapipiʻi, lea o le a matou faʻamatalaina o se tasi faʻamalama faʻamalama o loʻo i ai le tele o isi faʻamau. O lenei galuega e eseese mo faʻamaufaʻailoga eseese, ma e ui lava e le lagolagoina e faʻamaufaʻailoga masani xterm faʻamau, o faʻaonaponei faʻaonaponei faʻapitoa e pei ole Xfce Terminal, GNOME Terminal ma Konsole o loʻo i ai lenei galuega. E lagolagoina fo'i e Urxvt fa'amau, ae na'o lou fa'aogaina o se fa'apipi'i. Ae i le tulaga o le tab support lava ia, Terminator o le taʻitaʻi e le faʻamaonia: e le gata e lagolagoina tabs, ae mafai foi ona faʻatulagaina faʻamau i soʻo se faʻatonuga (silasila i le ata i lalo).
O le isi vaega o Terminator o le mafai lea ona "vaega" faʻatasi nei faʻamau ma tuʻuina atu tutusa ki i le tele o faʻamau i le taimi e tasi, e tuʻuina atu ai se meafaigaluega faʻapitoa mo le faʻatinoina o galuega tetele i luga o le tele o sapalai i le taimi e tasi. O lo'o fa'atinoina fo'i se vaega fa'apena i Konsole. Ina ia faʻaogaina lenei faʻaoga i isi faʻauʻuga, e tatau ona e faʻaogaina polokalama faʻapitoa e pei ole
E sili atu le lelei o laupepa pe a fetaui ma faʻamatalaga: mo se faʻataʻitaʻiga, e mafai ona e maua le tasi laupepa mo imeli, isi mo talatalanoaga, ma isi. E lagolagoina lelei e le Konsole Terminal ma le GNOME Terminal. E fa'ataga uma e ta'i ta'itasi e otometi ona fa'alauiloa lana lava fa'amatalaga. E lagolagoina fo'i e Terminator fa'amatalaga, ae ou te le'i maua se auala e otometi ai ona fa'alauiloa nisi o polokalame pe a e tatalaina se lisi fa'apitoa. O isi fa'aupuga e leai se manatu o le "fa'amatalaga" i mea uma.
Ruffles
O le mea mulimuli o le a ou faʻamatalaina i le vaega muamua o lenei tusiga o le faʻaalia o faʻamau. Mo se faʻataʻitaʻiga GNOME, Xfce ma urxvt lagolago le manino, ae talu ai nei na tuʻu ai le lagolago mo ata pito i tua, faʻamalosia nisi tagata faʻaoga e sui i le laina.
E su'esu'e fo'i e nisi fa'amaufa'ailoga tusitusiga mo fa'ata'ita'iga URL ina ia mafai ai ona kiliki so'otaga. E fa'atatau lea i fa'amau uma e maua mai i le VTE, a'o mana'omia e le urxvt se fa'apipi'i fa'apitoa e fa'aliliu ai URL ile kiliki po'o le fa'aogaina o le ala pupuu. O isi fa'ailoga na ou su'eina fa'aaliga URL i isi auala.
Ma le mea mulimuli, o se faiga fou i fa'amaufa'ailoga o le filifiliga lea a le pa'u ta'ai. Mo se faʻataʻitaʻiga, st e leai se taʻavale paʻu; e manatu o le a faʻaaogaina e le tagata faʻaoga se faʻasologa tele e pei o tmux ma
Alacritty foi e leai ni backscroll buffers, ae
So'ofa'atasi
I le vaega lona lua o mea (i le ulua'i tala ia e lua tala eseese - approx. auala) o le a matou faʻatusatusaina le faʻatinoga, faʻaogaina o mafaufauga ma le faʻaogaina. Ae ua mafai ona tatou iloa o nisi o terminals o loʻo fesiligia e iai ni faʻaletonu matuia. Mo se faʻataʻitaʻiga, o tagata faʻaoga e masani ona galulue faʻatasi ma tusitusiga RTL atonu e manaʻo e mafaufau i le mlterm ma le pterm, aua e sili atu i latou i le taulimaina o galuega tutusa nai lo isi. Na lelei foi le faatinoga a Konsole. O tagata fa'aoga e le galulue i fa'amaumauga RTL e mafai ona filifili se isi mea.
E tusa ai ma le puipuiga mai le faʻaofiina o tulafono leaga, urxvt e tu i fafo ona o lona faʻatinoina faʻapitoa o le puipuiga mai lenei ituaiga o osofaʻiga, lea e foliga mai e faigofie ia te aʻu. Mo i latou e su'e logo ma faaili, Konsole e aoga le va'ai. Ma le mea mulimuli, e taua le matauina o le VTE o se faʻavae sili ona lelei mo faʻamau, lea e faʻamaonia ai le lagolago lanu, faʻamaonia URL, ma isi. I le tepa muamua, o le laina faʻaletonu e sau ma lau siosiomaga e sili ona e fiafia i ai e mafai ona ausia uma manaʻoga, ae tuʻu le fesili lenei seia tatou malamalama i le faʻatinoga.
Sei faaauau le talanoaga
I se tulaga lautele, o le faʻatinoina o faʻamaufaʻailoga i totonu lava ia e ono foliga mai o se faʻafitauli mamao, ae e foliga mai, o nisi oi latou e faʻaalia le maualuga tele o le taofiofia mo polokalama o se ituaiga faʻavae. E le gata i lea, o le a tatou vaʻavaʻai i le mea e masani ona taʻua o le "saosaoa" (o le mea moni, o le saoasaoa lea o le taʻavale) ma le faʻaogaina o le faʻaogaina o le laina (faʻatasi ai ma le faʻaaliga e le o se mea taua tele i aso nei e pei o le tele o tausaga talu ai).
Faatuai
Ina ua maeʻa se suʻesuʻega maeʻaeʻa o le faʻatinoga o faʻatinoga, na ou oʻo mai i le faaiuga o le pito sili ona taua i lenei tulaga o le latency (ping). I lana tusiga
Ae o le ā le mea e taʻua o le latency, ma aiseā e tāua tele ai? I lana tusiga, na faʻamatalaina e Fatin o le "le tuai i le va o le oomiina o se ki ma le faʻafouga o le screen talafeagai" ma sii mai.
Ua faamatala mai e Fatin, e sili atu ona loloto āuga o lenei ping nai lo le na o le faamalieina: “e faagesegese le taina, e tele atu mea sesē e tupu, ma faateteleina ai le teteʻe o mata ma maso.” I se isi faaupuga, o le tele o le tuai e mafai ona oʻo atu ai i typos ma faʻaititia ai foi le tulaga lelei, aua e oʻo atu ai i le faʻaopoopoga o le mafaufau i luga o le faiʻai. Ae o le mea e sili ona leaga o le ping "faʻateleina le tiga o mata ma maso," lea e foliga mai e faʻaalia
O nisi o nei aafiaga ua leva ona iloa, ma o taunuuga
Na faia e Fatin ana suʻega i tusitala tusitusiga; na ia faia se meafaigaluega feaveai e igoa
O fa'ai'uga nei o a'u fua, fa'apea fo'i ma nisi o fa'ai'uga a Fatin, e fa'aalia ai o la'u su'ega e malie i ana su'ega:
O le mea muamua na taia ai aʻu o le sili atu o le tali taimi o polokalame tuai e pei ole xterm ma mlterm. Faatasi ai ma le tulaga sili ona leaga o le resitala (2,4 ms), na sili atu le latou gaioiga nai lo le pito sili ona vave faʻaonaponei (10,6 ms mo le st). E leai se laina fa'aonaponei e pa'u i lalo ole 10 millisecond threshold. Aemaise lava, ua le mafai e Alacritty ona faʻafeiloaʻi le faʻatonuga o le "vave terminal emulator available", e ui lava ua faʻaleleia ana togi talu mai lana uluai iloiloga i le 2017. Ioe, o tusitala o le poloketi
Ae ui i lea, o eseesega atonu e le mafai ona iloa e mata. E pei ona faamatalaina e Fatin, "e te le tau nofouta i le tuai ona i ai sona aafiaga ia te oe." Ua lapatai mai foi Fatin e uiga i se eseesega masani: "soʻo se faʻalavelave i le taofiofia (jitter) e mafua ai le faʻalavelave faʻaopoopo ona o lo latou le mautonu."
O le kalafi o loʻo i luga o loʻo ave ile Debian 9 mama (faʻaloaloa) ma
Saosaoa tusi
O le isi su'ega o se su'ega masani o le "saosaoa" po'o le "bandwidth", lea e fuaina ai le vave e mafai ai e le fa'ailoga ona ta'ai se itulau a'o fa'aalia le tele o tusitusiga i luga o le lau. E eseese le fa'ainisinia o le su'ega; o le su'ega muamua o le fa'atupuina o le manoa lava e tasi e fa'aaoga ai le fa'atonuga seq. O isi su'ega e aofia ai le su'ega a Thomas E. Dickey (xterm maintainer), lea e fai soo
O iinei tatou te vaʻavaʻai ai i le rxvt ma le st toso i luma o le tauvaga, sosoo ai ma le Alacritty sili atu ona fou, lea ua mamanuina ma le taulaʻi i le faʻatinoga. E soso'o ai le Xfce (VTE family) ma le Konsole, lea e toeitiiti faaluaina le vave. O le mea mulimuli o le xterm, lea e lima taimi lemu nai lo le rxvt. I le taimi o le suʻega, o le xterm na faʻafefe tele foi, ma faigata ai ona vaʻai i tusitusiga e tusa lava pe tutusa le laina. Sa vave le Konsole, ae sa fai togafiti i nisi o taimi: o le faʻaaliga e malolo mai lea taimi i lea taimi, faʻaalia se vaega o tusitusiga pe le faʻaalia uma. O isi fa'ailoga fa'aalia manino manoa, e aofia ai st, Alacritty, ma rxvt.
O lo'o fa'amatala e Dickey o le eseesega o fa'atinoga e mafua mai i le mamanu o pa'u ta'ai i fa'ailoga eseese. Aemaise lava, na te tuʻuaia rxvt ma isi faʻamaumauga o le "le mulimuli i tulafono lautele":
"E le pei o le xterm, e leʻi taumafai le rxvt e faʻaalia uma faʻafouga. Afai e pau i tua, o le a teena nisi faʻafouga e puʻe. O lenei mea na i ai se aafiaga sili atu i luga o le saoasaoa o le taʻavale nai lo le faʻalapotopotoga manatua i totonu. O le tasi faʻafitauli o le ASCII animation sa fai si le saʻo."
Ina ia faʻaleleia lenei vaʻaia o le xterm sluggishness, ua fautuaina e Dickey le faʻaaogaina o punaoa
Fa'aaogāga puna'oa
E tusa lava pe talafeagai le mafaufau i le saoasaoa o le taʻavale o se metric faʻatinoga, o lenei suʻega e mafai ai ona tatou faʻataʻitaʻiina le uta i luga o faʻamau, lea e mafai ai ona tatou fuaina isi taʻaloga e pei o le manatua poʻo le faʻaogaina o le disk. O fua fa'atatau na maua i le fa'atinoina o le su'ega fa'apitoa seq i lalo o le mataituina o le Python process. Na ia aoina faʻamaumauga mita
I lenei suʻega, o le ST e maua le tulaga muamua ma le maualalo o le faʻaaogaina o le manatua o le 8 MB, e le o se mea e ofo ai le manatu o le manatu autu o le mamanu e faigofie. mlterm, xterm ma rxvt 'ai sina mea itiiti - pe a ma le 12 MB. O le isi taunuuga iloga o Alacritty, lea e manaʻomia ai le 30 MB e tamoe ai. Ona i ai lea o faʻamaufaʻailoga o le aiga VTE ma fuainumera mai le 40 i le 60 MB, e tele naua. O lenei taumafa e mafai ona faʻamatalaina i le mea moni o nei faʻamau e faʻaogaina faletusi maualuluga, mo se faʻataʻitaʻiga, GTK. O le Konsole e sau mulimuli ma le 65MB o le faʻaaogaina o mafaufauga i taimi o suʻega, e ui lava e mafai ona faʻamaonia e ala i le tele o vaega o foliga.
Pe a faʻatusatusa i taunuʻuga muamua na maua i le sefulu tausaga talu ai, o polokalame uma na amata ona faʻaaogaina le tele o manatuaga. Xterm e manaʻomia le 4 MB, ae o lea e manaʻomia le 15 MB i le amataga. O loʻo i ai se faʻaopoopoga tutusa i le taumafaina mo le rxvt, lea e manaʻomia nei le 16 MB mai le pusa. O le Xfce Terminal e alu i luga le 34 MB, lea e faatoluina le tele nai lo le taimi muamua, ae ole GNOME Terminal e manaʻomia naʻo le 20 MB. Ioe, o suʻega uma na muamua na faia i luga o le 32-bit architecture. I le LCA 2012 Rusty Russell
Ae ui i lea, e le mafai ona ou fesoasoani ae ou te lagona o le tuʻuina atu o le tele o manatuaga i se mea taua e pei o le faʻailoga o se faʻamaumau o punaoa. O nei polokalame e tatau ona laʻititi i laʻititi laʻititi, e tatau ona mafai ona taʻavale i luga o soʻo se "pusa", e oʻo lava i se pusa seevae, pe a tatou oʻo i le tulaga e manaʻomia ai ona faʻapipiʻiina i Linux (ma e te iloa o le a faapena. ). Ae fa'atasi ai ma nei fuainumera, o le fa'aogaina o le manatua o le a avea ma fa'afitauli i le lumana'i i so'o se si'osi'omaga o lo'o fa'atautaia le tele o fa'ailoga e ese mai i nai mea e sili ona mama ma sili ona fa'atapula'aina i gafatia. Ina ia tauia lenei mea, GNOME Terminal, Konsole, urxvt, Terminator ma Xfce Terminal o loʻo i ai se Daemon mode e mafai ai ona e pulea le tele o faʻauʻuga e ala i se faʻagasologa e tasi, faʻatapulaʻaina o latou mafaufau.
I le taimi o aʻu suʻega, na ou oʻo mai ai i se isi faʻalavelave faʻafuaseʻi e uiga i le faitau-tusitusi tisiki: Na ou faʻamoemoe e leai se mea e vaʻaia iinei, ae na foliga mai o nisi faʻamau e tusia faʻamatalaga sili ona tele i le disk. O lea la, o le faletusi VTE o loʻo teuina moni lava se paʻu taʻavale i luga o le disk (lea vaega
iʻuga
I le vaega muamua o le tusiga, na matou iloa ai o VTE-faʻavae pito i luga o loʻo i ai se seti lelei o foliga, ae o lea ua matou vaʻai o loʻo sau ma nisi tau faʻatinoga. O le taimi nei o le manatua e le o se faʻafitauli aua o VTE uma e mafai ona pulea e ala i se Daemon process, lea e faʻatapulaʻaina ai lo latou manaʻo. Ae ui i lea, o faiga tuai o loʻo i ai tapulaʻa faaletino i luga o le aofaʻi o le RAM ma kernel buffers atonu o loʻo manaʻomia pea faʻasologa muamua o faʻamau, talu ai latou te faʻaaogaina le itiiti ifo o punaoa. E ui ina lelei le fa'atinoina o fa'au'uga VTE i su'ega (ta'amilosaga) fa'ata'ita'iga, ae o lo'o i luga a'e o le fa'ailoga ua tu'u ile GNOME User Guide. Atonu e tatau i tagata atiae VTE ona amanaia lenei mea. Afai tatou te manatu e oʻo lava mo tagata fou Linux o loʻo faʻafeiloaʻi se faʻailoga e le maalofia, e mafai ona latou faʻaogaina atili faʻaoga. Mo geeks poto masani, o le fesuia'i mai le tulaga fa'aletonu e mafai ona fa'aitiitia ai le tiga o mata ma le mafai ona aloese mai manu'a ma ma'i i le lumana'i ona o taimi faigaluega umi. Ae paga lea, naʻo le xterm tuai ma mlterm e aumaia ai i matou i le faʻailoga ping faʻailoga o le 10 milliseconds, lea e le taliaina mo le toʻatele.
O fua fa'atatau na fa'aalia ai fo'i ona o le atina'eina o si'osi'omaga fa'akomepiuta a Linux, e tatau ona faia e le au atina'e le tele o fetuutuuna'i. O nisi tagata fa'aoga atonu e mana'o e va'ai i fa'amalama fa'amalama masani a'o latou tu'uina atu fa'aitiitiga ping. Ae paga lea, e le'i mafai ona fuaina le taofiofia mo Wayland: o le Typometer program na ou fa'aogaina na faia mo le mea ua mamanuina Wayland e puipuia ai: sipai i isi faamalama. Ou te faʻamoemoe e sili atu le lelei o le gaosiga o Wayland nai lo le X.org, ma ou te faʻamoemoe foi i le lumanaʻi o le a maua e se tasi se auala e fua ai le le tumau i lenei siosiomaga.
puna: www.habr.com