Los mejores tutoriales de Linux

Linux es un nombre que denota ampliamente una familia de distribuciones de sistemas operativos de software de código abierto y gratuitas construidas alrededor del kernel de Linux.

El kernel de Linux, un kernel del sistema operativo que utilizan todas las distribuciones de Linux, fue lanzado por primera vez el 17 de septiembre de 1991 por Linux Torvalds.

Muchas distribuciones de Linux utilizan la palabra "Linux" en su nombre. La Free Software Foundation usa el nombre GNU / Linux para referirse a la familia de sistemas operativos, así como a distribuciones específicas, para enfatizar que la mayoría de las distribuciones de Linux no son solo el kernel de Linux, y que tienen en común no solo el kernel, sino también numerosas utilidades y bibliotecas, una gran parte de las cuales son del proyecto GNU.

El desarrollo de Linux es uno de los ejemplos más destacados de colaboración de software libre y de código abierto. El código fuente subyacente puede ser utilizado, modificado y distribuido comercial o no comercialmente por cualquier persona bajo los términos de sus respectivas licencias, como la Licencia Pública General GNU.

Linux se inició como un clon del sistema operativo MINIX. Los contribuyentes de código abierto se agregaron al kernel y ampliaron su compatibilidad de hardware. El soporte de hardware de Linux y las licencias gratuitas hicieron de Linux una opción popular para computadoras de escritorio y servidores a mediados de los 90. Hoy, Linux es el sistema operativo más popular del mundo. Alimenta el 90% de los servidores del mundo y es la base del popular sistema operativo Android de Google.

También hay muchas versiones de Linux diseñadas para ejecutarse en computadoras personales, como Debian o Ubuntu. Más importante aún, estas diferentes versiones de Linux (llamadas distribuciones) permiten al usuario diversos grados de personalización y control del sistema operativo. Esto significa que los usuarios pueden elegir sus distribuciones de Linux según sus deseos y necesidades.

También está Kali Linux, que se utiliza para auditorías y pruebas de penetración avanzadas. Tiene más de 700 herramientas, y para poder usarlo de manera eficiente, necesitará saber cómo usar la línea de comandos. No se recomienda para principiantes.

Las distribuciones populares de Linux incluyen:

  • Ubuntu
  • Linux Mint
  • CentOS
  • RHEL
  • Arch Linux

Los tipos de paquetes se dividen en distribuciones de nivel superior, siendo Debian (.deb) y Red Hat (.rpm) dos de las más utilizadas. Sin embargo, hay otros como Pacman (utilizado para Arch Linux) y PetGet (Puppy Linux).

Las distribuciones de Linux también vienen en todas las formas y tamaños, y la mayoría, si no todas, ofrecen la capacidad de ejecutarse directamente a través de CD / DVD en lo que se conoce como un entorno de 'Live CD' o incluso directamente a través de USB si su placa base admite el arranque desde USB.

Para obtener más información sobre Linux, lea el artículo del fundador de freeCodeCamp, Quincy Larson, Linux is 25. ¡Yay! Celebremos con 25 hechos asombrosos sobre Linux.

Algunos de los mejores tutoriales de Linux que existen

Puede ver este curso intensivo de línea de comandos que cubre muchos de los comandos más comunes.

O el tutorial Bash de Briana, que cubre una amplia variedad de herramientas y comandos de la línea de comandos.

Algunas ventajas de Linux

Mejoras constantes y eficientes.

Las actualizaciones de Linux ocurren gracias a la colaboración global de desarrolladores. Los errores se documentan y resuelven mucho más rápido con este tipo de soporte. Además, dado que los desarrolladores también son los usuarios finales, tienen la motivación adecuada para asegurarse de que satisfaga las necesidades del usuario y de que esté diseñado para funcionar bien.

Menos riesgo.

El software es tan bueno como el soporte que se le brinda. Imagínese esto: una pieza de software es creada por la empresa XYZ y luego, en el camino, se declaran en quiebra o son comprados por otra empresa que decide cortar su soporte. El software nunca vería mejoras o correcciones y, por lo tanto, su utilidad inevitablemente se erosionaría y moriría.

Linux no pertenece ni es operado por una sola entidad o compañía, por lo que esta situación no puede suceder. Más que eso, cualquiera es libre de recogerlo y contribuir también. El riesgo de perder el soporte para Linux es muy poco probable debido a su abrumadora popularidad y uso.

Ligero.

Los requisitos de Linux para ejecutarse en un sistema son mucho más bajos que los de Windows o Mac. Con la distribución de Linux correcta, un usuario puede tener una configuración modesta y Linux le dará valor al sistema. El espacio en disco y la huella de memoria también pueden ser menores. Algunas distribuciones son adecuadas para CPU que datan de la familia Pentium, otras tienen un requisito de tan solo 128 MB de RAM y aproximadamente la misma cantidad de espacio en disco.

Muy documentado tanto para principiantes como para usuarios avanzados.

Linux tiene una comunidad activa de aquellos que desean compartir sus conocimientos y ayudar (¡como FreeCodeCamp!). Hay utilidades de línea de comandos integradas en Linux que proporcionan documentación sobre comandos, bibliotecas, estándares, etc. (páginas de manual y páginas de información), y hay documentación disponible en Internet en una variedad de formatos que incluyen The Linux Documentation Project, LinuxQuestions, ServerFault y The Arch Wiki.

Además de la documentación, hay muchas comunidades útiles y acogedoras para que los recién llegados hagan preguntas como Ask Ubuntu y r / linuxquestions de Reddit.

Hay certificaciones a su propio ritmo que se pueden tomar y que son reconocidas en la industria de TI (pruebas de CompTIA Linux + y LPIC de LPI). Aunque no es obligatorio, el aprendizaje de C le permite al usuario revisar el código de Linux para ver qué está ejecutando.

Soporte empresarial.

El mundo depende de que Linux soporte sistemas críticos para que la demanda no desaparezca. Esto es importante no solo para aquellos que ayudan a contribuir a Linux, sino también para aquellos que lo apoyan (¡Jobs!). El soporte de Linux se vuelve más crítico en TI, pero también tener ese conocimiento como desarrollador los hará más completos y útiles (es decir, desarrolladores de pila completa).

Interoperabilidad con otros sistemas operativos.

Linux tiene soporte de controladores para sistemas de archivos NTFS y HFS + (utilizados por Windows y Mac) y también Samba para soporte de servicio de archivos / impresión en máquinas Windows.

Mejor soporte de hardware.

Para otros sistemas operativos, por lo general, un usuario tendría que ir al sitio web del fabricante para obtener soporte de controladores para diferentes tipos de hardware. El kernel de Linux admite la mayoría de hardware automáticamente a través de plug-and-play (en gran parte debido a la comunidad de código abierto). Algunos fabricantes también desarrollan versiones de Linux de sus controladores propietarios que podrían instalarse fácilmente a través del repositorio de software de una distribución o instalando manualmente los binarios proporcionados.

Disponibilidad / compatibilidad de software.

Linux tiene un amplio conjunto de aplicaciones disponibles. Tiene aplicaciones de oficina, navegadores web (Google Chrome y Mozilla Firefox), reproductores multimedia, procesamiento de imágenes / video, etc. Para videojuegos, Steam se ejecuta en Linux, que tiene muchos juegos compatibles. Las aplicaciones de Windows también pueden ejecutarse en Linux (consulte Wine para obtener más detalles).

Construido para el desarrollo.

Como Linux fue creado originalmente para desarrolladores por desarrolladores, han dedicado mucho tiempo y esfuerzo a perfeccionar las herramientas que llegarían a usar.

Tiene un poderoso shell que se puede usar para una variedad de tareas administrativas y de programación (Bash es la opción más popular y predeterminada para Linux).

Aunque Linux tiene un equivalente en "bloc de notas" en gedit, también proporciona editores basados ​​en texto más potentes y personalizables como Vim y Emacs (es que los usuarios recomendados de Linux conocen al menos uno de estos editores).

También hay IDE disponibles para desarrollo web como Atom, Aptana / Eclipse, Sublime, KomodoIDE, por nombrar algunos. Linux también puede utilizar software como Apache para configurar un servidor web local para pruebas, Git para control de versiones y otras herramientas / lenguajes como Node.js / Ruby / SaSS / Heroku, todos tienen soporte en Linux y tienen herramientas de línea de comando que pueden ser utilizado en lugar de una GUI.

Personalizable.

Linux permite a los usuarios cambiar el diseño y los temas del escritorio, agregar widgets y más. Estos cambios se pueden realizar con entornos de escritorio. Los diferentes entornos tienen diferentes conjuntos de opciones. Algunos populares son: KDE, GNOME, XFCE, Pantheon.

Es gratis.

¡Difícil de superar eso!

Introducción a Linux

Elegir una distribución

Hay varios tipos de distribuciones de Linux para elegir hoy en día, y elegir una es una preocupación importante en el mundo de Linux. Teniendo en cuenta los sistemas operativos fáciles de usar, los mejores en esta categoría son:

  • Ubuntu: derivado del sistema estable de Debian, Ubuntu prospera en un entorno fácil de usar y actualizado.
  • Mint: basado en Ubuntu y Debian, este sistema operativo tiene excelentes características como la compatibilidad con PPA de Ubuntu, el administrador de paquetes apt. La distribución base mint le recuerda a Windows, lo que puede ser una buena característica para los usuarios que vienen de Windows.
  • Trisquel: una distribución derivada de Ubuntu que se centra en utilizar únicamente software totalmente gratuito, evitando el software propietario. Trisquel cuenta con el respaldo de la Free Software Foundation (FSF).

