Uso de línea de comando con dislexia

57

Soy nuevo en Linux, y siendo disléxico, el trabajo desde una línea de comandos es un desafío. ¿Qué ayudas o consejos están disponibles para ayudar a trabajar con este problema?

Dale Davidson
fuente
44
Cuando arrastra un archivo al terminal, imprime automáticamente la ruta completa. Cuando presiona la tecla de flecha hacia arriba, imprime automáticamente el último comando.
karel
21
Es una buena pregunta, pero me resulta difícil imaginar cuáles son sus problemas. Por favor, editar y explicar qué es exactamente lo que desafía la mayoría. Las posibles soluciones pueden ser más simples de lo que piensas (ver otros comentarios).
postre
66
Los atajos de teclado ayudan mucho , encuentre los útiles aquí: askubuntu.com/q/45521/507051 y askubuntu.com/q/444708/507051
postre
44
Para ahorrar tiempo escribiendo una ruta larga a un archivo, arrastro el icono del archivo al terminal para imprimir la ruta del archivo y luego copiarlo / pegarlo en el siguiente comando.
karel
3
¡Zsh puede autocorregir letras intercambiadas en los nombres de comando! (Las páginas del manual tienen más información.)
SilverWolf - Reinstale a Monica

Respuestas:

90

Puede probar algunas cosas para mejorar su experiencia con la línea de comandos.

  1. Utilice la finalización de tabulación (complete automáticamente los comandos parcialmente escritos presionando Tab) siempre que sea posible.
  2. Presione (tecla de flecha hacia arriba) para imprimir automáticamente el último comando y mantenga presionada & (teclas de flecha hacia arriba y hacia abajo) para recorrer el historial de comandos.
  3. Arrastre un archivo al terminal para imprimir automáticamente la ruta completa.
  4. Presione Alt+ .(punto) para insertar el último argumento del último comando que ejecutó (útil, por ejemplo, mkdirseguido de cd).
  5. Use métodos abreviados de teclado (vea esto y esto ).
  6. Use alias Bash (vea esto y esto ).
  7. Use history, puede ver el historial de comandos y luego usar el número del comando histórico para volver a ejecutar el comando (por ejemplo, rehacer el comando # 352 con !352). Alias ​​simplemente hpara un acceso rápido y fácil.
  8. Use una búsqueda de terminal inversa ( Ctrl+ R, luego comience a escribir) para que coincida con los comandos anteriores; Es una forma rápida de encontrar cosas de antes.
  9. Use un shell que complete comandos y argumentos opcionales como Zsh o fish .
  10. Utilice una fuente que aumente la legibilidad para los lectores con dislexia , por ejemplo, " OpenDyslexic ", en Terminal.
  11. Escuche lo que está en la pantalla mientras lee; habilitar un lector de pantalla como Orca . Puede hacer que lea solo una palabra, una página entera, deletree palabras letra por letra, cambie la velocidad, el volumen, el nivel de detalle, etc.
  12. Agrande una parte de la pantalla mientras lee; Eche un vistazo a las aplicaciones que se amplían con métodos abreviados de teclado, como Magnifier .
  13. Avanzado: personalice la forma en que se muestra la salida, como establecer colores de texto condicionales. La distribución predeterminada de Ubuntu proporciona varias mejoras a la Terminal. Cuando se usa lspara enumerar el contenido de un directorio, por ejemplo, los subdirectorios se imprimen en azul y los nombres de archivo se imprimen en blanco, lo que facilita la distinción entre los dos. Para otros ejemplos, eche un vistazo a las muchas personalizaciones que las personas han compartido. Seguro que vale la pena probar algunos "tal cual". Un buen punto de partida es el popular repositorio Awesome dotfiles .
pomsky
fuente
1
@flith Se supone que es en !352lugar de history 352, ¿no?
pomsky
2
Hasta ahora he cambiado a la fuente disléxica y habilité los colores en la terminal. Eso ha ayudado con la lectura y algunos dolores de cabeza. Todavía sigue leyendo los libros Ubuntu Unleashed y Linux Bible. Vim y algunos de los otros editores pueden proporcionar algunas respuestas.
Dale Davidson
Ctrl + R: nunca antes había visto eso. Eso es increíblemente útil
Noel Evans
16

Intentaré una respuesta integral. Si dejé algo fuera, comente y lo agregaré.

Tab terminación

La finalización de la pestaña es su mayor ayuda aquí. Al presionar Tabse completará el comando en la medida en que sea identificable de forma exclusiva. Presionar Tabdos veces le dará una lista de opciones. Si escribe suficientes caracteres para identificar la opción que desea y presiona Tabnuevamente, la completará. Esto también funciona con nombres de ruta / archivo.

Por ejemplo, supongamos que tengo un usuario llamado Paul, y él tiene el archivo text123.txt y text124.txt en su carpeta Descargas:

Podría escribir / hy Tabbash me dará /home/. Luego escribe P Taby obtén /home/Paul/. Y continúe de esta manera hasta que tenga el archivo y la ruta completos.

Expansión de ruta / nombre de archivo

La finalización automática también acepta comodines *y ?. ?coincide con un solo carácter y *coincide con todos los caracteres (o ninguno). Usando el ejemplo anterior, podría escribir:

/h*/P*/Dow*/t*4*entonces Taby bash me dará /home/Paul/Downloads/text124.txt. Si estoy seguro de que coincido con el archivo correcto, puedo presionar Enterpara ejecutar el comando sin expandirlo primero.

Algunas referencias de directorio comunes son:

  • ~ para su directorio de inicio.
  • .. directorio de padres
  • .directorio actual; en caso de que quiera estar absolutamente seguro de que bash se ve en el directorio correcto.

Atajos de teclado

Las teclas de flecha hacia arriba y hacia abajo le permiten navegar a través de una lista de comandos usados ​​recientemente. Presione Ctrl+ Gpara escapar del modo de búsqueda de historial. Alt+ .repite el último argumento del comando anterior.

Alias

Bash te permite especificar alias. Si descubre que a menudo escribe incorrectamente un comando de la misma manera, puede agregar alias personalizados editando ~/.bashrcy agregando líneas como esta:

alias agi='apt-get install'
alias mkdri='mkdir'

Luego, vuelva a iniciar sesión para activarlos.

ravery
fuente
44
~no es unaalias , es bastante expandido por bashcomo se describe en EXPANSION / Tilde Expansión enman bash - ~se expande para $HOME, ~+a $PWDy ~-a $OLDPWDpor ejemplo. En realidad, puede configurar, por ejemplo, alias ~='cd ~'y es muy útil volver rápidamente al directorio de inicio, pero eso es totalmente diferente de (y no perjudica) la expansión.
postre
Bueno, man bashtiene una sección completa EXPANSION... Ya cubriste un poco de expansión de nombre de ruta.
postre
En mi sistema, parece que no puedo hacer que la mayoría de las otras expansiones funcionen en CLI. Pero me reorganizaré para arreglar la explicación tilde.
ravery
1
@WJAndrea: El shell tiene un soporte especial para ..y .; por ejemplo, en cd ..realidad elimina el último segmento de ruta del directorio de trabajo actual, en lugar de agregar un ..segmento.
ruakh
1
@WJAndrea y ravery: Ctrl + G sale de la búsqueda del historial de comandos que comienza con Ctrl + R. Una vez iniciado, simplemente escriba el comienzo de un comando y le mostrará el más reciente. Hojee los comandos coincidentes con Ctrl + R, ejecute un comando con Intro o edítelo con una tecla que cambie la posición del cursor, por ejemplo, Inicio, Fin, flechas, etc. Este modo de búsqueda es extremadamente útil si desea encontrar un comando reciente mediante su nombre: pruébalo, te dejará boquiabierto. ;)
postre
12

