# What's different between Ctrl+Z and Ctrl+C in Unix command line

Found this explanation on [this forum post](http://superuser.com/questions/262942/ddg#262948) (thanks to [@Wuffers](https://superuser.com/users/33060/wuffers) for the post). 

`Control+Z` is used for suspending a process by sending it the signal `SIGTSTP`, which cannot be intercepted by the program. While `Control+C` is used to kill a process with the signal `SIGINT`, and can be intercepted by a program so it can clean its self up before exiting, or not exit at all.

If you suspend a process, this will show up in the shell to tell you it has been suspended:
```bash
[1]+  Stopped                 yes
```
However, if you kill one, you won't see any confirmation other than being dropped back to a shell prompt. When you suspend a process, you can do fancy things with it, too. For instance, running this:
```bash
fg
```
With a program suspended will bring it back to the foreground.

And running the command
```bash
bg
```
With a program suspended will allow it to run in the background (the program's output will still go to the `TTY`, though).

If you want to kill a suspended program, you don't have to bring it back with `fg` first, you can simply do the command:
```bash
kill %1
```
If you have multiple suspended commands, running
```bash
jobs
```
will list them, like this:
```bash
[1]-  Stopped                 pianobar
[2]+  Stopped                 yes
```
Using `%#`, where `#` is the job number (the one in square brackets from the jobs output) with `bg`, `fg`, or `kill`, can be used to do the action on that job.