Cool Command Line Apps for GNU/Linux and other Unix Systems
Even though I am a strong advocate of learning as much as you can about using the command line, I admit I like my GUI a lot (and Compiz of course
). The CLI can be really useful for repairing your system or just doing some task that takes far more clicks in the graphical interface. For instance, in Debian it is much easier to open the console and write apt-get install abiword than to wait for Synaptic to load, search for Abiword, click the check-box, confirm the install and close the front end.
Sometimes you will find yourself in a situation when you don’t want the app to stop working when X is restarted or broken. Sometimes you just want a very light application, and nothing is faster than a text interface. For example, when I install the new nvidia drivers on Debian it sometimes breaks my system – but I want to listen to a podcast while doing the repair work. If I used Banshee, the thing would stop playing when I restarted X. By opening a virtual terminal, by pressing say Ctrl+Alt+F4, I fire up sox and play the mp3 in there. Works great and X does not interfere with the playback!
So what can new users do with the command-line while enjoying the GUI? There is a multitude of applications that do the same jobs as their graphical equivalents, but are not dependent on X. Using them is just a matter of learning a few simple commands. You’ll be up and running in no time.
Also, check out CLI-apps.org where you can find lots more!
1) rtorrent is a powerful CLI torrent client. While the interface itself is very “empty”, it can do most of the things other full-featured torrent clients do. Find the torrent file by pressing Return (or Enter) and navigating to your torretn file. rtorrent.rc configuration file, you can normally find an example in /usr/share/doc/rtorrent/examples/rtorrent.rc

Even though the program will warn you there is no such file on first start, you may use this exampel configuration file to setup rtorrent for maximum speed, IP masking etc.
You can find out more about configuring it and a few mroe tips and screens here. An alternative to rtorrent is a similar program called (Enhanced) ctorrent.
2) w3m is a great little web browser for the console. It features tables, tabs, frames, SSL connections, color and even inline images on suitable terminals. When you are not in X, w3m becomes a great way of searching Google and forums when you are troubleshooting. The navigation is very easy when you get used to it and w3m renders pages surprisingly well, even Gmail. Emacs uses w3m to display pages in the text editor itself.

Note: w3m’s homepage hasn’t been updated, so I’m not linking it. Just Google w3m to find otu more about it. Also, every distribution should have w3m either installed or in the primary repos.
3) bashpodder As a podcast listener, I must not forget to add bashpodder to my list. It is an extremely simple and robust command-line podcatching client written by Linc from the Linux Link Tech Show podcast. While the setup requires you to do some manual work, the program itself actually uses wget behind the scenes and is the perfect client for older computers or people who just like it simple – you only need wget, sed and bash.
There are GUIs available for bashpodder, too (like the depicted KPodder).
4) finch is probably already on your computer, if you installed Pidgin. This surprisingly advanced CLI multi-protocol instant messaging client enables you to use most of the features you get in Pidgin, without the need of a graphical interface. The UI is pretty simple, but at the same time easy to understand. Just run ‘finch’ in the shell and try it out, if you already have Pidgin on your machine.

5) Mutt and 6) Alpine are email clients for the command-line. They are the ‘mammoths’ of email, as they have existed for almost about ten years now. Bot have their advantages and disadvantages (for instance, Newsgroups support is much better in Alpine). Personally I would recommend using Gmail in w3m if you already want to have email in the CLI, though many people use text-based email clients, especially Alpine, which is a descendant of Pine.

Read more about these two mail clients here, where the author is much more knowledgeable about them than me. Even though it is a ghastly translation of a German article, I believe you won’t have any trouble understanding it.
Do you still use any CLI apps? What do you think about CLI applications? Tell us in the comments.

![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=abadc79f-4060-4ac3-96b9-99d5726cc9a1)

