fbpx

Comandos Linux – Comando bind

Comando Bash BIND builtin

Atualizado: 08/02/2019 por Computer Hope

Comando BIND BIND BIND

Em sistemas operacionais do tipo Unix, bind é um comando interno do shell Bash . Você pode usá-lo para alterar como o bash responde às teclas e combinações de teclas pressionadas no teclado.

Descrição

Ao digitar na linha de comando do bash, pressione Ctrl + A para mover o cursor para o início da linha ou Ctrl + E para movê-lo para o final. Essas são as “combinações de teclas” – as ações do teclado estão vinculadas a uma função que move o cursor.

No bash, as ligações de teclas padrão correspondem às do editor Emacs , mas você pode alterá-las para o que funciona melhor para você.

Como bind representa chaves

Vincular representa as teclas do teclado usando cadeias de caracteres especiais e literais . Os caracteres especiais são:

\ C-Representa manter pressionada a tecla Ctrl e pressionar as teclas que seguem o traço.
\ eA tecla Escape. Isso é usado para outras ligações, como a tecla Meta . Por exemplo, a tecla Alt é uma meta-chave em muitos teclados.

Pode ser muito confuso, e a maneira como o bash codifica as chaves nem sempre é claramente documentada. Para ver como o bind codifica as combinações de teclas padrão, é possível executar o bind -P .

Você também pode observar as configurações de ligação listadas no arquivo / etc / inputrc . Para combinações incomuns, você pode usar Ctrl + v para encontrar qualquer código de chave, conforme descrito abaixo.

Localizando um código-chave

Se você não tiver certeza do código para uma combinação de teclas específica, pressione Ctrl + v em um prompt do bash e pressione a combinação de teclas. Essa ação é chamada inserção entre aspas e exibe o código da tecla que você pressionou. Por exemplo, se você pressionar Ctrl + v , depois F7 , você verá:

  ^ [[18 ~

Aqui, ^ [ é um caractere de escape, portanto, para representar esse código-chave em uma string, podemos usar:

  "\ e [18 ~"

Para exemplos de uso desse código de chave em um comando, consulte exemplos .

Sintaxe

  bind [ -lpsvPSVX ] [ -m keymap ] [ -f nome do arquivo ] [ -q name ] [ -u name ]
      [ -r keyseq ] [ -x keyseq : shell-command ] 
      [ keyseq : função de linha de leitura |  comando readline ]

Opções

O comando bind builtin possui as seguintes opções:

-m keymapUse o mapa de teclas como o esquema de mapeamento de teclas durante a sequência de comandos atual. Os possíveis valores do mapa de teclas são:

emacsMapeamento de teclas no estilo Emacs. Esse é o padrão.
emacs-standardO mesmo que o emacs .
emacs-metaO mesmo que o emacs , com ligações alternativas.
emacs-ctlxO estilo “Ctrl-X” emacs é obrigatório.
viMapeamento de teclas no estilo Vi .
vi-moveO mesmo que vi .
comando-viO mesmo que vi .
vi-insertSemelhante ao vi , mas com mapas de teclas alternativos para inserir texto.
-IListe os nomes das funções de edição vinculáveis.
-PListe os nomes das funções de edição vinculáveis ​​e quais são suas ligações, se houver.
-pO mesmo que -P , mas fornece saída em um formulário que pode ser usado como entrada para o comando bind .
-SListe as sequências de teclas que chamam macros e seus valores.
-sO mesmo que -S , mas fornece saída em um formulário que pode ser usado como entrada para ligação .
-VListar variáveis ​​e seus valores, que são usados ​​na ligação de teclas bash.
-vO mesmo que -V , mas fornece saída em um formulário que pode ser usado como entrada para ligação .
-q nome-da-funçãoExiba (consulta) a ligação de tecla para a função bash nome-da-função .
-u nome-da-funçãoDesvincule todas as teclas associadas à função de edição nome-da-função .
-r keyseqRemova todas as ligações para a sequência de teclas keyseq .
-f nome do arquivoLeia as ligações de teclas do nome do arquivo e use-as como entrada para o comando bind .
-x keyseq : comando do shellVincule um comando. O comando shell shell-command será executado pelo bash quando receber a sequência de teclado keyseq .
-XListe as seqüências de teclas vinculadas por -x em um formato adequado para ligação da entrada.

Exemplos

  bind -m vi

Use o mapeamento de teclas vi no bash , permitindo manipular o texto na linha de comando como faria no vi.

  bind -l

Listar todas as funções de edição vinculáveis.

  bind -P

O mesmo que o comando acima, mas também lista quais são as ligações atuais da função, se houver.

  bind '"\ e [18 ~": "Olá!"

Ligue uma macro à sua tecla F7 (keycode \ e [1 8 ~ ) com o texto Hi! . Quando você pressiona F7, Oi! será inserido na linha de comando como se você a tivesse digitado. Observe que os dois lados dos dois pontos são colocados entre aspas duplas e todo o argumento é colocado entre aspas simples. Para obter mais informações sobre códigos de chave, consulte localizando um código de chave acima.

  bind "\ Ck": linha de interrupção

Ligue Ctrl + k à função de linha de interrupção, que no bash significa cortar todo o texto do cursor até o final da linha.

  vincular "\ Cy": puxar

Vincule Ctrl + y à função de arranque , que no bash significa colar o último texto que foi cortado.

  bind -q yank

Relate qual combinação de teclas está vinculada à função yank . A saída terá a seguinte aparência:

  yank pode ser chamado via "\ Cy".
  ligar -r "\ Cy"

Remova todas as ligações para a sequência de teclas \ Cy . A função de arranque não está mais vinculada a nada.

  bind -x '"\ eOS": "fortuna | cowsay"'

Ligue a tecla F4 para executar o comando fortune | cowsay .

  bind -p> mybinds

Saída de todas as ligações de teclas para um arquivo chamado mybinds , em um formato que pode ser usado como entrada para ligação . Por exemplo, você pode abrir mybinds em um editor de texto, fazer alterações nas ligações e salvar o arquivo. Em seguida, você pode aplicar suas alterações com o próximo comando.

  bind -f mybinds

Arquivo de configuração

/ etc / inputrcO arquivo de configuração padrão de ligações de teclas em todo o sistema.

alias – Crie um nome alternativo para um comando.
set – Define atributos do shell ou exibe variáveis ​​de ambiente.

13 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

[email protected]

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900
[email protected]

Copyright © Linux Force Security  - Desde 2011.