Instalando

La mayoría de las distribuciones de Linux son extremadamente fáciles de instalar, ya que toda la información se muestra entre cada paso de la instalación.

Un paso importante a tener en cuenta es a la hora de decidir dónde instalar su nueva distribución de Linux. Para los primeros usuarios, es mejor elegir la opción "Guiado", ya que hará todo el trabajo por usted.

Recuerde leer todos los pasos cuidadosamente y dejar algo de espacio en su disco duro para la nueva distribución; yo diría que es bueno tener un mínimo de 30 Gb.

La temida Terminal

El terminal de Linux no es de temer, en realidad es bastante fácil de usar con algo de práctica y puede automatizar mucho tus tareas diarias.

En Debian / Ubuntu y derivados, el atajo para abrir la CLI (Comman Line Interface) es “Ctrl + Alt + T”. Abramos la terminal y probemos algunos comandos.

cd (Cambiar directorio): el comando cd es uno de los comandos que más usará en la línea de comandos en linux. Te permite cambiar tu directorio de trabajo. Lo usa para moverse dentro de la jerarquía de su sistema de archivos.

cd

El uso del comando cd cambiará el directorio actual al directorio de inicio de su usuario, ubicado en "/ home / username" como en "/ home / mark".

ls (Lista): este comando enumera el contenido del directorio actual. También se puede utilizar para listar información de archivos.

ls

Ahora podemos ver nuestros directorios en nuestra casa.

10 comandos de Linux simples y útiles

Los comandos enumerados aquí son básicos y lo ayudarán a comenzar rápidamente. Pero también son poderosos y seguirán siendo útiles a medida que se amplíe su experiencia en Linux.

  1. manMuestra el manual del comando que le sigue. Esto es muy útil cuando se trata de averiguar cómo funciona un comando desconocido. Por ejemplo, escriba man lstodo lo que necesita saber sobre el lscomando. Escriba qpara salir.
  2. echoEsto toma el texto que le da y lo envía a algún lugar, de regreso a la pantalla, a un archivo oa otro comando. Ejemplo:echo "hello!"
  3. catPara mostrar el contenido de un archivo de texto, simplemente escriba cat myfile.
  4. findHace lo que dice y es bueno en eso. Úselo para localizar archivos por ruta, tamaño, fecha, propietario y muchos otros filtros útiles. Ejemplo: find . -type f -mtime -1h # List files in this directory modified in the past hour.
  5. dateSimplemente escriba la fecha en la que quiera saber qué hora es. Ejemplo: date "+It's %l:%m%p on %A". Úselo en un script para nombrar archivos según la fecha actual.
  6. ls¿Qué hay en este directorio? Combine lscon algunas banderas útiles para mostrar y ordenar el contenido del directorio por fecha y tamaño. También le ofrece muchas opciones para formatear la salida.
  7. pwd¿Dónde estoy? Linux puede ser implacable, especialmente cuando borras algo. Asegúrese de saber dónde se encuentra antes de emitir sus comandos.
  8. rmEste comando elimina archivos, no directorios. rm file.txteliminará el archivo llamado "file.txt" siempre que exista y esté en el directorio actual.
  9. mvUtilice este comando para mover archivos con la línea de comando. También puede usar el mvcomando para cambiar el nombre de un archivo. Por ejemplo, si desea cambiar el nombre del archivo "texto" a "nuevo", simplemente ejecute mv text new.
  10. mailEl programa de correo de Linux no es atractivo, pero puede ser muy útil. Puede crear un mensaje y agregar texto, destinatarios y archivos adjuntos, todo en un solo comando. Ejemplo:echo "We're having a great time." | mail -s "Wish you were here!" -A postcard.png -t [email protected]
  11. cutCuando tenga una cadena con separadores, utilícela cutpara filtrar ciertos campos. Ejemplo:echo "this, that, and the other" | cut -d, -f2 # "that"
  12. grepPara buscar líneas de texto que contengan una determinada cadena, use grep. Ejemplo:grep 'root' /etc/passwd # root:x:0:0:root:/root:/bin/bash
  13. sedÚselo sedpara buscar y cambiar una subcadena en un fragmento de texto. Ejemplo:echo "this, that, and the other" | sed 's/that/those/' # "this, those, and the other"
  14. shutdownApague el sistema y apague la alimentación. Ejemplo: shutdown -h nowapaga el sistema inmediatamente. shutdown -h +5apaga el sistema después de cinco minutos.
  15. lessÚselo less [filename]para ver el contenido de un archivo y navegar por él. De forma predeterminada, lesspasará por el archivo página por página.

