Pesquisa de site

20 comandos avançados para usuários Linux de nível médio


Você pode ter achado o primeiro artigo muito útil, este artigo é uma extensão dos 20 comandos úteis para iniciantes em Linux. O primeiro artigo foi destinado a iniciantes e este artigo é para usuários de nível médio e usuários avançados. Aqui você descobrirá como personalizar a pesquisa, conhecer o guia de execução dos processos para eliminá-los, como tornar seu terminal Linux produtivo é um aspecto importante e como compilar c, < programasc++, java em nix.

21. Comando: Encontrar

Pesquise arquivos em um determinado diretório, começando hierarquicamente no diretório pai e movendo-se para subdiretórios.

root@tecmint:~# 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: A opção `-name' torna a pesquisa sensível a maiúsculas e minúsculas. Você pode usar a opção `-iname' para encontrar algo independentemente do caso. (* é um curinga e pesquisa todos os arquivos com extensão ‘.sh‘ você pode usar o nome do arquivo ou uma parte do nome do arquivo para personalizar a saída).

root@tecmint:~# 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
root@tecmint:~# 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: O comando acima procura todos os arquivos com extensão ‘tar.gz’ no diretório raiz e todos os subdiretórios, incluindo dispositivos montados.

Leia mais exemplos do comando ‘find’ do Linux em 35 Encontre exemplos de comandos no Linux

22. Comando: grep

O comando ‘grep’ pesquisa no arquivo fornecido em busca de linhas que contenham uma correspondência com as strings ou palavras fornecidas. Pesquise ‘/etc/passwd‘ pelo usuário ‘tecmint‘.

root@tecmint:~# grep tecmint /etc/passwd 

tecmint:x:1000:1000:Tecmint,,,:/home/tecmint:/bin/bash

Ignore maiúsculas e minúsculas e todas as outras combinações com a opção ‘-i’.

root@tecmint:~# grep -i TECMINT /etc/passwd 

tecmint:x:1000:1000:Tecmint,,,:/home/tecmint:/bin/bash

Pesquise recursivamente (-r) ou seja, leia todos os arquivos em cada diretório em busca de uma string “127.0.0.1“.

root@tecmint:~# 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: Você pode usar as seguintes opções junto com grep.

  1. -w para palavra (egrep -w ‘palavra1|palavra2‘ /caminho/para/arquivo).
  2. -c para contagem (ou seja, número total de vezes que o padrão correspondeu) (grep -c ‘palavra‘ /caminho/para/arquivo).
  3. –color para saída colorida (grep –color server /etc/passwd).

23. Comando: homem

O ‘man’ é o pager manual do sistema. Man fornece documentação online para todas as opções possíveis com um comando e seus usos. Quase todos os comandos vêm com suas páginas de manual correspondentes. Por exemplo,

root@tecmint:~# 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 de manual para a própria página de manual, da mesma forma ‘man cat‘ (página de manual para o comando cat) e ‘man ls‘ (página de manual para o comando ls).

Nota: a página man destina-se à referência e aprendizado de comandos.

24. Comando: ps

ps (Processo) fornece o status dos processos em execução com um Id exclusivo chamado PID.

root@tecmint:~# ps

 PID TTY          TIME CMD
 4170 pts/1    00:00:00 bash
 9628 pts/1    00:00:00 ps

Para listar o status de todos os processos junto com o id e PID do processo, use a opção ‘-A‘.

root@tecmint:~# 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 é muito útil quando você deseja saber quais processos estão em execução ou podem precisar de PID às vezes, para que o processo seja eliminado. Você pode usá-lo com o comando ‘grep’ para encontrar resultados personalizados. Por exemplo,

root@tecmint:~# ps -A | grep -i ssh

 1500 ?        00:09:58 sshd
 4317 ?        00:00:00 sshd

Aqui 'ps' é canalizado com o comando 'grep' para encontrar resultados personalizados e relevantes de nossa necessidade.

25. Comando: matar

