Tri vrste naredbi:
alias: ispisalias naredba='neka naredba': definiranje aliasatype command ispiše je li naredba alias, shell keyword, ili file
(eksterna).
$PATH varijabla sadrži listu direktorija koji sadržavaju executable sa
eksternim naredbama. echo $PATH ispiše sadržaj.
which time ispiše koji filename je pronađen u $PATH-u.
| Ime | Defaultna destinacija | Redirekcija | File descriptor |
|---|---|---|---|
| STDIN | Tipkovnica | < ili 0< |
0 |
| STDOUT | Monitor | > ili 1> |
1 |
| STDERR | Monitor | 2> |
2 |
2>&1: radi redirekciju stderr-a na isto mjesto gdje ide stdout.
Npr. ls > somefile 2>&1.2> somefile: stderr pregazi somefile2> /dev/null: odbaci stderr&>> somefile: stdout i stderr nadopišu na somefile. Mislim da nije
portabilno sa drugim shellovima.history: pokazuje listu korištenih naredbi.!number: ponovi naredbu iz history-a pod tim brojemhistory -d number: izbriše naredbu pod tim brojem!sometext: izvši zadnju naredbu u history-u koja počinje sa sometexthistory -c: briše history u memoriji (trenutačno aktivna sesija)history -w: briše sadržaj .bash_history-aenv: ispisuje sve evironment varijable.set: ispisuje opcije, parametre, varijable i funkcijeset -o nounset ili set -u: tretira neincijalizirane varijable kao errorset -o errexit ili set -e: exit na prvom erorruset -o pipefail: pipeline faila ako bilo koji element failaset +o errexit: isključi errexitset -x: enable execution tracing
(ispisuje svaki naredbu prije izvrsavanja)set +x: disable tracingenv postavlja environment varijable koje će biti proslijeđene child
procesima.
# prints nothing because echo runs in a child with FOO=bar;
# the shell's expansion happens before
env FOO=bar echo "$FOO"
# prints "bar"
env FOO=bar bash -c 'echo $FOO'
Environment varijable se postavljaju u:
/etc/profile: za sve usere prilikom logina/etc/bashrc: za svaki subshell~/.bash_profile: za određenog usera prilikom logina~/.bashrc: za usera i njegove subshellovelogin shell je shell koji se otvara odmah nakon logina. subshell je svakih sljedeći shell koji se kreira iz postojećeg shella, ili npr. pokretanjem shell skripte.
HISTTIMEFORMAT="%F %T ": history sa ISO8601 timestampovima
/etc/issue: poruka koja se ispisuje prije logina/etc/motd: poruka koja se ispisuje poslje loginaNijedno ne funkcionira pouzdano
| Pattern | Matches |
|---|---|
* |
Any string of zero or more characters |
? |
Any single character |
[abc...] |
Any one character in the class |
[a-z] or [0-9] |
Ranges |
[!abc...] |
Any one character not in class |
Dodatno:
{a,b,c,d}: alternation, ili brace expansion. Nije portabilno.mandb: update manpage databaseman -k string ili apropos string: pretrazuje mandb bazuman -f string: ispiše summary-e za sve stringinfo ili pinfon: next pagep: previous pageu: up one levelExtra: