How to wget

GNU wget is an unavoidably common command-line download tool. With the -r flag, wget will basically spindle around the entire internet and download it to your computer. Moreover, without extra parameters given, it will preserve the folder structures it finds on the source locations, so that you stand no chance of finding anything on your computer. If you are like me and you want to download things at a specific location in the source server to a specific folder at your destination, just the files, not the folders, then here is an example how to reduce wget’s quirky behaviour.

Continue reading “How to wget”

History of commands in the shell

The best command to review most recent commands:

fc -lr

 The above command lists the latest commands in reverse order. It doesn’t list many. To see the entire list, type:

fc -l 1 | less

Simple fc without any arguments picks the latest command in the history, opens it up in your preset command-line editor, and then launches it when the editor closes. There is no stopping the launching, as far as I know, except by emptying the editor and closing it.

To launch an editor according to my liking and with arguments I don’t ordinarily use in that editor, I use:

fc -e "nano -k -U"

Additionally, there’s a way to re-launch commands by means of fc. For this, do first fc -lr to get some commands with their respective history numbers and memorise the number you want to re-launch. Then:

fc -ls #

where # is the number. This re-launches without editor (the argument -s does that). More info:

man fc

Inform thyself of the commands in your computer

man + cmd usually gives the most in-depth answer when seeking information about a command. Most Linux commands have man pages. Some don’t.

In case of missing man pages, the given command may provide information about itself by one of the following:

cmd --help

cmd -help

cmd -h

Substitute cmd for the command you want to know about.

Additionally, there are special commands on Linux whose function is to provide information about other commands. Some of them are:

type cmd

whatis cmd

whereis cmd

Find out the time in other time zones

TZ='America/Chicago' date --date='TZ="Europe/Berlin" 2100'

This command will output the answer to the question: When it’s 2100 (9:00 p.m.) in Berlin, then what’s the time in Chicago?

To find the timezones you need, use tzselect.

Make Aspell actually work

Aspell is a command-line spellchecker, useful for Nano and Mutt for example. The only problem is get it actually to work.

System Locale versus Spelling Dictionary

Aspell works out of the box if your system locale is English and you want to spell check only the same language. This is not mostly the case. My system locale is different, but I want to spell check English.

Command-Line Options versus Configuration File

Aspell’s behaviour can be modified by adding command line options, but this is useless, because normally Aspell is invoked from another program, such as Nano or Mutt. Aspell’s behaviour can be modified also by tweaking a config file, which would be useful, if the instructions on how to do it were not utterly confusing.

The config files mentioned on man aspell are not in the indicated locations, not in my system at least. The way to get access to the content of configuration options is to do

aspell dump config > .aspell.conf

This creates the file .aspell.conf whose settings Aspell will follow, when set correctly. Initially the content is entirely commented out and this is a good thing, because nothing in there is usable. You can try uncommenting some lines, but you will see that these are not workable settings when you invoke Aspell.

Setting a Spellcheck Dictionary

If your system locale is other than the spellcheck language that you need (which is the case for pretty much everybody outside the English-speaking world), you will need to first install an English dictionary in addition to Aspell itself. The name of the package to install may be aspell-en or aspell-uk. Both are English, but the latter is British.

After the necessary dictionaries have been installed, open the .aspell.conf file. Add the lines,

  lang en  master en 

This makes Aspell workable for a start. Other settings may be useful too, but they are beyond my scope.