AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 689401
Accepted
terdon
terdon
Asked: 2022-02-06 06:24:48 +0800 CST2022-02-06 06:24:48 +0800 CST 2022-02-06 06:24:48 +0800 CST

Quais shells usam readline?

  • 772

Recentemente, postei uma pergunta sobre um comportamento estranho que observei no bash, fishe zshshells que não foram exibidos pelo tcsh, csh, kshou dashshells. Acontece que o comportamento foi causado por uma alteração nas configurações padrão da readlinebiblioteca e corrigi-o adicionando set enable-bracketed-paste Offao meu arquivo ~/.inputc.

Isso me fez pensar. Por que isso afetou apenas esse subconjunto específico de shells no meu sistema? Todas as conchas não usam readline? Existe algum tipo de regra geral? Por que bash, zshe fishmudou seu comportamento enquanto as outras conchas não?

shell readline
  • 1 1 respostas
  • 1052 Views

1 respostas

  • Voted
  1. Best Answer
    Stéphane Chazelas
    2022-02-06T06:37:58+08:002022-02-06T06:37:58+08:00

    readlineé implementado ao lado bashdo mesmo autor e usado por bashe entre shells populares, principalmente apenas bash.

    A readlinebiblioteca foi gerada a partir do bash. bashO arquivo de 1.02 ChangeLogtem:

    Wed Jun 28 16:51:42 1989  Brian Fox  (bfox at aurel)
    
      * New directory: LIB contains readline and history stuff,
        and is Make-able on its own.  Also contains its own
        ChangeLog
    
      * history.c: removed shell dependent stuff, made into standalone
        library.
    
    Tue Jun 27 13:05:54 1989  Brian Fox  (bfox at aurel)
    
      * readline.c: removed shell dependent stuff.
    
      * New file: bashline.c contains all of the shell specific
        readline material in an attempt to begin using the
        readline stuff as a library.
    
    
    Mon Jun 26 13:35:16 1989  Brian Fox  (bfox at aurel)
    [...]
      * readline.c, jobs.c
         Make commands that do not complete sucessfully restore the
         tty state to whatever it was before the command was executed.
    

    zshusou uma versão modificada do bashreadline de 's na primeira versão 1.0 em 1990, pois seu próprio editor de linha ainda não estava pronto, mas mudou para o 2.0 quatro meses depois, em 1991. Do READMEarquivo em 1.0:

    Esta é a versão v1.0 do zsh. Eu incorporei o editor GNU "readline", escrito por Brian Fox, no shell, apenas para tornar minha vida temporariamente mais fácil. Eu fiz muitas mudanças nele, então se houver algum bug no editor, provavelmente é minha culpa. readline não fará parte da próxima versão do zsh.

    Shells baseados em Ash normalmente usam o libedit do BSD (no caso de dashmuitas vezes não estar habilitado em tempo de compilação, pois dashé destinado apenas à execução de scripts, não como um shell interativo).

    O clone do rcshell Unix V10 / Plan9 de Byron Rakitzis oferece uma escolha de editores de linha em tempo de compilação: GNU readline, Simmule Turner editlinee Gert-Jan Vons vrl. A primeira versão oferecia apenas readline. ese akanga, com base na rcoferta de uma escolha de readlinevs editline.

    O busybox tem seu próprio editor de linha que é usado por seus shells hushe ashpor outros applets como seu bc, ed, fdisk.

    readlineé ótimo porque fornece um editor de linha que pode ser (e é ) usado em muitas ferramentas diferentes, fornecendo consistência, mas, embora seja provavelmente uma das bibliotecas de edição de linha de propósito geral mais ricas em recursos, é relativamente limitado no que você pode fazer com ele. Também é licenciado sob a GPL, portanto, só pode ser usado em software licenciado sob a GPL ou compatível .

    A maioria dos shells, incluindo ksh, pdksh e derivados, tcsh, zsh, fish ou yash, tem seu próprio editor de linha, geralmente mais avançado. Os editores de linha do ksh foram escritos por volta de 1983 muito antes bashdo , e essa é a interface que o readline do bash mais copiou. pdkshe tcsheditores de linha também são anteriores ao bash e ao readline. Um vieditor de linha de estilo é especificado pelo POSIX, baseado em ksh's. O emacsque não é especificado pelo POSIX, pois Richard Stallman (o principal autor do GNU emacse, incidentalmente, também criou o nome "POSIX") se opôs a ele¹.

    Observe que há boas razões pelas quais você deseja habilitar o modo de colagem entre colchetes em editores de terminal ou editores de linha que o suportam. Veja: Como posso me proteger desse tipo de abuso na área de transferência? .


    ¹ VerO modo de edição de linha de comando do shell emacs foi finalmente omitido porque ficou aparente que a versão do KornShell e o editor distribuído com o sistema GNU divergiram em alguns aspectos. O autor do emacs solicitou que o modo POSIX emacs fosse excluído ou tivesse um número significativo de condições não especificadas. Embora o autor do KornShell tenha concordado em considerar mudanças para alinhar o shell, os desenvolvedores do padrão decidiram adiar a especificação naquele momento. Na época, supunha-se que a convergência em uma definição aceitável ocorreria para um projeto subsequente, mas isso não aconteceu, e parece não haver ímpeto para fazê-lo. De qualquer forma, as implementações são gratuitas para oferecer modos de edição de linha de comando adicionais com base nos modelos exatos de editores com os quais seus usuários se sentem mais confortáveis."na seção RATIONALE da shespecificação POSIX .

    • 18

relate perguntas

  • Como funciona este comando? mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc -l 1234 > /tmp/f

  • FreeBSD's sh: funções de lista

  • Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?

  • o que grep -v grep faz

  • Como salvar um caminho com ~ em uma variável?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve