GoTTY - Kekọrịta Terminal Linux gị (TTY) dị ka ngwa Weebụ


GoTTY bụ ngwa ahịrị iwu dabere na GoLang dị mfe nke na-enyere gị aka ịkekọrịta ọnụ (TTY) dị ka ngwa webụ. Ọ na-atụgharị ngwaọrụ ahịrị iwu ka ọ bụrụ ngwa webụ.

Ọ na-eji Chrome OS’ emulator terminal (hterm) mebie ọdụ Javascript dabere na ihe nchọgharị weebụ. Ma nke dị mkpa, GoTTY na-agba ọsọ sava webụ socket nke na-ebufe ihe sitere na TTY nye ndị ahịa ma nata ntinye n'aka ndị ahịa (ya bụ ma ọ bụrụ na anabatara ntinye sitere na ndị ahịa) wee bufee ya na TTY.

Ihe owuwu ya (hterm + webụ socket echiche) sitere na mmemme Wetty nke na-enyere ọnụ karịa HTTP na HTTPS aka.

Ịkwesịrị itinye gburugburu GoLang (Go Programming Language) na Linux iji mee GoTTY.

Otu esi etinye GoTTY na sistemụ Linux

Ọ bụrụ na ịnweelarị gburugburu GoLang na-arụ ọrụ, gbaa ọsọ gaa nweta iwu n'okpuru iji wụnye ya:

# go get github.com/yudai/gotty

Iwu dị n'elu ga-etinye ọnụọgụ abụọ GoTTY na mgbanwe gburugburu GOBIN gị, gbalịa lelee ma ọ bụ ya:

# ls $GOPATH/bin/

Otu esi eji GoTTY na Linux

Iji mee ya, ị nwere ike iji GOBIN env variable na iwu ọrụ mmecha akpaaka dị ka ndị a:

# $GOBIN/gotty

Ma ọ bụghị ya, mee GoTTY ma ọ bụ mmemme Go ọ bụla na-edeghị ụzọ zuru ezu na ọnụọgụ abụọ, tinye GOBIN agbanwe gị na PATH na faịlụ ~/.profile site na iji iwu mbupụ n'okpuru:

export PATH="$PATH:$GOBIN"

Chekwaa faịlụ ma mechie ya. Mgbe ahụ wepụta faịlụ ahụ ka ọ nwee mgbanwe ndị dị n'elu:

# source ~/.profile

Nkwekọrịta izugbe maka ịme iwu GoTTY bụ:

Usage: gotty [options] <Linux command here> [<arguments...>]

Ugbu a na-agba ọsọ GoTTY na iwu ọ bụla dị ka iwu df ka ilele oghere disk nke sistemụ na ojiji site na ihe nchọgharị weebụ:

# gotty df -h

GoTTY ga-amalite sava webụ na ọdụ ụgbọ mmiri 8080 na ndabara. Mepee URL: http://127.0.0.1:8080/ na ihe nchọgharị weebụ gị, ị ga-ahụ iwu na-agba ọsọ dị ka ọ na-agba na ọdụ gị:

Otu esi hazie GoTTY na Linux

Ị nwere ike ịgbanwe nhọrọ ndabara na ọdụ gị (hterm) na faịlụ profaịlụ ~/.gotty, ọ ga-ebufe faịlụ a na ndabara ma ọ bụrụ na ọ dị.

Nke a bụ isi faịlụ nhazi nke iwu gotty na-agụ, yabụ, mepụta ya dị ka ndị a:

# touch ~/.gotty

Ma tọọ ụkpụrụ nke gị dị mma maka nhọrọ nhazi (chọta nhọrọ nhazi niile ebe a) iji hazie GoTTY dịka ọmụmaatụ:

// Listen at port 9000 by default
port = "9000"

// Enable TSL/SSL by default
enable_tls = true

// hterm preferences
// Smaller font and a little bit bluer background color
preferences {
    font_size = 5,
    background_color = "rgb(16, 16, 32)"
}

Ị nwere ike ịtọ faịlụ index.html nke gị site na iji --index nhọrọ site na ahịrị iwu:

# gotty --index /path/to/index.html uptime

Otu esi eji atụmatụ nchekwa na GoTTY

N'ihi na GoTTY anaghị enye nchekwa a pụrụ ịdabere na ya na ndabara, ịkwesịrị iji aka ya jiri ụfọdụ atụmatụ nchekwa akọwara n'okpuru.

Rịba ama na, na ndabara, GoTTY anaghị ekwe ka ndị ahịa pịnye ntinye n'ime TTY, ọ na-enye ohere ịmegharị windo naanị.

Agbanyeghị, ịnwere ike iji -w ma ọ bụ --permit-write nhọrọ iji nye ndị ahịa ohere idegara TTY, nke anaghị akwado ya n'ihi ihe egwu nchekwa na sava ahụ.

Iwu na-esonụ ga-eji vi editọ akara iwu imepe faịlụ fossmint.txt maka edezi na ihe nchọgharị weebụ:

# gotty -w vi fossmint.txt

N'okpuru ebe a bụ vi interface dị ka a na-ahụ site na ihe nchọgharị weebụ (jiri iwu vi ebe a dị ka ọ na-adị):

Gbalịa mee ka usoro nyocha bụ isi, ebe a ga-achọrọ ndị ahịa itinye aha njirimara na paswọọdụ akọwapụtara iji jikọọ na sava GoTTY.

Iwu dị n'okpuru ga-amachibido ohere onye ahịa site na iji -c nhọrọ ịjụ ndị ọrụ maka nzere akọwapụtara (aha njirimara: ule na paswọọdụ: @67890):

# gotty -w -p "9000" -c "test:@67890" glances

Ụzọ ọzọ nke igbochi ịnweta sava bụ site na iji -r nhọrọ. N'ebe a, GoTTY ga-ewepụta URL na-enweghị usoro ka ọ bụrụ naanị ndị ọrụ maara URL ahụ nwere ike ịnweta sava ahụ.

Jirikwa –title-format “GoTTY – {{ .Command}} ({{ .Hostname }})” nhọrọ iji kọwapụta aha interface ihe nchọgharị weebụ yana iwu nlele ka a na-eji gosi stats nleba anya sistemụ:

# gotty -r --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Ihe a bụ nsonaazụ nke iwu dị n'elu dị ka ahụrụ site na ihe nchọgharị weebụ:

N'ihi na na ndabara, njikọ niile dị n'etiti sava na ndị ahịa anaghị ezoro ezo, mgbe izipu ozi nzuzo site na GoTTY dị ka nzere onye ọrụ ma ọ bụ ozi ọ bụla ọzọ, ị ga-eji -t ma ọ bụ - -tls nhọrọ nke na-enyere TLS/SSL aka na nnọkọ:

GoTTY ga-abụ na ndabara gụọ faịlụ asambodo ~/.gotty.crt yana faịlụ igodo ~/.gotty.key, yabụ malite site na ịmepụta asambodo ejiri aka ya bịanye aka na ya. dị ka faịlụ igodo site na iji openssl iwu dị n'okpuru (zaa ajụjụ a jụrụ iji mepụta cert na faịlụ igodo):

# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt

wee jiri GoTTY mee ihe n'ụzọ echekwara na SSL/TLS nyere aka dị ka ndị a:

# gotty -tr --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Ị nwere ike iji iwu nlele anya (jide n'aka na ị tinyela tmux):

# gotty tmux new -A -s gotty glances 

Iji gụọ faịlụ nhazi dị iche, jiri -config/path/to/file nhọrọ dị ka nke a:

# gotty -tr --config "~/gotty_new_config" --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Iji gosi ụdị GoTTY, mee iwu:

# gotty -v 

Gaa na ebe nchekwa GoTTY GitHub iji chọtakwuo ọmụmaatụ ojiji: https://github.com/yudai/gotty

Ọ gwụla! Ị nwalela ya? Kedu otu ị ga-esi chọta GoTTY? Gwa anyị echiche gị site na mpempe nzaghachi n'okpuru.