GNU/Linux >> Tutoriales Linux >  >> Linux

El tutorial del comando fc con ejemplos para principiantes

El fc comando, abreviatura de f ix c ommands, es un comando integrado de shell que se utiliza para enumerar, editar y volver a ejecutar los comandos ingresados ​​más recientemente en un shell interactivo. Puede editar los comandos ingresados ​​recientemente en su editor favorito y ejecutarlos sin tener que volver a escribir los comandos completos. Este comando puede ser útil para corregir errores ortográficos en los comandos ingresados ​​anteriormente y evita la repetición de comandos largos y complicados. Dado que está integrado en el shell, está disponible en la mayoría de los shells, incluidos Bash, Zsh, Ksh, etc. En este breve tutorial, aprenderemos a usar el comando fc en Linux.

Lista de los comandos ejecutados recientemente con el comando fc

Si ejecuta fc -l comando sin argumentos, mostrará los últimos 16 comandos.

$ fc -l
507 fish
508 fc -l
509 sudo netctl restart wlp9s0sktab
510 ls -l
511 pwd
512 uname -r
513 uname -ms
514 touch ostechnix.txt
515 vi ostechnix.txt
516 echo "Welcome to OSTechNix"
517 sudo apcman -Syu
518 sudo pacman -Syu
519 more ostechnix.txt 
520 wc -l ostechnix.txt 
521 cat ostechnix.txt 
522 clear

Para invertir el orden de los comandos, use -r bandera.

$ fc -r

Puede suprimir los números de línea usando -n bandera.

$ fc -ln
 nano ~/.profile
 source ~/.profile
 source ~/.profile
 fc -ln
 fc -l
 sudo netctl restart wlp9s0sktab
 ls -l
 pwd
 uname -r
 uname -ms
 echo "Welcome to OSTechNix"
 sudo apcman -Syu
 cat ostechnix.txt 
 wc -l ostechnix.txt 
 more ostechnix.txt 
 clear

Ahora no verá los números de línea.

Para enumerar el resultado a partir de un comando específico, simplemente use el número de línea junto con -l opción. Por ejemplo, para mostrar los comandos a partir del número de línea 520 hasta el presente, hacemos:

$ fc -l 520
520 ls -l
521 pwd
522 uname -r
523 uname -ms
524 echo "Welcome to OSTechNix"
525 sudo apcman -Syu
526 cat ostechnix.txt 
527 wc -l ostechnix.txt 
528 more ostechnix.txt 
529 clear
530 fc -ln
531 fc -l

Para enumerar comandos dentro de un rango específico, por ejemplo, 520 a 525 , hacer:

$ fc -l 520 525
520 ls -l
521 pwd
522 uname -r
523 uname -ms
524 echo "Welcome to OSTechNix"
525 sudo apcman -Syu

En lugar de usar los números de línea, también podemos usar cadenas. Por ejemplo, enumere los comandos a partir de pwd comando hasta el reenvío, solo use la letra inicial de ese comando (es decir, p ) como a continuación.

$ fc -l p
521 pwd
522 uname -r
523 uname -ms
524 echo "Welcome to OSTechNix"
525 sudo apcman -Syu
526 cat ostechnix.txt 
527 wc -l ostechnix.txt 
528 more ostechnix.txt 
529 clear
530 fc -ln
531 fc -l
532 fc -l 520
533 fc -l 520 525
534 fc -l 520
535 fc -l 522
536 fc -l l

Para ver todo entre pwd a more comando, puede usar cualquiera de los siguientes:

$ fc -l p m

O use la combinación de la primera letra del comando de inicio y el número de línea del comando final:

$ fc -l p 528

O simplemente números de línea de los comandos de inicio y fin:

$ fc -l 521 528

Estos tres comandos mostrarán el mismo resultado.

Editar y volver a ejecutar el último comando automáticamente

A veces, es posible que haya escrito mal un comando anterior. En tales situaciones, puede editar fácilmente los errores ortográficos del comando utilizando su editor predeterminado y ejecutarlo sin tener que volver a escribirlo.

Para editar el último comando y volver a ejecutarlo, haz lo siguiente:

$ fc

Esto abrirá su último comando en el editor predeterminado.

Como puede ver en la captura de pantalla anterior, mi último comando fue "fc -l" . Ahora puede realizar cualquier cambio en el comando y volver a ejecutarlo automáticamente una vez que guarde y salga del editor. Esto puede ser útil cuando usa comandos o argumentos largos y complicados.

Nota importante: Tenga en cuenta que esto también puede ser un destructivo . Por ejemplo, si el comando anterior era un comando letal como "rm -fr <some-path>" , se ejecutará automáticamente y es posible que pierda sus datos importantes. Por lo tanto, DEBE tener mucho cuidado al usar fc comando.

Cambiar el editor predeterminado para editar comandos

Otra opción notable de fc es "e" que se utiliza para elegir un editor diferente para editar los comandos. Por ejemplo, podemos usar "nano" editor para editar el último comando como se muestra a continuación.

$ fc -e nano

Este comando abrirá el editor nano (en lugar del editor predeterminado) para editar el último comando.

Puede que le resulte lento usar -e opción para cada comando. Para hacer que el nuevo editor sea el predeterminado, solo configure la variable de entorno FCEDIT al nombre del editor que quieras fc usar.

Por ejemplo, para configurar "nano" como el nuevo editor predeterminado, edite su ~/.profile o archivo de entorno:

$ vi ~/.profile

