Skip to content

Commit

Permalink
Address feedback
Browse files Browse the repository at this point in the history
Signed-off-by: Eduard Staniloiu <[email protected]>
  • Loading branch information
edi33416 committed Sep 18, 2023
1 parent f56ef7a commit bcf30bc
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 46 deletions.
Binary file added chapters/improve-cli/gifs/reverse-search.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
48 changes: 2 additions & 46 deletions chapters/improve-cli/improve-shell.rst
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,7 @@ Atunci când își încheie execuția, orice proces întoarce un cod de ieșire
2 if serious trouble (e.g., cannot access command-line argument).
Pentru a vedea codul cu care și-a încheiat execuția o comandă folosim sintaxa ``$?``.
Urmărim exemplul de mai jos:
Pentru a vedea codul cu care și-a încheiat execuția o comandă folosim sintaxa ``$?``, așa cum observăm în exemplul de mai jos:
.. code-block:: bash
Expand Down Expand Up @@ -307,48 +306,6 @@ Am folosit de mai multe ori operatorul ``|`` până acum:
root 0 1074 2.2 0.0 45460 /usr/bin/containerd
student 1000 12966 1.8 0.0 38216 /usr/lib/gnome-terminal/gnome-terminal-server
Până acum am efectuat procesări text pe rezultatul unor comenzi.
Folosind operatorul ``|`` și utilitarul ``xargs`` putem să folosim rezultatul pe post de argument pentru altă comandă, ca în exemplul de mai jos:
.. code-block:: bash
student@uso:~$ find . -maxdepth 1 -type f | xargs ls -l
-rw------- 1 student student 10992 nov 6 14:56 ./.ICEauthority
-rw-r--r-- 1 student student 297 nov 7 00:18 ./.bash_aliases
-rw------- 1 student student 43604 nov 5 02:34 ./.bash_history
-rw-r--r-- 1 student student 220 aug 6 2018 ./.bash_logout
-rw-r--r-- 1 student student 3824 aug 13 19:04 ./.bashrc
-rw-r--r-- 1 student student 3159 aug 20 2018 ./.emacs
-rw-r--r-- 1 student student 87 aug 21 2018 ./.gitconfig
-rw------- 1 student student 361 nov 7 02:40 ./.lesshst
Comanda din exemplul de mai sus afișează informații în format lung despre toate fișierele din directorul curent, excluzând directoarele.
Dacă folosim opțiunea ``-p`` a utilitarului ``xargs``, acesta o să ne afișeze ce comandă urmează să execute și așteaptă confirmarea noastră prin apăsarea tastei ``y`` (yes) sau ``n`` (no).
Este recomandat să folosiți opțiunea ``-p`` atunci când vă scrieți onelinerul pentru a verifica că comanda pe care urmează să o executați este corectă.
În exemplul următor ne dorim să mutăm toate arhivele ``.tar`` în directorul ``archives``:
.. code-block:: bash
student@uso:~$ ls *.tar | xargs -p mv archives
mv archives courses.tar labhidden.tar uso.tar wiki.tar ?...n
Cu ajutorul opțiunii ``-p`` am putut să observăm că comanda nu are sintaxa dorită și am anulat execuția ei.
Problema este că avem destinația (``archives``) înaintea arhivelor care trebuie mutate.
Pentru a rezolva această problemă folosim opțiunea ``-I str``, ca mai jos:
.. code-block:: bash
student@uso:~$ ls *.tar | xargs -I str -p mv str archives
mv courses.tar archives ?...n
mv labhidden.tar archives ?...n
mv uso.tar archives ?...n
mv wiki.tar archives ?...n
Opțiunea ``-I`` va înlocui șirul de caractere ``str`` cu numele arhivelor primite din pipe, așa cum observăm mai sus.
Șirul de caractere placeholder poate să fie orice, nu neapărat ``str``; comanda ``ls *.tar | xargs -I {} -p mv {} archives`` produce aceelași rezultat.
Redirectări
^^^^^^^^^^^
Expand Down Expand Up @@ -380,7 +337,6 @@ Redirectarea ieșirilor standard
Cum spuneam mai sus, majoritatea programelor pe care le folosim vor afișa rezultatele pe ecran.
Acest comportament este bun atunci când ne scriem onelinerul care ne extrage informațiile căutate, dar cel mai probabil o să vrem să salvăm rezultatul procesării într-un fișier.
Folosim operatorul ``>`` pentru a redirecta **STDOUT** sau **STDERR** într-un fișier.
Pentru fiecare flux de date avem un număr, numit descriptor de fișier, asociat:
* **STDIN** are asociat descriptorul de fișier 0
Expand All @@ -394,7 +350,7 @@ Pentru a redirecta ieșirea standard a erorilor folosim sintaxa ``cmd 2> nume-fi
**Atenție!**
În cazul în care fișierul destinație nu există, operatorul ``>`` îl va crea.
Dacă fișierul destinație există, operatorul ``>`` va șterge conținutul acestuia.
Dacă fișierul destinație există, operatorul ``>`` va suprascrie conținutul acestuia.
Urmăm exemplul de mai jos:
Expand Down
4 changes: 4 additions & 0 deletions chapters/improve-cli/improve-terminal.rst
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@ De aici, avem următoarele opțiuni:
* Rulăm comanda pe care am găsit-o, folosind combinația de taste ``Ctrl+o``
* Anulăm căutarea comenzii și revenim la starea inițială, folosind combinația de taste ``Ctrl+g``
.. figure:: ./gifs/reverse-search.gif
:scale: 50%
:alt: Reprezentarea vizuală a căutării în istoricul de comenzi
Căutarea este incrementală.
Adică se rafinează pe măsură ce tastăm un caracter.
Orice caracter apăsat rafinează căutarea.
Expand Down

0 comments on commit bcf30bc

Please sign in to comment.