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í
×
dnes 09:11 | Zajímavý článek

Mozilla.cz informuje o vylepšování vlastních about: stránek Firefoxu, konkrétně o odstraňování volání funkce eval() z těchto stránek. Tyto stránky mají přístup k interním součástem Firefoxu, ale protože jsou napsané v HTML a JavaScriptu, mohou být cílem podobných útoků jako webové stránky zobrazované v prohlížeči (např. vložení cizího kódu nebo obsahu), jen s potenciálně závažnějším dopadem. Pokud by se někomu skutečně povedlo kód do

… více »
Ladislav Hagara | Komentářů: 0
dnes 08:55 | Zajímavý projekt

Uživatel GitHubu joeycastillo představil The Open Book Project, jehož cílem je vytvořit open-source čtečku elektronických knih. Projekt se zatím nachází v rané fázi vývoje, už nyní ale obsahuje použitelný návrh hardware prototypu „Feather Wing“, jehož cílem má být ověření konceptu na 4,2palcovém displeji. Tento koncept je postaven na kitu Adafruit Feather M4 Express, který ovládá hlavní desku s displeji a tlačítky. Po úspěšném ověření

… více »
Bystroushaak | Komentářů: 1
dnes 05:00 | Nová verze

Byla vydána verze 5.0.0 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata (Wikipedie). Přehled novinek v oficiálním oznámení a v aktualizované dokumentaci.

Ladislav Hagara | Komentářů: 0
včera 20:33 | Zajímavý projekt

Byly zveřejněny schémata, firmware a instrukce pro sestavení trackballu Ploopy. Ten používá Arduino, senzor PMW3360 a 1,75palcovou kouli. Zdrojové soubory jsou šířeny pod open-hardware licencí CERN a GNU GPLv3. Tvar je inspirovaný klasickým trackballem Microsoft Trackball Explorer, jehož výroba byla ukončena kolem roku 2005 bez náhrady; projekt Ploopy se k tomu ale z právních důvodů nehlásí. Již vyrobené díly je možno objednat za 200 kanadských dolarů. Další podrobnosti v příspěvcích uživatele crop_octagon na Redditu.

Fluttershy, yay! | Komentářů: 10
včera 20:22 | Nová verze

Vyšlo desktopové prostředí KDE Plasma 5.17. Novinkou je např. „noční režim“ (pro X11, nejen Wayland), skrytí upozornění při prezentacích (když je připojena obrazovka se stejným obrazem), lepší podpora HiDPI, optimalizace využití zdrojů a mnoho drobných zlepšení a oprav.

Fluttershy, yay! | Komentářů: 2
včera 12:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 169. brněnský sraz, který proběhne v pátek 18. října od 19:00 v restauraci Racek (Jungmanova 5). Před srazem proběhne v 18:00 komentovaná prohlídka nových prostor hackerspacu base48 (přístup je z Mojmírova náměstí).

Ladislav Hagara | Komentářů: 8
včera 05:55 | Bezpečnostní upozornění

V příkazu sudo byla nalezena a ve verzi 1.8.28 byla již opravena bezpečnostní chyba CVE-2019-14287. V souboru /etc/sudoers lze nastavit, aby daný uživatel mohl konkrétní příkaz spouštět s právy libovolného uživatele (ALL) nebo libovolného uživatele kromě uživatele root (ALL, !root). Spustí-li tento uživatel daný příkaz se sudo s volbou -u#-1 nebo -u#4294967295, tj. pod uživatelem -1 nebo 4294967295, nebude vyžadována autentizace a příkaz se spustí pod právy roota.

Ladislav Hagara | Komentářů: 1
včera 01:33 | Nová verze

Po více než roce a čtvrt od vydání verze 3.7.0 byla vydána nová verze 3.8.0 programovacího jazyka Python. Přehled novinek v aktualizované dokumentaci. Podrobný přehled změn v Changelogu.

Ladislav Hagara | Komentářů: 15
14.10. 16:11 | IT novinky

Ke zhlédnutí na Invidious a YouTube je videozáznam rozborky a sborky mobilního telefonu Librem 5.

Ladislav Hagara | Komentářů: 47
14.10. 13:33 | Komunita

Richard Stallman, zakladatel hnutí svobodného softwaru, se dnes v e-mailové konferenci guix-devel vyjádřil, že svobodný software je apolitický, resp. jedinou přípustnou politikou je politika svobodného softwaru. Reagoval na některé návrhy, že by se do svobodného softwaru měl zabudovat feminismus nebo jiný -ismus. Říká, že témata jako komunismus nebo sexuální orientace jsou „off-topic“. Je v pořádku mít politické názory, ale lidé

