Instalacijom Arch Linux-a naucice nista osim da instalira Arch Linux, a te "sitnice" ce i dalje nastaviti da ga muce.
Linux se po mom misljenju najbolje uci kada se koristi sto cesce. U tu svrhu moze da instalira i koristi bilo koju distribuciju, te osnove su na svima iste:
Od boot procesa (init, systemd) do koreiranja particija (fdisk, cfdisk, parted, mount, umount, mkfs), upravljanja korisnicima, grupama, dozvolama (adduser, useradd, userdel, groupadd, groupdel, chown, chmod, umask), upravljanje datotekama/direktorijumima (touch, mkdir, rm rmdir, cd, ls, ln, pwd, pushd, popd, dirs), upravljanje procesima (ps, pstree, top, vmstat, iostat, iotop, lsof, bg, fg, jobs, kill, pkill, pgrep), disk/particije (df, du, lsblk), mreze (ifconfig, ip, hostname, ping, netstat, tcpdump, traceroute, route, nc, nmap), itd...
Vecina ovih komandi je dostupna na svim Linux distribucijama, neke je mozda potrebno instalirati, ali su uglavnom u repo-ima svih distribucija.
Pored nabrojanih, postoji jos puno drugih komandi/alatki, ali su ovo manje vise neke najosnovnije potrebne za neko osnovno snalazenje na Linux sistemima. Linux komande se uglavnom nalaze u /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin direktorijumima definisanim u $PATH promenljivoj razdvojeni sa (:), ili dolaze sa samim shell-om kao tzv. "shell builtin" komande. Lokaciju gde se komanda nalazi (izuzev builtin komandi) mozemo da vidimo pomocu
whereis ili
which komandi. Da vidimo da li je komanda builtin koristimo
type komandu:
Code:
$ type cd
cd is a shell builtin
$ type rm
rm is /bin/rm
Sve shell builtin komande mozemo da prikazemo pomocu
compgen -b ili
enable komandi:
Code:
$ compgen -b | tr '\n' ' '
. : [ alias bg bind break builtin caller cd command compgen complete compopt continue declare dirs
disown echo enable eval exec exit export false fc fg getopts hash help history jobs kill let local
logout mapfile popd printf pushd pwd read readarray readonly return set shift shopt source suspend
test times trap true type typeset ulimit umask unalias unset wait
Razlika izmedju builtin i eksternih komandi je u tome sto shell prilikom izvrsavanja builtin komande ne mora da kreira nov proces. Prilikom pokretanja komande kreira se nov proces tzv. "child" proces, dok "parent" proces miruje i ceka da pokrenuti proces zavrsi i informise ga tzv. "exit" statusom (izuzev ako je proces pokrenut u pozadini).
Pored pomenutih rezervisanih shell komandi, bash shell sadrzi i rezervisane promenljive (environment variables), npr. pomenutu PATH, keywords i specijalne karaktere.
Code:
$ compgen -v | tr '\n' ' '
BASH BASHOPTS BASHPID BASH_ALIASES BASH_ARGC BASH_ARGV BASH_CMDS BASH_COMMAND BASH_COMPLETION_COMPAT_DIR
BASH_LINENO BASH_SOURCE BASH_SUBSHELL BASH_VERSINFO BASH_VERSION COLUMNS HISTCMD HISTCONTROL HISTFILE
HISTFILESIZE HISTSIZE HOME HOSTNAME HOSTTYPE IFS LANG LC_CTYPE LESS LINENO LINES LOGNAME LSCOLORS
LS_COLORS MACHTYPE MAILCHECK OPTERR OPTIND OSTYPE PAGER PATH PIPESTATUS PPID PS1 PS2 PS4 PWD RANDOM
SECONDS SESSION_MANAGER SHELL SHELLOPTS SHLVL SSH_AGENT_PID SSH_AUTH_SOCK TERM UID USER USERNAME
Code:
$ compgen -k | tr '\n' ' '
if then else elif fi case esac for select while until do done in function time { } ! [[ ]] coproc
Takodje, mozemo da kreiramo i sopstvene komande pomocu
alias komande:
Code:
$ alias ll='ls -l'
Za vecinu pomenutih komandi postoji uputstvo u obliku tzv. man ili info stranica,
man ime-komande, koje dolaze na svim Linux distribucijama. Takodje, vecina komandi ima
--help opciju sa kojom mozes da vidis nesto sazetije uputstvo. Da vidis cemu koja komanda sluzi mozes da koristis
whatis ime-komande. Istorija pokrenutih komandi se nalazi u
.bash_history datoteci definisanoj u
$HISTFILE promenljivoj,
man history.
Takodje, pored pomenutih pogledaj i tzv. "text filter" komande: cat, less, more, head, tail, tr, wc, nl, sort, pr, uniq, diff, comm, cut, paste, join, split...
Zatim pogledaj kao da pokrenes komande u subshell-u pomocu
(ime-komanda), kako da razdvojis vise komandi sa
komanda;druga-komanda;treca-komanda, kako da preusmeris izlaz jedne komande na ulaz druge
komanda|druga-komanda, kako da preusmeris izlaz komande u neku datoteku
komanda >ime-datoteke, kako da preusmeris kao ulaz komande sadrzaj neke datoteke
komanda <ime-datoteke, kako da sacuvas izlaz komande/i
name=`whoami` ili sa
$(whoami).
Code:
$ pwd;(cd /tmp;pwd);pwd
/home/panta
/tmp
/home/panta
$ echo hello `whoami`
hello panta
Zatim, nauci neku osnovnu upotrebu vi editor-a. Kako je na Linux-u sve moguce konfigurisati/podesiti kroz "file", neko osnovno znanje vi-a ce ti sigurno trebati. A i podrazumevano dolazi na gotovo svim distribucijama, a nekada je i jedini, pa ga nije lose znati. ;)
Zatim, pogledaj neku osnovnu upotrebu regularnih izraza (regular expression)
^, $, ., *, [], {} i alatke kao sto su grep, sed i awk.
Zatim, iskoristi pomenute komande i napravi skript da automatizujes neki posao koji cesto obavljas.
Kada na kraju sve navedeno savladas, onda vise te "sitnice" nece da ti predstavljaju problem.