Lab 03 - Eng - CLI 1 V2.0
Lab 03 - Eng - CLI 1 V2.0
Information Technology
3. Laboratory
Basic CLI commands
Today's Linux OS users can do most of the things they want to do on Linux without using
the Linux terminal, but there are still many good reasons to learn how to use the terminal. For
example, the Linux terminal provides access to all native Linux commands and command‐line
applications that often offer more functionalities than desktop applications.
The easiest way to open a new terminal window is to use the key combination Ctrl + Alt +
T. Hold all three keys at the same time and a new terminal window will open. By default, new
Terminal windows open directly in each user's Home directory.
You can use the following shortcuts in the terminal:
Shortcut Description
Ctrl+Sift+t to open a new tab
Ctrl +PageDown to go to the next tab
Ctrl +PageUp to go to the previous tab
Ctrl+d to close a tab (or exit command)
To scroll through a terminal, mainly when a command displays a lot of text, use the
following shortcuts (to check, previous use $ dmesg):
1|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
Shortcut Description
Shift+PgDown to scroll down
Shift+PgUp to scroll up
To find out in which directory you are, you can use the command pwd (print working
directory). You always have to be careful about in which directory you are. Many of the exercises
that follow are about creating or modifying files and directories in specific places.
To enter into a directory, the cd (change directory) command must be used. For example,
to enter into the LabBasicComm directory associated with the lab (if it does not exist, you must
first create it with: mkdir LabBasicComm), you can use the command:
user@ubuntu:~$ cd LabBasicComm
user@ubuntu:~/LabBasicComm$
Notice that the prompt changes. The new director is ~/LabBasicComm. That is, we are in
the LabBasicComm subdirectory in your home folder.
To list the contents of the current directory, you can use the ls (list) command. The names
in blue color are directories. The ones with white are files. But, you don't have to rely solely on
colors. These can be modified using special configurations.
To find out more about a command, you can visit its man page. For example, to access the
ls command’s documentation:
user@ubuntu:~$ man ls
In the electronic textbook, to search for a specific word, use the / (slash) key followed by
the searched word; then press the Enter key.
You can use the following keys:
Keys Short description
n (next) to go to the next occurrence of the searched word
N (Shift + n) to go to the previous occurrence of the word
q (quit) to close the manual page
2|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
3|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
In Linux an absolute path always starts with /. A relative path relates to the current
directory.
4|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
user@ubuntu:~$ cd /home/user/LabBasicComm/
or a relative path:
user@ubuntu:~$ cd user/LabBasicComm
To return to the home directory, you can use cd, taking into account that “.” ‐ represents the
current director, while “..” ‐ represents the parent director.
File and directory names can be long, and sometimes writing them can be difficult. The
shell can help you by automatically filling in a file name.
Starting from the previous example, first create the LabBasicComm directory in your
home folder. Now, let's assume that the current directory is /home and that you want to change
the directory, using a relative path:
user@ubuntu:/home$ cd user/LabBasicComm
The above command could be written much easier using the features offered by the shell. If “cd
u” were typed, then TAB, the directory name would be filled in at user/. Without pressing Enter,
if you write the first letter (i.e. L) and then TAB, it would be filled in automatically in the Lab ‐ only
if there is a directory that starts with the same 3 characters. Another press of the TAB key would
list all possible additions. Pressing the B key would restrict the list to all files/directories starting
with LabB. Pressing the TAB key again will complete the full path.
Pentru a vizualiza conținutul unui fișier se poate folosi comanda cat (concatenate).
Comanda concatenează conținutul fișierelor date ca parametru și îl afișează pe ecran. De
exemplu, pentru a vizualiza conținutul unui fișier numit environment (din directorul /etc), se
folosește comanda:
user@ubuntu:~$ cat /etc/environment
Atenție mare, Linux este case‐sensitive. Contează dacă scrieți environment,
ENVIRONMENT sau Environment.
5|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
O metodă eficientă prin care puteți afla numele unei comenzi este cu ajutorul apropos. De
exemplu presupunem că vrem să aflăm numele unei comenzi care șterge fișiere.
Pentru aceasta se rulează comanda:
user@ubuntu:~$ apropos "remove files"
rm (1) ‐ remove files or directories
Comanda which poate fi folosită pentru a afla calea executabilului unei comenzi. Spre
exemplu comanda:
user@ubuntu:~$ which rm
/bin/rm
va afișa calea executabilului comenzii rm.
Lista comenzilor tastate (pastrata in fisierul $HOME/.bash_history) poate fi vizualizata
cu comanda history, care afiseaza aceasta lista a comenzilor tastate anterior, fiecare linie de
coamnda fiind prefixata de un numar (de la 1 pina la numarul total de linii de comenzi salvate in
fisierul de istoric). Puteți folosi –c cu history pentru a șterge toate comenzile din istoric sau –d
numar pentru a șterge linia cu numar‐ul indicat din istoric. Numerele afisate de comanda history
pot fi folosite pentru a executa din nou comenzile din istoric, fara a fi nevoie sa mai fie tastate
din nou. Si anume, pentru a invoca din nou o comanda, se tasteaza la prompter caracterul “!”
urmat imediat de numarul asociat comenzii respective.
Mai exista o facilitate a shell‐ului ce permite invocarea comenzilor tastate anterior si
editarea lor, si anume prin apasarea, la prompterul shell‐ului, a tastei UP (i.e., sageata‐sus) de un
anumit numar de ori, se vor afisa la prompter comenzile anterioare, in ordine inversa celei in care
au fost tastate, și anume câte o comandă anterioara la fiecare apasare a tastei UP.
Comanda astfel afisata poate fi editată (modificată), si apoi executată (prin apasarea tastei
ENTER).
6|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
Comanda cat se poate folosi pentru a crea un fișier. Astfel utilizînd operatorii de redirecționare a
ieșirii pentru scrierea datelor în fișier ne putem atinge acest obiecv.
user@ubuntu:~$ cat > LabBasicComm/fisier2
Acesta este un fisier de test!
user@ubuntu:~$ cat LabBasicComm/fisier2
Acesta este un fisier de test!
user@ubuntu:~$ cat >> LabBasicComm/fisier2
Acesta este o nua linie in fisierul de test!
user@ubuntu:~$ cat LabBasicComm/fisier2
Acesta este un fisier de test!
Acesta este o nua linie in fisierul de test!
Atunci când creați un fișier cu ajutorul comenzii cat si vreti sa finlizați apăsați ENTER și
CTRL-D pentru salvarea fișierului și închiderea lui.
Comanda echo (care în mod normal afișează un text pe ecran) poate fi folosită pentru a
crea un fișier cu un anumit conținut. De exemplu:
user@ubuntu:~$ echo “Acesta este un fisier de test!” > LabBasicComm/fisier3
user@ubuntu:~$ cat LabBasicComm/fisier3
Acesta este un fisier de test!
user@ubuntu:~$ echo “Acesta este o nua linie in fisierul de test!” >> LabBasicComm/fisier3
user@ubuntu:~$ cat LabBasicComm/fisier3
Acesta este un fisier de test!
Acesta este o nua linie in fisierul de test!
Se observă și aici utilizarea “>> LabBasicComm/fisier3” pentru a nu suprascrie conținutul
vechiului fișier (modul de lucru fiind astfel append).
Comanda cu ajutorul căreia poate fi mutat un fișier sau un director este mv (move).
Redenumirea unui fișier sau a unui director este considerată un caz special de mutare.
Pentru a redenumi directorul LabBasicComm în LabBasicCommm se folosește comanda:
user@ubuntu:~$ mv Lab04 Lab004
Pentru a copia un fișier se folosește comanda cp (copy). De exemplu:
user@ubuntu:~$ cp LabBasicComm/fisier2 ~/fisier_nou
Pentru a șterge un fișier se folosește comanda rm (remove).
user@ubuntu:~$ rm ./fisier_nou
Evident toate aceste comenzi au diferite opțiuni. De exemplu dacă ne referim doar la ultima
comandă (rm) avem:
7|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
Multe dintre utilitarele disponibile în linia de comandă oferă ca ieșire o cantitate foarte
mare de text, care determină derularea a multor ecrane. Pentru a putea filtra ieșirea unei
comenzi (output‐ul) se pot folosi două utilitare: grep (pentru a selecta numai anumite linii dintr‐
un fișier sau dintr‐un flux de date) și cut (pentru a selecta numai anumite secțiuni de pe fiecare
linie).
De ex. în primul pas ne propunem să afișam în terminal conținutul fișierului
/var/log/syslog. Logul (jurmnalul) de sistem conține de obicei o mare cantitate de informații
legate în mod implicit despre sistemul Ubuntu. Prin utilizarea comenzii:
user@ubuntu:~$ cat /var/log/syslog
se vor afișa, după cum observați, un număr mare de linii.
8|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
Dacă dorim să afișăm doar informațiile ce țin doar de BDADDR din syslog va trebui să
utilizăm grep. Precum în exemplul următor:
user@ubuntu:~$ grep BDADDR /var/log/syslog
În mod similar ca la alte comenzi și comanda grep are diferite opțiuni. De exemplu, implicit
grep este case sensitive. Dacă doriți să nu mai fie utilizați opțiunea -i în linia de comadă:
user@ubuntu:~$ grep ‐i BDADDR /var/log/syslog
Utilizați opțiunea -A în linia de comandă pentru a afișa 'N' linii după linia care satisfice
opțiunile de filtrare. În mod similar puteți utiliza opțiunea -B pentru a afișa 'N' linii anterioare liniei
care satisfice opțiunile de filtrare sau pentru a tipări un număr de linii din jurul liniei identificate
utilizați opțiunea –C.
user@ubuntu:~$ grep –C 2 BDADDR /var/log/syslog
Deci, utilitarul grep poate primi ca argumente: (a) un șablon pe baza căruia selectează liniile
afișate, și (b) fișierul ce conține liniile pe care le va filtra. Șablonul este reprezentat de o expresie
regulată. De exemplu, cateva expresii regulate pot fi:
^ Denotes the beginning of a line
$ Denotes the end of a line
. Matches any one characters
* Matches 0 or more of the previous characters
.* Matches any number or type of characters
Putem căuta utilizatorul pi in fisierul /etc/passswd in modul urmator:
user@ubuntu:~$ grep pi /etc/passwd
În conformitate cu expresiile anterioare, putem afișa doar liniile care încep cu user
utilizînd coanda:
user@ubuntu:~$ grep ^pi /etc/passwd
sau doar liniile care se termină în false prin:
user@ubuntu:~$ grep false$ /etc/passwd
Comanda grep poate primi liniile pe care le filtrează și prin STDIN. Aceasta este o metodă
de utilizare uzuală, care se folosește de pipe‐uri (|). Folosind cat și grep, afișați doar liniile care
conțin string‐ul dhclient din fișierul /var/log/syslog.
user@ubuntu:~$ cat /var/log/syslog | grep BDADDR
Utilitarul cut primește două argumente: (a) un șablon pe baza căruia selectează secțiunea
care va fi afișată din fiecare linie și (b) fișierul ce conține liniile pe care le va filtra. Șablonul este
compus din două elemente: un caracter de delimitare a câmpurilor (specificat prin -d) și id-ul
câmpurilor care se afișează (specificat prin -f).
9|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
Dacă vrem ca pentru fiecare linie din fișierul /var/log/syslog să afișăm numai ora la
care a fost înregistrată acea linie, executăm următoarea comandă:
user@ubuntu:~$ cut ‐d “ “ ‐f 3 /var/log/syslog
La fel ca grep, cut poate primi liniile pe care le filtrează și pe STDIN. De exemplu, putem
grupa comenzile anterioare sub forma:
user@ubuntu:~$ cat /var/log/syslog | grep BDADDR | cut ‐d “ ” ‐f 3
Homework:
1. Use the cut command to present only the username and user ID (field 3) from the
passwd file.
2. Make a list of all filenames in /etc that contain the string conf in their filename.
3. Crete a list of all bash users in bash_users.txt.
10 | P a g e