El shell Zsh (o al menos la versión que estoy usando, Oh-my-ZSH ) tiene una función que te corrige si haces pequeños errores tipográficos en los comandos y nombres de archivos:

$ pyhton scirpt.py
zsh: correct 'pyhton' to 'python' [nyae]? y
zsh: correct 'scirpt.py' to 'script.py' [nyae]? y
...

Puede activarlo con la siguiente línea en su .zshrc:

# Uncomment the following line to enable command auto-correction.
ENABLE_CORRECTION="true"
Graipher
fuente
¿Se puede hacer automático? Sé que está pidiendo problemas, mr fr- ./ -oe--rvoeorrpne-st->zsh: automatically correcting to rm -rf / --no-preserve-root
gato
1
@cat No que yo sepa. La razón que diste es una de las razones, pero también te impediría hacer cosas legítimas como mv file1 file1.old, porque corregiría el segundo nombre de archivo al primero, lo que lo convierte en un no-op.
Graipher
1
tcsh hace eso también.
Peter - Restablece a Mónica
11

Podría intentar usar la fuente disléxica abierta en su terminal. Podría ayudar con la lectura del texto. Esto supone que está utilizando el terminal ubuntu predeterminado, que espero sea el mismo que el terminal GNOME.

https://opendyslexic.org/

  1. Descargalo.
  2. Instala la fuente.
  3. Abra una terminal, navegue hasta la barra de menú y seleccione Editar-> Preferencias de perfil
  4. Active la fuente personalizada y seleccione la fuente mono disléxica abierta.
HSchmale
fuente
La instalación se puede hacer con sudo apt install fonts-opendyslexic.
Chai T. Rex
2

