Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. DevOps

Útiles Comandos de *NIX Shell para desarrolladores web

by
Length:LongLanguages:

Spanish (Español) translation by Elías Nicolás (you can also view the original English article)

Entonces, ¿por qué *NIX y por qué necesitas ir a la consola?

Según las estadísticas de W3Techs, Unix es utilizado por el 68% de todos los sitios web cuyo sistema operativo conocen. Esto significa que si usted es desarrollador web, su código probablemente se esté ejecutando en un servidor Linux. Y al menos necesita saber cómo configurar y depurar su código en los sistemas Unix y Linux. Descubramos lo que necesita saber para sentirse cómodo en la línea de comando.

Los basicos

El comando básico * NIX consta de tres componentes:    

  • comando o programa para ejecutar
  • opciones para alterar o especificar el comportamiento del comando
  • argumentos o datos de entrada que se necesitan para ejecutar el comando

Por ejemplo, si necesita obtener una lista de archivos en el directorio /var/www, debe ejecutar el comando ls con el argumento /var/www. Para agregar el tamaño de los archivos a la salida, debe agregar la opción -s, y el comando final se verá así:

Redirecciones de E/S y tuberías

Muchos comandos *NIX usan entrada y salida de texto con los que puede operar, y la gran característica de esto es que puede enviar los resultados de salida del comando a un archivo mediante redirección, o incluso pasar la salida de un comando a la entrada de otro comando usando las tuberías. Por ejemplo, podemos enviar el comando del ejemplo anterior a un archivo:

Este comando creará o borrará el archivo /var/www/files.txt y generará una lista de archivos en el directorio /var/www. Aquí hay una lista de redirecciones y canalizaciones de E / S estándar:

  • > Redirigir la salida de un comando a un archivo en el disco. El archivo será borrado y sobrescrito.
  • >> El mismo redireccionamiento, pero anexando el archivo de salida.
  • < Obtener entrada al comando desde un archivo.
  • | Pase la salida de un comando a la entrada de otro comando.
  • tee Ambos redirigen la salida a un archivo y la pasan al siguiente comando en la tubería.

Los comandos principales

Para obtener páginas de manual para un comando, ejecuta man. Las páginas de manual siguen un diseño común y pueden incluir nombre, sinopsis, descripción y ejemplos de uso. Esto mostrará la documentación del comando chmod:

Para ejecutar algunos comandos, como guardar configuraciones o reiniciar procesos, debe ejecutarlos como superusuario. Para hacer esto, debe anteponer sudo a su comando:

Si necesita ejecutar un conjunto de comandos como superusuario, puede usar su o cambiar el comando del usuario.

Nota: Para guardar la capa de seguridad y evitar la ejecución accidental de comandos objetables, no use sudo y su sin ningún propósito.

En el mundo real

Navegación básica

Hay tres comandos principales para navegar en el árbol de archivos:

  • pwd para imprimir el nombre del directorio de trabajo actual    
  • cd para cambiar el directorio
  • ls para enumerar los contenidos del directorio

Aquí hay un ejemplo del uso de estos comandos con la salida de la terminal:

Buscando archivos

Existe el comando find para buscar archivos en una jerarquía de directorios. Este comando es muy poderoso y puede buscar archivos y directorios por nombre, permisos de acceso, fecha y tamaño.

Encuentre todos los directorios con el nombre "logs" en el directorio /var/www usando la opción -type

Para buscar archivos PHP en el directorio actual, agregue la opción -name:

Encuentre archivos con permisos definidos usando la opción -perm:

Encuentra todos los archivos que son mayores que 500MB:

Por supuesto, puede combinar todas esas opciones en un comando, y esto es solo lo básico del comando find, que es una herramienta muy poderosa para buscar archivos. Use las páginas del manual para obtener más información.

Manipulación de archivos y carpetas

Hay cinco comandos principales para manipular archivos y carpetas en el sistema *NIX:

  • touch se usa para cambiar las marcas de tiempo en los archivos y directorios existentes, pero también esta es la forma más fácil de crear un archivo nuevo
  • mkdir para hacer directorios
  • cp para copiar archivos y directorios
  • mv para mover o renombrar archivos y directorios
  • rm para eliminar archivos y carpetas

El siguiente ejemplo creará un archivo index.html, copiará este archivo en el nuevo directorio en /var/www y eliminará el archivo fuente.

Otro gran comando es ln, que está diseñado para hacer enlaces entre archivos. El comando ln a menudo se usa para crear un enlace simbólico para habilitar un host virtual:

Cambiar permisos de acceso

Para cambiar el propietario y el grupo del archivo, use chown. No olvide otorgarle la propiedad al usuario de apache cuando esté creando un nuevo host virtual de su aplicación web:

A veces, los directorios de caché o de registro de la aplicación deben poder escribirse para todos los usuarios, por lo que debe cambiar los modos de acceso a 777 con el comando chmod. Agregue la opción -R para agregar permisos a todos los archivos y carpetas anidados.

Si solo quiere hacer un archivo ejecutable, use chmod con la opción +x.

Lectura de archivo