There’s Irssi as well (I’m really surprised that wasn’t mentioned). I also like a few configuration tools that are command-line based – Ceni, the network configuration utility used in Sidux, is really lightweigh but easy to use.
There’s also aptitude, vim, and tin.
Well, don’t be surprised. That’s what the comments section is for. I only tried to recommend stuff I know something about. So feel free to talk about YOUR favorite apps
Ther are lots of great ncurses apps: ncdu – a disk usage tool which is easily used in the console or invoked from your file manager with a script or custom action. Much faster than baobab/filelight and more functional too. cbm – simple bandwidth monitor. saidar – system info/monitor. aria2 – extremely capable download tool, handles regular http/ftp with added capability of multi-threading, bittorrent, metalink, simultaneous download from multiple types of sources i.e. can download file from http and via torrent and be able to seed everything it accumulates as it does it. Let’s not forget midnight commander, about as good a file manager as you can find on the console. How about moc (music on console), about the best music player I’ve used gui/console/gnu+linux/windows/anywhere!
btw rtorrent cannot mask IP address, the encryption in bittorrent is principally to disguise/obfuscate the protocol in a bid to beat ISP bandwidth shaping. I can promise you thet however you use rtorrent your IP address is fully visible. And the easy way to load torrent files is to drop them into a pre-configured watch folder that rtorrent is polling. http://libtorrent.rakshasa.no/wiki/RTorrentCommonTasks is a great place to find well explained short examples of useful rtorrent options/capabilities.
my favourite console www browser is elinks – tabbed browsing, bookmark management, download management…it has everything except images.
another feedreader – newsbeuter. It has a very good interface, easy controls and an integrated podcast downloader called podbeuter.
sshfs – mount remote folders/filesystems in your home directory securely and without the hassle of samba or nfs.
htop – very good system monitor in the style of gnome system monitor but in the console.
Last on my list and definitely not least is screen, which makes working in the console a real pleasure. There is screenie for people who can’t remember three key combos
and there’s more!
nano – I haven’t used vim for a long time because nano is so easy.
smbc – twin pane samba file manager. This is easy!
dict and dictd – no more waiting for slow free online dictionary searches, have dictionaries, thesaurus etc available instantly in your terminal.
tilda – instant drop down terminal for gnome/gtk based desktops, like yakuake but I think more configurable.
I echo your recommendation of Alpine. I used Pine for some time.
While I usually use Gajim for Jabber, I was impressed by Mcabber:
http://imagenes.sftcdn.net/es/scrn/51000/51153/3_mcabber.jpg.
I have also used Mp3blaster:
http://syntaktisk.dk/grphcs/nox/mp3blaster.png
While I generally think calendar applications suck, I found Calcurse useful:
http://syntaktisk.dk/grphcs/nox/calcurse.png
I used to use the hierarchical notebook(hnb):
http://syntaktisk.dk/grphcs/nox/hnb.png
There is a distro called inx which is packs lot of cool command line apps.
1+ for elinks and rtorrent
Raggle is a great RSS reader for the console
iotop – shows processes doing i/o in ‘top’ format.
http://guichaz.free.fr/iotop/
axel – wget on steroids. opens multiple connections, so avoids throttling on remote ends. does not support resuming (i.e., no ‘wget -c’ equivalent switch).
http://axel.klik.atekon.de/
newsbeuter – console based RSS reader. allows saving of individual posts. supports killfiles.
http://www.newsbeuter.org/
screen + mutt + lynx + irssi + mc
Gotta have screen
I’ve gathered a number of popular console-based apps here:
http://tim.thechases.com/bvi/console.html
and broken them down by category of usage. The original catalog was developed for blind Linux users (http://leb.net/blinux/blinux-list.html) list, and two of the applications (the time-tracker and the mencal2) are some of my own creations.
i will try one of these ,
thnx about topic
0verkill:
http://artax.karlin.mff.cuni.cz/~brain/0verkill/
great compilation, but don’t forget to include the pico or vi editor, these are the editors most of the linux command line lovers can’t live without
—————————–
http://www.seoroot.com/blog
[...] http://www.internetling.com/2008/11/29/cool-command-line-apps-for-gnulinux [...]
Oh, forgot to add Snownews:
http://kiza.kcore.de/software/snownews/
A very nice RSS reader I used on the BSDs.
Ahem… When it comes to editors / IDEs, GNU Emacs is my choice:
http://www.gnu.org/software/emacs/
Has a GTK version, Windows keybindings for newbies, incremental search, search and replace with regular expressions, file search and replace,… the whole shebang.
But, please, no Emacs / vi comparisons here. It really comes down to personal choice. Just try them both. See which one you prefer.
Ok, sorry, the “GTK version” bit is not relevant for this post.
But to say “these are the editors most of the linux command line lovers can’t live without” without mentioning “Emacs” is a sacrilege.
Ok, and now for something completely different…
oh! you forgot fdupes used to find duplicate files in binary level,it’s great!
Great list.. I often install server versions of Linux without X, so good command line/console applications are really useful.
Thanks, Gary
Here’s another one I use in preference to any graphical app: ripit http://www.suwald.com/ripit/ripit.html
“The program will do the following without user intervention:
# gets the Audio CD Album/Artist/Tracks information from CDDB
# rips the Audio CD Tracks
# encodes to flac, mp3 or ogg
# id3 tags encoded songs
# Creates an playlist (m3u) file
# Can generate a toc (cue) sheet for nice DAO burning
# Can prepare and send a CDDB submission and save it locally
# Can extract hidden songs and split ghost songs
# May create md5sum files for all tracks
# Run several encoder processes at the same time and same run
”
I love the fact that it can encode simultaneously to multiple formats (you can set nice value and number of threads) and especially that each format gets written to a different folder if preferred. I just issue the command ripit in the console and a little while later I have an appropriately named folder of named, tagged flacs with .m3u and another of oggs with .m3u. It has a few other tricks too, you can distribute the ripped wavs via ssh to be encoded elsewhere. One of the things that surprised me most is that this is probably the *easiest* CD ripper I’ve ever used as well as being the most usefully configurable.
If you haven’t learned “screen” – learn it… Learn how to make new screens and copy and paste; it will change the way you compute. Figure out how to use ` or ~ instead of CTRL-A and see how much faster you can do things…
I also find elinks better than w3m or lynx; primarily because my mouse works like a mouse – I can scroll around, and click on links, even through a screen session. To halt this action in Putty, just hold down Shift.
By taking the music player one more layer away and making it a daemon (mpd), you can gain even more control over your audio. ncmpc is a great ncurses based front-end for mpd.
I tried finch, but found it left way to many artifacts on my screen. Centerim did the trick for a while, but the protocol support doesn’t seem 100% Then I found irssi and BitlBee and never looked back. BitlBee is more a daemon than command-line tool, but it relates – by running as an IRC server and connecting to all the major chat networks, it allows you to connect via irssi (or any other IRC client) and communicate with all your IM buddies. The best thing – your server stays online even when you’re moving around, so you’ll never miss a message.
I recommend searching through your package manager for the key phrases “text mode” “ncurses” “cli” and trying things out – and reading lots of articles
Great comments!
I use and highly recommend tcptrack for monitoring TCP connections on the network.
tcptrack displays the status of TCP connections that it sees on a given network interface. tcptrack monitors their state and displays information such as state, source/destination addresses and bandwidth usage in a sorted, updated list very much like the top command.
It’s very useful when you want to find out which connection is hogging all the bandwidth, or want to find out how many connections are there with a specific remote host.
Site @ http://www.rhythm.cx/~steve/devel/tcptrack/
Well I definitely use mplayer for all my Music/Video/DVD/Radio/Streaming activities , This Program can do miracles !! I use emacs -nw as an IDE , As a hobbyist programmer i spend 90 % of my computer non internet time at the CLI , for the mere fact that it is A LOT faster/ less resource eater Than any GUIs!
rTorrent looks pretty sweet.
[...] Cool Command Line Apps for GNU/Linux and other Unix Systems Possibly related posts: (automatically generated)Articles Collection of Oct’08HP releases netbook interface for UbuntuReview: Ubuntu’s New ’Gutsy Gibbon’ Brings Linux Out of the Jungle [...]
хех. вот те раз …
emm.. strange )
My command line apps:
Mail: Mutt+fetchmail+procmail+nbsmtp+urlview
Web: ELinks
Download manager: aria2
RSS feed: newsbeuter
Website mirror utility: HTTrack
Notebook: hnb
Text editor: Vim
here some apps i use some else from you could also find interesting
music related
=============
mpd – music player deamon
mpc – music player console app to send commands to mpd
ncmpc – a basic ncurses based mpd client
ncmpcpp – an enhanced ncurses mpd client written in c++
network mangement related
=========================
lft – layer 4 traceroute, to get every hop on your traceroute
mtr – matt’s traceroute
iftop – another ncurses network meter
ettercap – A suite for man in the middle attacks and network mapping
arping – layer 2 ping for hosts not sending icmp messages.
xprobe – Active OS fingerprinting tool, very quick.
wavelan – Wireless monitor panel plugin
iptraf – IPTraf is an ncurses-based IP LAN monitor
Hey ! So cool apps !
”;
A few word about how I use emacs into the terminal :
_ launch emacs -nw (create an alias for this, for example cemacs)
_ minimize it with C-z, allright
_ then you would type “fg %emacs” to re-open it : too long
so create a keybinding in your .bashrc like “bind -x ‘”\C-x\C-e”:fg %emacs’”
So you just have to press C-x-e
_ be careful of interference problems if you open another emacs instance. So you may want to use emacsclient
cemacs () { #in .bashrc
if (ps|grep emacs); then
cecho $j “Beware, emacs’s already running
echo “let’s open these files in the same session anyway”
sleep 1
emacsclient -n $@
fg %emacs
else emacs -nw $@
fi
}
and in your .emacs :
(server-start)
_ now it’s useful and very powerful !
Then I use 2 scripts to listen some music with mplayer :
_ to listen in shuffle mode, use these in a script :
find $@ ./ -iname “*.mp3″ -o -iname “*.wma” -o -iname “*.ogg” -o -iname “*.m4a” -o -iname “*.wav” \
|grep -i -v INCOM >my_playlist
mplayer -shuffle -playlist my_playlist
_ and then a customized find function to find and play files quickly in all the subtrees of your dir, but it’s a bit long :p But this is really quicker than GUIs.
Really cool post! Thanks much!
My 2 cents:
To-do / time-management:
taskwarrior
Music:
Practical Music Search (mpd client / vim-oriented)
Web:
Vimperator (not really a console app but you can firefox behaves as if it were one!)