It doesn’t matter how drag’n'drop GUI based FTP clients are there comes a time when only the terminal will do.
Certainly at the least for those times when X isn’t up.
And when it comes to command line FTP there are few clients as rich and versatile as NcFTP. Don’t let its demure console nature fool you — it’s far more capable than most GUI based clients.
By default NcFTP will login anonymously to any address you specify but you can specify username password and port on the command line and — when you quit — will be prompted to bookmark the site. Future visits are then just a matter of launching it as: ncftp [bookmark]
NcFTP defaults to binary transfers as you’d expect and features a few more commands above the norm — bgget and betput allow you to start background transfers and return control to the terminal immediately so you can continue to browse. cat can be used to view files inline rather than downloading and viewing with another program and by default the get and put commands are batch enabled meaning they work just the same as the traditional ‘mget’ and ‘mput’ multiple-file transfer commands. So you can for example upload a range of files by simply using: put mypics*.jpg
NcFTP also includes a swank — and configurable — status bar (the ‘progress-meter’ setting) so much nicer than using the ‘hash’ command from traditional FTP filename completion (press TAB ala Bash) auto-resume directory list caching war-dialing for when server logins are full and recursive transfers. It’s enough for any Linux nut to get hot under the collar for. Or maybe that’s just me.
Also bundled with NcFTP are standalone programs for ‘get’ ‘put’ ‘ls’ and batch processing so you can transfer without any interaction (much like wget though wget is easier).
There’s much more functionality than covered here so give it a go and man ncftp for more. NcFTP is included in all major distributions so check your package manager and if you really fall in love with it it’s available for Windows too.