… více »
xkucf03 | Komentářů: 104
Kdy jste naposledy viděli počítač s připojeným běžícím CRT monitorem?
 (19%)
 (4%)
 (11%)
 (39%)
 (24%)
 (2%)
Celkem 401 hlasů
 Komentářů: 22, poslední 23.9. 08:36
Rozcestník

www.AutoDoc.Cz

Unixové nástroje – 19 (alias, type, expr)

27. 8. 2010 | David Watzke | Návody | 6767×

V tomto díle si představíme příkaz alias pro nastavování a vypisování tzv. aliasů, type pro výpis typu daného příkazu a expr k vyhodnocení zadaného matematického výrazu.

Obsah

alias

alias je příkaz sloužící k nastavování aliasů. Alias slouží primárně ke zkrácení delšího příkazu, například po spuštění:

alias l="ls -lF"

bude možné zavolat příkaz ls -lF spuštěním samotného l v dané instanci shellu.

Chcete-li vypsat všechny nastavené aliasy, spusťte alias bez argumentů:

$ alias
alias _update='yaourt -Syu --aur'
alias grep='grep --color=auto'
alias l='ll'
alias ll='ls -l'
alias ls='ls --color --group-directories-first -hF'
alias pacman='pacman-color'
alias su='sux -'
alias unp='aunpack'
alias vi='vim'
alias xterm='xterm -u8'

Chcete-li vypsat konkrétní alias, zadejte jeho název:

$ alias grep
alias grep='grep --color=auto'

A jak jste si již všimli v první ukázce, nastavování probíhá uvedením názvu aliasu, potom následuje rovnítko a v uvozovkách (dle potřeby) potom hodnota aliasu:

# chcete-li aby se proměnná v aliasu nahrazovala ihned,
# použijte pro hodnotu aliasu uvozovky:
alias _home="echo $HOME"

# chcete-li aby se proměnná nahrazovala teprve při spuštění
# aliasu, použijte apostrofy:
alias _home='echo $HOME'
# nebo v uvozovkách escapujte znak $
alias _home="echo \$HOME"

Ještě se sluší podotknout, že v aliasu můžete použít i jiný alias:

alias ls="ls --color=auto"
# "ll" bude ve skutečnosti "ls --color=auto -l"
alias ll="ls -l"
# "l" bude totéž jako "ll"
alias l=ll

Pro zrušení daného aliasu spusťte:

unalias nazev_aliasu

Pro zrušení všech aliasů spusťte:

unalias -a

Chcete-li, aby vámi nastavené aliasy byly dostupné pořád a ve všech instancích shellu, potom použijte konfigurační soubor shellu. Používáte-li Bash, potom to je ~/.bashrc pro daného uživatele a zpravidla /etc/bash.bashrc nebo /etc/bash/bashrc pro celý systém.

Malý tip ze specifikace na závěr: Chcete-li spustit alias přes nohup, nepůjde vám to, protože příkaz nebude interpretován jako alias. Ovšem lze to obejít pomocí:

alias nohup="nohup "

Potom už vás nic nezastaví.

type

type je příkaz sloužící k výpisu typu daného příkazu. Přesněji řečeno vypíše, jak by byl daný příkaz interpretován, kdyby byl spuštěn z daného shellu.

Existuje několik možností, ukážeme si je na příkladech:

$ type type
type je součást shellu

$ type function
function je klíčové slovo shellu

$ type amarok
amarok je /usr/bin/amarok

$ type ls
ls je alias na „ls --color --group-directories-first -hF“

$ type hello_world
hello_world je funkce
hello_world ()
{
    printf 'Hello World!\n'
}

Lze vypsat i více příkazů najednou:

$ type grep _update
grep je alias na „grep --color=auto“
_update je alias na „yaourt -Syu --aur“

To je asi tak vše, co lze napsat o standardní implementaci tohoto příkazu. Implementace type v Bashi a Z shellu (zsh) toho umí víc, díky dalším přepínačům.

S přepínačem -t umí vypsat pouze „alias“, „keyword“, „function“, „builtin“, „file“ nebo „“ podle toho, zda je příkaz alias, klíčové slovo shellu, funkce, vestavěný příkaz (součást shellu), soubor nebo neexistující příkaz. Toto se může hodit například při neinteraktivním použití v shellových skriptech.

$ type -t type function amarok ls hello_world
builtin
keyword
file
alias
function

Přepínač -a zajistí výpis všech možných interpretací příkazu.

$ type -a echo
echo je součást shellu
echo je /bin/echo

$ type -a nohup
nohup je alias na „nohup “
nohup je /usr/bin/nohup

