rolandrock
March 24th, 2009, 06:59 PM
Dear All,
I start this thread with the intention of advertising what I think is the greatest cli program in the world of *nix and in the hope of learning about other programs that have passed me by.
THE greatest most ingenious cli program is... screen.
When a friend of mine introduced me to screen a few years ago, i thought 'Eh? So what?' but gradually I found more and more uses for it both at work and play and now it is indispensable.
So, what is screen? Well here is the definition on the GNU website:
'Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells.'
What?? It is quite an esoteric program so perhaps some examples are in order. Say you are at work running a program on a remote machine that will take 14 hours to run. You must ensure that the program continues to run when you shutdown your computer and go home. There are various ways to do this but screen is so elegant. Log into the machine, fire up screen, start the program, detach the screen session - now the screen session is handling the program as though you were logged in and at any point you (or anyone else in the world with access to that account) can log back into the machine and re-attach the screen session.
You can have many screens running on one ssh session on a remote machine so you can easily switch between (or split screen so you can monitor them concurrently) your root session, an SQL session, vim session, whatever... without having lots of windows cluttering your monitor.
If you have an unreliable connection to a remote server that keeps dropping and making a mess of your work, run screen on it. Whenever the connection drops you can reattach the session and continue from where you left off.
In education, you can share your screen session among several pupils who can follow exactly what you are doing from anywhere in the world.
At home, I run vlc (with ncurses interface) on a screen session on my main computer so I can attach it and control it from any computer in the house. Very useful for lazy people who want to start/stop/queue music/videos from the comfort of their armchair.
I also have a downloader program running in another screen that reads a fifo and wgets files for me. I use ssh to dump file names into the fifo from my laptop. This reduces the load on the wireless network, reduces the hits on my eeepc's SSD and means I don't have to worry about having files held on different computers around the house.
There are myriad uses for it. It is sturdy, stable and elegant. In short, it epitomises the whole *nix ethos. I am almost getting a tear in my eye writing this I love it so much.
So then. Beat that. I will be very impressed (and a little bit sad) if someone can come up with anything as beautiful and versatile as GNU screen.
Links:
http://en.wikipedia.org/wiki/GNU_Screen
http://www.gnu.org/software/screen/
Rock
I start this thread with the intention of advertising what I think is the greatest cli program in the world of *nix and in the hope of learning about other programs that have passed me by.
THE greatest most ingenious cli program is... screen.
When a friend of mine introduced me to screen a few years ago, i thought 'Eh? So what?' but gradually I found more and more uses for it both at work and play and now it is indispensable.
So, what is screen? Well here is the definition on the GNU website:
'Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells.'
What?? It is quite an esoteric program so perhaps some examples are in order. Say you are at work running a program on a remote machine that will take 14 hours to run. You must ensure that the program continues to run when you shutdown your computer and go home. There are various ways to do this but screen is so elegant. Log into the machine, fire up screen, start the program, detach the screen session - now the screen session is handling the program as though you were logged in and at any point you (or anyone else in the world with access to that account) can log back into the machine and re-attach the screen session.
You can have many screens running on one ssh session on a remote machine so you can easily switch between (or split screen so you can monitor them concurrently) your root session, an SQL session, vim session, whatever... without having lots of windows cluttering your monitor.
If you have an unreliable connection to a remote server that keeps dropping and making a mess of your work, run screen on it. Whenever the connection drops you can reattach the session and continue from where you left off.
In education, you can share your screen session among several pupils who can follow exactly what you are doing from anywhere in the world.
At home, I run vlc (with ncurses interface) on a screen session on my main computer so I can attach it and control it from any computer in the house. Very useful for lazy people who want to start/stop/queue music/videos from the comfort of their armchair.
I also have a downloader program running in another screen that reads a fifo and wgets files for me. I use ssh to dump file names into the fifo from my laptop. This reduces the load on the wireless network, reduces the hits on my eeepc's SSD and means I don't have to worry about having files held on different computers around the house.
There are myriad uses for it. It is sturdy, stable and elegant. In short, it epitomises the whole *nix ethos. I am almost getting a tear in my eye writing this I love it so much.
So then. Beat that. I will be very impressed (and a little bit sad) if someone can come up with anything as beautiful and versatile as GNU screen.
Links:
http://en.wikipedia.org/wiki/GNU_Screen
http://www.gnu.org/software/screen/
Rock