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, lo más probable es que su código se ejecute en un servidor Linux. Y al menos necesita saber cómo configurar y depurar su código en sistemas Unix y Linux. Averigüemos qué necesita saber para sentirse cómodo en la línea de comandos..
El comando básico * NIX consta de tres componentes:
Por ejemplo, si necesita obtener una lista de archivos en el directorio / var / www
, necesitas ejecutar el comando ls
con el argumento / var / www
. Para agregar el tamaño de los archivos a la salida, debe agregar el -s
opción, y el comando final se verá así:
ls -s / var / www
Muchos * comandos de NIX usan entrada y salida de texto con las que puede operar, y la gran característica de esto es que puede enviar los resultados de salida del comando a un archivo usando redirección, o incluso pasar la salida de un comando a la entrada de otro comando utilizando las tuberías. Por ejemplo, podemos enviar el comando del ejemplo anterior a un archivo:
ls -s / var / www> /var/www/files.txt
Este comando creará o borrará el archivo. /var/www/files.txt
y generar una lista de archivos en el / var / www
directorio. Aquí hay una lista de redirecciones y tuberías 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 lo pasan al siguiente comando en la canalización.Para obtener páginas de manual para un comando, ejecute hombre
. Las páginas del manual siguen un diseño común y pueden incluir nombre, sinopsis, descripción y ejemplos de uso. Esto mostrará la documentación para el chmod
mando:
hombre chmod
Para ejecutar algunos comandos, como guardar configuraciones o reiniciar procesos, debe ejecutarlos como superusuario. Para ello, es necesario anteponer sudo
a su orden:
user @ server: / var / www $ chmod 777 log chmod: cambio de permisos de 'log': operación no permitida user @ server: / var / www $ sudo chmod 777 log sudo chmod 777 log
Si necesita ejecutar varios comandos como superusuario, puede usar su
, o cambiar el comando de usuario.
Usuario @ servidor: / var / www $ su Contraseña: root @ servidor: / var / www #
Nota: Para guardar la capa de seguridad y evitar la ejecución accidental de comandos objetables, no utilice sudo
y su
sin ningún propósito.
Hay tres comandos principales para navegar en el árbol de archivos:
pwd
para imprimir el nombre del directorio de trabajo actualdiscos compactos
para cambiar el directoriols
para listar los contenidos del directorioEste es un ejemplo del uso de estos comandos con la salida de terminal:
usuario @ servidor: ~ $ pwd / home / usuario usuario @ servidor: ~ $ cd / var / www usuario @ servidor: / var / www $ ls -alF total 16 drwxr-xr-x 5 root root 4096 Ene 22 09:45 ./ drwxr-xr-x 14 root root 4096 Jan 22 09: 38… / drwxr-xr-x 2 root root 4096 Ene 22 09:45 html / drwxr-xr-x 3 root root 4096 Ene 22 09:45 log / drwxrwxrwx 1 usuario usuario 442 24 de marzo 12:22 pruebas /
Ahí está el encontrar
comando 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 de "logs" en el / var / www
directorio usando el -tipo
opción:
buscar / var / www -type d -name logs
Para buscar archivos PHP en el directorio actual, agregue el -nombre
opción:
encontrar . -tipo f -nombre "* .php"
Encuentra archivos con permisos definidos usando el -permanente
opción:
encontrar . -tipo f -perm 0777 -print
Encuentra todos los archivos que son mayores de 500 MB:
encontrar / -size + 500M
Por supuesto, puede combinar todas esas opciones en un solo comando, y esto es solo lo básico de encontrar
comando, que es una herramienta muy poderosa para buscar archivos. Usa las páginas del manual para obtener más información..
Hay cinco comandos principales para manipular archivos y carpetas en el sistema * NIX:
toque
se usa para cambiar las marcas de tiempo en los archivos y directorios existentes, pero también es la forma más fácil de crear un nuevo archivomkdir
hacer directorioscp
para copiar archivos y directoriosmv
para mover o renombrar archivos y directoriosrm
para borrar archivos y carpetasEl siguiente ejemplo creará un archivo. index.html
, Copia este archivo al nuevo directorio en / var / www
, y eliminar el archivo fuente.
root @ localserver: ~ # touch index.html root @ localserver: ~ # mkdir / var / www / newdir root @ localserver: ~ # cp index.html / var / www / newdir / root @ localserver: ~ # rm index.html
Otro gran comando es en
, que está diseñado para hacer enlaces entre archivos. El comando en
a menudo se utiliza para crear un enlace simbólico para habilitar un host virtual:
sudo ln -s /etc/apache2/sites-available/newvirtualhost.com.conf / etc / apache / sites-enabled / newvirtualhost.com.conf
Para cambiar el propietario y 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:
sudo chown -R www-data: www-data /var/www/newvirtualhost.com
A veces, los directorios de caché o registro de su aplicación deben poder escribirse para todos los usuarios, por lo que debe cambiar los modos de acceso a 777 chmod
mando. Añade el -R
Opción para agregar permiso a todos los archivos y carpetas anidados.
sudo chmod -R 777 / var / www / private / cache
Si solo quieres hacer un archivo ejecutable, usa chmod
con el +X
opción.
sudo chmod + x /var/www/private/backup.sh
Para ver los archivos en la consola, puede utilizar el gato
mando. Con gato
, puede concatenar el contenido de los archivos utilizando parámetros adicionales, y también puede usar la máscara en los nombres de archivo.
cat /etc/apache2/apache2.conf cat /etc/apache2/apache2.conf /etc/apache2/ports.conf cat / etc / apache2 / mods-enabled / *
Pero el gato
El comando lo confundirá muy rápido, ya que muestra la salida en formato sin formato sin ningún tipo de paginación, por lo que es un inconveniente utilizarla con la salida del registro. Para obtener un filtro para paginar a través de texto una pantalla a la vez, debe usar el Más
o Menos
comandos, que son mucho de una grandeza.
menos /etc/apache2/apache2.conf cat / etc / apache2 / mods-enabled / * | Menos
Otro comando útil es cola
, que se crea para dar salida a la última parte de los archivos. Este comando es perfecto para mirar a través de historiales de registro. De forma predeterminada, este comando de cola imprime las últimas 10 líneas, y puede cambiar este número usando -norte
parámetro.
tail /var/log/apache2/error.log tail -n 25 /var/log/apache2/error.log
Pero si tiene, por ejemplo, un montón de archivos de registro, necesita algo más poderoso para realizar una búsqueda adecuada. Algo como grep
-un programa que lee desde la entrada estándar, prueba cada línea contra un patrón y escribe en la salida estándar las líneas que coinciden con este patrón. Usándolo en combinación con gato
Y tuberías, obtendrás lo que quieras..
Si desea filtrar líneas de texto de salida, puede utilizar el grep
mando:
grep notice /var/log/apache2/error.log cat /var/log/apache2/*.log | grep "apagando"
Como puedes 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.
Si desea editar archivos de texto en modo consola, puede usar uno de los tres editores de texto más populares:
Compáralos y haz tu elección:
nano /var/log/apache2/error.log vim /var/log/apache2/error.log mcedit /var/log/apache2/error.log
A veces necesitas hacer una copia de seguridad o comprimir algunos datos en tu servidor.
Las utilidades de archivo más comunes son alquitrán
y cremallera
. Tenga en cuenta que el cremallera
El comando puede no estar instalado en su servidor por defecto.
Puedes crear un archivo con los siguientes comandos:
tar -zcvf archive-name.tar.gz directorio-o-nombre-archivo tar -jcvf archive-name.tbz2 directorio-o-nombre-archivo zip archive-name.zip directorio-o-archivo-nombre
Si solo desea ver una lista de archivos en el archivo, puede usar la -l
opción para ambos alquitrán
y abrir la cremallera
:
tar -ztvf archive-name.tar.gz tar -jtvf archive-name.tbz2 unzip -l archive-name.zip
O extraer algunos archivos de origen:
tar -zxvf nombre-archivo.tar.gz tar -jxvf nombre-archivo.tbz2 zip nombre- archivo.zip
Si desea programar sus scripts para que se ejecuten periódicamente, necesita usar la utilidad Cron, que está controlada por una tabla cron, un archivo de configuración que especifica los comandos de shell para que se ejecuten periódicamente en un programa determinado. Y el comando para mantener las tablas cron es Crontab
.
Llamando a crontab con opción -l
mostrará tu tabla cron.
También el -tu
Se proporciona una opción 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.
usuario @ servidor: ~ $ sudo crontab -lu www-data # mh dom mon dow comando * / 5 * * * * php5 / var / www / yii do / tareas >> /var/www/tasks.log 00 15 * * 1-5 /var/www/backuper.sh
En esta salida, puede ver 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 cada valor del campo. También puedes usar conjuntos y rangos usando comas y guiones. Al seguir un rango con una barra, se especifican omisiones 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 el -mi
clave en lugar de -l
. La lista de cron se abrirá en su editor predeterminado. Utilizar el -r
Opción para borrar la lista de cron.
Mando parte superior muestra información resumida del sistema y proporciona una vista dinámica en tiempo real de los procesos del sistema en ejecución. prensa Shift-M
para ordenar los procesos por uso de memoria, o Shift-P
ordenar por uso de CPU.
arriba - 21:33:02 hasta 308 días, 21:24, 1 usuario, carga promedio: 0.00, 0.01, 0.05 Tareas: 87 en total, 1 corriendo, 86 durmiendo, 0 parado, 0 zombie% Cpu (s): 0.3 us , 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 501800 en total, 471348 usados, 30452 libres, 49672 buffers KiB Swap: 4194300 en total, 56192 usados, 4138108 gratis. 149488 cacheado Mem PID USUARIO PR NI VIRT RES SHR S% CPU TIM + COMANDO 16269 www-data 20 0 348592 38884 12044 S 0.0 7.7 0: 02.42 php5 26533 www-data 20 0 409516 38488 24312 S 0.0 7.7 1: 00.04 php5- fpm 1076 mysql 20 0 887824 32748 1616 S 0.0 6.5 276: 46.59 mysqld 862 syslog 20 0 256612 31428 368 S 0.0 6.3 32: 45.88 rsyslogd 18901 root 20 0 105632 4316 3248 S 0.0 0.9 0: 00.04 sshd 25393 www-data 20 0 87666 4312 1564 S 0.0 0.9 4: 46.92 nginx 27846 memcache 20 0 328464 3828 252 S 0.0 0.8 1: 04.30 memcached
Para visualizar la cantidad de memoria libre y usada en el sistema, use la gratis
mando. Añade el -h
Opción para mostrar los campos de salida en formato legible por humanos.
usuario @ servidor: ~ $ libre -h total utilizado buffers compartidos libres en caché Mem: 490M 453M 36M 23M 46M 140M - / + buffers / cache: 265M 224M Swap: 4.0G 54M 3.9G
Otro comando útil es df
, que es un comando para informar el uso de espacio en disco del sistema de archivos. Puedes llamarlo con el -una
Opción para mostrar todos los sistemas de archivos de su servidor. Además, no olvides añadir el -h
Opción para formato legible por humanos.
usuario @ servidor: ~ $ df -ah Tamaño del sistema de archivos utilizado% de uso Montado en / dev / vda1 20G 6.3G 13G 34% / udev 235M 4.0K 235M 1% / dev tmpfs 50M 344K 49M 1% / ejecución
Puedes usar el !!
comando para repetir el comando anterior, o usar sudo !!
Si olvidó ejecutar un comando con sudo
.
usuario @ servidor: / var / www $ chmod 777 registro chmod: cambio de permisos de 'registro': operación no permitida usuario @ servidor: / var / www $ sudo !! sudo chmod 777 log
Si olvidó la sintaxis de los comandos o se siente perezoso al escribir una consulta de comandos grande, puede usar historia
para mostrar su historial de comandos. Es bueno combinar este comando con cadenas de comandos de filtro como grep
, cola
y otros para encontrar exactamente lo que quieres..
historia | historia de la cola | historia de grep crontab | egrep -i 'ssh | ftp'
Usar la consola no es ciencia espacial. 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 muy cómodo con la línea de comandos y te lleve al siguiente nivel de administración de tus aplicaciones web con la línea de comandos..
Si tiene alguna pregunta o desea compartir sus comandos de consola favoritos, no dude en dejar un comentario debajo del artículo..