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.

  1. -w for word (egrep -w ‘word1|word2‘ /path/to/file).
  2. -c for count (i.e., total number of times the pattern matched) (grep -c ‘word‘ /path/to/file).
  3. –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.