Teny vitsivitsy avy amin'ny biraon'ny fandikan-teny: mazàna ny rehetra dia miezaka mandika ireo fitaovana sy boky farany farany, ary tsy an-kanavaka isika. Saingy ny terminal dia tsy zavatra havaozina indray mandeha isan-kerinandro. Noho izany, nandika ho anao ny lahatsoratra nosoratan'i Antoine Beaupré, navoaka tamin'ny lohataonan'ny 2018: na dia eo aza ny "taona" be dia be amin'ny fenitra maoderina, araka ny hevitray, ny fitaovana dia tsy very ny maha-zava-dehibe azy. Ankoatra izany, andian-dahatsoratra roa ity tany am-boalohany, saingy nanapa-kevitra ny hanambatra azy ireo ho lahatsoratra lehibe iray izahay.
Manana toerana manokana eo amin'ny tantaran'ny informatika ny terminal, saingy tao anatin'ny folo taona lasa izay dia voatery niaina teo akaikin'ny baikon'ny baiko izy ireo satria lasa hatraiza hatraiza ny fifandraisana an-tsary.
Ny terminal sasany dia manana lavaka fiarovana mahagaga, ary ny ankamaroany dia manana karazana fiasa hafa tanteraka, manomboka amin'ny fanohanana ny interface misy tabilao mankany amin'ny scripting. Na dia izahay
Ireto ny terminal nodinihiko:
Mety tsy ireo no dikan-teny farany indrindra, satria voafetra ho an'ny fananganana stable aho tamin'ny fotoana nanoratana, izay azoko navoaka tamin'ny Debian 9 na Fedora 27. Ny hany tokana dia Alacritty. Taranak'ireo terminal accelerated GPU ary nosoratana tamin'ny fiteny tsy mahazatra sy vaovao ho an'ity asa ity - Rust. Nesoriko tamin'ny famerenako ny terminal web (anisan'izany ireo on
Fanohanana Unicode
Nanomboka ny fitsapana nataoko tamin'ny fanohanana Unicode aho. Ny fitsapana voalohany amin'ireo terminal dia ny mampiseho ny tady Unicode avy amin'ny
Amin'ny alàlan'ny default, xterm dia mampiasa ny endri-tsoratra "fixed" mahazatra, izay, araka ny
Ireo pikantsary ireo dia nalaina tao amin'ny Fedora 27, satria nanome vokatra tsara kokoa noho ny Debian 9, izay misy dikan-teny tranainy sasany (indrindra fa mlterm) tsy afaka mitantana ireo endritsoratra araka ny tokony ho izy. Soa ihany fa raikitra izany tamin'ny dikan-teny taty aoriana.
Jereo izao ny fomba fanehoana ny tsipika amin'ny xterm. Hita fa ny famantarana Mem sy ny Semitika manaraka
“Maro amin'ny programa informatika no tsy afaka mampiseho tsara ny lahatsoratra roa tondro. Ohatra, ny anarana hebreo hoe “Sarah” dia misy tarehin-tsoratra hoe sin (ש) (izay miseho eo ankavanana), avy eo resh (ר) ary farany izy (ה) (izay miseho eo amin’ny ankavia).
Betsaka ny terminal tsy nahomby tamin'ity fitsapana ity: Alacritty, VTE-derived Gnome ary XFCE terminals, urxvt, st ary xterm dia mampiseho "Sara" amin'ny filaharana mivadika, toy ny hoe nanoratra ny anarana hoe "Aras".
Olana iray hafa amin'ny lahatsoratra roa tondro dia ny hoe mila ampifanarahana amin'ny fomba ahoana izy ireo, indrindra amin'ny fampifangaroana lahatsoratra RTL sy LTR. Ny script RTL dia tokony handeha amin'ny ilany havanana amin'ny varavarankelin'ny terminal, fa inona no tokony hitranga amin'ny terminal izay tsy mitovy amin'ny LTR English? Ny ankamaroan'izy ireo dia tsy manana mekanika manokana ary mampifanaraka ny lahatsoratra rehetra amin'ny ankavia (anisan'izany ny Konsole). Ny maningana dia pterm sy mlterm, izay mifikitra amin'ny fenitra ary mampifanaraka ny andalana toy izany.
Fiarovana fampidirana
Ny endri-javatra manan-danja manaraka hitako dia ny fiarovana manohitra ny fampidirana. Na dia fantatry ny besinimaro aza fa ny tsipelina toy ny:
$ curl http://example.com/ | sh
dia baiko fanerena fanerena kaody, vitsy ny olona mahafantatra fa ny baiko miafina dia afaka miditra ao amin'ny console rehefa mandika sy mametaka avy amin'ny navigateur web, na dia aorian'ny fisafoana tsara aza.
git clone git: //git.kernel.org/pub/scm/utils/kup/kup.git
Nivadika ho fanelingelenana toy izany rehefa napetaka tao amin'ny tranokalan'i Horn ho ao amin'ny terminal:
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
Ahoana ny fandehany? Ny kaody ratsy dia tafiditra ao anatin'ny sakana , izay nesorina tsy ho hitan'ny mpampiasa mampiasa CSS.
set enable-bracketed-paste on
Indrisy anefa fa ny tranokalam-panadinana an'i Horn dia mampiseho ihany koa ny fomba hialana amin'ity fiarovana ity amin'ny alàlan'ny fandrafetana lahatsoratra ary hampihatra aloha ny maody Bracketed aminy. Mandeha izany satria ny terminal sasany dia tsy manivana araka ny tokony ho izy ny filaharan'ny fandosirana alohan'ny hanampiana ny azy. Ohatra, ao amin'ny ahy dia tsy vitako mihitsy ny nahavita ny fitsapana Konsole na dia tamin'ny fanamboarana marina aza .inputrc rakitra. Midika izany fa azonao atao ny manimba mora foana ny fandrindrana ny rafitrao noho ny fampiharana tsy tohanana na ny akorandriaka tsy voarindra. Mampidi-doza indrindra izany rehefa miditra amin'ny lohamilina lavitra, izay tsy dia mahazatra loatra ny fiasan'ny fikirakirana amim-pitandremana, indrindra raha manana milina lavitra toy izany ianao.
Ny vahaolana tsara amin'ity olana ity dia ny plugin fanamafisana fametahana ho an'ny terminal urxvt, izay mangataka alalana fotsiny hampiditra lahatsoratra misy andalana vaovao. Tsy nahita safidy azo antoka kokoa momba ny fanafihana an-tsoratra nofaritan'i Horn aho.
Tabs sy profil
Ny endri-javatra malaza amin'izao fotoana izao dia ny fanohanana ny interface misy tabilao, izay hofaritantsika ho fikandrana terminal iray misy terminal maromaro hafa. Ity fiasa ity dia tsy mitovy amin'ny terminal samy hafa, ary na dia tsy mahazaka tabilao mihitsy aza ny terminal xterm nentim-paharazana, dia manana an'io fiasa io ny fampidirana terminal maoderina kokoa toa ny Xfce Terminal, GNOME Terminal ary Konsole. Urxvt koa dia manohana tabilao, fa raha mampiasa plugin ianao. Saingy amin'ny resaka fanohanana tabilao dia ny Terminator no mpitarika tsy azo iadian-kevitra: tsy manohana tabilao fotsiny izy io, fa afaka mandamina ny terminal amin'ny filaharana rehetra (jereo ny sary etsy ambany).
Ny endri-javatra iray hafa amin'ny Terminator dia ny fahafahana "manangona" ireo tabilao miaraka ary mandefa ny fanendry fanalahidy mitovy amin'ny terminal maro miaraka amin'ny fotoana iray ihany, manome fitaovana tsy misy dikany amin'ny fanatanterahana asa marobe amin'ny servisy maromaro miaraka. Misy endri-javatra mitovy amin'izany koa apetraka ao amin'ny Konsole. Raha hampiasa an'io endri-javatra io amin'ny terminal hafa ianao dia tsy maintsy mampiasa rindrambaiko avy amin'ny antoko fahatelo toy ny
Ny tabilao dia miasa tsara indrindra rehefa ampiarahina amin'ny mombamomba: ohatra, azonao atao ny manana tabilao iray ho an'ny mailaka, iray hafa ho an'ny chat, sns. Izany dia tohanan'ny Konsole Terminal sy GNOME Terminal. Samy mamela ny kiheba tsirairay handefa ho azy ny mombamomba azy manokana. Ny Terminator koa dia manohana ny mombamomba azy, saingy tsy hitako ny fomba hanombohana programa sasany rehefa manokatra tabilao manokana ianao. Ny terminal hafa dia tsy manana ny foto-kevitry ny "profil" mihitsy.
Ruffles
Ny zavatra farany horesahiko amin'ny ampahany voalohany amin'ity lahatsoratra ity dia ny endriky ny terminal. Ohatra, ny GNOME, ny Xfce ary ny urxvt dia manohana ny mangarahara, saingy vao haingana no nandao ny fanohanana ny sary ambadika, nanery ny mpampiasa sasany hifindra any amin'ny terminal.
Ny terminal sasany dia mamakafaka lahatsoratra ho an'ny lamina URL mba hahatonga ny rohy azo kitihina. Izany dia mihatra amin'ny terminal rehetra avy amin'ny VTE, raha ny urxvt dia mitaky plugin manokana izay hanova URL amin'ny tsindry iray na amin'ny fampiasana hitsin-dàlana fitendry. Terminal hafa nosedraiko ny URL aseho amin'ny fomba hafa.
Farany, fironana vaovao amin'ny terminal dia ny safidy amin'ny buffer scroll. Ohatra, st tsy manana scroll buffer; dia heverina fa hampiasa terminal multiplexer toy ny tmux sy
Alacritty koa dia tsy manana buffer backscroll, saingy
subtotals
Ao amin'ny ampahany faharoa amin'ny fitaovana (tany am-boalohany dia lahatsoratra roa samy hafa ireo - eo ho eo. lalana) dia hampitaha ny zava-bita, ny fampiasana fahatsiarovana ary ny fahatarana. Hitantsika sahady anefa fa manana lesoka lehibe ny terminal sasany resahina. Ohatra, ireo mpampiasa izay miasa tsy tapaka amin'ny script RTL dia mety te handinika mlterm sy pterm, satria izy ireo dia tsara kokoa amin'ny fikarakarana asa mitovy amin'ny hafa. Nilalao tsara koa i Konsole. Ireo mpampiasa izay tsy miasa amin'ny script RTL dia afaka misafidy zavatra hafa.
Amin'ny lafiny fiarovana amin'ny fampidirana kaody ratsy, urxvt dia misongadina noho ny fampiharana manokana ny fiarovana amin'ity karazana fanafihana ity, izay toa azo antoka ho ahy. Ho an'ireo izay mitady lakolosy sy sioka sasany, Konsole dia mendrika hojerena. Farany, tsara ny manamarika fa ny VTE dia fototra tsara ho an'ny terminal, izay miantoka ny fanohanana ny loko, ny fanekena URL, sy ny sisa. Raha vao jerena dia mety mahafeno ny fepetra rehetra ny terminal default izay miaraka amin'ny tontolo tianao indrindra, fa avelao hisokatra ity fanontaniana ity mandra-pahazoantsika ny fampisehoana.
Andeha isika hanohy ny resaka
Amin'ny ankapobeny, ny fampandehanana ny terminal amin'ny tenany dia mety ho toy ny olana lavitra, saingy raha ny fandehany, ny sasany amin'izy ireo dia mampiseho fahatarana avo be ho an'ny rindrambaiko amin'ny karazana fototra toy izany. Hojerentsika manaraka ihany koa ilay antsoina hoe "hafainganam-pandeha" mahazatra (raha ny marina, io no hafainganam-pandehan'ny horonam-boky) sy ny fanjifana fahatsiarovana ny terminal (miaraka amin'ny fampitandremana fa tsy dia manakiana loatra amin'izao fotoana izao tahaka ny efa am-polony taona lasa izay).
fahatarana
Taorian'ny fandalinana lalina momba ny fahombiazan'ny terminal, dia tonga tamin'ny fanatsoahan-kevitra aho fa ny mari-pamantarana manan-danja indrindra amin'io lafiny io dia ny latency (ping). Ao amin'ny lahatsorany
Inona anefa no atao hoe latency, ary nahoana izy io no zava-dehibe? Tao amin'ny lahatsorany, i Fatin dia namaritra azy io ho "ny fahatarana eo anelanelan'ny fanindriana fanalahidy sy ny fanavaozana ny efijery mifanaraka amin'izany" ary nanonona teny.
Nohazavain’i Fatin fa misy vokany lalina kokoa noho ny fahafaham-po fotsiny io ping io: “Manjary miadana kokoa ny fanoratana, mihamitombo ny fahadisoana, ary mitombo ny fihenjanan’ny maso sy ny hozatra.” Raha lazaina amin'ny teny hafa, ny fahatarana lehibe dia mety hitarika ho amin'ny typos ary hampihena ny kalitaon'ny kaody, satria mitarika ho amin'ny enta-mavesatry ny kognita fanampiny amin'ny atidoha izany. Fa ny ratsy kokoa dia ny ping "mampitombo ny fihenjanan'ny maso sy ny hozatra", izay toa midika izany
Ny sasany amin'ireo fiantraikany ireo dia efa fantatra hatry ny ela, ary ny vokany
Nanao ny fitsapana nataony tamin'ny mpamoaka lahatsoratra i Fatin; namorona fitaovana azo entina antsoina hoe
Ireto ny valin'ny fandrefesako, ary koa ny valin'ny Fatin sasany, mba hampisehoana fa mifanaraka amin'ny fitsapana nataony ny andrana nataoko:
Ny zavatra voalohany nanaitra ahy dia ny fotoana famaliana tsara kokoa an'ireo programa taloha toa ny xterm sy mlterm. Miaraka amin'ny fahatarana rejistra ratsy indrindra (2,4 ms), dia nahavita tsara kokoa noho ny terminal maoderina haingana indrindra izy ireo (10,6 ms ho an'ny st). Tsy misy terminal maoderina latsaka ambanin'ny fe-potoana 10 milisegondra. Indrindra indrindra, tsy mahafeno ny fitakiana "emulator terminal haingana indrindra azo alaina" i Alacritty, na dia nihatsara aza ny naoty nanomboka tamin'ny famerenana voalohany tamin'ny taona 2017. Eny tokoa, ny mpanoratra ny tetikasa
Mety tsy ho hitan’ny maso anefa ny fahasamihafana. Araka ny fanazavan’i Fatin, “tsy voatery ho tsapanao ny fahatarana vao hisy vokany eo aminao izany.” Mampitandrina momba ny fivilian-dàlana marim-pototra koa i Fatin: "Ny fikorontanan'ny fahatarana (jitter) dia miteraka adin-tsaina fanampiny noho ny tsy ampoizina azy."
Ny kisary etsy ambony dia nalaina tamin'ny Debian 9 madio (stretch) miaraka amin'ny
Hafainganam-boky
Ny fitsapana manaraka dia fitsapana "hafainganam-pandeha" na "bandwidth" mahazatra, izay mandrefy ny hafainganam-pandehan'ny terminal amin'ny horonana pejy iray raha mampiseho lahatsoratra be dia be eo amin'ny efijery. Ny mekanika amin'ny fitsapana dia miovaova; ny andrana tany am-boalohany dia ny famoronana tady lahatsoratra mitovy amin'ny fampiasana ny baiko seq. Ny fitsapana hafa dia ny fitsapana nataon'i Thomas E. Dickey (xterm maintainer), izay miverimberina
Eto isika dia mahita ny rxvt sy st misintona mialoha ny fifaninanana, arahin'ny Alacritty vaovao kokoa, izay natao hifantoka amin'ny fampisehoana. Manaraka izany dia Xfce (fianakaviana VTE) sy Konsole, izay efa ho avo roa heny noho ny haingana. Ny farany dia xterm, izay avo dimy heny miadana kokoa noho ny rxvt. Nandritra ny fitsapana, ny xterm koa dia nivezivezy be, ka sarotra ny mahita ny lahatsoratra mandalo na dia andalana iray ihany aza. Haingana ny Konsole, saingy sarotra indraindray: mivaingana tsindraindray ny fampiratiana, mampiseho lahatsoratra ampahany na tsy mampiseho izany mihitsy. Ny terminal hafa dia nampiseho tady mazava tsara, anisan'izany ny st, Alacritty, ary rxvt.
Nohazavain'i Dickey fa ny fahasamihafan'ny zava-bita dia noho ny fandrafetana ny scroll buffers amin'ny terminal samihafa. Indrindra indrindra, miampanga ny rxvt sy ny terminal hafa ho "tsy manaraka ny fitsipika ankapobeny" izy:
"Tsy toy ny xterm, tsy nanandrana nampiseho ny fanavaozana rehetra i rxvt. Raha lavo izy, dia mandà ny fanavaozana sasany ho tratrarina. Nisy fiantraikany lehibe kokoa tamin'ny hafainganam-pandehan'ny horonan-tsary izany noho ny fandaminana fitadidiana anatiny. Ny tsy fahampiana iray dia ny tsy fahampian'ny animation ASCII."
Mba hanitsiana an'io fahamaizana xterm io dia manoro hevitra ny fampiasana ny loharanon-karena i Dickey
Fanjifana loharanon-karena
Na inona na inona maha-zava-dehibe ny fiheverana ny hafainganam-pandehan'ny horonam-boky ho toy ny metrika fampisehoana, ity fitsapana ity dia mamela antsika haka tahaka ny enta-mavesatra eo amin'ny terminal, izay mamela antsika handrefesana ireo mari-pamantarana hafa toy ny fitadidiana na fampiasana kapila. Ny metrika dia azo tamin'ny alalan'ny fanaovana ny fitsapana voafaritra seq eo ambanin'ny fanaraha-maso ny fizotran'ny Python. Nanangona angona metatra izy
Amin'ity fitsapana ity, ny ST dia mahazo ny laharana voalohany miaraka amin'ny fanjifana fahatsiarovana ambany indrindra amin'ny 8 MB, izay tsy mahagaga raha jerena fa ny hevi-dehibe amin'ny famolavolana dia tsotra. mlterm, xterm ary rxvt dia mandany kely kokoa - eo amin'ny 12 MB. Vokatra iray hafa misongadina dia ny Alacritty, izay mitaky 30 MB raha mihazakazaka. Avy eo dia misy terminal ny fianakaviana VTE miaraka amin'ny tarehimarika 40 ka hatramin'ny 60 MB, izay tena betsaka. Ity fanjifana ity dia azo hazavaina amin'ny hoe mampiasa tranomboky avo lenta ireo terminal ireo, ohatra, GTK. Ny Konsole dia tonga amin'ny farany miaraka amin'ny fanjifana fahatsiarovana 65MB be dia be mandritra ny fitsapana, na dia azo hamarinina amin'ny endri-javatra maro be aza izany.
Raha oharina amin'ny vokatra teo aloha azo folo taona lasa izay, ny programa rehetra dia nanomboka nandany fahatsiarovana bebe kokoa. Ny Xterm taloha dia nitaky 4 MB, fa ankehitriny dia mila 15 MB vao manomboka. Misy fitomboana mitovy amin'ny fanjifana ho an'ny rxvt, izay mitaky 16 MB avy ao anaty boaty. Ny Xfce Terminal dia mandray 34 MB, izay avo telo heny noho ny teo aloha, fa ny GNOME Terminal dia mila 20 MB ihany. Mazava ho azy fa ny fitsapana teo aloha rehetra dia natao tamin'ny maritrano 32-bit. Ao amin'ny LCA 2012 Rusty Russell
Na izany aza, tsy afa-manoatra aho fa mahatsapa fa fandaniam-bola ny fametrahana fahatsiarovana bebe kokoa amin'ny zavatra fototra toy ny terminal. Ireo programa ireo dia tokony ho kely indrindra amin'ny kely indrindra, tokony ho afaka mandeha amin'ny "boaty" rehetra, eny fa na dia boaty kiraro aza, raha toa ka tonga amin'ny toerana ilana azy ireo ny fitaovana Linux (ary fantatrao fa ho toy izany koa izany. ). Saingy miaraka amin'ireo isa ireo, ny fampiasana fahatsiarovana dia ho lasa olana amin'ny ho avy amin'ny tontolo rehetra mandeha amin'ny terminal maro ankoatry ny vitsivitsy amin'ireo maivana sy voafetra indrindra amin'ny fahaiza-manao. Mba hanonerana izany, ny GNOME Terminal, Konsole, urxvt, Terminator ary Xfce Terminal dia manana fomba Daemon izay ahafahanao mifehy terminal maromaro amin'ny alàlan'ny dingana iray, mametra ny fanjifana fahatsiarovana azy.
Nandritra ny fitsapana nataoko dia nisy valiny tsy nampoizina hafa momba ny famakiana-manoratra kapila aho: nanantena aho fa tsy hahita na inona na inona eto, saingy hita fa misy terminal sasany manoratra ny angona be indrindra amin'ny kapila. Noho izany, ny tranomboky VTE dia mitazona scroll buffer amin'ny kapila (ity endri-javatra ity
famaranana
Ao amin'ny tapany voalohany amin'ny lahatsoratra dia hitanay fa ny terminal miorina amin'ny VTE dia manana endri-javatra tsara, saingy izao dia hitantsika fa miaraka amin'ny vidin'ny fampisehoana izany. Ankehitriny dia tsy olana ny fitadidiana satria ny terminal VTE rehetra dia azo fehezina amin'ny alàlan'ny dingana Daemon, izay mametra ny filany. Na izany aza, ny rafitra taloha izay manana fetra ara-batana amin'ny habetsaky ny RAM sy ny buffer kernel dia mety mbola mila dikan-teny taloha kokoa, satria mandany loharanon-karena vitsy kokoa. Na dia nahavita tsara aza ny terminal VTE tamin'ny fitsapana throughput (scrolling), dia mihoatra ny tokonam-baravarana napetraka ao amin'ny Torolàlana ho an'ny mpampiasa GNOME. Ny mpamorona VTE angamba dia tokony handinika izany. Raha raisinay fa na dia ho an'ireo mpampiasa Linux vaovao aza dia tsy azo ihodivirana, dia afaka manao izany ho mora kokoa amin'ny mpampiasa. Ho an'ny geeks efa za-draharaha, ny fifindran'ny terminal default dia mety hidika ho kely kokoa ny maso sy ny fahafahana misoroka ny ratra sy ny aretina mifandray amin'ny asa noho ny fotoam-piasana lava. Indrisy anefa fa ny xterm sy mlterm taloha ihany no mitondra antsika amin'ny tokonam-baravaran'ny ping majika 10 milliseconds, izay tsy azo ekena ho an'ny maro.
Ny fandrefesana Benchmark dia nampiseho ihany koa fa noho ny fivoaran'ny tontolon'ny grafika Linux dia tsy maintsy nanao marimaritra iraisana ny mpamorona. Ny mpampiasa sasany dia mety te-hijery ireo mpitantana varavarankely mahazatra satria manome fampihenana ping lehibe izy ireo. Indrisy anefa fa tsy azo natao ny nandrefesana ny fahatarana ho an'ny Wayland: ny programa Typometer nampiasaiko dia noforonina ho an'ny zavatra natao hisorohana ny Wayland: fitsikilovana amin'ny varavarankely hafa. Manantena aho fa ny famoronana Wayland dia mahavita tsara kokoa noho ny X.org, ary manantena koa aho fa amin'ny hoavy dia hisy olona hahita fomba handrefesana ny fahatarana amin'ity tontolo ity.
Source: www.habr.com