Utilice estos comandos en scripts y en la línea de comandos. Todos son comandos muy poderosos y la página principal de Linux tiene mucha más información sobre cada uno.

Además, los siguientes comandos importantes utilizados por los administradores del sistema son:

  1. uptime : muestra cuánto tiempo ha estado funcionando su sistema y el número de usuarios que están conectados actualmente. También muestra el promedio de carga para intervalos de 1,5 y 15 minutos.
  2. w: muestra los usuarios actualmente conectados y su proceso junto con los promedios de carga. También muestra el nombre de inicio de sesión, nombre de tty, host remoto, tiempo de inicio de sesión, tiempo de inactividad, JCPU, PCPU, comando y procesos.
  3. users: muestra los usuarios actualmente conectados. Este comando no tiene otros parámetros además de la ayuda y la versión.
  4. who: simplemente devuelve el nombre de usuario, la fecha, la hora y la información del host. El comando who es similar al comando w. A diferencia de w, who no imprime lo que hacen los usuarios.
  5. whoami: imprime el nombre del usuario actual. También puede utilizar "quién soy yo" para mostrar el usuario actual. Si ha iniciado sesión como root, el comando sudo "whoami" devuelve root como usuario actual. Utilice "quién soy yo" si desea saber el usuario exacto que inició sesión.
  6. ls : muestra una lista de archivos en formato legible por humanos.
  7. crontab : enumera los trabajos programados para el usuario actual con el comando crontab y la opción -l.
  8. less: le permite ver rápidamente un archivo. Puede avanzar y retroceder una página. Presione 'q' para salir de la ventana menos.
  9. more: le permite ver rápidamente un archivo y muestra detalles en porcentaje. Puede avanzar y retroceder una página. Presione 'q' para salir de la ventana de más.
  10. cp : Copia el archivo de origen a destino conservando el mismo modo.

Ésta es la lista de comandos que utiliza con frecuencia un instructor. Esta no es una lista completa, pero es una lista compacta de comandos para consultar cuando sea necesario.

Términos comunes que todo usuario de Linux debería conocer.

  • Distro: es una palabra abreviada para "distribución"; y una distribución es una marca particular de sistema operativo GNU / Linux, como Redhat, Fedora, Ubuntu y Debian.
  • Shell: este es el programa que lee la entrada de su comando y ejecuta los comandos especificados. El signo de dólar ('$') que precede al cursor se denomina indicador de shell; le dice que el sistema está listo y esperando entradas en forma de comandos.
  • CLI: son las siglas de Command Line Interface . Es la interfaz de usuario simple que proporciona los servicios que necesita el usuario para interactuar con el sistema operativo Linux mediante comandos de texto. Protege al usuario de tener que conocer detalles intrincados del hardware.
  • GUI: significa interfaz gráfica de usuario. Es la parte del sistema Linux que comprende ventanas, íconos, imágenes (gráficos en general), que hacen posible apuntar y hacer clic.
  • Terminal: es una aplicación que se utiliza para acceder al shell de Linux.
  • Kernel: este es el núcleo del sistema Linux, lo que podríamos llamar un "cerebro". El núcleo controla los recursos de una computadora y determina cómo se utilizan interactuando directamente con el hardware de la computadora.
  • Tux: la mascota oficial de Linux. Ese es el pingüino que generalmente se asocia con Linux: si ha visto el pingüino amarillo y negro en línea, entonces ha visto esmoquin.
  • Root: también conocido como superusuario, es el nombre de usuario "predeterminado" para el administrador de una máquina Linux. Normalmente se representa en la terminal de Linux con elsímbolo "#" .
  • Comandos: son entradas de texto o instrucciones dadas a la máquina Linux (escribiéndolas en la terminal) para decirle qué hacer (es decir, para un resultado requerido).
  • Repositorio: un repositorio (o "repositorio" para abreviar) es una colección de paquetes de software para una distribución normalmente alojada en línea. Los programas de software se pueden instalar tanto desde los repositorios predeterminados proporcionados por la distribución como desde los de terceros cuando se agregan al administrador de paquetes.
  • Administrador de paquetes: es un programa de software que le permite buscar, instalar, actualizar y eliminar aplicaciones y otras funciones de administración de aplicaciones. Cada distribución tiene gráficos de administradores de paquetes finales (como el Centro de software de Ubuntu) y herramientas de administración de paquetes de línea de comandos como “apt-get”.
  • Dependencia: una dependencia es un programa de software que el programa que desea instalar debe ejecutarse. Cuando se instala un programa, le da una lista de sus dependencias al administrador de paquetes predeterminado para verificar si ya están instalados y, si no lo están, descargarlos de un repositorio.