Como o jpaulo7 disse, para compilar basta rodar o comando
g++ hello.cpp -o hello
onde a opção "-o hello" serve para dizer que o arquivo executável gerado deve ter o nome "hello". Bem simples nesse caso.
Caso seu programa tenha mais de um arquivo (quase sempre), você deve passar todos eles na hora de compilar.
Por exemplo,
g++ arquivo1.cpp arquivo1.h arquivo2.cpp -o nome_do_executavel
Claro que a medida que o número de arquivos aumenta, digitar o comando no terminal começa a ficar trabalhoso demais. Normalmente se utiliza alguma maneira de automatizar esse processo. Por exemplo, através do programa "make", que requer a criação de um arquivo chamado "Makefile".
A coisa complica mais quando você utiliza bibliotecas externas, aí tem que dizer para o g++ onde estão os arquivos dessa biblioteca ("-I/path/onde/estao/os/arquivos_ponto_h") e para o linkador (rodado que o g++ chama) o nome da biblioteca para linkar ("-lNome_da_Biblioteca"). Sugiro que evite bibliotecas externas por enquanto até entender bem com tudo isso funciona.
Ao usar uma IDE usualmente a IDE se encarrega desses comandos de compilação para você. Normalmente as IDEs criam um Makefile (ou algo semelhante) para você e você compila seu programa clicando em algum botão na IDE. Mas também é perfeitamente possível (e não é difícil) criar um Makefile, programar em um editor de texto como o gedit e apenas rodar o comando "make" (na pasta onde você criou o Makefile) para compilar o seu programa.
O tópico abaixo ensina como criar um Makefile que "compila tudo que está na mesma pasta que o Makefile".
http://ubuntuforum-pt.org/index.php/topic,21155.0.html