I have a long running script but want to be able to scroll through the stdout output as it executes












1















I have a script that runs for a long time. It has plenty of output to stdout that I would like to be able to read over in real time but also scroll up and down. Whenever a new line of output is printed to stdout, my screen resets to the bottom of the output (most current content). Is there any way to page through stdout while also having the newest content visible and up-to-date when I scroll down?



I'm on RHEL7. I don't have a GUI and am connected to the host via SSH.










share|improve this question




















  • 2





    Pipe it to less! command | less Mouse may or may not work in less, make sure to use page up & down if not.

    – Kenneth B. Jensen
    Feb 8 at 7:38











  • In addition to less (which is the best answer to this). I would also recommend screen or tmux which if configured correctly will let you scroll the output

    – KNejad
    Feb 8 at 9:07
















1















I have a script that runs for a long time. It has plenty of output to stdout that I would like to be able to read over in real time but also scroll up and down. Whenever a new line of output is printed to stdout, my screen resets to the bottom of the output (most current content). Is there any way to page through stdout while also having the newest content visible and up-to-date when I scroll down?



I'm on RHEL7. I don't have a GUI and am connected to the host via SSH.










share|improve this question




















  • 2





    Pipe it to less! command | less Mouse may or may not work in less, make sure to use page up & down if not.

    – Kenneth B. Jensen
    Feb 8 at 7:38











  • In addition to less (which is the best answer to this). I would also recommend screen or tmux which if configured correctly will let you scroll the output

    – KNejad
    Feb 8 at 9:07














1












1








1








I have a script that runs for a long time. It has plenty of output to stdout that I would like to be able to read over in real time but also scroll up and down. Whenever a new line of output is printed to stdout, my screen resets to the bottom of the output (most current content). Is there any way to page through stdout while also having the newest content visible and up-to-date when I scroll down?



I'm on RHEL7. I don't have a GUI and am connected to the host via SSH.










share|improve this question
















I have a script that runs for a long time. It has plenty of output to stdout that I would like to be able to read over in real time but also scroll up and down. Whenever a new line of output is printed to stdout, my screen resets to the bottom of the output (most current content). Is there any way to page through stdout while also having the newest content visible and up-to-date when I scroll down?



I'm on RHEL7. I don't have a GUI and am connected to the host via SSH.







bash shell-script shell terminal scrolling






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Feb 12 at 1:30







Crypteya

















asked Feb 8 at 6:51









CrypteyaCrypteya

37917




37917








  • 2





    Pipe it to less! command | less Mouse may or may not work in less, make sure to use page up & down if not.

    – Kenneth B. Jensen
    Feb 8 at 7:38











  • In addition to less (which is the best answer to this). I would also recommend screen or tmux which if configured correctly will let you scroll the output

    – KNejad
    Feb 8 at 9:07














  • 2





    Pipe it to less! command | less Mouse may or may not work in less, make sure to use page up & down if not.

    – Kenneth B. Jensen
    Feb 8 at 7:38











  • In addition to less (which is the best answer to this). I would also recommend screen or tmux which if configured correctly will let you scroll the output

    – KNejad
    Feb 8 at 9:07








2




2





Pipe it to less! command | less Mouse may or may not work in less, make sure to use page up & down if not.

– Kenneth B. Jensen
Feb 8 at 7:38





Pipe it to less! command | less Mouse may or may not work in less, make sure to use page up & down if not.

– Kenneth B. Jensen
Feb 8 at 7:38













In addition to less (which is the best answer to this). I would also recommend screen or tmux which if configured correctly will let you scroll the output

– KNejad
Feb 8 at 9:07





In addition to less (which is the best answer to this). I would also recommend screen or tmux which if configured correctly will let you scroll the output

– KNejad
Feb 8 at 9:07










1 Answer
1






active

oldest

votes


















2














You may use a pager such as less:



program | less


or, if you also want to save the output to a file:



program | tee logfile | less


Within less, you may scroll back and forth, and you may get a tail -f behaviour by pressing F (press Ctrl+C to get out of this mode). You can even start it up in this mode:



program | tee logfile | less +F


To avoid possibly blocking the writes from you program, make the program redirect directly to an output file in the background and then use less on that:



program >logfile & 
less logfile


See the manual for less on your system.






share|improve this answer





















  • 2





    As far as I can tell, less reads some amount of data at first, and then doesn't read more unless you scroll to the end. So there's a chance here that the main program will block on the pipeline if the output is very long. To deal with that, it's probably best to just direct the output to a file and run less on that.

    – ilkkachu
    Feb 8 at 9:03











  • @ilkkachu Good point, added.

    – Kusalananda
    Feb 8 at 9:11













Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f499414%2fi-have-a-long-running-script-but-want-to-be-able-to-scroll-through-the-stdout-ou%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









