20 comandos avanzados para usuarios de Linux de nivel medio
Es posible que haya encontrado el primer artículo muy útil, este artículo es una extensión de los 20 comandos útiles para principiantes de Linux. El primer artículo estaba destinado a principiantes y este artículo es para usuarios avanzados y de nivel medio. Aquí encontrará cómo personalizar la búsqueda, conocer la guía de procesos en ejecución para eliminarlos, cómo hacer que su terminal Linux sea productivo es un aspecto importante y cómo compilar programas c, c ++, java en nix.

21. Comando: Buscar
Busque archivos en el directorio dado, comenzando jerárquicamente en el directorio principal y moviéndose a los subdirectorios.
[email protected]:~# find -name *.sh ./Desktop/load.sh ./Desktop/test.sh ./Desktop/shutdown.sh ./Binary/firefox/run-mozilla.sh ./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh ./Downloads/kdewebdev-3.5.8/admin/doxygen.sh ./Downloads/kdewebdev-3.5.8/admin/cvs.sh ./Downloads/kdewebdev-3.5.8/admin/ltmain.sh ./Downloads/wheezy-nv-install.sh
Nota: La opción "-name" hace que la búsqueda distinga entre mayúsculas y minúsculas. Puede usar la opción "-iname" para buscar algo independientemente del caso. (* es un comodín y busca en todo el archivo que tenga la extensión ".sh", puede usar el nombre del archivo o una parte del nombre del archivo para personalizar la salida).
[email protected]:~# find -iname *.SH ( find -iname *.Sh / find -iname *.sH) ./Desktop/load.sh ./Desktop/test.sh ./Desktop/shutdown.sh ./Binary/firefox/run-mozilla.sh ./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh ./Downloads/kdewebdev-3.5.8/admin/doxygen.sh ./Downloads/kdewebdev-3.5.8/admin/cvs.sh ./Downloads/kdewebdev-3.5.8/admin/ltmain.sh ./Downloads/wheezy-nv-install.sh
[email protected]:~# find -name *.tar.gz /var/www/modules/update/tests/aaa_update_test.tar.gz ./var/cache/flashplugin-nonfree/install_flash_player_11_linux.i386.tar.gz ./home/server/Downloads/drupal-7.22.tar.gz ./home/server/Downloads/smtp-7.x-1.0.tar.gz ./home/server/Downloads/noreqnewpass-7.x-1.2.tar.gz ./usr/share/gettext/archive.git.tar.gz ./usr/share/doc/apg/php.tar.gz ./usr/share/doc/festival/examples/speech_pm_1.0.tar.gz ./usr/share/doc/argyll/examples/spyder2.tar.gz ./usr/share/usb_modeswitch/configPack.tar.gz
Nota: El comando anterior busca todo el archivo que tenga la extensión "tar.gz" en el directorio raíz y todos los subdirectorios, incluidos los dispositivos montados.
Lea más ejemplos del comando "buscar" de Linux en 35 Ejemplos de comandos de búsqueda en Linux
22. Comando: grep
El comando "grep" busca en el archivo dado líneas que coincidan con las cadenas o palabras dadas. Busque "/ etc/passwd" para el usuario "tecmint".
[email protected]:~# grep tecmint /etc/passwd tecmint:x:1000:1000:Tecmint,,,:/home/tecmint:/bin/bash
Ignore el uso de mayúsculas y minúsculas y todas las demás combinaciones con la opción "-i".
[email protected]:~# grep -i TECMINT /etc/passwd tecmint:x:1000:1000:Tecmint,,,:/home/tecmint:/bin/bash
Busque de forma recursiva (-r), es decir, lea todos los archivos de cada directorio para una cadena "127.0.0.1".
[email protected]:~# grep -r "127.0.0.1" /etc/ /etc/vlc/lua/http/.hosts:127.0.0.1 /etc/speech-dispatcher/modules/ivona.conf:#IvonaServerHost "127.0.0.1" /etc/mysql/my.cnf:bind-address = 127.0.0.1 /etc/apache2/mods-available/status.conf: Allow from 127.0.0.1 ::1 /etc/apache2/mods-available/ldap.conf: Allow from 127.0.0.1 ::1 /etc/apache2/mods-available/info.conf: Allow from 127.0.0.1 ::1 /etc/apache2/mods-available/proxy_balancer.conf:# Allow from 127.0.0.1 ::1 /etc/security/access.conf:#+ : root : 127.0.0.1 /etc/dhcp/dhclient.conf:#prepend domain-name-servers 127.0.0.1; /etc/dhcp/dhclient.conf:# option domain-name-servers 127.0.0.1; /etc/init/network-interface.conf: ifconfig lo 127.0.0.1 up || true /etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1). /etc/java-6-openjdk/net.properties:# http.nonProxyHosts=localhost|127.0.0.1 /etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1). /etc/java-6-openjdk/net.properties:# ftp.nonProxyHosts=localhost|127.0.0.1 /etc/hosts:127.0.0.1 localhost
Nota: Puede utilizar las siguientes opciones junto con grep.
- -w for word (egrep -w ‘word1|word2‘ /path/to/file).
- -c for count (i.e., total number of times the pattern matched) (grep -c ‘word‘ /path/to/file).
- –color for coloured output (grep –color server /etc/passwd).
23. Mando: hombre
El "hombre" es el localizador manual del sistema. Man proporciona documentación en línea para todas las opciones posibles con un comando y sus usos. Casi todos los comandos vienen con sus correspondientes páginas de manual. Por ejemplo,
[email protected]:~# man man MAN(1) Manual pager utils MAN(1) NAME man - an interface to the on-line reference manuals SYNOPSIS man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-m system[,...]] [-M path] [-S list] [-e extension] [-i|-I] [--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justification] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] page ...] ... man -k [apropos options] regexp ... man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ... man -f [whatis options] page ... man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] file ... man -w|-W [-C file] [-d] [-D] page ... man -c [-C file] [-d] [-D] page ... man [-hV]
Página del manual para la página del manual en sí, de manera similar "man cat" (página del manual para el comando cat) y "man ls" (página del manual para el comando ls).
Nota: la página de manual está pensada para referencia y aprendizaje de comandos.
24. Comando: ps
ps (Proceso) proporciona el estado de los procesos en ejecución con una identificación única llamada PID.
[email protected]:~# ps PID TTY TIME CMD 4170 pts/1 00:00:00 bash 9628 pts/1 00:00:00 ps
Para enumerar el estado de todos los procesos junto con la identificación del proceso y el PID, use la opción "-A".
[email protected]:~# ps -A PID TTY TIME CMD 1 ? 00:00:01 init 2 ? 00:00:00 kthreadd 3 ? 00:00:01 ksoftirqd/0 5 ? 00:00:00 kworker/0:0H 7 ? 00:00:00 kworker/u:0H 8 ? 00:00:00 migration/0 9 ? 00:00:00 rcu_bh ....
Nota: Este comando es muy útil cuando desea saber qué procesos se están ejecutando o puede necesitar PID a veces, para que se elimine el proceso. Puede usarlo con el comando "grep" para encontrar resultados personalizados. Por ejemplo,
[email protected]:~# ps -A | grep -i ssh 1500 ? 00:09:58 sshd 4317 ? 00:00:00 sshd
Aquí "ps" se canaliza con el comando "grep" para encontrar resultados personalizados y relevantes de nuestra necesidad.
25. Comando: matar
Bien, es posible que haya entendido para qué es este comando, por el nombre del comando. Este comando se usa para matar el proceso que no es relevante ahora o no responde. Es un comando muy útil, más bien un comando muy, muy útil. Es posible que esté familiarizado con el reinicio frecuente de Windows debido al hecho de que la mayoría de las veces un proceso en ejecución no se puede eliminar y, si se elimina, es necesario que Windows se reinicie para que los cambios se apliquen, pero en el mundo de Linux, no hay tales cosas. Aquí puede matar un proceso e iniciarlo sin reiniciar todo el sistema.
Necesita el pid (ps) de un proceso para matarlo.
Supongamos que desea eliminar el programa "apache2" que podría no responder. Ejecute "ps -A" junto con el comando grep.
[email protected]:~# ps -A | grep -i apache2 1285 ? 00:00:00 apache2
Busque el proceso "apache2", anote su pid y mátelo. Por ejemplo, en mi caso "apache2" pid es "1285".
[email protected]:~# kill 1285 (to kill the process apache2)
Nota: Cada vez que vuelve a ejecutar un proceso o inicia un sistema, se genera un nuevo pid para cada proceso y puede conocer los procesos en ejecución actuales y su pid mediante el comando "ps".
Otra forma de matar el mismo proceso es.
[email protected]:~# pkill apache2
Nota: Kill requiere ID de trabajo/ID de proceso para enviar señales, donde, como en pkill, tiene la opción de usar patrón, especificar el propietario del proceso, etc.
26. Command: whereis
El comando "whereis" se utiliza para localizar las páginas binarias, fuentes y manuales del comando. Por ejemplo, para ubicar las páginas binarias, fuentes y manuales del comando 'ls' y 'kill'.
[email protected]:~# whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz
[email protected]:~# whereis kill kill: /bin/kill /usr/share/man/man2/kill.2.gz /usr/share/man/man1/kill.1.gz
Nota: Esto es útil para saber dónde se instalan los binarios para la edición manual a veces.
27. Mando: servicio
El comando "servicio" controla el inicio, la detención o el reinicio de un "servicio". Este comando permite iniciar, reiniciar o detener un servicio sin reiniciar el sistema, para que los cambios surtan efecto.
[email protected]:~# service apache2 start * Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName httpd (pid 1285) already running [ OK ]
[email protected]:~# service apache2 restart * Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... waiting .apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ]
[email protected]:~# service apache2 stop * Stopping web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... waiting [ OK ]
Nota: Todo el script del proceso se encuentra en '/etc/init.d', y es posible que la ruta deba incluirse en cierto sistema, es decir, a pesar de ejecutar "service apache2 start", se le pedirá que ejecute "/ etc/init.d/apache2 start ”.
28. Comando: alias
alias es un comando de shell integrado que le permite asignar un nombre a un comando largo o comando de uso frecuente.
Utilizo el comando "ls -l" con frecuencia, que incluye 5 caracteres, incluido el espacio. Por lo tanto, creé un alias para esto para "l".
[email protected]:~# alias l='ls -l'
compruebe si funciona o no.
[email protected]:~# l total 36 drwxr-xr-x 3 tecmint tecmint 4096 May 10 11:14 Binary drwxr-xr-x 3 tecmint tecmint 4096 May 21 11:21 Desktop drwxr-xr-x 2 tecmint tecmint 4096 May 21 15:23 Documents drwxr-xr-x 8 tecmint tecmint 4096 May 20 14:56 Downloads drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Music drwxr-xr-x 2 tecmint tecmint 4096 May 20 16:17 Pictures drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Public drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Templates drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Videos
Para eliminar el alias "l", utilice el siguiente comando "unalias".
[email protected]:~# unalias l
comprobar, si "l" todavía es un alias o no.
[email protected]:~# l bash: l: command not found
Divertirse un poco con este comando. Haga alias de cierto comando importante para algún otro comando importante.
alias cd='ls -l' (set alias of ls -l to cd) alias su='pwd' (set alias of pwd to su) .... (You can create your own) ....
Ahora, cuando su amigo teclee "cd", piense en lo divertido que sería cuando obtenga una lista de directorios y no un cambio de directorio. Y cuando intenta ser "su", todo lo que obtiene es la ubicación del directorio de trabajo. Puede eliminar el alias más tarde usando el comando "unalias" como se explicó anteriormente.
29. Comando: df
Informe los usos del disco del sistema de archivos. Útil tanto para el usuario como para el administrador del sistema para realizar un seguimiento de los usos del disco. "Df" funciona examinando las entradas del directorio, que generalmente se actualizan solo cuando se cierra un archivo.
[email protected]:~# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 47929224 7811908 37675948 18% / none 4 0 4 0% /sys/fs/cgroup udev 1005916 4 1005912 1% /dev tmpfs 202824 816 202008 1% /run none 5120 0 5120 0% /run/lock none 1014120 628 1013492 1% /run/shm none 102400 44 102356 1% /run/user /dev/sda5 184307 79852 94727 46% /boot /dev/sda7 95989516 61104 91045676 1% /data /dev/sda8 91953192 57032 87218528 1% /personal
Para obtener más ejemplos del comando "df", lea el artículo 12 Ejemplos de comandos df en Linux.
30. Comando: du
Estime el uso del espacio de archivos. Genere el resumen de los usos del disco por cada archivo jerárquicamente, es decir, de manera recursiva.
[email protected]:~# du 8 ./Daily Pics/wp-polls/images/default_gradient 8 ./Daily Pics/wp-polls/images/default 32 ./Daily Pics/wp-polls/images 8 ./Daily Pics/wp-polls/tinymce/plugins/polls/langs 8 ./Daily Pics/wp-polls/tinymce/plugins/polls/img 28 ./Daily Pics/wp-polls/tinymce/plugins/polls 32 ./Daily Pics/wp-polls/tinymce/plugins 36 ./Daily Pics/wp-polls/tinymce 580 ./Daily Pics/wp-polls 1456 ./Daily Pics 36 ./Plugins/wordpress-author-box 16180 ./Plugins 12 ./May Articles 2013/Xtreme Download Manager 4632 ./May Articles 2013/XCache
Nota: "df" solo informa las estadísticas de uso de los sistemas de archivos, mientras que "du", por otro lado, mide el contenido del directorio. Para obtener más ejemplos y uso del comando "du", lea 10 comandos du (Uso del disco).
31. Comando: rm
El comando "rm" significa eliminar. rm se utiliza para eliminar archivos y directorios.
[email protected]:~# rm PassportApplicationForm_Main_English_V1.0 rm: cannot remove `PassportApplicationForm_Main_English_V1.0': Is a directory
El directorio no se puede eliminar simplemente con el comando "rm", debe usar el interruptor "-rf" junto con "rm".
[email protected]:~# rm -rf PassportApplicationForm_Main_English_V1.0
Advertencia: el comando “rm -rf” es un comando destructivo si accidentalmente llega al directorio incorrecto. Una vez que "rm -rf" un directorio, todos los archivos y el directorio en sí se pierden para siempre, de repente. Úselo con precaución.
32. Comando: echo
echo como sugiere el nombre hace eco de un texto en la salida estándar. No tiene nada que ver con el shell, ni tampoco lee el resultado del comando echo. Sin embargo, en un script interactivo, echo pasa el mensaje al usuario a través del terminal. Es uno de los comandos que se utilizan comúnmente en secuencias de comandos, secuencias de comandos interactivas.
[email protected]:~# echo "Tecmint.com is a very good website" Tecmint.com is a very good website
2. Copie y pegue el siguiente script, exactamente igual que el siguiente.
#!/bin/bash echo "Please enter your name:" read name echo "Welcome to Linux $name"
A continuación, establezca el permiso de ejecución y ejecute el script.
[email protected]:~# chmod 777 interactive_shell.sh
[email protected]:~# ./interactive_shell.sh Please enter your name: Ravi Saive Welcome to Linux Ravi Saive
Nota: "#!/Bin/bash" le dice al shell que se trata de un script y que siempre es una buena idea incluirlo en la parte superior del script. "Leer" lee la entrada dada.
33. Comando: passwd
Este es un comando importante que es útil para cambiar la propia contraseña en la terminal. Obviamente, necesita saber su contraseña actual por motivos de seguridad.
[email protected]:~# passwd Changing password for tecmint. (current) UNIX password: ******** Enter new UNIX password: ******** Retype new UNIX password: ******** Password unchanged [Here was passowrd remians unchanged, i.e., new password=old password] Enter new UNIX password: ##### Retype new UNIX password:#####
34. Comando: lpr
Este comando imprime archivos nombrados en la línea de comandos, en una impresora nombrada.
[email protected]:~# lpr -P deskjet-4620-series 1-final.pdf
Nota: El comando "lpq" le permite ver el estado de una impresora (si está funcionando o no) y los trabajos (archivos) que esperan ser impresos.
35. Comando: cmp
compara dos archivos de cualquier tipo y escribe los resultados en la salida estándar. De forma predeterminada, "cmp" devuelve 0 si los archivos son iguales; si difieren, se informa el byte y el número de línea en el que se produjo la primera diferencia.
Para proporcionar ejemplos de este comando, consideremos dos archivos:
[email protected]:~# cat file1.txt Hi My name is Tecmint
[email protected]:~# cat file2.txt Hi My name is tecmint [dot] com
Ahora, comparemos dos archivos y veamos el resultado del comando.
[email protected]:~# cmp file1.txt file2.txt file1.txt file2.txt differ: byte 15, line 1
36. Comando: wget
Wget es una utilidad gratuita para la descarga no interactiva (es decir, puede funcionar en segundo plano) de archivos de la Web. Admite protocolos HTTP, HTTPS, FTP y proxies HTTP.
[email protected]:~# wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 --2013-05-22 18:54:52-- http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59 Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://kaz.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 [following] --2013-05-22 18:54:54-- http://kaz.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 Resolving kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)... 92.46.53.163 Connecting to kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)|92.46.53.163|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 275557 (269K) [application/octet-stream] Saving to: ‘ffmpeg-php-0.6.0.tbz2’ 100%[===========================================================================>] 2,75,557 67.8KB/s in 4.0s 2013-05-22 18:55:00 (67.8 KB/s) - ‘ffmpeg-php-0.6.0.tbz2’ saved [275557/275557]
37. Comando: montar
Mount es un comando importante que se usa para montar un sistema de archivos que no se monta solo. Necesita permiso de root para montar un dispositivo.
Primero ejecute "lsblk" después de conectar su sistema de archivos e identifique su dispositivo y anote el nombre asignado al dispositivo.
[email protected]:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk ├─sda1 8:1 0 923.6G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 7.9G 0 part [SWAP] sr0 11:0 1 1024M 0 rom sdb 8:16 1 3.7G 0 disk └─sdb1 8:17 1 3.7G 0 part
Desde esta pantalla estaba claro que conecté un pendrive de 4 GB, por lo que "sdb1" es mi sistema de archivos para montar. Conviértase en root para realizar esta operación y cambie al directorio/dev donde está montado todo el sistema de archivos.
[email protected]:~# su Password:
[email protected]:~# cd /dev
Cree un directorio con cualquier nombre pero que sea relevante como referencia.
[email protected]:~# mkdir usb
Ahora monte el sistema de archivos "sdb1" en el directorio "usb".
[email protected]:~# mount /dev/sdb1 /dev/usb
Ahora puede navegar a/dev/usb desde la terminal o el sistema X-windows y acceder al archivo desde el directorio montado.
38. Comando: gcc
gcc es el compilador incorporado para el lenguaje "c" en el entorno Linux. Un programa c simple, guárdelo en su escritorio como Hello.c (recuerde que la extensión ".c" es imprescindible).
#include <stdio.h> int main() { printf("Hello world\n"); return 0; }
[email protected]:~# gcc Hello.c
[email protected]:~# ./a.out Hello world
Nota: Al compilar un programa en c, la salida se genera automáticamente en un nuevo archivo "a.out" y cada vez que compila un programa en c, el mismo archivo "a.out" se modifica. Por lo tanto, es un buen consejo definir un archivo de salida durante la compilación y, por lo tanto, no hay riesgo de sobrescribir el archivo de salida.
[email protected]:~# gcc -o Hello Hello.c
Aquí "-o" envía la salida al archivo "Hola" y no a "a.out". Ejecútelo de nuevo.
[email protected]:~# ./Hello Hello world
39. Comando: g ++
g ++ es el compilador incorporado para "C ++", el primer lenguaje de programación orientado a objetos. Un programa simple de C ++, guárdelo en su escritorio como Add.cpp (recuerde que la extensión ".cpp" es imprescindible).
#include <iostream> using namespace std; int main() { int a; int b; cout<<"Enter first number:\n"; cin >> a; cout <<"Enter the second number:\n"; cin>> b; cin.ignore(); int result = a + b; cout<<"Result is"<<" "<<result<<endl; cin.get(); return 0; }
[email protected]:~# g++ Add.cpp
[email protected]:~# ./a.out Enter first number: ... ...
Nota: Al compilar un programa en C ++, la salida se genera automáticamente en un nuevo archivo "a.out" y cada vez que compila un programa en C ++ se modifica el mismo archivo "a.out". Por lo tanto, es un buen consejo definir un archivo de salida durante la compilación y, por lo tanto, no hay riesgo de sobrescribir el archivo de salida.
[email protected]:~# g++ -o Add Add.cpp
[email protected]:~# ./Add Enter first number: ... ...
40. Comando: java
Java es uno de los lenguajes de programación más utilizados en el mundo y se considera rápido, seguro y confiable. La mayoría de los servicios basados u200bu200ben la web de hoy se ejecutan en Java.
Cree un programa Java simple pegando la siguiente prueba en un archivo, llamado tecmint.java (recuerde que la extensión ".java" es imprescindible).
class tecmint { public static void main(String[] arguments) { System.out.println("Tecmint "); } }
[email protected]:~# javac tecmint.java
[email protected]:~# java tecmint
Nota: Casi todas las distribuciones vienen empaquetadas con el compilador gcc, la mayoría de las distribuciones tienen un compilador g ++ y java incorporado, mientras que algunas pueden no tenerlo. Puede apt o yum el paquete requerido.
No olvide mencionar su valioso comentario y el tipo de artículo que desea ver aquí. Pronto volveré con un tema interesante sobre los hechos menos conocidos sobre Linux.