abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    26.12. 18:44 | Komunita

    Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.

    Ladislav Hagara | Komentářů: 0
    26.12. 13:22 | Zajímavý software

    Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.

    🇨🇽 | Komentářů: 7
    26.12. 13:11 | Nová verze

    XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).

    🇨🇽 | Komentářů: 0
    26.12. 03:33 | Nová verze

    Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.

    Ladislav Hagara | Komentářů: 0
    25.12. 14:44 | Nová verze

    Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.

    Ladislav Hagara | Komentářů: 0
    24.12. 02:11 | Komunita

    Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.

    Ladislav Hagara | Komentářů: 30
    24.12. 02:00 | Nová verze

    Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    23.12. 18:33 | Nová verze

    Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.

    Ladislav Hagara | Komentářů: 0
    23.12. 13:55 | Nová verze

    Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 0
    23.12. 12:44 | Nová verze

    Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.

    Ladislav Hagara | Komentářů: 0
    Kdo vám letos nadělí dárek?
     (35%)
     (1%)
     (18%)
     (1%)
     (1%)
     (1%)
     (13%)
     (12%)
     (16%)
    Celkem 145 hlasů
     Komentářů: 18, poslední 24.12. 15:29
    Rozcestník

    Dotaz: Zjištění oddlílu podle current adresáře

    16.1.2018 20:55 MilanC | skóre: 16
    Zjištění oddlílu podle current adresáře
    Přečteno: 293×
    Ahoj, snažím se vyřešit takovou věc. Cílem je zobrazovat jako součást promptu (rw) nebo (ro) podle toho, jestli je příslušný systém, na kterém se aktuálně nacházím mountnutý v ro/rw.

    Takže jsem poeditoval /etc/bash.bashrc

    set_bash_prompt() { fs_mode=$(mount | sed -n -e "s/^\/dev\/.* on \/ .*(\(r[w|o]\).*/\1/p") if [ "$fs_mode" == 'ro' ]; then PS1='\u@\h\[\033[01;31m\]${fs_mode:+($fs_mode)}\[\033[00m\]:\w\$ ' # elif [ "$fs_mode" == 'rw' ]; then # PS1='\u@\h\[\033[01;32m\]${fs_mode:+($fs_mode)}\[\033[00m\]:\w\$ ' fi }

    PROMPT_COMMAND=set_bash_prompt

    Má to ale jeden háček, nereflektuje to změnu adresáře. Např. když jsem na rw a udělám cd /boot (oddíl, který je ro), tak stále ukazuje rw. Háček je v tom zjišťování fs_mode, kde parsuje jen z root FS (/). Potřeboval bych nějak docílit, aby byl reflektován vždy aktuální adresář, tj. z něho zjištěn oddíl (správný řádek z mount). Tedy nějaký příkaz, jehož vstupem bude cesta a výstupem mountpoint, který mi pak poslouží při výběru správného řádku z mount (a zjištění ro/rw). Snad jsem to popsal srozumitelně.

    Děkuji za nápady.

    Řešení dotazu:


    Odpovědi

    16.1.2018 21:24 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Zjištění oddlílu podle current adresáře
    Místo
    mount | sed ...
    zkus dát
    ls -ld .|cut -c 2,3
    Aktuální oddíl se dá zjistit příkazem
    df .
    Oříznutý výsledek můžeš použít jako filtr do svého sedu.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Josef Kufner avatar 16.1.2018 21:25 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Zjištění oddlílu podle current adresáře
    if awk -v mountpoint=$(df --output=target --no-sync . | tail -1) '$2 == mountpoint { exit $4 ~ "^ro(,|$)"; }' /proc/mounts
    then
        echo rw
    else
        echo ro
    fi
    Hello world ! Segmentation fault (core dumped)
    16.1.2018 22:09 MilanC | skóre: 16
    Rozbalit Rozbalit vše Re: Zjištění oddlílu podle current adresáře
    Díky, pochopil jsem tuto část, která vrátí mountpoint do proměnné

    mountpoint=$(df --output=target --no-sync . | tail -1)

    Ale awk moc neumím. :( pak passneš tu variable mountpoint do awku, ale pak mi už moc není jasné co s čím porovnáváš. Dalo by se případně udělat, aby byl výstup ro/rw jako v tom původním případě? I když je to asi jedno. Zatím mi to ale nechce fungovat.
    16.1.2018 22:22 MilanC | skóre: 16
    Rozbalit Rozbalit vše Re: Zjištění oddlílu podle current adresáře
    Děkuji, funguje. :-) Ještě bych si dovolil poprosit o jednu radu s proměnnou.
            if awk -v mountpoint=$(df --output=target --no-sync . | tail -1) '$2 == mountpoint { exit $4 ~ "^ro(,|$)"; }' /proc/mounts
            then
                    FSPERM="[\033[01;32m\](rw)\[\033[00m\]"
            else
                    FSPERM="[\033[01;31m\](ro)\[\033[00m\]"
            fi
    
            PS1='\u@\h\$FSPERM:\w\$ '
    
    Ať to zkouším jakkoli, tímto stylem se nebarví, ale vypisuje se obsah FSPERM. Zkoušel jsem třeba ${FSPERM}, PS1 dát do "..", naopak FSPERM do ' ' a různé kombinace. Lze to takto udělat nebo musím celé ty PS1 i s barvou dát do každé části podmínky? Děkuji.
    16.1.2018 22:31 MilanC | skóre: 16
    Rozbalit Rozbalit vše Re: Zjištění oddlílu podle current adresáře
    Tak už to mám. Děkuji oběma! Využil jsem nápovědy na Tvém webu (hacking-bash), takže řešení je... :-)
    PS1='\u@\h\'$FSPERM':\w\$ '
    

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.