O que significam as letras no comando `fc`?

19

Acabei de encontrar o fccomando que permite editar o comando anterior e emiti-lo posteriormente.

Ele possui sua própria FCEDITvariável de ambiente para definir seu editor e uma página de manual no Manual do Programador POSIX ( 1p).

Ele cria um arquivo no /tmpdiretório e executa o conteúdo se o arquivo for salvo ( :wqem vim).

Além disso, ele pode numerar e listar fc -lcomandos executados anteriormente para escolher.

Portanto, é um comando realmente agradável e útil de saber.

A questão é o que o nome realmente significa; como associar o comando com sua função em mente?

"Primeira classe"? ou talvez apenas como "Função" (o que me veio à mente depois de compor a frase anterior)?

O manual se refere a ele simplesmente como "o utilitário fc".


fonte
2
Obrigado por perguntar isso; Eu me pergunto há muito tempo qual o mecanismo que pressionava ^ X, ^ E usado para executar essa função.
DopeGhoti
1
Consulte também Exportar histórico de comandos em um script de shell .
Stephen Kitt
Há muitas expansões legais interessantes que você pode fazer ... !!é o comando anterior, !-2é o comando anterior a isso, !-3para !-Netc. Em seguida, !:1fornece o primeiro argumento do comando anterior !:2, o segundo argumento, !*todos os argumentos, ^command1^command2execute última command1 substituindo instância de command1 com command2, etc.
Charles Addis
há também um comando semelhante de terceiro par com melhorias preditivas.

Respostas:

20

Embora a zshbuiltins(1)página de manual não o indique, o fccomando é praticamente o mesmo que seu bashequivalente. Simplesmente (F) ix (C) ommand.

Aperto de morte
fonte
Obrigado. Faz sentido e soa perfeito. Eu mudei para bashemissão help fc( helpsendo um utilitário para embutidos no shell), mas a saída também não percebe isso whatis fc.
2
Você pode tentar man bashou man builtins. Ou veja linux.die.net/man/1/bash .
Deathgrip
6
fcé um comando POSIX, que se originou no ksh AFAIK (já existente no ksh86, já chamado de comando fix naquela época). O zsh está presente desde o primeiro lançamento em 1990. Eu não sei sobre o bash. o bash 1.05 não o possui.
Stéphane Chazelas
Ótimo! Eu tive que confirmar que: P