Clicky

Comandos básicos de Linux para usuarios de WordPress

consola Linux

Prácticos trucos desde línea de comandos de Linux

Si tienes una experiencia limitada de Unix/Linux, pero estás empezando a usar el Shell (consola) para administrar tu instalación de WordPress, he aquí algunos trucos útiles desde la línea de comandos que te ayudarán a hacer mucho más rápido las cosas más habituales. Además, los comandos que aparecen aquí no son específicos de ningún Shell por lo que deberás ser capaz de utilizarlos en cualquier entorno Linux.

1. Linux viene en varios "sabores". Los comandos siguientes te ayudarán a determinar qué distro Linux está instalada en el host, cuál es la versión del kernel de Linux, el modelo de CPU, velocidad del procesador, etc. (este site está hospedado en un servidor compartido, así que utilizaré los ejemplos de un servidor dedicado que administro con varias páginas tanto en WordPress, Joomla! y otros  CMS):

$ cat /etc/issue

CentOS release 6.4 (Final)
Linux ks3xxxx4.kimsufi.com 3.2.13-xxxx-std-ipv6-64-hz1000 #2 SMP SAT MAR 09 20:02:22 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Kernel \r on an \m

server : 167469
ip        : xx.105.123.xxx
hostname  : ks3xxxx4.kimsufi.com

Vemos que está corriendo sobre una versión de GNU/Linux de Centos 6.4 con un kernel versión 3.2.13-xxxx-std-ipv6-64-hz1000 de x86_64.

$ cat /proc/version

Linux version 3.2.13-xxxx-std-ipv6-64-hz1000 (alguien[AT]kernel-64.ovh.net) (gcc version 4.3.2 (Debian 4.3.2-1.1) ) #1 SMP Thu Mar 29 11:11:33 UTC 2012

Nos da otra vez el kernel y la versión de gcc

$ cat /proc/cpuinfo

processor : 3
vendor_id       : GenuineIntel
cpu family      : 6
model           : 42
model name      : Intel(R) Core(TM) i5-2300 CPU @ 2.80GHz
stepping        : 7
microcode       : 0x14
cpu MHz         : 2801.000
cache size      : 6144 KB
physical id     : 0
siblings        : 4
core id         : 3
cpu cores       : 4
apicid          : 6
initial apicid  : 6
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
bogomips        : 5586.59
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

Dejo la información del último procesador de los cuatro que tiene. Vemos que es un Intel de la familia 6 y modelo 42 a 2.80GHz de velocidad y 6144KB de cache.

2. Encontrar la cantidad total de memoria RAM disponible en tu máquina Linux y cuánta está libre:

$ free -mto

                  total       used      free     shared    buffers     cached
Mem:         15954      14276     1677       0         1484         9904
Swap:        15998          0      15998
Total:        31953      14276    17676

Vemos que hay una RAM de 16GB (15954 KB) y una Swap (memoria RAM reservada en el disco duro) también de 16GB. De la RAM principal nos dice que está en uso 14227KB, hay libre 1677KB (algo más de un Giga y medio) pero tenemos en buffers 1484KB y en cache 9904KB, por lo cual la memoria real usada es de aproximadamente 2.89GB quedando el resto libre.

3. El comando cd .. te llevará al directorio de nivel superior, y el comando cd - te moverá al directorio de trabajo anterior. O utiliza el comando pwd para imprimir la ruta completa del directorio actual que se puede copiar (CTRL+C) y pegar más tarde en la consola.

$ cd ..
$ cd  "“
$ pwd

4. El comando history mostrará una lista de todos los comandos ejecutados recientemente y cada uno tendrá un número asociado. Usar !<número> para ejecutar ese comando. O bien, si la historia es muy larga, usa grep para buscar un comando en particular.

$ history
$ !<número de comando>
$ history | grep <algún nombre de comando>

