This is an old revision of the document!
În shell, un alias este un șir de caractere ce poate ține locul oricărei comenzi. Putem vedea ce
aliasuri sunt deja create în sistem dacă inspectăm fișierul ~/.bashrc
. De regulă, ele se află la
sfârșitul fișierului sau sunt definite separat în fișierul ~/.bash_aliases
. Inspectați ambele
fișiere.
student@uso:~$ cat ~/.bashrc (...) # some more ls aliases alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' # Add an "alert" alias for long running commands. Use like so: # sleep 10; alert alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' # Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi # enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi
student@uso:~/uso.git/$ cat ~/.bash_aliases alias go='gnome-open' alias grep='grep --color=auto' alias grpe='grep' alias gpre='grep' alias gti='git' alias gigt='git' alias cal='ncal -M' alias ncal='ncal -M' alias boot-cli='systemctl set-default multi-user.target' alias boot-gui='systemctl set-default graphical.target'
Prin personalizarea shell-ului înțelegem modificarea unor fișiere de configurație, schimbarea culorilor,
să modificăm username-ul
, hostname-ul
, home directory
și/sau prompt-ul
, creearea unor
aliasuri etc. La această secțiune vrem să modificăm prompt-ul
.
tom@disney:~#
~/.bashrc
sunt persistente, adică sunt modificări care apar chiar și după reboot.
De foarte multe ori ni se poate întâmpla să scriem o comandă și să ne dăm seama că e parțial incorectă sau că am scris un cuvânt greșit. Tendința este să abuzăm de tasele săgeată-stânga și săgeată-dreapta pentru a corecta. Urmăriți tutorialul de mai jos pentru a vedea cum putem opera cu terminalul mai rapid și eficient folosind câteva combinații de taste.
Mutați-vă la calea ~/uso.git/labs/05-cli/support/nice-to-know/editare-comenzi
înainte de a începe acest
tutorial. Încercați să scrieți voi comenzile fără a copia din laborator fiecare comandă.
student@uso:~/.../support/nice-to-know/editare-comenzi$ ls main.c sum.c sum.h student@uso:~/.../support/nice-to-know/editare-comenzi$ gcv -g main.c summ.c -o main Command 'gcv' not found, but can be installed with: sudo apt install scotch student@uso:~/.../support/nice-to-know/editare-comenzi$ # săgeată sus pentru a avea ultima comandă dată
Cursorul se află în acest moment după ultimul caracter din comanda dată. Observăm că am scris greșit
gcc
. Pentru a ne muta la începutul comenzii folosim combinația de taste CTRL + A
. Faceți această
modificare a comenzii. Pentru a muta cursorul din nou la sfârșitul liniei, folosim combinația de taste
CTRL + E
.
student@uso:~/.../support/nice-to-know/editare-comenzi$ gcc -g main.c summ.c -o main gcc: error: summ.c: No such file or directory
Observăm faptul că tot avem o problemă cu această comandăs. De data asta am scris greșit numele
fișierului sum.c
pe care vrem să-l compilăm. Mutați-vă cu cursorul deasupra literei greșite și folosiți
combinația CTRL + D
pentru a o șterge. Dacă vrem să stergem tot la dreapta (până ajungem la primul spațiu)
folosim combinația Alt + D
.
Modificați comanda fără a o scrie din nou până când nu vor mai apărea erori și fișierele vor fi compilate cu succes.
Pentru a afișa variabilele de mediu din sistem, folosiți comanda env
.
student@uso:~/uso.git/$ env (...) LESSOPEN=| /usr/bin/lesspipe %s LC_TIME=ro_RO.UTF-8 _=/usr/bin/env OLDPWD=/home/student/uso/labs/05-cli/support/nice-to-know/editare-comenzi
Ultima variabilă de mediu afișată mai sus este variabila OLDPWD
care este, de fapt, directorul în
care ne-am aflat înainte să ne mutăm în cel care suntem în acest moment. Un exemplu de comandă care
folosește această variabilă este cd -
care ne mută chiar în directorul anterior.
student@uso:~/uso.git/$ pwd /home/student/uso.git student@uso:~/uso.git/$ cd labs/ student@uso:~/uso.git/labs/$ pwd /home/student/uso.git/labs student@uso:~/uso.git/labs/$ echo $OLDPWD /home/student/uso.git
~/uso.git/labs/05-cli/support/nice-to-know/env/print_env.c
pentru a afișa variabilele de mediu. Folosiți al treilea argument al funcției main
. (Hint: urmăriți explicațiile de aici)
Variabila de mediu PATH
conține diverse căi din sistem în care se caută binarele rulate de noi în terminal.
Folosim comanda echo $PATH
pentru a afișa ce conține ea.
student@uso:~/.../support/nice-to-know/env$ cd ~ student@uso:~$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Concret, se pune problema: de unde știe sistemul să ruleze binarul /usr/bin/ls
atunci când dăm comanda
ls
dacă nu avem un alias pentru el? El va căuta în căile reținute de variabila PATH
executabilul
numit ls
.
sum.c
care să calculeze suma a două numere citite de la tastatură. Compilați-l și obțineți executabilul sum
. Rulați programul pentru a vă asigura că totul este în regulă.PATH
astfel încât programul vostru să poată fi rulat de oriunde din sistem prin comanda sum
. (HINT: variabila PATH
)