Mantsoe a seng makae a tsoang setsing sa rona sa phetolelo: hangata e mong le e mong o leka ka matla ho fetolela lingoliloeng tsa morao-rao le lingoliloeng, 'me le rona re joalo. Empa li-terminals ha se ntho e nchafalitsoeng hang ka beke. Ka hona, re u fetoletse sehlooho sa Antoine Beaupré, se hatisitsoeng nakong ea selemo sa 2018: ho sa tsotellehe "lilemo" tse ngata ka litekanyetso tsa morao-rao, ka maikutlo a rona, boitsebiso boo ha boa lahleheloa ke bohlokoa ba bona ho hang. Ho phaella moo, qalong ena e ne e le letoto la lihlooho tse peli, empa re ile ra etsa qeto ea ho li kopanya hore e be poso e le 'ngoe e kholo.
Li-terminals li na le sebaka se khethehileng historing ea lik'homphieutha, empa lilemong tse mashome tsa morao tjena li qobelletsoe ho phela haufi le mohala oa taelo ha li-interface tsa litšoantšo li fetoha hohle.
Li-terminals tse ling li na le masoba a ts'ireletso a makatsang, 'me boholo ba tsona li na le likarolo tse fapaneng ka ho felletseng, ho tloha ho ts'ehetso ea sebopeho sa li-tabbed ho isa ho mongolo. Leha re
Mona ke li-terminals tseo ke li hlahlobileng:
Tsena e ka 'na ea se ke ea e-ba liphetolelo tsa morao-rao, kaha ke ne ke lekanyelitsoe ho haha tse tsitsitseng nakong ea ho ngola, eo ke ileng ka khona ho e hlahisa ho Debian 9 kapa Fedora 27. Ntho e le 'ngoe feela ke Alacritty. Ke setloholo sa li-terminals tse potlakileng tsa GPU 'me e ngotsoe ka puo e sa tloaelehang le e ncha bakeng sa mosebetsi ona - Rust. Ke qheletse li-terminals tsa webo tlhahlobong ea ka (ho kenyeletsoa le tse ho
Tšehetso ea Unicode
Ke qalile liteko tsa ka ka tšehetso ea Unicode. Teko ea pele ea li-terminals e ne e le ho bonts'a khoele ea Unicode ho tloha
Ka mokhoa o ikhethileng, xterm e sebelisa fonte ea khale "e tsitsitseng", eo, ho latela
Lits'oants'o tsena tsa skrini li nkuoe ho Fedora 27, kaha e fane ka litholoana tse betere ho feta Debian 9, moo mefuta e meng ea khale ea li-terminals (haholo-holo mlterm) e neng e sa khone ho sebetsana le lifonti hantle. Ka lehlohonolo sena se ile sa lokisoa liphetolelong tse latelang.
Joale hlokomela hore na mohala o bontšoa joang ho xterm. Hoa etsahala hore letšoao la Mem le la Semitic le latelang
Mananeo a mangata a khomphutha ha a khone ho hlahisa mongolo oa mahlakore a mabeli ka nepo. Ka mohlala, lebitso la Seheberu “Sarah” le na le litlhaku sin (ש) (tse hlahang ka ho le letona), ebe resh (ר) ’me qetellong eena (ה) (tse lokelang ho hlaha ka ho le letšehali).”
Li-terminals tse ngata li hlōleha tlhahlobo ena: Alacritty, VTE-derived Gnome le XFCE terminals, urxvt, st le xterm display "Sara" ka tatellano e fapaneng, joalokaha eka re ngotse lebitso "Aras".
Bothata bo bong ka litemana tse fapaneng ke hore li hloka ho lumellana ka tsela e itseng, haholo-holo ha ho tluoa tabeng ea ho kopanya litemana tsa RTL le LTR. Lingoliloeng tsa RTL li lokela ho tsoa ka lehlakoreng le letona la fensetere ea theminale, empa ho lokela ho etsahala'ng ka li-terminals tse sa fetoheng ho LTR English? Bongata ba bona ha ba na mekhoa e khethehileng 'me ba hokahanya mongolo o mong le o mong ka ho le letšehali (ho kenyeletsoa le Konsole). Mekhelo ke pterm le mlterm, tse ikamahanyang le maemo le ho tsepanya mela e joalo ka nepo.
Tšireletso ea ho kenya
Karolo e latelang ea bohlokoa eo ke e khethileng ke ts'ireletso e khahlanong le ho kenya. Le hoja ho tsebahala hohle hore mantsoe a pele a kang:
$ curl http://example.com/ | sh
ke litaelo tsa push execution, batho ba fokolang ba tseba hore litaelo tse patiloeng li ka nyenyelepa ka har'a console ha li kopitsa le ho li fetisa ho tsoa ho sebatli sa marang-rang, le kamora ho hlahlojoa ka hloko.
git clone git: //git.kernel.org/pub/scm/utils/kup/kup.git
e fetoha khathatso ha e fetisoa ho tsoa webosaeteng ea Horn ho ea setsing sa ho qetela:
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 sebetsa joang? Khoutu e kotsi e kenyelelitsoe bolokong , e tlositsoeng ponong ea mosebelisi ho sebelisoa CSS.
set enable-bracketed-paste on
Ka bomalimabe, sebaka sa tlhahlobo sa Horn se boetse se bonts'a mokhoa oa ho tlola ts'ireletso ena ka mokhoa oa ho fomata mongolo ka boyona ebe o qetella o sebelisa mokhoa oa Bracketed ho ona. Sena se sebetsa hobane li-terminals tse ling ha li sefe ka nepo tatellano ea ho phonyoha pele e kenya ea tsona. Ka mohlala, ho 'na ha kea ka ka khona ho qeta liteko tsa Konsole ka katleho esita le ka tlhophiso e nepahetseng .inputrc faele. Sena se bolela hore o ka senya tlhophiso ea sistimi ea hau habonolo ka lebaka la ts'ebeliso e sa tšehetsoeng kapa khetla e hlophisitsoeng hantle. Sena se kotsi haholo ha o kena ka har'a li-server tse hole, moo mosebetsi oa tlhophiso ka hloko o sa tloahelehileng haholo, haholo haeba o na le mechini e joalo e hole.
Tharollo e ntle bothateng bona ke plugin ea netefatso ea peista bakeng sa terminal urvvt, e kopang tumello ea ho kenya mongolo ofe kapa ofe o nang le mela e mecha. Ha ke so fumane khetho e sireletsehileng haholoanyane bakeng sa tlhaselo ea mongolo e hlalositsoeng ke Horn.
Li-tab le liprofaele
Karolo e tsebahalang hona joale ke ts'ehetso ea sebopeho sa li-tabbed, seo re tla se hlalosa e le fensetere e le 'ngoe ea terminal e nang le li-terminals tse ling tse' maloa. Ts'ebetso ena e fapana bakeng sa li-terminals tse fapaneng, mme leha li-terminals tsa setso tsa xterm li sa tšehetse li-tab ho hang, li-terminal tsa sejoale-joale tse kang Xfce Terminal, GNOME Terminal le Konsole li na le mosebetsi ona. Urxvt e boetse e ts'ehetsa li-tab, empa ha feela o sebelisa plugin. Empa mabapi le ts'ehetso ea li-tab ka boeona, Terminator ke moetapele ea sa tsitsang: ha e tšehetse li-tab feela, empa e ka boela ea hlophisa li-terminals ka tatellano leha e le efe (sheba setšoantšo se ka tlase).
Tšobotsi e 'ngoe ea Terminator ke bokhoni ba ho "hlopha" li-tab tsena hammoho le ho romela li-keytroke tse tšoanang ho li-terminals tse ngata ka nako e le' ngoe, ho fana ka sesebelisoa se se nang thuso bakeng sa ho etsa mesebetsi e mengata ho li-server tse ngata ka nako e le 'ngoe. Karolo e ts'oanang e kengoa ts'ebetsong ho Konsole. Ho sebelisa tšobotsi ena ho li-terminals tse ling, o tlameha ho sebelisa software ea motho oa boraro joalo ka
Li-tab li sebetsa hantle haholo ha li tsamaisana le profaele: mohlala, u ka ba le tabo e le 'ngoe bakeng sa lengolo-tsoibila, e' ngoe bakeng sa moqoqo, joalo-joalo. Sena se tšehetsoa hantle ke Konsole Terminal le GNOME Terminal. Ka bobeli li lumella tab ka 'ngoe hore e iketsetse profaele ea eona. Terminator e boetse e ts'ehetsa liprofaele, empa ha kea fumana mokhoa oa ho qala mananeo a itseng ka bo eona ha o bula tab e itseng. Li-terminals tse ling ha li na mohopolo oa "profile" ho hang.
Li-ruffles
Ntho ea ho qetela eo ke tla e koahela karolong ea pele ea sengoloa sena ke ponahalo ea li-terminals. Mohlala GNOME, Xfce le urxvt tšehetso pepeneneng, empa haufinyane li theohile tšehetso bakeng sa litšoantšo tse ka morao, tsa qobella basebelisi ba bang ho fetohela ho terminal.
Li-terminals tse ling li boetse li sekaseka mongolo bakeng sa lipaterone tsa URL ho etsa hore lihokelo li tobehe. Sena se sebetsa ho li-terminals tsohle tse nkiloeng ho VTE, athe urxvt e hloka plugin e khethehileng e ka fetolang li-URL ha motho a penya kapa a sebelisa sekhechana sa keyboard. Li-terminals tse ling ke lekile li-URL tsa ponts'o ka litsela tse ling.
Qetellong, mokhoa o mocha oa li-terminals ke boikhethelo ba buffer ea moqolo. Mohlala, st ha e na buffer ea moqolo; ho nahanoa hore mosebelisi o tla sebelisa terminal multiplexer joalo ka tmux le
Alacritty e boetse e haelloa ke li-buffers tsa backscroll, empa
Lipalopalo tse tlase
Karolong ea bobeli ea thepa (qalong tsena e ne e le lingoliloeng tse peli tse fapaneng - hoo e ka bang. lane) re tla bapisa ts'ebetso, ts'ebeliso ea mohopolo le latency. Empa re se re ntse re bona hore tse ling tsa li-terminals tse boletsoeng li na le mefokolo e tebileng. Ka mohlala, basebelisi ba sebetsang ka mokhoa oa RTL kamehla ba ka 'na ba batla ho nahana ka mlterm le pterm, kaha ba sebetsa hantle ho feta mesebetsi e meng. Konsole le yona e sebeditse hantle. Basebelisi ba sa sebetseng ka mongolo oa RTL ba ka khetha ho hong.
Mabapi le tšireletso khahlanong le ho kenngoa ha khoutu e mpe, urxvt e hlahella ka lebaka la ts'ebetsong ea eona e khethehileng ea tšireletso khahlanong le tlhaselo ea mofuta ona, eo ho bonahalang eka e loketse ho 'na. Bakeng sa ba batlang litloloko le liloli, Konsole e loketse ho shejoa. Qetellong, ke habohlokoa ho hlokomela hore VTE ke motheo o babatsehang bakeng sa li-terminals, tse tiisang tšehetso ea mebala, kananelo ea URL, joalo-joalo. Ha u habanya feela, terminal ea kamehla e tlang le tikoloho eo u e ratang e ka fihlela litlhoko tsohle, empa ha re tloheleng potso ena e butsoe ho fihlela re utloisisa ts'ebetso.
Ha re tsoeleng pele moqoqo
Ka kakaretso, ts'ebetso ea li-terminals ka boeona e kanna ea utloahala e le bothata bo tebileng, empa ha ho le joalo, tse ling tsa tsona li bonts'a latency e phahameng ka mokhoa o makatsang bakeng sa software ea mofuta o joalo oa mantlha. Hape ka mor'a moo re tla sheba seo ka tloaelo se bitsoang "lebelo" (ha e le hantle, sena ke lebelo la ho phalla) le tšebeliso ea mohopolo ea terminal (ka caveat ea hore sena ha se bohlokoa kajeno joaloka lilemong tse mashome tse fetileng).
Ho lieha
Ka mor'a ho ithuta ka botlalo ka ts'ebetso ea ho qetela, ke ile ka fihlela qeto ea hore parameter ea bohlokoa ka ho fetisisa tabeng ena ke latency (ping). Sehloohong sa hae
Empa latency ke eng, hona ke hobane'ng ha e le ea bohlokoa hakaale? Sengoliloeng sa hae, Fatin o se hlalositse e le "tieho lipakeng tsa ho tobetsa konopo le ho ntlafatsa skrineng" mme a qotsa.
Fatin o hlalosa hore ping ena e na le liphello tse tebileng ho feta khotsofalo feela: “ho thaepa hoa lieha, ho ba le liphoso tse ngata, ’me tsitsipano ea mahlo le mesifa ea eketseha.” Ka mantsoe a mang, ho lieha ho hoholo ho ka lebisa ho typos hape le boleng bo tlase ba khoutu, kaha bo lebisa moroalo o eketsehileng oa kelello bokong. Empa ho hobe le ho feta ke hore ping "e eketsa khatello ea mahlo le mesifa," e bonahalang e bolela
Tse ling tsa liphello tsena li tsebahala ka nako e telele, le liphello
Fatin o ile a etsa liteko tsa hae ho bahlophisi ba mongolo; o ile a etsa seletsa se nkehang habobebe se bitsoang
Mona ke liphetho tsa litekanyo tsa ka, hammoho le tse ling tsa liphetho tsa Fatin, ho bontša hore liteko tsa ka li lumellana le liteko tsa hae:
Ntho ea pele e ileng ea nkama ke nako e betere ea karabelo ea mananeo a khale a kang xterm le mlterm. Ka "register latency" e mpe ka ho fetesisa (2,4 ms), e sebelitse hantle ho feta terminal e potlakileng ea sejoale-joale (10,6 ms bakeng sa st). Ha ho terminal ea sejoale-joale e oelang ka tlase ho 10 millisecond threshold. Haholo-holo, Alacritty e hloleha ho fihlela tseko ea "terminal emulator e potlakileng ka ho fetesisa e fumanehang", leha lintlha tsa eona li ntlafetse ho tloha tlhahlobo ea eona ea pele ka 2017. Ka sebele, bangoli ba morero
Leha ho le joalo, ho se tšoane ho ka ’na ha se hlokomelehe mahlong. Joalokaha Fatin a hlalosa, “ha ho hlokahale hore u elelloe tieho e le hore e ka ba le phello ho uena.” Fatin e boetse e hlokomelisa ka ho kheloha ho tloaelehileng: “Litšitiso leha e le life tsa ho lieha ho lieha ho fihla (jitter) li baka khatello e eketsehileng ka lebaka la ho se lebelle ha tsona esale pele.”
Setšoantšo se ka holimo se nkiloe ho Debian 9 e hloekileng (otlolla) ka
Lebelo la ho phenya
Teko e latelang ke teko ea setso ea "speed" kapa "bandwidth", e lekanyang hore na terminal e ka tsamaisa leqephe kapele hakae ha e ntse e hlahisa mongolo o mongata skrineng. Mechine ea tlhahlobo e fapana; teko ea pele e ne e le ho hlahisa khoele e tšoanang ea mongolo ho sebelisa taelo ea seq. Liteko tse ling li kenyelletsa tlhahlobo ea Thomas E. Dickey's (xterm maintainer), eo khafetsa
Mona re bona rxvt le st pull ka pele ho tlhōlisano, e lateloa ke Alacritty e ncha haholo, e entsoeng ka ho tsepamisa maikutlo mosebetsing. E latelang ke Xfce (lelapa la VTE) le Konsole, tse batlang li potlakile habeli. Ea ho qetela ke xterm, e liehang ka makhetlo a mahlano ho feta rxvt. Nakong ea tlhahlobo, xterm le eona e ile ea phahama haholo, ea etsa hore ho be thata ho bona mongolo o fetang le haeba e ne e le mohala o le mong. Konsole e ne e potlakile, empa e ne e qhekella ka linako tse ling: pontšo e ne e hoama nako le nako, e bontša mongolo o sa fellang kapa e sa e bontše ho hang. Li-terminals tse ling li ne li bonts'a likhoele ka ho hlaka, ho kenyelletsa st, Alacritty, le rxvt.
Dickey o hlalosa hore liphapang tsa ts'ebetso li bakoa ke moralo oa li-buffers tsa meqolo libakeng tse fapaneng. Haholo-holo, o qosa rxvt le li-terminals tse ling ka "ho se latele melao e akaretsang":
Ho fapana le xterm, rxvt ha ea leka ho hlahisa lintlafatso tsohle. Haeba e oela morao, e tla hana lintlafatso tse ling ho e fumana. Sena se bile le tšusumetso e kholo ho lebelo le hlakileng la ho phenya ho feta mokhatlong oa memori ea kahare. Taba e 'ngoe e ne e le hore animation ea ASCII e ne e batla e sa nepahala. "
Ho lokisa botsoa bona ba xterm, Dickey o khothaletsa ho sebelisa sesebelisoa
Tšebeliso ea lisebelisoa
Ho sa tsotellehe hore na ke ntho e utloahalang ho nka lebelo la ho phalla e le tekanyo ea ts'ebetso, tlhahlobo ena e re lumella ho etsisa mojaro ho li-terminals, e leng se re lumellang hore re lekanye likarolo tse ling tse kang memori kapa ts'ebeliso ea disk. Li-metrics li fumanoe ka ho etsa tlhahlobo e boletsoeng seq tlas'a ts'ebetso ea ts'ebetso ea Python. O ile a bokella lintlha tsa meter
Tekong ena, ST e nka sebaka sa pele ka tšebeliso e tlase ea memori ea 8 MB, e leng ntho e sa makatseng ha ho nahanoa hore mohopolo oa mantlha oa moralo ke bonolo. mlterm, xterm le rxvt li ja hanyane - hoo e ka bang 12 MB. Sephetho se seng se hlokomelehang ke Alacritty, e hlokang 30 MB ho sebetsa. Ebe ho na le li-terminals tsa lelapa la VTE tse nang le lipalo ho tloha ho 40 ho isa ho 60 MB, tse ngata haholo. Tšebeliso ena e ka hlalosoa ke taba ea hore li-terminals tsena li sebelisa lilaebrari tsa boemo bo holimo, mohlala, GTK. Konsole e fihla qetellong ka 65MB e kholo ea tšebeliso ea mohopolo nakong ea liteko, leha sena se ka lokafatsoa ke mefuta e mengata ea likarolo.
Ha ho bapisoa le liphetho tse fetileng tse fumanoeng lilemong tse leshome tse fetileng, mananeo ohle a ile a qala ho sebelisa mohopolo haholoanyane. Xterm e ne e hloka 4 MB, empa joale e hloka 15 MB ha e qala. Ho na le keketseho e ts'oanang ea tšebeliso ea rxvt, eo hona joale e hlokang 16 MB ka ntle ho lebokose. Xfce Terminal e nka 34 MB, e leng kholo ka makhetlo a mararo ho feta pele, empa GNOME Terminal e hloka 20 MB feela. Ehlile, liteko tsohle tse fetileng li entsoe ho meralo ea 32-bit. Ho LCA 2012 Rusty Russell
Leha ho le joalo, ha ke khone ho ithiba empa ke ikutloa hore ho fana ka mohopolo o mongata ho ntho ea bohlokoa joalo ka terminal ke tšenyo ea lisebelisoa. Mananeo ana e lokela ho ba a manyane ho a manyane, a tsebe ho sebetsa ho "lebokose" lefe kapa lefe, esita le lebokose la lieta, haeba re ka fihla moo ba hlokang ho hlomelloa ka lisebelisoa tsa Linux ('me ua tseba hore ho tla ba joalo. ) . Empa ka lipalo tsena, ts'ebeliso ea memori e tla fetoha bothata nakong e tlang tikolohong efe kapa efe e nang le li-terminals tse ngata ntle le tse 'maloa tse bobebe le tse fokolang haholo ka bokhoni. Ho lefella sena, GNOME Terminal, Konsole, urxvt, Terminator le Xfce Terminal li na le mokhoa oa Daemon o u lumellang ho laola li-terminals tse ngata ka ts'ebetso e le 'ngoe, ho fokotsa tšebeliso ea mohopolo oa bona.
Nakong ea liteko tsa ka, ke ile ka fumana sephetho se seng se neng se sa lebelloa mabapi le ho bala disk: Ke ne ke lebelletse hore nke ke ka bona letho ho hang mona, empa ho ile ha fumaneha hore li-terminals tse ling li ngola data e matla ka ho fetisisa ho disk. Kahoo, laeborari ea VTE e hlile e boloka buffer ea moqolo ho disk (tšobotsi ena
fihlela qeto e
Karolong ea pele ea sengoloa, re fumane hore li-terminals tse thehiloeng ho VTE li na le likarolo tse ntle, empa joale rea bona hore sena se tla le litšenyehelo tse ling tsa ts'ebetso. Hona joale mohopolo ha se bothata hobane li-terminals tsohle tsa VTE li ka laoloa ka ts'ebetso ea Daemon, e fokotsang takatso ea bona ea lijo. Leha ho le joalo, litsamaiso tsa khale tse nang le mefokolo ea 'mele ho palo ea RAM le kernel buffers li ntse li ka hloka mefuta ea pejana ea li-terminals, kaha li sebelisa lisebelisoa tse fokolang haholo. Leha li-terminals tsa VTE li sebelitse hantle litekong tsa "throughput" (scrolling), latency ea bona ea ponts'o e kaholimo ho moeli o behiloeng ho GNOME User Guide. Baetsi ba VTE mohlomong ba lokela ho ela sena hloko. Haeba re ela hloko hore le bakeng sa basebelisi ba Linux ba qalang ho kopana le terminal ha ho khonehe, ba ka e etsa hore e be bonolo haholoanyane. Bakeng sa li-geek tse nang le phihlelo, ho tloha setsing sa ho qetela ho ka ba ha bolela khatello e fokolang ea mahlo le bokhoni ba ho qoba likotsi le maloetse a amanang le mosebetsi nakong e tlang. Ka bomalimabe, ke xterm le mlterm tsa khale feela tse re tlisang moeling oa ping oa 10 milliseconds, o sa amoheleheng ho ba bangata.
Litekanyo tsa benchmark li boetse li bonts'itse hore ka lebaka la nts'etsopele ea tikoloho ea litšoantšo tsa Linux, bahlahisi ba tlameha ho etsa litšitiso tse 'maloa. Basebelisi ba bang ba kanna ba batla ho sheba batsamaisi ba lifensetere tse tloaelehileng ha ba ntse ba fana ka phokotso e kholo ea ping. Ka bomalimabe, ho ne ho sa khonehe ho lekanya latency bakeng sa Wayland: lenaneo la Typometer leo ke le sebelisitseng le bōpiloe bakeng sa seo Wayland e etselitsoeng ho se thibela: ho hloela lifensetere tse ling. Ke tšepa hore Wayland compoting e sebetsa hantle ho feta X.org, hape ke tšepa hore kamoso motho e mong o tla fumana mokhoa oa ho lekanya latency tikolohong ena.
Source: www.habr.com