El tutorial del comando fc con ejemplos para principiantes

los f.c. 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.

Enumere los comandos ejecutados recientemente con el comando fc

Si tu corres fc -l comando sin argumentos, mostrará el último dieciséis 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, utilice -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 listar comandos dentro de un rango específico, por example 520 para 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. Para exampleenumere los comandos a partir de pwd comando hasta el reenvío, solo use la letra inicial de ese comando (es decir, pags ) como abajo.

                      
                        $ 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 para 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 finalización:

                      $ fc -l 521 528
                    

Todos estos tres comandos mostrarán el mismo resultado.

Edite y vuelva 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.

Edite y vuelva a ejecutar el último comando usando el comando fc

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 . Para examplesi el comando anterior era un comando mortal 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 mando.

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. Para examplenosotros 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.

Cambiar el editor predeterminado para el comando fc

Es posible que le resulte lento utilizar -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 f.c. usar.

Para examplepara 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 ahorrar y close el archivo. Para actualizar los cambios, ejecute:

                      $ source ~/.profile
                    

Ahora, puede escribir “fc” para editar el último comando usando "nano" editor.

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 hacerlo, use un 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. Para example Las siguientes opciones se pueden utilizar en zsh cascarón. 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 abajo.

                      
                        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

Related Posts