Seguimos realizando una tarea de manera convencional hasta que descubrimos que se puede hacer de una manera mucho mejor. En continuación de nuestra Serie de Consejos y Trucos de Linux, aquí estoy con los siguientes cuatro consejos que te ayudarán de muchas maneras. ¡Allá vamos!

1. Se supone que debes crear un árbol de directorios largo/complicado similar al que se muestra a continuación. ¿Cuál es la forma más efectiva de lograr esto?
Estructura del árbol de directorios para lograr como se sugiere a continuación.
$ cd /home/$USER/Desktop $ mkdir tecmint $ mkdir tecmint/etc $ mkdir tecmint/lib $ mkdir tecmint/usr $ mkdir tecmint/bin $ mkdir tecmint/tmp $ mkdir tecmint/opt $ mkdir tecmint/var $ mkdir tecmint/etc/x1 $ mkdir tecmint/usr/x2 $ mkdir tecmint/usr/x3 $ mkdir tecmint/tmp/Y1 $ mkdir tecmint/tmp/Y2 $ mkdir tecmint/tmp/Y3 $ mkdir tecmint/tmp/Y3/z
El escenario anterior se puede lograr simplemente ejecutando el siguiente comando de 1 línea.
$ mkdir -p /home/$USER/Desktop/tecmint/{etc/x1,lib,usr/{x2,x3},bin,tmp/{Y1,Y2,Y3/z},opt,var}
Para verificar, puedes usar el comando tree. Si no está instalado, puedes usar apt o yum para el paquete ‘tree‘.
$ tree tecmint

Podemos crear la estructura del árbol de directorios de cualquier complejidad usando la forma anterior. Observa que no es más que un comando normal, pero está usando {}
para crear la jerarquía de directorios. Esto puede resultar muy útil si se usa desde dentro de un script de shell cuando sea necesario y en general.
2. Crea un archivo (digamos test) en tu Escritorio (/home/$USER/Desktop) y llénalo con el contenido a continuación.
ABC DEF GHI JKL MNO PQR STU VWX Y Z
¿Qué haría un usuario normal en este escenario?
a. He will create the file first, preferably using touch command, as:
$ touch /home/$USER/Desktop/test
b. He will use a text editor to open the file, which may be nano, vim, or any other editor.
$ nano /home/$USER/Desktop/test
c. He will then place the above text into this file, save and exit.
Entonces, independientemente del tiempo que le lleve, necesita al menos 3 pasos para ejecutar el escenario anterior.
¿Qué hará un experimentado Linux-er inteligente? Simplemente escribirá el siguiente texto de una vez en la terminal y ¡listo! No necesita realizar cada acción por separado.
cat << EOF > /home/$USER/Desktop/test ABC DEF GHI JKL MNO PQR STU VWX Y Z EOF
Puede utilizar el comando ‘cat‘ para verificar si el archivo y su contenido se crearon correctamente o no.
$ cat /home/avi/Desktop/test
3. Tratamos con archivos (especialmente bolas TAR) muy a menudo en Linux. En muchos casos tenemos que usar esa bola TAR en alguna ubicación que no sea la carpeta de Descargas. ¿Qué hacemos en este escenario?
Normalmente hacemos dos cosas en este escenario.
a. Copy/Move the tar ball and extract it at destination, as:
$ cp firefox-37.0.2.tar.bz2 /opt/ or $ mv firefox-37.0.2.tar.bz2 /opt/
b. cd to /opt/ directory.
$ cd /opt/
c. Extract the Tarball.
# tar -jxvf firefox-37.0.2.tar.bz2
Podemos hacer esto de la otra manera.
Extraeremos la bola TAR donde esté y copiaremos/moveremos el archivo extraído a la ubicación requerida como:
$ tar -jxvf firefox-37.0.2.tar.bz2 $ cp -R firefox/ /opt/ or $ mv firefox/ /opt/
En cualquier caso, el trabajo lleva dos o más pasos para completarse. El profesional puede completar esta tarea en un solo paso como:
$ tar -jxvf firefox-37.0.2.tar.bz2 -C /opt/
La opción -C hace que tar extraiga el archivo en la carpeta especificada (aquí /opt/).
No se trata de una opción (-C) sino de hábitos. Acostúmbrate a usar la opción -C con tar. Facilitará tu vida. A partir de ahora, no muevas el archivo ni copies/muevas el archivo extraído, simplemente deja la bola TAR en la carpeta de Descargas y extráela donde quieras.
4. ¿Cómo matamos un proceso de forma tradicional?
De la forma más general, primero listamos todos los procesos usando el comando ps -A
y lo conectamos con grep para encontrar un proceso/servicio (digamos apache2), simplemente como:
$ ps -A | grep -i apache2
Salida de ejemplo
1006 ? 00:00:00 apache2 2702 ? 00:00:00 apache2 2703 ? 00:00:00 apache2 2704 ? 00:00:00 apache2 2705 ? 00:00:00 apache2 2706 ? 00:00:00 apache2 2707 ? 00:00:00 apache2
La salida anterior muestra todos los procesos apache2 actualmente en ejecución con sus PID, luego puedes usar estos PID para matar apache2 con la ayuda del siguiente comando.
# kill 1006 2702 2703 2704 2705 2706 2707
y luego verifique si algún proceso/servicio con el nombre ‘apache2‘ está en ejecución o no, como:
$ ps -A | grep -i apache2
Sin embargo, podemos hacerlo en un formato más comprensible utilizando utilidades como pgrep y pkill. Puede encontrar información relevante sobre un proceso simplemente usando pgrep. Digamos que tiene que encontrar la información del proceso para apache2, simplemente puede hacer lo siguiente:
$ pgrep apache2
Salida de ejemplo
15396 15400 15401 15402 15403 15404 15405
También puede listar el nombre del proceso frente al pid ejecutando.
$ pgrep -l apache2
Salida de ejemplo
15396 apache2 15400 apache2 15401 apache2 15402 apache2 15403 apache2 15404 apache2 15405 apache2
Para matar un proceso usando pkill es muy simple. Simplemente escriba el nombre del recurso a matar y listo. He escrito una publicación sobre pkill que le puede interesar consultar aquí: https://www.tecmint.com/how-to-kill-a-process-in-linux/.
Para matar un proceso (digamos apache2) usando pkill, todo lo que necesita hacer es:
# pkill apache2
Puede verificar si apache2 ha sido detenido o no ejecutando el siguiente comando.
$ pgrep -l apache2
Si devuelve el indicador de comando y no imprime nada, significa que no hay ningún proceso en ejecución con el nombre de apache2.
Eso es todo por ahora, de mi parte. Todos los puntos discutidos anteriormente no son suficientes pero seguramente ayudarán. No solo queremos producir tutoriales para que aprenda algo nuevo cada vez, sino que también queremos mostrar ‘Cómo ser más productivo en el mismo marco‘. Proporciónenos sus valiosos comentarios en los comentarios a continuación. Manténgase conectado. Siga comentando.
Source:
https://www.tecmint.com/mkdir-tar-and-kill-commands-in-linux/