Přepínač -f potlačí vyhledávání příkazu mezi funkcemi shellu. S přepínačem -p je buď vypsán patřičný soubor, který by byl spuštěn (pokud existuje), nebo nic.

expr

expr slouží k vyhodnocení zadaného matematického výrazu (expr je zkratkou expression, tj. anglicky výraz).

Každý operand a operátor musí být uveden jako oddělený argument.

$ expr 5 + 10
15

Mezi podporované operátory patří |, &, =, >, >=, <, <=, !=, +, -, * (krát), / (děleno), % (modulo, zbytek po dělení) a : (viz níže). Mnohé ze jmenovaných operátorů jsou zároveň ovládací znaky shellu, proto je třeba tyto znaky escapovat (uvést je do uvozovek nebo bezprostředně za zpětné lomítko). Prioritu vyhodnocení lze ovlivnit jednoduchými závorkami.

# zbytek po dělení 1024 / 86
expr 1024 % 86

# 1024 krát 1024
expr 1024 \* 1024

# (3+6) krát 8
expr "(" 3 + 6 ")" "*" 8

Operátory, jejichž návratová hodnota je typu boolean (pravda či nepravda), vracejí hodnotu 0 pro nepravda a 1 pro pravda. Mezi tyto operátory patří <, >, =, atp.

# je 5 menší než 10?
expr 5 "<" 10

Speciální operátor „:“ slouží k porovnání řetězce s jednoduchým regulárním výrazem. Hodnota, kterou tato operace vrátí, je rovna počtu znaků, které regulární výraz označil, přičemž 0 značí chybu.

$ a=1
$ expr "$a" : "[0-9]"
1

Pro čistou aritmetiku je zpravidla lepší použít příkaz bc, který zmíním v některém z příštích dílů:

echo "3*4+14/2" | bc
       

Hodnocení: 100 %

        špatnédobré        

Nástroje: Tisk bez diskuse

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

Komentáře

Vložit další komentář

27.8.2010 01:43 Halis | skóre: 5 | blog: capacitor
Rozbalit Rozbalit vše Re: Unixové nástroje – 19 (alias, type, expr)
Reportuji chybu:

Ještě se sluší podotknout, že v aliasu můžete použít i jiný alias:

alias ls="ls --color=auto"

# "ls" bude ve skutečnosti "ls --color=auto -l"
David Watzke avatar 27.8.2010 09:03 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Unixové nástroje – 19 (alias, type, expr)
Chyba je na tvé straně.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
27.8.2010 12:19 Andrej | skóre: 9
Rozbalit Rozbalit vše Re: Unixové nástroje – 19 (alias, type, expr)
ten expr regexp tester je super! velka vdaka!
Any sufficiently advanced magic is indistinguishable from technology. --Larry Niven
27.8.2010 12:27 Lada
Rozbalit Rozbalit vše poznamka pro type
Prikaz type je interni funkce shellu, proto jsou rozdilne interpretace napr. pro bash a zsh.
27.8.2010 14:24 void
Rozbalit Rozbalit vše Re: poznamka pro type
To jsem taky chtěl napsat. A myslím, že i alias je shell bultin.
27.8.2010 15:10 Lada
Rozbalit Rozbalit vše Re: poznamka pro type
To ano, staci aplikovat type alias , ale chtel jsem jen upozornit, ze zsh nezna argument -t pro type. Proto ty priklady nebudou vzdy fungovat. Ale jinak rad tento serial ctu a moc za nej dekuju.
David Watzke avatar 27.8.2010 15:38 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: poznamka pro type
Díky za upozornění, já jsem zkoušel, zda je type v zsh taky schopné jako to v Bashi a vyzkoušel jsem jen některé přepínače a zrovna tenhle mi utekl.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
27.8.2010 21:49 void
Rozbalit Rozbalit vše Re: poznamka pro type
Jj, i mně se tenhle seriál líbí. Pozvedává to úroveň z bahna komiksů apod.
David Watzke avatar 27.8.2010 15:37 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: poznamka pro type
Ano, je a musí být. To vadí?
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
27.8.2010 21:44 void
Rozbalit Rozbalit vše Re: poznamka pro type
Samozřejmě nevadí, jen jsem to chtěl dodat. :) Možná by bylo dobrý to psát ke každýmu příkazu, jestli je to shell builtin, nebo samostatnej program (ale můj vkus je vlastně pro redakci nezajímavej :)).
28.8.2010 09:09 Ash | skóre: 53
Rozbalit Rozbalit vše Re: poznamka pro type
Ne že by to nebylo uvedeno hned jako první příklad (type type) :)

Založit nové vláknoNahoru

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