Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Hrátky z řádky: prompt, file, at a další

sid
sid (neregistrovaný)
18. 2. 2008 3:37 Nový

tip pro program "at"

celé vlákno
Program at ma drobny nedostatek v tom, ze si nepamatuje displej a tak pomoci nej nelze jednoduse spoustet graficke programy. Kdyz jsem se chtel budit nahlas pustenou televizi(budik na me nefunguje), tak jsem na tento problem narazil. Proto jsem si napsal skript "budicek", ktery obsahuje nastaveni promenne DISPLAY:

amixer -c 0 -- sset Headphone playback 20dB
DISPLAY=:0.0 vlc http://localhost:8000/CT1

Takze treba "at 8:00 -f budicek" :D Je to sice pekna kravina, ale treba to bude pro nekoho uzitecne.
uživatel si přál zůstat v anonymitě
18. 2. 2008 13:03 Nový

Re: tip pro program "at"

celé vlákno
at 8:00 a pak bash -c "DISPLAY=:0.0 vlc http://localhost:8000/CT1"
pht
pht (neregistrovaný)
18. 2. 2008 6:33 Nový

prompt

celé vlákno
prompt lze taky generovat pri kazdem vypsani dynamicky. jeden pekny trik je vizualizace navratove hodnoty posledniho prikazu.

PS1='`if [[ $? -eq 0 ]]; then echo ":)"; else echo ":("; fi`'
Petr Klíma aura:60
18. 2. 2008 10:49 Nový

Re: prompt

celé vlákno
Pěkné, ale má to nevýhodu, že si tu návratovou hodnotu "pamatuje" pořád
$ PS1='`if [[ $? -eq 0 ]]; then echo ":)"; else echo ":("; fi`'
:)
:)
:)
:)
:)qwrwerwerew
bash: qwrwerwerew: command not found
:(
:(
já to mám napsané trochu jinak, tu err to vypíše jen jednou ... (+ mám to ještě probarvené):
export PROMPT_COMMAND=bash_prompt_command
bash_prompt_command () 
{ 
    local LAST=$?;
    local LASTPS="";
    local USER_ID=`id -r -u`;
    local PS1_H="[\A]-[\w]";
    local PS1_D="[\u@\h]";
    [ $USER_ID -eq "0" ] && { 
        PS1_H="
        PS1_D="
    };
    if [ ${LAST} -eq 0 ]; then
        LASTPS="";
    else
        if [ ${PREV_LAST} -ne ${LAST} -o ${PREV_LAST_SHOWN} -ne ${HISTCMD} ]; then
            LASTPS="(${LAST})";
        else
            LASTPS="";
        fi;
    fi;
    PREV_LAST=${LAST};
    PREV_LAST_SHOWN=${HISTCMD};
    export PS1="$PS1_H\n$PS1_D${LASTPS}\$ "
}

Ondrej Skutka
18. 2. 2008 7:57 Nový

split + cat

celé vlákno

Pozor při spojování pomocí cat x* > spojeny_soubor. Hvězdičku totiž expanduje bash a třídí podle nastaveného locale, takže pokud příkazem split vytvoříte tolik souborů, že se dostanete až k xch, tak bash ho pak při spojování zařadí až za xhz a před xia a tudíž spojeny_soubor bude jiný, než původní soubor!

A
A (neregistrovaný)
23. 2. 2008 16:07 Nový

Re: split + cat

celé vlákno
Zrovna jsem na to dneska narazil, jsem si dělal jednoduchou kontrolu
ssh stroj "cat /foo/*.ext | md5sum" na vzdáleném stroji a doma, a samozř. to dobře nedopadlo :) Nakonec jsem použil LC_COLLATE=C ls *.ext | xargs cat | md5sum nic lepšího mne zrovna nenapadlo :)
Petr
Petr (neregistrovaný)
18. 2. 2008 8:39 Nový

PS1, KDE a Midnight Commander

celé vlákno
Já mám v .bashrc toto:

