The Computer Oracle

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

--------------------------------------------------
Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------

Music by Eric Matyas
https://www.soundimage.org
Track title: Hypnotic Orient Looping

--

Chapters
00:00 What'S Different Between Ctrl+Z And Ctrl+C In Unix Command Line?
00:30 Accepted Answer Score 294
02:02 Answer 2 Score 25
02:38 Answer 3 Score 19
03:23 Answer 4 Score 4
03:48 Answer 5 Score 3
04:19 Thank you

--

Full question
https://superuser.com/questions/262942/w...

--

Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...

--

Tags
#commandline #unix

#avk47



ACCEPTED ANSWER

Score 294


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:

[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:

fg

With a program suspended will bring it back to the foreground.

And running the command

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:

kill %1

If you have multiple suspended commands, running

jobs

will list them, like this:

[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.




ANSWER 2

Score 25


Ctrl+Z suspends the process with SIGTSTP, you can resume it later. Ctrl+C kills the process with SIGINT, which terminates the process unless it is handled/ignored by the target, so you can't resume it. There's also a SIGSTOP which can be sent by kill() and which the process can't intercept. SIGCONT is the counterpart to both SIGSTOP and SIGTSTP that un-suspends the process.




ANSWER 3

Score 19


CTRL+Z stops (pauses) a job

CTRL+C terminates a job

with CTRL+C you cannot resume the process but with CTRL+Z the job can be resumed by just entering at the command promt:

fg %1

if you have multiple processes paused then you should do

jobs

to see the output and select the appropriate number to resume e.g.

fg %3

resumes the third job in the list. You can also have jobs running in the background with

bg %n

where n is the job number.




ANSWER 4

Score 4


Cntrl + Z pause the currently running process. 

And

Cntrl + C simply terminates the running process.

Using Cntrl + C you can not resume the process. where as using Cntrl + Z you can resume the process.

use fg %1 to resume the process.




ANSWER 5

Score 3


CTRL+Z stops (pauses) a job

CTRL+C terminates a job

With CTRL+C you cannot resume the process, but with CTRL+Z the job can be resumed by just entering at the command prompt:

fg %1

If you have multiple processes paused then you should do

jobs

to see the output.