How to execute several commands after each other with one request to the terminal (without using a file)?

Solution 1:

You can separate commands with && or ;.

  • && only runs the next command if the previous one exited with status 0 (was successful) :

    command1 && command2 && command3
    
  • ; runs every commands, even if the previous one exits with a non zero status :

    command1; command2; command3
    

You can combine these separators as you wish.

Solution 2:

If you are interested to type each command on its own line in one single request you can use the following method:

  • Start your request (first line) with if :; then (this mean: if true, then do) and press Enter; your prompt will change now in > and nothing will be executed.

  • Type your commands, each one followed by Enter

  • Finish your request with with fi (end of the above if condition) and press Enter. Now all your commands will be executed in the given order.

Example:

radu@Radu: ~ $ if :; then
> echo 'something'
> echo 'something else'
> echo 'List current directory contents:'
> ls
> echo 'Change current directory with root directory:'
> cd
> #finish
> fi
something
something else
List current directory contents:
Backups            Desktop           forma3d  Public      Untitled txt.txt~
bin                Documente         Music    Templates   Videos
configuration.php  examples.desktop  passwd~  tmp~
Downloads          file~             Poze     Ubuntu One
Change current directory with root directory:
radu@Radu: / $

Solution 3:

First, put a { on its own line.
Then, insert your commands.
Then, put a } on a new line and press Enter. Your commands will be executed.

Example:

{
echo list
echo of
echo commands
echo to run at once
}

which will print (all at once, with no prompt in between):

list
of
commands
to run at once

As a side note, { .. } is the Bash command grouping syntax. It's often useful in conjunction with && or || ('and', and 'or' respectively)