Para ver archivos en la consola, puede usar el comando cat. Con cat, puede concatenar el contenido de los archivos usando parámetros adicionales, y también puede usar mask en los nombres de archivo.

Pero el comando cat te confundirá muy rápido, ya que muestra la salida en formato sin escaneado sin ninguna paginación, por lo que es inconveniente utilizarlo con la salida de registro. Para obtener un filtro para paginar a través del texto una pantalla por vez, debe usar more o less comandos, que son mucho más que una gran cantidad.

Otro comando útil es tail, que se crea para generar la última parte de los archivos. Este comando es perfecto para revisar historiales de registro. De forma predeterminada, este comando de cola imprime las últimas 10 líneas, y puede cambiar este número utilizando el parámetro -n.

Pero si tiene, por ejemplo, un montón de archivos de registro, necesita algo más poderoso para realizar una búsqueda adecuada. Algo así como grep: un programa que lee de la entrada estándar, prueba cada línea con un patrón y escribe en la salida estándar las líneas que coinciden con este patrón. Al usarlo en combinación con cat y tuberías, obtendrá lo que desea.

Si desea filtrar líneas de texto de salida, puede usar el comando grep:

Como puede ver, grep es bueno para usar en tuberías. En este ejemplo, el último comando generará todas las líneas que contengan la cadena de "cierre" de los archivos de registro.

Edición de archivos

Si desea editar archivos de texto en modo consola, puede usar uno de los tres editores de texto más populares:

  • GNU nano, un editor de texto predeterminado pequeño y amigable, que es una elección perfecta para tareas básicas    
  • Vim, un editor de texto de programadores mejorado, que es más poderoso, pero complejo para principiantes
  • mcedit, un editor de ventana con todas las funciones de Midnight Commander, que es fácil de usar pero no está instalado por defecto en los sistemas *NIX

Comparelos y haga su elección:

Archivar

Algunas veces necesita hacer una copia de seguridad o comprimir algunos datos en su servidor.

Las utilidades de archivo más comunes son tar y zip. Tenga en cuenta que el comando zip no puede instalarse en su servidor de forma predeterminada.

Puede crear un archivo con los siguientes comandos:

Si solo desea ver una lista de archivos en el archivo, puede usar la opción -l tanto para tar como unzip para descomprimir:

O extraiga algunos archivos fuente:

Programar tareas

Si desea programar las secuencias de comandos para que se ejecuten periódicamente, debe usar la utilidad Cron, que está impulsada por una tabla cron, un archivo de configuración que especifica los comandos de la shell que se ejecutarán periódicamente en un programa determinado. Y el comando para mantener las tablas cron es crontab.

Llamar a crontab con la opción -l mostrará su tabla cron.

Además, se proporciona la opción -u para especificar el nombre del usuario cuyo crontab se está utilizando. Si va a ejecutar tareas de su aplicación web, es mejor editar crontab para el usuario www-data.

En esta salida, puede echar un vistazo a un ejemplo de una tabla cron. Como puede ver, cada línea está programada por minuto, hora, día del mes, mes y día de la semana. Cada campo puede ser un asterisco, lo que significa que cada valor del campo. También puede usar conjuntos y rangos usando comas y guiones. Seguir un rango con una barra inclinada especifica saltos del valor del número a través del rango. En este ejemplo, el primer comando se ejecutará cada cinco minutos, y el segundo comando se ejecutará de lunes a viernes a las 15:00.

Para editar esta lista, ejecute crontab con la tecla -e en lugar de -l. La lista cron se abrirá en su editor predeterminado. Use la opción -r para borrar la lista cron.

Supervisión del rendimiento

La parte superior del comando muestra información de resumen del sistema y proporciona una vista dinámica en tiempo real de los procesos del sistema en ejecución. Presione Shift-M para ordenar los procesos por uso de memoria, o Shift-P para ordenar por uso de CPU.

Para mostrar la cantidad de memoria libre y usada en el sistema, use el comando free. Agregue la opción -h para mostrar los campos de salida en formato legible para las personas.

Otro comando útil es df, que es un comando para informar el uso del espacio de disco del sistema de archivos. Puede llamarlo con la opción -a para mostrar todos los sistemas de archivos de su servidor. Además, no olvide agregar la opción -h para el formato legible para humanos.

Historial de línea de comando

Puedes usar el !! comando para repetir el comando anterior, o use sudo !! si olvidó ejecutar un comando con sudo.

Si olvidó la sintaxis de los comandos o se siente flojo al escribir una consulta de comando grande, puede usar history para mostrar su historial de comandos. Es bueno combinar este comando con comandos de filtro de cadenas como grep, tail y otros para encontrar exactamente lo que desea.

Conclusión

Usar la consola no es ciencia de cohetes. Los sistemas Unix y Linux son fáciles de entender y usar debido a su diseño simple y buena documentación. Espero que este artículo te haga sentir bastante cómodo con la línea de comandos y te lleve al próximo nivel de administración de tus aplicaciones web con la línea de comando.

Si tiene alguna pregunta o desea compartir sus comandos de consola favoritos, no dude en dejar un comentario debajo del artículo.

Otras lecturas

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.