2














You may use a pager such as less:



program | less


or, if you also want to save the output to a file:



program | tee logfile | less


Within less, you may scroll back and forth, and you may get a tail -f behaviour by pressing F (press Ctrl+C to get out of this mode). You can even start it up in this mode:



program | tee logfile | less +F


To avoid possibly blocking the writes from you program, make the program redirect directly to an output file in the background and then use less on that:



program >logfile & 
less logfile


See the manual for less on your system.






share|improve this answer





















  • 2





    As far as I can tell, less reads some amount of data at first, and then doesn't read more unless you scroll to the end. So there's a chance here that the main program will block on the pipeline if the output is very long. To deal with that, it's probably best to just direct the output to a file and run less on that.

    – ilkkachu
    Feb 8 at 9:03











  • @ilkkachu Good point, added.

    – Kusalananda
    Feb 8 at 9:11


















2














You may use a pager such as less:



program | less


or, if you also want to save the output to a file:



program | tee logfile | less


Within less, you may scroll back and forth, and you may get a tail -f behaviour by pressing F (press Ctrl+C to get out of this mode). You can even start it up in this mode:



program | tee logfile | less +F


To avoid possibly blocking the writes from you program, make the program redirect directly to an output file in the background and then use less on that:



program >logfile & 
less logfile


See the manual for less on your system.






share|improve this answer





















  • 2





    As far as I can tell, less reads some amount of data at first, and then doesn't read more unless you scroll to the end. So there's a chance here that the main program will block on the pipeline if the output is very long. To deal with that, it's probably best to just direct the output to a file and run less on that.

    – ilkkachu
    Feb 8 at 9:03











  • @ilkkachu Good point, added.

    – Kusalananda
    Feb 8 at 9:11
















2












2








2







You may use a pager such as less:



program | less


or, if you also want to save the output to a file:



program | tee logfile | less


Within less, you may scroll back and forth, and you may get a tail -f behaviour by pressing F (press Ctrl+C to get out of this mode). You can even start it up in this mode:



program | tee logfile | less +F


To avoid possibly blocking the writes from you program, make the program redirect directly to an output file in the background and then use less on that:



program >logfile & 
less logfile


See the manual for less on your system.






share|improve this answer















You may use a pager such as less:



program | less


or, if you also want to save the output to a file:



program | tee logfile | less


Within less, you may scroll back and forth, and you may get a tail -f behaviour by pressing F (press Ctrl+C to get out of this mode). You can even start it up in this mode:



program | tee logfile | less +F


To avoid possibly blocking the writes from you program, make the program redirect directly to an output file in the background and then use less on that:



program >logfile & 
less logfile


See the manual for less on your system.







share|improve this answer














share|improve this answer



share|improve this answer








edited Feb 8 at 9:13

























answered Feb 8 at 8:31









KusalanandaKusalananda

131k17250409




131k17250409








  • 2





    As far as I can tell, less reads some amount of data at first, and then doesn't read more unless you scroll to the end. So there's a chance here that the main program will block on the pipeline if the output is very long. To deal with that, it's probably best to just direct the output to a file and run less on that.

    – ilkkachu
    Feb 8 at 9:03











  • @ilkkachu Good point, added.

    – Kusalananda
    Feb 8 at 9:11
















  • 2





    As far as I can tell, less reads some amount of data at first, and then doesn't read more unless you scroll to the end. So there's a chance here that the main program will block on the pipeline if the output is very long. To deal with that, it's probably best to just direct the output to a file and run less on that.

    – ilkkachu
    Feb 8 at 9:03











  • @ilkkachu Good point, added.

    – Kusalananda
    Feb 8 at 9:11










2




2





As far as I can tell, less reads some amount of data at first, and then doesn't read more unless you scroll to the end. So there's a chance here that the main program will block on the pipeline if the output is very long. To deal with that, it's probably best to just direct the output to a file and run less on that.

– ilkkachu
Feb 8 at 9:03





As far as I can tell, less reads some amount of data at first, and then doesn't read more unless you scroll to the end. So there's a chance here that the main program will block on the pipeline if the output is very long. To deal with that, it's probably best to just direct the output to a file and run less on that.

– ilkkachu
Feb 8 at 9:03













@ilkkachu Good point, added.

– Kusalananda
Feb 8 at 9:11







@ilkkachu Good point, added.

– Kusalananda
Feb 8 at 9:11




















draft saved

draft discarded




















































Thanks for contributing an answer to Unix & Linux Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f499414%2fi-have-a-long-running-script-but-want-to-be-able-to-scroll-through-the-stdout-ou%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

How to make a Squid Proxy server?

第一次世界大戦

Touch on Surface Book