I have often wondered why the ~
(tilde) represents the home directory of a user. Is there a reason behind this, or is it just some infrequently used character?
2 Answers
On Unix-like operating systems (including BSD, GNU/Linux and Mac OS X), tilde often indicates the current user's home directory: for example, if the current user's home directory is
/home/bloggsj
, thencd
,cd ~
,cd /home/bloggsj
orcd $HOME
are equivalent. This practice derives from the Lear-Siegler ADM-3A terminal in common use during the 1970s, which happened to have the tilde symbol and the word "Home" (for moving the cursor to the upper left) on the same key.
You can find photos of the Lear-Siegler ADM-3A keyboard on this site.
This terminal is also the source of the movement commands used in the vi
editor: h, j, k, l for left, down, up, right.
-
50I have also read this is why
Esc
is used to switch modes invi
, since the key is easy to reach on this type of keyboard. Mar 16, 2012 at 15:27 -
45Reading this answer, I just realised why GMail's shortcuts also use 'J' and 'K' for move to previous email and move to next email, respectively!– rigvedMar 20, 2012 at 7:15
-
61
-
41I'm not sure if it is relevant:
Some teleprinters had a "Here is" key, which transmitted a fixed sequence 20 or 22 characters [...] This was commonly used to identify a station; the operator could press the key to send the station identifier to the other end
. Source: en.wikipedia.org/wiki/Teleprinter#.22Here_is.22_key– pbmJan 21, 2013 at 15:53 -
14Is this also the reason why in RegEx, "^" is the start of a string? Feb 15, 2014 at 10:59
The Home key was also used for the tilde character on old terminals. See here for more details.
mkdir '~'
because you will forget escaping thisrm -rf ~
(worst day ever)!rmdir
.