OK, você deve ter entendido para que serve esse comando, pelo nome do comando. Este comando é usado para encerrar processos que não são relevantes agora ou não estão respondendo. É um comando muito útil, um comando muito útil. Você deve estar familiarizado com a reinicialização frequente do Windows devido ao fato de que na maioria das vezes um processo em execução não pode ser eliminado e, se for encerrado, ele precisa que o Windows seja reiniciado para que as alterações possam ter efeito, mas no mundo do Linux, não existem tais coisas. Aqui você pode encerrar um processo e iniciá-lo sem reiniciar todo o sistema.

Você precisa do pid (ps) de um processo para eliminá-lo.

Suponhamos que você queira eliminar o programa ‘apache2’ que pode não estar respondendo. Execute 'ps -A' junto com o comando grep.

root@tecmint:~# ps -A | grep -i apache2

1285 ?        00:00:00 apache2

Encontre o processo ‘apache2‘, anote seu pid e mate. Por exemplo, no meu caso ‘apache2‘ pid é ‘1285‘.

root@tecmint:~# kill 1285 (to kill the process apache2)

Nota: Cada vez que você executa novamente um processo ou inicia um sistema, um novo pid é gerado para cada processo e você pode saber sobre os processos em execução no momento e seus >pid usando o comando 'ps'.

Outra maneira de matar o mesmo processo é.

root@tecmint:~# pkill apache2

Nota: Kill requer id do trabalho/id do processo para enviar sinais, onde como em pkill, você tem uma opção de usar padrão, especificar o proprietário do processo, etc.

26. Comando: onde está

O comando ‘whereis‘ é usado para localizar o Binário, Fontes e Páginas de Manual do comando. Por exemplo, para localizar as páginas Binário, Fontes e Manual do comando 'ls' e 'matar'.

root@tecmint:~# whereis ls 

ls: /bin/ls /usr/share/man/man1/ls.1.gz
root@tecmint:~# whereis kill

kill: /bin/kill /usr/share/man/man2/kill.2.gz /usr/share/man/man1/kill.1.gz

Nota: Isto é útil para saber onde os binários estão instalados para edição manual às vezes.

27. Comando: serviço

O comando 'serviço' controla o Iniciar, Parar ou Reiniciar de um 'serviço >'. Este comando permite iniciar, reiniciar ou parar um serviço sem reiniciar o sistema, para que as alterações tenham efeito.

Iniciando um servidor Apache2 no Ubuntu

root@tecmint:~# 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 ]

Reiniciando um servidor Apache2 no Ubuntu

root@tecmint:~# 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 ]

Parando um servidor Apache2 no Ubuntu

root@tecmint:~# 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 o script do processo está em '/etc/init.d', e o caminho pode precisar ser incluído em determinado sistema, ou seja, apesar da execução “ service apache2 start” você será solicitado a executar “/etc/init.d/apache2 start”.

28. Comando: alias

alias é um comando shell integrado que permite atribuir um nome a um comando longo ou a um comando usado com frequência.

Eu uso o comando ‘ls -l’ com frequência, que inclui 5 caracteres incluindo espaço. Portanto, criei um alias para ‘l’.

root@tecmint:~# alias l='ls -l'

verifique se funciona ou não.

root@tecmint:~# 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 remover o alias ‘l’, use o seguinte comando ‘unalias’.

root@tecmint:~# unalias l

verifique se 'l' ainda é um alias ou não.

root@tecmint:~# l

bash: l: command not found

Tirando sarro deste comando. Faça um alias de determinado comando importante para algum outro 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)
....

Agora, quando seu amigo digitar 'cd', pense em como seria engraçado quando ele obtivesse uma listagem de diretório e não uma alteração de diretório. E quando ele tenta ser ‘su‘, tudo o que consegue é a localização do diretório de trabalho. Você pode remover o alias posteriormente usando o comando ‘unalias’ conforme explicado acima.

29. Comando: df

Relatar usos de disco do sistema de arquivos. Útil para o usuário e também para o administrador do sistema acompanhar o uso do disco. ‘df‘ funciona examinando entradas de diretório, que geralmente são atualizadas apenas quando um arquivo é fechado.

