Sziasztok.
Kicsit meguntam, hogy ha jó mélyen benn vagyok egy könyvtárban, a sor végén kell elkezdenem írni a parancsot. Amikor meg kapok egy szkrollozható parancssori kimenetet, az elejét úgy kell kibogozni...
Új sorba kerül a prompt, és függőleges vonallal jelzem, hol kezdődik.
# .bash.rc HEKK
if [ $(id -u) -eq 0 ];
then # root felhasznalokent:
PS1="\e[0;31m┌──••[\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h:\w\a\]$PS1]\e[0;31m────\n💀\n└─# \e[1;32m"
else # normal userkent:
PS1="\e[0;34m┌──••[\[\e]0;\u@\h:\w\a\]$PS1]────\n\e[0;34m└─> \e[0;37m"
fi
Rootként a vonalak átváltanak pirosra, és egy kedves kis halálfej is jelzi, hogy alvajáróként inkább máshol kotorásszak:
┌──••[user@gollum:~$ ]────
└─> cd ..
┌──••[user@gollum:/home$ ]────
└─> sudo bash
[sudo] user jelszava:
┌──••[root@gollum:/home# ]────
💀
└─#
Kíváncsi vagyok, ki miként működteti a parancssorát. A csiliviliből itt is ki lehet nőni, ahogy az ember a compizból is visszatér az xfce4 alapjához. Viszont egy idő után a terminálon tényleg kiesik az ember szeme...
Hozzászólások
Ugyanezzel a problémával küzdöttem. Már nem tudom, hogy mi mit jelent,
de ez csak a közvetlen directorit írja ki : PS1=$"[./\W]$"
Pl : [./github]$
Ez nem jó. A dollárjel elé kell egy visszafelé perjel, mert anélkül mindig $-t fog kiírni jogkijelzésre, és nem fog átváltani #-re.
Egyébként nekem is hasonlóan egyszerű. Bash alatt PS1='\e[1;96m\w \e[1;95m\$ \e[0m' a beállítás, zsh-ban pedig PS1='%B%F{14}%~ %f%F{13}%# %f%b' volt. Mindkettő a teljes mappaelérési utat írja ki, és a jogkijelző karaktert, CGA kék-lila színsémában, a retró hatás kedvéért. A különbség csak annyi, hogy zsh alatt más formátumban kell megadni, meg zsh-ban egy weboldal ajánlása alapján % jelet használtam a nem rendszergazdai jogú usernek a szokásos $ helyett, ezt is csak azért, hogy látszódjon, hogy másik shellben vagyok.
Lehet szebbre kéne cicomázni, de jó így. Előtte sok évig a default, színek nélküli "user@hostname ~ $" formátumot használtam de ez csak akkor hasznos, ha sokféle user és sokféle host között ugrál az ember, pl. szerverekre SSH-zik be. Én viszont csak desktopnak használom a gépem, és csak egyféle userrel ügyködök, legtöbbször normál jogokkal, és csak ritkán adminjogokkal.
Kicsit igénytelenre van állítva, de a shellt magát nem használom sokat. Pedig szinte mindenre CLI, TUI, terminálos programokat, saját scripteket használok, de azok legtöbbször saját terminálablakukban nyílnak hotkey-re, és eleve saját színekkel, beállításokkal jönnek. Így hiába fut minden terminálban (alig pár alkalmazás kivétel csak, Firefox, Steam, Goldendict, játékok), magát a shell promptot nem kell sokat néznem, nem kell sokat gépelnem, nem kell mappákat váltogatnom.
“A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)
Mire gondolsz pontosan? Leírnád, hogy mi szerinted a javítás?
Leírta:
ne $ legyen a promptban, hanem \$ -> ha nem vagy root (UID =/= 0), akkor $, ha root vagy akkor # látszik a helyén.
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
PS1="[./\W]\$ "
“A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)
Még így sem jó hanem ez a nyerő :
PS1="[./\W]\\$"
shell alapismeretek:
"-páron belül bizonyos karakterek megtartják speciális jelentésüket. A \ például megtartja speciális jelentését, de csak bizonyos speciális karakterek előtt, mint pl. \ vagy $. Ellenben '-ok között elveszítik. Azaz lehet "-ek közé is rakni, de akkor erre is kell figyelni. (Azaz ezért kellett \\$ és ezért \W.) Ennél egyszerűbb aposztrófokat használni.
PS1='[./\W]\$ '
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
Lásd, amit a kolléga írt lentebb. Bár szerintem a ./ sem kell benne, a / mappában kicsit furcsán mutat, ha [.//] van elérési útként. Helyette: PS1="[\W] \$ " Fontos a szóköz a $ után, hogy a prompttal ne folyjanak egybe a bevitt parancsok.
“A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)
[22:51:27] username @hostname [ ~ ]
$ echo $PS1
\[\e[1;92m\][\t] \u @\h [ \w ]\n$\[\e[m\]
// Hocus Pocus, grab the focus
winSetFocus(...)
http://c2.com/cgi/wiki?FunnyThingsSeenInSourceCodeAndDocumentation
Nem szeretem ezeket a több soros, emeletes promptokat, de ez mindenkinél megszokás, egyéni ízlés, felhasználási mód kérdése. Nekem ezek elvonják a figyelmem a parancsok kimenetitől.
Root shellhez a sudo bash helyett érdemesebb az su parancsot kiadni magában, ami az su root alaknak felel meg. Ez akkor is működik, ha nincs fent az adott gépen a Bash, hanem csak másmilyen shell, meg ha a rootnak másmilyen shell van beállítva, azt is tiszteletben tartja. Plusz nem minden gépen van sudo, BSD-ken pl. doas van helyette, amelyiken van sudo, ott nem biztos, hogy hozzá van adva a /etc/sudoers-ben, hogy sudo-val garázdálkodhat.
Épp így, ha csak fájlt akarsz rendszergazdai joggal szerkeszteni, akkor a sudo editorod /szerkesztendo/fajl helyett a sudoedit /szerkesztendo/fajl vagy sudo -e editorod /szerkesztendo/fajl formában érdemes kiadni, ez csak a fájlt éri el emelt jogosultságokkal, másolatot készít belőle a /tmp/-be, majd az editort már normál userként futtatja, és a végén emelt jogosultságokkal visszamásolja a fájlt az eredeti helyére, ha a tartalma megváltozott.
A sudo az ilyen senki földje igazából, kivételesen érdemes csak használni, 1-1 parancs erejéig. GUI-s alkalmazásnál meg a pkexec parancsot kell használni helyette, ami a polkitet használja. Aki GUI text editort használ, és az editorja fuse-képes (pl. gedit), az tudja a rendszergazdai jogot igénylő fájlokat admin:///szerkesztendo/fajl formában elérni, és csak az eléréshez fog jelszót kérni, de az editor nem fog rootként futni! Hasonlót tud az Emacs is. Így ha sudo-t használsz, nagyon gondold át, hogy 1) indokolt-e, 2) nem kéne-e helyette valami másik jogosultságemelő megoldást használni.
“A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)
"Root shellhez a sudo bash helyett érdemesebb az su parancsot kiadni magában" - Itt ugye a "sudo su -" -ra gondoltál :-) Ilyet mondjuk jól összerakott sudoers esetén nem igazán köll... :-P
Az egyetlen különbség a su és a sudo su között, hogy az előbbi a root jelszavát kéri be, az utóbbi a parancsot kiadó user jelszavát. Ez utóbbi akkor praktikus, ha a root jelszót nem akarják kiadni. Meg mint mondtam, a sudo vagy nincs fent, vagy nincs engedélyezve a usernek, ezért biztosan (és rövidebb, lustáknak kényelmesebb) az egymagában kiadott su.
A kötőjelben igazad van, azt talán hasznos lehet a su után betenni, mert az a root beállításait inicializálja, környezeti változók, belép a root mappájába, de ez az esetek nagy részében nem szükséges. Sőt, a topikindító kollégának nem kívánatos, mert akkor a promptba betett haláli unicode-os halálfej emoji karakter nem fog neki megjelenni, hanem a root-nak rendszer szinten beállított PS1-ét kapja az arcába.
“A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)
"Ez utóbbi akkor praktikus, ha a root jelszót nem akarják kiadni" - márpedig több adminos környezetben a root jelszó az borítékos, és használat után cserélendő, jobb esetben úgy, hogy mondjuk hárman adnak 4-4 karaktert a jelszóhoz, így biztosítva azt, hogy a teljes root jelszónak senki sincs birtokában.
"a topikindító kollégának nem kívánatos, mert akkor a promptba betett haláli unicode-os halálfej emoji karakter nem fog neki megjelenni" - az UID=0 -hoz tartozó PS1-et nem a pistike user beállításaiban kell megadni - ugyanis a pistike user beállításai rootként indított shell esetén nem kívánatos, hogy lefussanak, illetve hatással legyenek az immáron root userként futó munkamenetre.
Akkor már inkább Shamir's Secret Sharing.
Lehet az is, én olyat írtam, amit láttam működni, és két dolog kellett hozzá: papír, meg íróeszköz.
Az enviro átvétel szerintem kellően fontos ahhoz, hogy figyeljünk rá. Ennek megfelelően vagy su - vagy sudo -i amit használok, attól függően hogy root jelszó ismert vagy user jelszó van meg.
Egy sudo su - értelmét nem látom, egy sudo -u vagy sudo bash meg nem veszi át a környezetet, így az user $HOME-ban hirtelen root tulajdonosú .bash_history jelenik meg meg egyéb nyalánkságok, ami később mezei userként nem fogja könnyebbé tenni az életet.
root jelszo... - zeller entered the chat
^^^^^^^^ ^^^^^^^^
Ezeket rakd \[ és \] közé, különben a sorszerkesztés csúnyán bugos lesz.
Igen, átírtam már, de azóta újat alkottam :-)
10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.
A legfontosabb gépemen:
PS1='$ '
:-)
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
íme a Kali lunuxból egy kiforrottabb többsoros megoldás, jelenleg ennél maradok. Többoldalas parancssori kimeneteknél valóban jól láthatóvá teszi a visszakeresést az a csodavonalazás... A sorok száma itt már csak 2, nem 3.
A kimenet ezután szintén megváltoztatja a vonal színét root esetén, de a promptot is, és egy kedves kis halálfej jelzi a veszélyes üzemmódot:
10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.
Kicsit overkillnek érzem ezt már :D
// Hocus Pocus, grab the focus
winSetFocus(...)
http://c2.com/cgi/wiki?FunnyThingsSeenInSourceCodeAndDocumentation
Nekem nagyon megtetszett :-)
Ami a legfontosabb: ha mélyen benne vagyok egy könyvtárstruktúrában, nem a sor végén kell bogarásznom a prompt után.
Felpakoltam minden distribemre, persze néhol biohazardra változtatva az emojt.
Viszont mivel az emoj X nélkül megy a levesbe, azt szerintem szanálom.
10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.
Nem kell szanálni az emojit. Be tudod állítani, hogy külön PS1 prompt legyen akkor, ha a Bash érzékeli, hogy virtuális tty-ból/terminálból fut, és külön PS1 prompt, ha nem. Pl.
if [[ $TERM == "x_terminálod_neve" ]]
then
export PS1="emojis_cumó"
else
export PS1="alternatív_tty_prompt"
fi
“A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)
if [ -n "$PS1" ]; then
if [ "$EUID" = "0" ]; then
export PS1="\n\[$Red\]┌─\u:\[$Cyan\][\w]\[$Red\] \n└──\\$ \[$NC\]"
else
export PS1="\n\[$Green\]┌─\u:\[$Yellow\][\w]\[$Green\] \n└──\\$ \[$NC\]"
fi
fi
Nekem a $Red stb. nincs definiálva.
10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.
Van, amikor környezeti változó is jól jön a promptban...:
☠ \W \u $? $
ez szebb halálfej :-)
10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.