- Me preguntaba dónde puedo encontrar y
aprender alguna idea general sobre la
interfaz de línea de comandos utilizada en Linux
y bash. -
Hasta ahora, he encontrado partes de
tal información solo de
experiencia, como- Para cat, sin más
argumentos, acepta la entrada stdin.
Pero puede especificar explícitamente STDIN
usando el nombre especial-
, y ambas
formas son equivalentes.cat
también puede
aceptar un nombre de archivo comocat filename
.
También lo es-
destinado a completar un argumento
supuesto para el nombre de archivo? ¿Es
este uso de-
también común para
otros comandos? - En
chardet <<<somestring
,<<<
significa que se usa una cadena como stdin,
lo mismo queecho somestring |
. ¿Es este el uso de
chardet<<<
también común? - En
cut -c 1-3,20,25- employees
, es
el camino1-3,20,25-
especificar un
rango de números para un argumento
también común en otros comandos?
- Para cat, sin más
- Por último, pero no menos importante, ¿son estas
ideas generales comunes solo dentro de
bash, o dentro de Linux y Unix, o
dentro del software que utiliza getopt como
analizador de línea de comandos?
Respuesta aceptada:
Recomiendo leer un libro sobre el shell de Unix o Linux y el uso de la línea de comandos, para aprender el uso básico y tener una idea de algunas características avanzadas. Luego puede consultar la documentación de referencia.
El uso de comandos específicos se describe en su manual. man cat
mostrará el manual del cat
comando en su sistema. Las páginas del manual suelen ser referencias, no tutoriales, aunque a menudo contienen ejemplos. En Linux, cat --help
muestra un breve mensaje de uso (pensado para una lectura rápida cuando ya conoce los fundamentos y desea encontrar una opción para una tarea específica).
El estándar POSIX especifica un conjunto mínimo de comandos, opciones y funciones de shell que se supone que admite cada sistema Unix. La mayoría de los sistemas actuales en general son compatibles con POSIX:2004 (también conocido como Single UNIX versión 3 y Open Group Base Specifications número 6). El software GNU (las utilidades que se encuentran en Linux) a menudo tiene muchas extensiones a este conjunto mínimo.
Existen convenciones comunes para los argumentos de la línea de comandos. POSIX especifica las convenciones de utilidades que siguen la mayoría de las utilidades, en particular:
- Las opciones consisten en
-
seguido de una sola letra;-ab
es la abreviatura de-a -b
. --
significa el final de las opciones. Por ejemplo, enrm -- -a
,-a
no es una opción sino un operando, es decir, un archivo sobre el que actuar, por lo que este comando elimina el archivo llamado-a
.- Un
-
solitario significa entrada estándar, donde se espera un archivo de entrada. Significa salida estándar donde se espera un archivo de salida.
Las utilidades GNU y otras también admiten "opciones largas" de la forma --name
. Algunas utilidades van en contra de la convención general y toman opciones de varias letras con un solo guión inicial:-name
.
La redirección es una función de shell, por lo que la encontrará en el manual de su shell. <<<
usar una cadena como entrada estándar es una extensión ksh, también compatible con bash y zsh. Siempre que el shell lo admita, se puede usar en cualquier comando.