root@tecmint:~# 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 obter mais exemplos do comando ‘df’, leia o artigo 12 exemplos de comando df no Linux.

30. Comando: du

Estime o uso do espaço de arquivo. Produza o resumo do uso do disco por cada arquivo hierarquicamente, ou seja, de maneira recursiva.

root@tecmint:~# 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‘ apenas reporta estatísticas de uso em sistemas de arquivos, enquanto ‘du‘, por outro lado, mede o conteúdo do diretório. Para obter mais exemplos e uso do comando ‘du’, leia 10 comandos du (uso de disco).

31. Comando: rm

O comando ‘rm‘ significa remover. rm é usado para remover arquivos e diretórios.

Removendo um diretório

root@tecmint:~# rm PassportApplicationForm_Main_English_V1.0

rm: cannot remove `PassportApplicationForm_Main_English_V1.0': Is a directory

O diretório não pode ser removido simplesmente pelo comando ‘rm’, você deve usar a opção ‘-rf’ junto com ‘rm’.

root@tecmint:~# rm -rf PassportApplicationForm_Main_English_V1.0

Aviso: o comando “rm -rf ” é um comando destrutivo se acidentalmente você acessar o diretório errado. Depois de ‘rm -rf‘ um diretório, todos os arquivos e o próprio diretório são perdidos para sempre, de repente. Use-o com cautela.

32. Comando: eco

echo como o nome sugere, ecoa um texto na saída padrão. Não tem nada a ver com o shell, nem o shell lê a saída do comando echo. Porém, em um script interativo, echo passa a mensagem ao usuário através do terminal. É um dos comandos comumente usados em scripts, scripts interativos.

root@tecmint:~# echo "linux-console.net is a very good website" 

linux-console.net is a very good website
criando um pequeno script interativo

1. crie um arquivo chamado ‘interactive_shell.sh‘ no desktop. (Lembre-se de que a extensão ‘.sh’ é obrigatória).
2. copie e cole o script abaixo, exatamente igual ao abaixo.

#!/bin/bash 
echo "Please enter your name:" 
   read name 
   echo "Welcome to Linux $name"

Em seguida, defina a permissão de execução e execute o script.

root@tecmint:~# chmod 777 interactive_shell.sh
root@tecmint:~# ./interactive_shell.sh

Please enter your name:
Ravi Saive
Welcome to Linux Ravi Saive

Nota: ‘#!/bin/bash’ informa ao shell que é um script e é sempre uma boa ideia incluí-lo no topo do script. ‘ler‘ lê a entrada fornecida.

33. Comando: senha

Este é um comando importante que é útil para alterar a própria senha no terminal. Obviamente você precisa saber sua senha atual por motivos de segurança.

root@tecmint:~# 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 arquivos nomeados na linha de comando, para a impressora nomeada.

root@tecmint:~# lpr -P deskjet-4620-series 1-final.pdf

Nota: O comando ‘lpq’ permite visualizar o status de uma impressora (se está funcionando ou não) e os trabalhos (arquivos) aguardando para serem impressos.

35. Comando: cmp

compare dois arquivos de qualquer tipo e grave os resultados na saída padrão. Por padrão, ‘cmp‘ Retorna 0 se os arquivos forem iguais; se forem diferentes, o byte e o número da linha em que ocorreu a primeira diferença serão relatados.

Para fornecer exemplos deste comando, vamos considerar dois arquivos:

arquivo1.txt
root@tecmint:~# cat file1.txt

Hi My name is Tecmint
arquivo2.txt
root@tecmint:~# cat file2.txt

Hi My name is tecmint [dot] com

Agora, vamos comparar dois arquivos e ver a saída do comando.

root@tecmint:~# cmp file1.txt file2.txt 

file1.txt file2.txt differ: byte 15, line 1

36. Comando: wget

Wget é um utilitário gratuito para download não interativo (ou seja, pode funcionar em segundo plano) de arquivos da Web. Suporta protocolos HTTP, HTTPS, FTP e proxies HTTP.

Baixe ffmpeg usando wget

root@tecmint:~# 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 é um comando importante usado para montar um sistema de arquivos que não se monta sozinho. Você precisa de permissão root para montar um dispositivo.

Primeiro execute 'lsblk' após conectar seu sistema de arquivos e identifique seu dispositivo e anote o nome atribuído ao dispositivo.

root@tecmint:~# 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

Nesta tela ficou claro que conectei um pendrive de 4 GB, portanto ‘sdb1‘ é meu sistema de arquivos a ser montado. Torne-se um root para realizar esta operação e mude para o diretório /dev onde todo o sistema de arquivos está montado.

root@tecmint:~# su
Password:
root@tecmint:~# cd /dev

Crie um diretório com qualquer nome, mas que seja relevante para referência.

root@tecmint:~# mkdir usb

Agora monte o sistema de arquivos ‘sdb1‘ no diretório ‘usb‘.

root@tecmint:~# mount /dev/sdb1 /dev/usb

Agora você pode navegar para /dev/usb do terminal ou do sistema X-windows e acessar o arquivo do diretório montado.

38. Comando: gcc

gcc é o compilador integrado para a linguagem ‘c’ no ambiente Linux. Um programa c simples, salve-o em sua área de trabalho como Hello.c (lembre-se de que a extensão ‘.c’ é obrigatória).

#include <stdio.h>
int main()
{
  printf("Hello world\n");
  return 0;
}
Compile
root@tecmint:~# gcc Hello.c
Executá-lo
root@tecmint:~# ./a.out 

Hello world

Nota: Ao compilar um programa c a saída é gerada automaticamente para um novo arquivo “a.out ” e toda vez que você compila um c programa mesmo arquivo “a.out ” é modificado. Portanto, é um bom conselho definir um arquivo de saída durante a compilação e, portanto, não há risco de sobrescrever o arquivo de saída.

Compile desta forma
root@tecmint:~# gcc -o Hello Hello.c

Aqui '-o' envia a saída para o arquivo 'Hello' e não para 'a.out'. Execute-o novamente.

root@tecmint:~# ./Hello 

Hello world

39. Comando: g++

g++ é o compilador embutido para ‘C++‘, a primeira linguagem de programação orientada a objetos. Um programa c++ simples, salve-o em sua área de trabalho como Add.cpp (lembre-se de que a extensão ‘.cpp’ é obrigatória).

#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;
     }
Compile
root@tecmint:~# g++ Add.cpp
Executá-lo
root@tecmint:~# ./a.out

Enter first number: 
...
...

Nota: Ao compilar um programa c++ a saída é gerada automaticamente para um novo arquivo “a.out ” e toda vez que você compila um c++ mesmo arquivo “a.out” é modificado. Portanto, é um bom conselho definir um arquivo de saída durante a compilação e, portanto, não há risco de sobrescrever o arquivo de saída.

Compile desta forma
root@tecmint:~# g++ -o Add Add.cpp
Executá-lo
root@tecmint:~# ./Add 

Enter first number: 
...
...

40. Comando: java

Java é uma das linguagens de programação mais utilizadas no mundo e é considerada rápida, segura e confiável. A maior parte dos serviços baseados na web de hoje é executado em java.

Crie um programa java simples colando o teste abaixo em um arquivo chamado tecmint.java (lembre-se de que a extensão ‘.java’ é obrigatória).

class tecmint {
  public static void main(String[] arguments) {
    System.out.println("Tecmint ");
  }
}
compile-o usando javac
root@tecmint:~# javac tecmint.java
Executá-lo
root@tecmint:~# java tecmint

Nota: Quase todas as distribuições vêm com o compilador gcc, a maioria das distros tem g++ e compilador java integrados, enquanto alguns podem não ter. Você pode apt ou yum o pacote necessário.

Não se esqueça de mencionar seu valioso comentário e o tipo de artigo que deseja ver aqui. Em breve voltarei com um tópico interessante sobre fatos menos conhecidos sobre o Linux.