Para completar la respuesta de @pomsky, me gustaría agregar algunos puntos:

  • Aprenda a automatizar las cosas, especialmente aprenda cómo forfuncionan los bucles, cómo readfunciona, cómo iffunciona, qué son [ ]y [[ ]], utilice el modo estricto no oficial de bash , porque una vez que un script es válido, es más fácil no cometer errores.

  • si puede, instale el paquete bash-complete (puede venir con diferentes nombres según las versiones)

  • Úselo rmcon el -iinterruptor cuando se encuentre en situaciones peligrosas (como con sudo), o tal vez instale y use rmtrash(lo que arrojará basura a la basura)

  • Úselo cpcon el -ninterruptor, que no sobrescribirá los archivos existentes al copiar. (Por supuesto, más útil al copiar de forma recursiva)

  • Aprenda a usar el ~/.bashrcarchivo, puede hacer que la $PS1variable sea más clara para usted.

Y quizás lo más difícil si eres joven:

  • Trate de conocer un poco mejor las herramientas de vanguardia y comunes de lo que está haciendo.

    • Por ejemplo, si eres un estudiante que aprende a desarrollar con c ++, intenta configurarlo $CXXFLAGSen tu ~/.bashrc. (Por ejemplo: de export CXXFLAGS=" -std=c++17 -fmax-errors=1 -Wall -Wextra -pedantic -Werror "acuerdo con su versión de c ++, por supuesto, supongo que c ++ 11 para ubuntu), compile con make main.cppy sus opciones se transferirán. Tenga en cuenta que este conjunto de opciones es bastante duro: todo lo correcto y estándar se considerará un error y le impedirá compilar.
Pierre-Antoine Guillaume
fuente
2

Prueba con el shell interactivo amigable "FISH". Disponible en los repos.

Solía ​​luchar con la línea de comando usando BASH. Fish recuerda todos los últimos comandos y ofrece completarlos. sudo apt install fish luego en tipo bash; pescado. Si lo desea, consulte las instrucciones sobre cómo convertirlo en su shell predeterminado. Hay otros proyectiles disponibles; El pescado es mi elección. Una vez que comience, puede que le guste.

usuario73028
fuente
2

Aprendí que era disléxico después de ser un ingeniero de Unix y un usuario experto de shell durante muchos años en muchas plataformas diferentes (Linux, AIX y Solaris).

La dislexia afecta a diferentes personas en diferentes grados, por lo que la suposición de que "vemos las cosas fuera de orden" puede ser una simplificación excesiva y frustrante si no le afecta de esa manera: en realidad, encuentro que la fuente predeterminada de ancho fijo de los terminales es extremadamente legible ( blanco sobre negro me parece agradable)

Los shells son difíciles de aprender con muchos acrónimos y convenciones poco intuitivas para navegar, lo que a menudo dificulta el aprendizaje para las personas que disfrutan de palabras sencillas con patrones regulares.

Ahora entiendo que la mayoría de los disléxicos aprenden y memorizan de la experiencia de primera mano. Somos muy pobres aprendiendo de memoria o consumiendo una gran cantidad de teorías verbales. Sin embargo, una vez que hemos digerido la teoría por aplicación, generalmente se adhiere rápidamente con una comprensión intrínseca profunda. Con este fin, concéntrese en encontrar ejemplos de shell y probarlos escribiéndolos a mano y entendiendo lo que hace cada línea. Experimenta, rompe cosas, quédate despierto toda la noche arreglándolo.

Con el tiempo, recordará más y más comandos y patrones de puntos en la forma en que los desarrolladores han implementado sus programas que se pueden aplicar al siguiente comando. Sin embargo, no todos los comandos siguen las mismas convenciones al pasar argumentos / parámetros, por lo que tomará un tiempo aprender los comandos que son similares.

Como cualquier otra persona, después de unos años se convertirá en una segunda naturaleza. Sin embargo, con el tiempo, puede obtener la ventaja disléxica cuando intuitivamente sepa cómo resolver soluciones y realizar análisis de causa raíz complejos utilizando su sexta capacidad sensorial para detectar patrones o romper patrones.

Con la excepción de la finalización de pestañas y el consejo clave arriba, creo que la mayoría de las respuestas solo harán que la experiencia sea aún más abrumadora. Ingnóralos. La simplificación es la clave.

Alastair McCormack
fuente
2

Hay una herramienta, que se encuentra entre una broma y un ayudante invaluable.

https://github.com/nvbn/thefuck

Puede probarlo además de otras recomendaciones en este hilo. La idea principal es que cuando termines escribiendo algo y recibas el comando desconocido o lo que sea, esta herramienta lo corregirá y volverá a ejecutar.

No es una bala de plata, pero puede valer la pena intentarlo.

MariusSiuram
fuente