Question: When running commands, sometimes maybe you need to run a command with the argument from the last command. How can you do this?

Of course, excepting the use of the arrow keys and `Del` keys: `↑``←``←``←`...`←``→``→``Del``Del``Del`...`Del``<new_command>`.

Answer: 
For example, if you run this command:

```
mkdir long_path_here/new_dir

```

most likely you'd want to go in the recently created directory. You can do this using next "shortcuts":

* `cd` `Esc``.` - type `cd` and after press `Esc` followed by `.` (not in the same time). If the previous command has no arguments, you will get the previous command itself.
* `cd !*` - in this case you will get all arguments from the previuos command. If the previous command has no arguments, you will get nothing.
* `cd` `Alt`+`.` - type `cd` and after press `Alt` and `.` (in the same time). In fact, using this way and continuing to press `.` (without to release `Alt`), you will get the last argument for every command from history. If a command has no arguments, you will get the command itself.

In general: `<command>` `Esc``.` or `<command> !*` or `<command>` `Alt`+`.`.
To take the `n`th argument from your previous command, type `Alt`+`n`+`Alt``\_`. For example, after:

```
$ echo 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10

```

typing `echo` followed by `Alt``2``Alt``\_` will give you this at the next prompt:

```
$ echo 2

```

The "screenshot" after you've hit `Alt``2` is:

```
(arg: 2) echo

```

You can repeat `Alt``\_` multiple times to get the `n`th argument of previous commands in succession.

Another useful idea is to define alias `r="fc -s"`. Then, you can do command substitutions:

```
$ echo 1
1
$ r echo=history
history 1
27755  history 1

```