5. Puedes eliminar cualquier comando en particular de la historia del shell por su número (no introducir en este caso ni en el de arriba la cuotas < >.

$ history  -d <número de comando>

6. Si has cometido un error al escribir un nombre de comando, simplemente introduce el nombre correcto del comando y luego usa !* para reutilizar todos los argumentos anteriores.

$ <comando> !*

7. Vuelve a ejecutar un comando, pero después de cambiar en el comando el texto abc por xyz .

$ ^abc^xyz

8. Esto enumerará el tamaño de todas las sub-carpetas de un directorio en KB, MB o GB.

$ $ du  -sh */

9. Una versión mejorada del comando ls que muestra los tamaños de archivo en KB y MB.

$ $ ls -gho

10. Puedes utilizar man <comando> para aprender más acerca de la sintaxis de un comando, pero ¿qué pasa si no recuerdas el nombre del comando? Utiliza entonces apropos.

$ $ apropos <palabra a buscar>

11. Comparar el contenido de dos archivos de texto para ver qué ha cambiado.

$ diff wp-config.php wp-config.php.old

12. Encuentra las líneas que son comunes en cualquiera de los dos archivos de texto.

$ grep -Fx -f archivo-A.html archivo-B.html

13. Comparar el contenido de dos directorios de forma recursiva.

$ diff -urp /viejo-directorio-wp /nuevo-directorio-wp

14. Buscar todos los archivos del directorio actual que son mayores de 10 MB de tamaño.

$ find . -size +10M -exec du -h {} \;

15. Buscar todos los archivos del sistema que se han modificado en los últimos 2 días.

$ find .  -type f -mtime -2

16. Buscar todos los archivos del sistema que fueron modificados hace menos de 10 minutos

$ find . -type f -mmin -10

17. Buscar todos los archivos PHP que contengan una palabra o frase en particular.

$ find . -name "*.php" -exec grep -i -H "vistaalmar" {} \;

18. Al copiar o mover archivos. Linux no mostrará un aviso si va a sobrescribir un archivo existente. Por lo tanto, utiliza siempre el -i para prevenir que se sobrescriban.

$ cp  -i abc.txt xyz.txt

19. Copia de seguridad en el directorio actual del contenido de una carpeta en un archivo tar con compresión gzip.

$ tar zcfv backup.tar.gz /directorio-wp-/

Donde,

•  -z: Comprimir archivos usando gzip
•  -c: Crear un nuevo archivo
•  -f: nombre de archivo
•  -v: verbose, es decir, mostrar el proceso durante la creación del archivo

Para descomprimir un archivo .tar.gz el comando necesario sería el mismo pero cambiando algunos atributos.

$ tar -xvzf backup.tar.gz

Donde,

•  -x: extrae el contenido del archivo comprimido

20. Encuentra los procesos con el mayor uso de CPU. A continuación, utiliza kill -9 pid para matar un proceso.

$ ps aux | sort -nrk 3 | head

21. Ejecuta el siguiente comando en directorio de logs de Apache para determinar los accesos provenientes de una dirección IP individual.

$ cat access.log | awk '{print $1}' | sort | uniq -c | sort  "“ n | tail

22. Supervisar los accesos de Google bots a tu sitio web en tiempo real.

$ tail  -f access.log | grep Googlebot

23. Para buscar todos los archivos y páginas web que devuelven un error 404 en tu sitio web, ejecuta el siguiente comando en el directorio logs de Apache.

$ cat access.log | awk '{print $7}' |sort |uniq -c |sort -n |tail -n 100

24. Encuentra las 100 páginas más populares de tu sitio utilizando de nuevo los registros del servidor Apache.

$ cat access.log | awk '{print $7}' |sort |uniq -c |sort -n |tail -n 100

25. Encuentra y reemplaza rápidamente una cadena o más archivos.

$ find . -type f -name "*.php" -exec sed -i 's/wordpress/WordPress/' {} \;

Jesus_Caceres