1. Introducció als entorns de treball UNIX

1.7. El terminal com a eina de treball

1.7.5. Recuperació d’ordres mitjançant l’historial d’ordres

Pot ser convenient tenir l’opció de repetir una ordre que executada anteriorment en una sessió de shell . Recordar una línia d’ordres llarga i complexa que vàreu escriure de manera incorrecta us pot estalviar problemes. Afortunadament, algunes característiques del shell us permeten recordar línies d’ordres anteriors, editar aquestes línies o completar una línia d’ordres parcialment escrita.

L’historial del shell és una llista de les ordres que heu ingressat abans. Fent servir l’ordre history en un shell bash, podeu veure els vostres ordres anteriors. Després, utilitzant diverses característiques del shell, podeu recuperar línies d’ordres individuals d’aquesta llista i canviar-les com desitgeu.

Per provar una mica d’edició de línia d’ordres, escriviu el següent:

$ ls /usr/bin | sort -f | less

Aquesta ordre mostra el contingut del directori /usr/bin, ordena el contingut en ordre alfabètic (sense importar majúscules o minúscules) i passa la sortida a less. L’ordre less mostra la primera pàgina de sortida, després de la qual pots navegar per la resta de la sortida d’una línia (pressiona enter) o a pàgines (pressiona la barra espaiadora) alhora. Simplement pressioneu la tecla q quan hàgiu acabat. Ara, suposem que voleu canviar la vostra línia d’ordres al terminal d’usr/bin a /bin i no voleu escriure massa. Si us col·loqueu en la línia d’ordres, i seguiu els següents passos, podreu canviar part de la línia d’ordres:

  • Pressioneu la fletxa cap amunt (). Això mostra l’ordre més recent del teu historial de shell. Prova de pressionar-la més d’una vegada.
  • Pressioneu Ctrl + A. Això mou el cursor al principi de la línia d’ordres.
  • Pressioneu Ctrl + E. Això mou el cursor al final de la línia d’ordres.
  • Pressioneu Ctrl+F o la fletxa dreta (). Repeteix aquesta ordre diverses vegades per col·locar el cursor sota la primera barra (/).
  • Pressioneu Ctrl+D. Escriu aquesta ordre quatre vegades per eliminar /usr de la línia.
  • Pressioneu Enter. Executa la línia d’ordres un cop has decidit què executar.

Mentre s’edita una línia d’ordres, en qualsevol moment podeu escriure caràcters normals per afegir-los a la línia d’ordres. Els caràcters apareixen en la posició del cursor de text. Podeu utilitzar la fletxa dreta →, esquerra ← per moure el cursor d’un extrem a un altre de la línia d’ordres. També podeu prémer les tecles de fletxa amunt ↑ i avall ↓ per recórrer les anteriors ordres a la llista de l’historial per seleccionar una línia d’ordres per editar.

Després d’escriure una línia d’ordres, tota la línia es guarda a la llista d’historial del teu shell. La llista s’emmagatzema en el shell actual fins que sortiu del terminal. A més, cada ordre que s’escriu en la línia d’ordres i s’executa, tingui sentit o no, s’escriu en un arxiu d’historial, on qualsevol ordre pot ser recordada per ser executada novament en una altra sessió. Un cop es recupera una ordre, es pot modificar la línia d’ordres, com s’ha descrit anteriorment.

Per veure la vostra llista d’historial, utilitzeu l’ordre history. Escriviu l’ordre sense opcions o seguida d’un número per llistar aquesta quantitat de les ordres més recents. Per exemple,

$ history 9
2012 date
2013 date +'%d/%m/%y'
2014 date +'%A, %B %d, %Y'
2015 ls
2016 ls Scripts/
2017 ls
2018 echo $PATH
2019 ls /usr/bin | sort -f | less
2020 history 9

En lloc de simplement executar una línia d’ordre de l’historial de manera immediata, es pot recuperar una línia en particular i editar-la. Se’n mostren diversos exemples.