Názory k článku
Malé hrátky z řádky
little thing
celé vláknoRe: little thing
celé vláknoRe: little thing
celé vláknoRe: little thing
celé vláknoRe: little thing
celé vláknoRe: little thing
celé vláknoRe: little thing
celé vláknoUkončování znakem CR je vlastní i jiným terminálům, než linuxovým. V textových souborech na Linuxu je řádek ukončen znakem LF, pro zmatení nepřítele.
jinak dobra wikina na rootu na toto tema
celé vlákno(pulku tech tipu/triku je mych :) ), tak prispivejte vsichni at nam to roste
Re: jinak dobra wikina na rootu na toto tema
celé vláknoRe: jinak dobra wikina na rootu na toto tema
celé vláknoNechapu co resis, proste je na to wikina, ktere si nikdo nevsima, tak rikam ze je lepsi to tam dat nez delat 'serii' clanku na tipy/triky/hratky z radky
Re: jinak dobra wikina na rootu na toto tema
celé vláknona wikine je to asi o neco lepsi. Aspon z obsahu clovek hned pozna jestli je tam pro neho neco noveho...z tohoto clanku jsem se nic nedozvedel..cimz ho nechci samozrejme snizovat..verim ze lidem co v cli zacinaji tyto tipy usnadni praci :).
Re: jinak dobra wikina na rootu na toto tema
celé vláknoŽe to je ve wiki nevidím jako problém. Ideální by bylo, kdyby to bylo ve wiki, a občas někdo napsal článek, kde naznačí možnosti, a dá na wiki odkaz.
Radsej zsh nez bash
celé vláknogrep somestring **/* #prehlada rekurzivne vsetky subory vo vsetkych adresaroch ktore nie su skryte
grep somestring **/*~*.o #pregrepuje vsetky subory ktore nematchuju *.o vo vsetkych podadresaroch
grep somestring **/*.c(c|pp) #pregrepuje vsetky subory *.cpp a *.cc
Potom dalej hlavne 'zmv' prikaz (hromadne premenovavanie kde je mozne globovat casti nazvov a pouzit ich znova, pr. "zmv "nazov(*).cpp nazov-nejakypriklad-$1.cpp"), a mnozstvo nastaveni (completion pri jednom tabe, check pri > a >> ci uz subor existuje/neexistuje, pri navrhu doplneni nescrollovanie terminalu...)
Viz pripadne tunajsi clanok http://www.root.cz/clanky/zuzo-shell/
Dalej to trebars ma lepsi completion nez bash-completion (vratane cvs, svn, configure, ...) Priklad zshrc (orezany o specificke featury) viz. http://pastebin.com/fc9ef67a
Re: Radsej zsh nez bash
celé vláknoNEBO dělat multiplatformně s normálním shellem jako je Korn či Bash a na všechny ty vaše vychytávky používat standardní příkazy co má človek k ruce - shell, find, rename (rename s plnou podporou regexp místo prasáckých hacků v podobě pseudo-globů v syntaxi jedné jediné aplikace), případne párznakové perl onelinery. Nevidím důvod pro existenci shellu, který je něco mezi Kornem, Midnight commanderem a Emacsem.
Taky byste měl vědět, že globy jsou jen na základní výběr pár souborů - tu hrůzu, co jste předvedl nepoužijete ani vy v zsh pokaždé. Globování totiž funguje tak, že výsledek shell "doplní na command line" ještě než spustí příkaz, který ty výsledky dostane v environmentu. Když takhle debilně globnete ve větším adresáři nebo nedej Bože rekurzivě, nic se vám nespustí, protože výsledek přeteče max. velikost proces environmentu. To je fajn hlavně ve skriptech, kdy to nevidíte. Proto existuje find, xargs a proto taky nikdo normální nepoužívá zsh.
Co se týká completition, tak nikdo nepoužívá ani 10% toho co např. bash umí. Vy zjevně taky ne, protože byste vědel, že kromě cvs, svn a configure umí doplňovat neomezené množství příkazů, jejich možných parametrů a i jejich hodnot (např. název fs při mount/umount). To, že vy nepoužíváte ty všude dostupné completition funkce, neznamená, že to není možné. Popravdě, pro Bash existuje mnohem víc doplňovačů než pro zsh. :)
Dále v zsh není kompatibilní POSIX shell, takže buď můžete psát skripty pro zsh nebo UNIX. Příkladem budiž např. chování naprosto zásadního builtin příkazu "set", nebo proměnná OPTIND.
Situace je taková, že na plno systémech není ani Bash, natož Zsh. Být vámi, tak se radši naučím pořádně _základy_ práce s shellem (jako je string substituce) a perlem (regexp). Budete stejně rychlý jako se zsh, ale na všech systémech. Ne jen doma na vašem barevném hkgxzubuntu desktopu.
Re: Radsej zsh nez bash
celé vláknoVela ludi pouziva vyhradne svoj system, nema problem si tam nainstalovat cokolvek, nevidim dovod, preco by to nemohol byt prave zsh.. Je preto azda nenormalny?
btw v Ubuntu je by default dash, ak sa nemylim ;)
Re: Radsej zsh nez bash
celé vláknoRe: Radsej zsh nez bash
celé vláknoZ cca 12 strojov kde mam ucet (co si z hlavy spominam), je zsh vsade az na jeden. Btw zsh = ksh + bash + nejake drobnosti
"Taky byste měl vědět, že globy jsou jen na základní výběr pár souborů"
Viem jak funguje globbing, je to obmedzene maximalnou dlzkou argumentov pre proces (typicky nieco ako 2^15). Ale vo vacsine pripadov "grep neconeco **/*.cpp" je lepsie ako "find ./ -iname "*.cpp" -exec grep -H neconeco {} ';'" V skriptoch zsh nepouzivam, tam sh/bash (kvoli prenositelnosti) alebo ruby/python/perl (na onelinery hlavne perl). AFAIK bash nema # a ## operatory v globe (regexp ekvivalent * a +).
"Co se týká completition, tak nikdo nepoužívá ani 10% toho co např. bash umí. "
I beg to differ. Bash completion som pouzival dlho a zsh completion mi subjektivne pride lepsie (=v kope prikazov, co nemali v bash completion, v zsh maju, ale nepocital som kolko ma ktory).
Diky za poucenie, citim sa o hodne mudrejsi.
Re: Radsej zsh nez bash
celé vláknofind ./ -iname "*.cpp" -exec grep -H neconeco {} ';'
Alebo to comu ty hovoris globbing pre mensi pocet suborov:
grep -H neconeco `find ./ -iname "*.cpp"`
Vyhodne je ze stale pouzivam tie iste prikazy. A s viac moznostami (napr. find -type d ... co bude asi pre zsh globbing trochu problem).
Re: Radsej zsh nez bash
celé vláknoMne pride zapis **/*.cpp ovela elegantnejsi nez `find ./ -iname "*.cpp"`
"[...]napr. find -type d"
Zsh ma tolko featur globbingu, ze ich snad ani autor sam nepozna vsetky ;-)
Pr.
ls -d /tmp/generated-*(/) #vypise vsetky adresare z tmp zacinajuce generated-, (/) znamena len adresare
ls /tmp/generated-*(.) #ako predchadzajuci riadok ale len regular files
ls /tmp/generated-<14000-40000>(@) #vsetky symlinky v tmp zacinajuce "generated-" potom nasledovane cislom v rozmedzi 14000-40000
Ctrl+H mi nefunguje
celé vláknoRe: Ctrl+H mi nefunguje
celé vláknoTady je takovy helpik pro pripadne zacatecniky: http://bruxy.regnet.cz/jepare/mc.pdf
Re: Ctrl+H mi nefunguje
celé vláknoRe: Ctrl+H mi nefunguje
celé vláknoHotlist v MC
celé vláknoRe: Hotlist v MC
celé vláknoDalsi co me napada...
celé vláknoja zas pouzivam
celé vláknobluemoon site
Re: ja zas pouzivam
celé vláknoRe: ja zas pouzivam
celé vláknoRe: ja zas pouzivam
celé vláknoRe: ja zas pouzivam
celé vláknoRe: ja zas pouzivam
celé vláknojestlize je vase KDE fakt hnusne, je to o vas ne o KDE.
ps: moooc by me zajimalo jak pouzije ten chytrak pred vami krusader na produkcnim stroji (samozrejme bez Xek).
Re: ja zas pouzivam
celé vlákno…moj osobny nazor je ze gnome je rovnako skarede prostredie ako prehistoricke win 3.11 …v tomto gnome oproti win zaostalo a pozrime kam to win dotiahol z win 3.11 a kam gnome – samozrejme hovorim o vzhlade .. na gnome sa neviem pozerat … proste tazko spojim moderny vzhlad gnome so skutocnostou.. to je vse pratele..
Re: ja zas pouzivam
celé vláknožasnu
celé vláknoRe: žasnu
celé vláknoradsi trivialitky spravne nez odborne bludy
Re: žasnu
celé vlákno
gzip -9 pokus.bin | uuencode priloha.gz | mail -s "posilam si zabaleny soubor" muj@email.cz
Tenhle článek se měl jmenovat "Před půl rokem jsem nainstaloval Linux a už dělám pokroky" a měl být zveřejněný na nějakém zapadlém, bezvýnamném blogu.
Re: žasnu
celé vláknoRe: žasnu
celé vláknoRe: žasnu
celé vláknoRe: žasnu
celé vláknogzip -c pokus.bin | uuencode priloha.gz | mail -s "posilam si soubor"
muj@mail.cz
Re: žasnu
celé vláknoAkorát jestli je to koncipované pro začátečníky, mohlo tam být ještě, že pro dostání se k původnímu souboru je potřeba s příloženým souborem provést zase opačnej postup.
Re: žasnu
celé vláknoNedotazeno
celé vláknonapad neni spatny, ale zase nedotazeny.
Ctrl r zna kazdej.
Zajimavejsi by bylo napsat:
1/ jak hledat dopredu, prejeduli moc dozadu
2/ jak spoustet veci z history tak jak sly za sebou
3/ jaky je jednoduchy prikaz pro vybirani n-th column z filu
sed - nenasel jsem, awk - slozity, perl - pouzivam,ale musi byt prece neco
jednodussiho
Re: Nedotazeno
celé vláknoCtrl + r každý rozhodně nezná, sám s ním často lidi překvapím („Počkej! Jak jsi to udělal s tím vyhledáváním?!”). Vaše tipy jsou ale rozhodně podnětné, autor hodlá pokračovat a pokud bude zájem (podle ankety je), uděláme z toho pravidelný seriál – podobně jako třeba Softwarová sklizeň.
Je jasné, že část postupů zřejmě bude někdo znát a najde se i čtenář, který zná a používá všechny. Článek ale není určen pro guru, ale pro lidi, kteří se chtějí naučit něco nového a zajímavého.
Re: Nedotazeno
celé vláknoRe: Nedotazeno
celé vláknoRe: Nedotazeno
celé vláknoSuhlas. Pouzivam mc (viac alebo menej) uz asi 6 rokov a o SHIFT+mouse som nevedel ;-) Velmi prijemne :-)
K tomuto tipu by ale bylo dobré uvést, že se jedná pouze o chování nikoliv MC, ale "GPM", správy konzole a označování/pastování z kódu "selection". Terminálové aplikace jako MC si mohou grabnout myš a tím je nahrazené klasické konzolové "selection" posíláním ESC sekvencí do aplikace (MC). Pokud je však přidržena klávesa SHIFT, GPM nepošle sekvenci přes emulaci terminálu aplikaci, ale provede výběr přímo v bufferu terminálu, případně na další tlačítko vepíše vybraný text na vstup aplikace. Přidržení SHIFTu lze tedy použít i v dalších textových aplikacích, které si normálně obsadí myš pro sebe (FPC IDE, Turbovision, etc).
Re: Nedotazeno
celé vláknoawk vobec nie je zlozite...
awk -F. '{print $3}'
parameter -F specifikuje oddelovac stlpcov (ak ho nedam, berie sa whitespace, cize medzery, tabulator a pod.). $3 je treti stlpec... To je ta zakladna vec a je jednoducha. Samozrejme sa cez awk daju robit ovela zaujimavejsie veci :) Nedavno som pomocou neho spocital pocet tcp spojeni v jednotlivych stadiach (ESTABLISHED, FIN_WAIT a pod.). len pre zaujimavost (ako plugin pre munin):
netstat -nt | awk '/^tcp/ { states[$6]++ } END { for (idx in states) print idx ".value " states[idx] }'
Zaujimave je kombinovat grep a awk, nech nespustame zbytocne vela procesov. Rovnako sa da "grepovat" len z konkretneho stlpca, ale to by som musel pozriet syntax.
awk -F. '/hladam/ {print $3}'
Pokial som to cele zle pochopil a nejde o delimited stlpce, ale o fixed-size, tak na to sluzi utilitka "cut". Samozrejme tiez ma asi viac pouziti, ale ja ju pouzivam na orezanie vstupu podla pozicie na riadku:
vypise znaky 10 az 50 z kazdeho riadku vstupu: cut -c10-50
znaky od 10 az po koniec riadku: cut -c10-
Re: Nedotazeno
celé vláknocut -d : -f 3 /etc/passwd vytáhne UID jakožto 3. prvek řádku, když oddělovač je dvojtečka.
Re: Nedotazeno
celé vláknoted si vybavuju, ze jsem ho kdysi pouzil.
Jen nevim, jestli umi delimiter napr "\s+"
Re: Nedotazeno
celé vlákno2.) ??
3.) awk je zlozity (popravde mam radsej sed ale na toto je awk lepsi)?
awk '{ print $N }' < file
kde "N" je cislo stlpca
Re: Nedotazeno
celé vláknoRe: Nedotazeno
celé vláknoAle jelikoz to je taky poslani signalu SIGSTOP, musis to premapovat
premapovat SIGSTOP z ^S na ^F: stty stop ^F
pak to pujde hezky ctrl + s... ale urcite se to ctrl+s da taky nejak premapovat, aby se to neprekryvalo s SIGSTOP... ctrl + shift + r mi totiz mnohdy nefunguje
Re: Nedotazeno
celé vláknobind '"^T": forward-search-history'Vypsani n-teho sloupce v perlu:
perl -nle 'print ((split /\t/)[10])' file.txtVhodné v případě, že místo oddělovače (zde \t ) máte v souboru něco šílenějšího a potřebujete Mocný Perl RegEx (TM :-)
Nevite nekde o alternative AutoHotkey pro Linux?
celé vláknoRe: Nevite nekde o alternative AutoHotkey pro Linux?
celé vláknoprirazuje makra ci skripty kl. zkratkam?
na to neni v linuxu treba nic. jen zalozit si ~/bin a do nej davat skriptiky.
pridavat ci menit kl. zkratky dovoluje kazdy Desktop Manager (kde, xfce a verim ze i gnome a mraky dalsich)
Re: Nevite nekde o alternative AutoHotkey pro Linux?
celé vláknoRe: Nevite nekde o alternative AutoHotkey pro Linux?
celé vláknoRe: Nevite nekde o alternative AutoHotkey pro Linux?
celé vláknoScreen pro graficke aplikace
celé vláknoRe: Screen pro graficke aplikace
celé vláknoRe: Screen pro graficke aplikace
celé vláknoRe: Screen pro graficke aplikace
celé vláknoX forwarding
celé vláknohttp://show.harvie.ath.cx/linux/Windows-SSH-X11-Forwarding.png
http://show.harvie.ath.cx/linux/Windows-SSH-X11-Forwarded-Desktop.png
Re: X forwarding
celé vlákno(částečnou) Odpovědí na původní dotaz by bylo, kdybyste dokázal "přetáhnout" aplikaci která již na nějakém X serveru běží do ssh forwardingu. (Mě osobně by se to docela hodilo.)
historie v shellu
celé vláknoset -o vi
^/cast_prikazu
proste toto je c00l :P
Re: historie v shellu
celé vlákno"\ep": history-search-backward
"\en": history-search-forward
stačí napsat začátek příkazu a Esc+p listuju nahoru historií, Esc+n listuju dolů :)
Posilani pomoci uuencode
celé vláknoNo, je hezke, ze se soubor posle ze shellu, ale posle se jako text. Pritom neni problem ho poslat primo jako prilohu, ponevac uuencode umi i base64 (prepinac -m). Ja osobne pouzivam na to tyto dva primitivni skriptiky - jeden je vlastne jen wrapper pro ten druhy, ktery vytvori MIME obalku pro samotny soubor, ktery je pak nasledne vecpan do chrtanu lokalniho smtp serveru.
Prvni skriptik:
#!/bin/sh file2mimemail $@ | /usr/sbin/sendmail -B 8BITMIME -bs
Musi se mu predat tri parametry - jmeno souboru, adresa odesilatele a adresa prijemce (v tomto poradi, RT*S).
Nasleduje samotny MIME konvertor, pokud ho pojmenujete jinak nez file2mimemail, opravt si predchozi skrip.
#!/bin/sh mime_boundary=`date | md5sum | head -c 32` echo "HELO localhost" echo "MAIL FROM: $2" echo "RCPT TO: $3" echo "DATA" echo "MIME-Version: 1.0" echo "From: $2" echo "To: $3" echo "Subject: Sent file $1" echo "Content-Type: multipart/mixed; boundary=$mime_boundary" echo echo "This is a multi-part message in MIME format." echo echo "--$mime_boundary" echo "Content-Type: text/plain; charset=iso-8859-1" echo "Content-Transfer-Encoding: 8bit" echo "Sent file $1" echo echo "--$mime_boundary" echo "Content-Type: application/octet-stream; name=$1" echo "Content-Disposition: attachment; filename=$1" echo "Content-Transfer-Encoding: base64" echo -n "X-uuencode-head: " uuencode -m $1 $1 | head -n -1 echo echo "--$mime_boundary--" echo "." echo "QUIT"
Ty brikule s hlavickou a X-uuencode-head jsou tam proto, ze uuencode tam hazi zacatek, ktery ale v MIME mailu nema co delat (pokud nekoho napadne elegantnejsi reseni, budu za nej vdecny). A pokud mate nelokalni stmp nebo se serveru nelibi to HELO localhost, tak to prepiste, treba na `hostname` nebo neco v tom smyslu.
Re: Posilani pomoci uuencode
celé vláknohm -- pozoruhodne
celé vláknoctr+L slouzi jako clear :D
Užitečné
celé vláknoUžitečné právětehdykdyž
celé vláknoPřimlouval bych se -- když už jsme na Rootu -- bylo by možné takové články kontrolovat? Když už je tu tolik expertů (pohledem do diskuze;-), ať to vždy nejdřív někdo zkontroluje. Jsme lidi, chyby dělá každý a právě proto by bylo příjemné mít to v tomto seriálu právě správně (a nejlíp i "hezky" elegantně -- jak to *NIX umí).
Jinak výhodu seriálu oproti jakékoliv wiki vídím v "prevenci". Ve wiki pátrám, až když sám nevím. Článek by mě sám o sobě inspiroval používat systém elegantněji -- a o to nám tu jde, ne?
Re: Užitečné právětehdykdyž
celé vláknoasi za to muze ma namyslenost :)), ale proste clanek me moc neprinesl :)...
mc nepouzivam tak to jsem ani necetl..
k bashi nebylo receno temer nic :)...nakously se zkratky. grep na history je uzasne invencni hratka :)..ale ok :).
ctrl+r je fajn..lidi co to neznaji oceni clanek uz jen kvuli tomu...
autor mohl zminit, ze je skript, ktery obcas nebyva defaultne includovany /etc/bash_completion ( je to mam pocit na vsech distrech...), zkratky ctrl + e, a, u, k ... alt + . atd..je toho mraky...a to tu CHYBI.
kdo nezna last..hm...nevim..kazdopadne nedal bych tomu odstavec :)
Ve clanku je zminen screen...tak proc tam neni popsano i zakladni ovladani :)..i kdyz je tam odkaz tak to asi nebylo treba.
Z nazvu jsem se tesil na skutecne hratky :)..kdyz se kouknu do sve kucharky tak treba neco takovehoto clvoeka potesi :)..jsou to sice taky zaklady, ale jde uz o hrani si...
history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -rn|head -10
for i in `seq 1 5` ; do
echo 'exit' | nc 192.168.1.1 22 ;
done
prikaz rev je dobry k hratkam :)
....
Chyby uz tu byly rozebrany :)..
Takze ocenuju snahu :)...ale clanek me zklamal, na to ze jde o clanek malo informaci. Jeslti z toho chce autor udelat serii...tak cumim :)..asi jde o strategii zaplaveni rootu clanky :), kde se rozproudi bohata diskuze :)
Re: Užitečné právětehdykdyž
celé vláknoRe: Užitečné právětehdykdyž
celé vláknoVelmi rad mam stranku http://www.cyberciti.biz
je tam skutecne velke mnozstvi tipu...ktere treba admin muzu uzit :)..ale nejde jen o hrani si s prikazovou radkou.
Re: Užitečné právětehdykdyž
celé vláknopodobnych srandicek zna kazdy par...kdyz to bude ve wiki..tak kazdy muze svou troskou prispet a bude to naprosto uzasna wiki stranka...ktera nema obdoby (aspon jsem nic podobneho zatim nenasel).
Kdyz by se obcas ve zpravicce upozornilo, at tam lidi pridavaji dalsi typy...no..panecku to by bylo :)
Kdyz urychleni, tak poradne
celé vláknomkdir nejakejhroznedlouhejnazev
cd !$
cd -
--------------
vim janevimco.c
mv !$ [esc].[<-][<-]-devel
/*[esc] je klavesa escape, [<-] je sipka zpatky*/
--------------
locate kamjajsemtukravinuulozil.txt
vim `!!`
--------------
for a in *.pnm; do bzip2 -9 "$a"; done
bunzip2 -c obrazek.pnm.bz2 |xview /dev/stin
--------------
for a in *jpg; do xview -zoom 25 "$a"; done
/*xview aplikuje zoom jenom na prvni soubor*/
--------------
(export x=10; export y=15; echo -e "P5\n$y $x\n255"; for a in `seq 1 $x`; do dd if=/dev/zero bs=1 count=$a; dd if=/dev/zero bs=1 count=$(expr $y - $a)|tr '\0' '\377' ; done 2>/dev/null)|xview -zoom 400 /dev/stdin
/*vygeneruje maly cernobily graf, praktictejsi je, kdyz je $a indexem nekam, kde jsou smysluplna data*/

