24 April 2011

Invaluable CLI software I just can't do without

When I started using computers at school (a long time ago) there weren't any graphical user interfaces available. Everything was done typing commands at the terminal. When I tell younger people about it they just can't believe it. Sometimes they see me typing strange words in a strange little black window with green letters (yes, I'm a bit nostalgic) and they wonder if I am gone nuts or something. Telling them that that was the usual thing long ago doesn't impress them much. Telling them there weren't mice with pointers to click on icons is something they just can't figure out.

Well, I like using the CLI sometimes but on the average I spend most of my time on the GUI. It's all about getting used to it. And the eye candy counts. But now that I finally own a network server I need to revisit the software of the good old days. (For your information: Some of the software I'm going to describe right now is newer than the software I was refering to above. It's just a rhetorical license)

Although it is attached to a local network, I do not have physical access to my server. I handle it remotely using ssh. I tried telnet at first because there are no security risks here. And telnet works just fine but it does not have scp nor sftp which are great.

Let me first make a list of the software I use; and then little by little I'll try to add more information:

Must-have (on a network server)

-httpd server (namely apache2)

-ftp server (namely proftpd-basic)

-nfs server (nfs-kernel-server)

-Remote control utility (telnetd or ssh)

-top and apachetop (cpu and server monitoring tools)

-wakeonlan (on the local machines) and shutdown (on the remote server) A server is supposed to be up and running 24/7. However a reboot is necessary sometimes. If you halt (-h) it instead of rebooting (-r) you definitely need wakeonlan.

Handy file manager

-mc (the good old midnight commander)

-This-is-not-a-file-manager but I didn't know where to make this absolute gem fit: screen a multiplexing terminal program. A must-have of remote administration. I personally use tmux because it has some features that I prefer like for example: splitting buffers vertically.

Useful utilities (in no particular order)

-aptitude (package manager. You can use apt-get too)

-elinks (full featured web browser)

-mutt (email client) You will definitely need fetchmail as well. In order to learn how to configure fetchmail you can go here

-In order to communicate with the outside world (apart form simple email exchange) I use centerim (im) and irssi (irc)

-calcurse I mainly use it as a todo list utility.

-wget (retrieves any file over the net)

-I like gftp-text but the ftp program is ok.

-nano or vim (text editors) Although you can also use mc's internal editor

-cmatrix (Awesome)

Last but not least just remind you that many of the programs that you use at the GUI either have a CLI counterpart or can be managed from the command line. Some good examples are gftp (gftp-text) or mplayer (mplayer-nogui).

mplayer can also play videos/films in ascii using the libcaca library (In Debian caca-utils comes with cacaview, cacafire and cacademo). Try this:

 $ mplayer -vo caca <file>
Or this:

$ cacaview <file>
Another recent discovery is nvlc a full featured ncurses interface for vlc