# Coloured prompt (31=red, 32=green):
PS1=$'\[\033[31m\]\w\$\[\033[0m\] '
# Let Konsole's title be the current working directory:
if [ ! -e "$MC_TMPDIR" ] ; then
PS1="$PS1\[\e]0;\w\a\]"
fi

takže mám prompt červeně a v titulku okna Konsole či xtermu pod KDE se mi zobrazuje cesta, ať už mám nebo nemám puštěný Midnight Commander. Bez toho testu na MC_TMPDIR byl MC trochu zmatený a na jeho příkazové řádce se zobrazila cesta k adresáři dvakrát. Nepřišel jsem na to, jak PS1 zapsat bez toho ifu. Lze to? (Nastavení PS1 je jednou z rad při spuštění KDE, ale není tam ten trik s MC_TMPDIR.)
uživatel si přál zůstat v anonymitě
18. 2. 2008 14:32 Nový

split

celé vlákno
Jaky pouzivate split? Ten muj z coreutils 6.4-10 umi jen toto:

$ split --help
Usage: split [OPTION] [INPUT [PREFIX]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is `x'. With no INPUT, or when INPUT
is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
-a, --suffix-length=N use suffixes of length N (default 2)
-b, --bytes=SIZE put SIZE bytes per output file
-C, --line-bytes=SIZE put at most SIZE bytes of lines per output file
-d, --numeric-suffixes use numeric suffixes instead of alphabetic
-l, --lines=NUMBER put NUMBER lines per output file
--verbose print a diagnostic to standard error just
before each output file is opened
--help display this help and exit
--version output version information and exit

SIZE may have a multiplier suffix: b for 512, k for 1K, m for 1 Meg.
Petr
Petr (neregistrovaný)
18. 2. 2008 18:57 Nový

Re: split

celé vlákno
Nemá tam být místo split nějaký jiný příkaz? Tohle by se mi celkem hodilo. A nevím jak na to:-/
petr_p
petr_p (neregistrovaný)
18. 2. 2008 21:11 Nový

Re: split

celé vlákno
csplit (context split)
Mordae
Mordae (neregistrovaný)
18. 2. 2008 15:20 Nový

Každý názor musí mít titulek.

celé vlákno
Pozor, pokud pouzivate PS1='...' s barvickami, tak nezapomente sekvence barvicek uzavrit navic jeste mezi \[ a \], jinak nebude sedet delka radku a bude to delat desnej bordel pri delsich prikazech. Viz. hned prvni priklad v clanku; zkuste si ten prompt a pak napiste neco dlouheho...
laba
laba (neregistrovaný)
19. 2. 2008 10:55 Nový

at a atd

celé vlákno
Ja len spomeniem situaciu, ktora ma trocha zaskocila. Ked som pred asi rokom chcel pomocou at naplanovat ulohu, zistil som, ze na danom servery nebezi atd. On tam ten balicek vobec nebol. crod snad bezi naozaj vsade. Bol to linuxovy server - velmi minimalisticka instalacia. :-)
tukan
tukan (neregistrovaný)
19. 2. 2008 16:48 Nový

Good

celé vlákno
Fajn článek. Linux přitahuje docela dost lidí, kterým takovéhle informace v češtině docela pomůžou. Bohužel, moc z nich o root.cz neví (ani mezi non-Unix IT profesionály) - to je škoda. InternetInfo by mělo trochu víc zapracovat na propagaci root.cz na sesterských stránkách. Tím spíš, že root.cz postupně mění orientaci směrem k laikům a průměrnému "IT" news serveru.

Kdo s Unixy něco umí, tohle nepotřebuje - proto bych navrhoval v dalších dílech probrat trochu víc ze široka filosofii a principy. Nejen z pohledu "jak", ale taky "proč". Tahle série má potenciál někomu skutečně pomoct, to se tu moc často nevidí! :)
Zasílat nově přidané příspěvky e-mailem