GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué usar echo antes de instalar un nuevo software?

Normalmente la función de echo El comando es mostrar una cadena (trozo de texto) en la consola. Pero esta vez, un > el carácter se agrega después del echo comando, redirigiendo su salida a un archivo de texto, /etc/apt/sources.list.d/ros-latest.list .

Básicamente, todo este comando escribe un fragmento de texto en un archivo de texto. Ahora, aquí viene la parte difícil:

La cadena escrita en el archivo puede ser diferente para cada computadora. La parte $(lsb_release -sc) se resuelve (cambia a otra cosa) cuando el echo se ejecuta el comando.

Puedes abrir /etc/apt/sources.list.d/ros-latest.list en un editor de texto antes y después del comando para ver el cambio por ti mismo. (Es posible que el archivo no exista antes de este comando).


Administración de paquetes y repositorios de software

Las distribuciones de Linux basadas en Debian se basan en repositorios (bases de datos de paquetes de instalación de aplicaciones y paquetes de actualización) para mantener los sistemas operativos actualizados y también para obtener e instalar fácilmente nuevos paquetes de software. La ubicación de estos repositorios se almacenan en /etc/apt/sources.list , sin embargo, las fuentes adicionales, generalmente exclusivas de aplicaciones específicas, se pueden almacenar en el /etc/apt/sources.list.d directorio.

Cuando el comando de actualización del índice del paquete apt-get update se ejecuta, su sistema operativo verifica con estos repositorios de paquetes los paquetes disponibles y registra los softwares disponibles como disponibles para su sistema operativo que puede instalar usando el apt-get install <package> tradicional dominio.

Un ejemplo de una de estas fuentes de software es:

deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty main restricted

Es importante que estas fuentes hagan referencia a versiones específicas de las distribuciones de Linux. Un ejemplo es confiable que es el nombre en clave de Ubuntu 14.04. Puede consultar su sistema operativo (basado en Debian) para obtener detalles completos con lsb_release -a o lsb_release -sc que significa corto y nombre en clave .

En su pregunta, la parte $(lsb_release -sc) se interpreta y el resultado de su sistema operativo se imprime en el archivo fuente personalizado ros-latest.list que el comando creará al ejecutarse.

Intérprete de lenguaje de comandos

El sh comando es el shell bourne. Este es uno, entre varios proyectiles, pero se considera el estándar anterior y, en general, puede estar seguro de que existe. También es común ver bash en muchos scripts de shell. Esa declaración especifica el shell que se usará, ya que diferentes shells usan una sintaxis diferente.

En cuanto al -c bandera, citando man bash :

Si la opción -c está presente, los comandos se leen desde la cadena. Si hay argumentos después de la cadena, se asignan a los parámetros posicionales, comenzando con $0.

Todo dentro del '' se lee como una cadena, no necesitaría descubrir cómo escapar varias comillas o preocuparse de que el shell interprete algo de manera incorrecta.

tl;dr

El comando imprime deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main a un archivo fuente personalizado, reemplazando $(lsb_release -sc) con el valor interpretado.


Linux
  1. Cómo usar el comando Su en Linux

  2. ¿Por qué es legal establecer una variable antes de un comando en Bash?

  3. ¿Cambiar fuente en Echo Command?

  4. eco:comando no encontrado

  5. ¿Puedo usar un comando (como un árbol) sin instalarlo en todo el sistema?

Cómo usar el comando echo en Bash Scripts en Linux

Cómo usar el comando PS

Cómo usar el comando SUPERIOR

Cómo usar el comando echo sin nueva línea

¿Vale la pena instalar el nuevo Ubuntu 18.10?

¿Cómo insertar una nueva línea en el correo electrónico usando el comando de correo de Linux?