Agregue la siguiente línea:

FCEDIT=nano

También puede usar la ruta completa del editor como se muestra a continuación.

FCEDIT=/usr/local/bin/emacs

Escribe :wq para guardar y cerrar el archivo. Para actualizar los cambios, ejecute:

$ source ~/.profile

Ahora, puede escribir "fc" para editar el último comando usando "nano" redactor.

Vuelva a ejecutar el último comando sin editarlo

Ya sabíamos que si ejecutamos "fc" sin ningún argumento, carga el editor con el comando más reciente. A veces, es posible que no desee editar, sino simplemente ejecutar el último comando. Para ello, utilice guión (- ) al final como se muestra a continuación.

$ echo "Welcome to OSTechNix"
Welcome to OSTechNix

$ fc -e -
echo "Welcome to OSTechNix"
Welcome to OSTechNix

Como puede ver, fc no editó el último comando (es decir, echo "Bienvenido a OSTechNix") incluso si usé -e opción.

Tenga en cuenta que algunas de las opciones son específicas del shell. Es posible que no funcionen en otras conchas. Por ejemplo, las siguientes opciones se pueden usar en zsh cáscara. No funcionarán en shells Bash o Ksh.

Mostrar cuándo se ejecutaron los comandos

Para ver cuándo se ejecutaron los comandos, use -d como a continuación.

fc -ld
1 18:41 exit
2 18:41 clear
3 18:42 fc -l
4 18:42 sudo netctl restart wlp9s0sktab
5 18:42 ls -l
6 18:42 pwd
7 18:42 uname -r
8 18:43 uname -ms
9 18:43 cat ostechnix.txt
10 18:43 echo "Welcome to OSTechNix"
11 18:43 more ostechnix.txt
12 18:43 wc -l ostechnix.txt
13 18:43 cat ostechnix.txt
14 18:43 clear
15 18:43 fc -l

Ahora ve el tiempo de ejecución de los comandos ejecutados más recientemente.

También podemos mostrar la marca de tiempo completa de cada comando usando -f opción.

 fc -lf
 1 4/5/2018 18:41 exit
 2 4/5/2018 18:41 clear
 3 4/5/2018 18:42 fc -l
 4 4/5/2018 18:42 sudo netctl restart wlp9s0sktab
 5 4/5/2018 18:42 ls -l
 6 4/5/2018 18:42 pwd
 7 4/5/2018 18:42 uname -r
 8 4/5/2018 18:43 uname -ms
 9 4/5/2018 18:43 cat ostechnix.txt
 10 4/5/2018 18:43 echo "Welcome to OSTechNix"
 11 4/5/2018 18:43 more ostechnix.txt
 12 4/5/2018 18:43 wc -l ostechnix.txt
 13 4/5/2018 18:43 cat ostechnix.txt
 14 4/5/2018 18:43 clear
 15 4/5/2018 18:43 fc -l
 16 4/5/2018 18:43 fc -ld

Por supuesto, la gente europea puede usar el formato de fecha europeo usando -E opción.

 fc -lE
 2 5.4.2018 18:41 clear
 3 5.4.2018 18:42 fc -l
 4 5.4.2018 18:42 sudo netctl restart wlp9s0sktab
 5 5.4.2018 18:42 ls -l
 6 5.4.2018 18:42 pwd
 7 5.4.2018 18:42 uname -r
 8 5.4.2018 18:43 uname -ms
 9 5.4.2018 18:43 cat ostechnix.txt
 10 5.4.2018 18:43 echo "Welcome to OSTechNix"
 11 5.4.2018 18:43 more ostechnix.txt
 12 5.4.2018 18:43 wc -l ostechnix.txt
 13 5.4.2018 18:43 cat ostechnix.txt
 14 5.4.2018 18:43 clear
 15 5.4.2018 18:43 fc -l
 16 5.4.2018 18:43 fc -ld
 17 5.4.2018 18:49 fc -lf

TL;DR

  • Cuando se ejecuta sin ningún argumento, fc cargará el comando más reciente en el editor de texto predeterminado.
  • Cuando se ejecuta con un argumento numérico, fc carga el editor con el comando con ese número especificado.
  • Cuando se ejecuta con un argumento de cadena, fc carga el comando más reciente que comienza con esa cadena especificada.
  • Cuando se ejecuta con dos argumentos para fc , los argumentos especifican el comienzo y el final de un rango de comandos.

Nota: Algunas opciones están obsoletas en las versiones recientes de BASH.

Para obtener más detalles, consulte las páginas man.

$ man fc

Lectura relacionada:

  • Diferentes formas de repetir su último comando en Linux
  • Cómo borrar un comando específico del historial de Bash en Linux
  • Cómo borrar el historial de la línea de comandos en Linux

Linux
  1. Linux expand Command Tutorial para principiantes (con ejemplos)

  2. Tutorial de comando de factor Linux para principiantes (con ejemplos)

  3. Tutorial de comando yes de Linux para principiantes (con ejemplos)

  4. Tutorial del comando nproc de Linux para principiantes (con ejemplos)

  5. El tutorial de comando Type con ejemplos para principiantes

El tutorial del comando Fold con ejemplos para principiantes

El tutorial del comando df con ejemplos para principiantes

El tutorial de Top Command con ejemplos para principiantes

El tutorial del comando mktemp con ejemplos para principiantes

El tutorial de comando Grep con ejemplos para principiantes

El tutorial de comandos Uniq con ejemplos para principiantes