Keyboard Keys

The locations described are for standard (American) QWERTY-style keyboards. Layouts may differ, especially on reduced-size keyboards, as found on laptops and other (especially smaller) mobile devices. Also, the keyboard locations may commonly be different on keyboard layouts that are foreign to the United States of America.


Although web browsers are often lenient about whether a person uses a slash or a backslash, the difference is very significant in many other cases, including when the command line is used. Become familiar with the right terminology.

At least in America (and presumably English nations), the key with the slash leaning right is called the slash, while the key with the slash leaning left is called the backslash. This rather makes sense in nations where people read, type, and write from left-to-right. The backslash is leaning “backwards” from the direction that people's eyes move when they read or right from left to right.

To be abundantly clear, the forward slash typically shares a key with the question mark key, which is in a standard location on most keyboard layouts. The backslash key is often further to the right, and most commonly is also three or two rows higher than the question mark key. (However, that is not always true; some keyboards have been known to shorten shift keys and place the backslash closer to the outer edge of the keyboard.)

Most people probably grow up and become familiar with a question mark far earlier than the idea of using a pipe character like a punctuation mark. If it helps non-computer people to think of the backslash as an invention used by backwards-thinking computer people, then so be it. Please do get this straight, though, because using the wrong slash can break things with computers, and is a mistake that can be quite frustrating to deal with.

[#escchar]: escape character

The term “escape” refers to a concept of trying to treat text normally, instead of treating it with special meaning. Quite commonly, the backslash is used as an “escape” character. e.g., \n, \r, \a (alert). So, to specify an actual backslash, sometimes people need to use an escaped backslash, which looks like two backslashes in a row.

The “escape character” is frequently a backslash, but the precise character or character sequence that is used as an “escape character” can vary based on what software is being used, or perhaps what customizations people have used. So, the term “escape character” refers to a concept, not just always referring to same specific character in all cases.

The term “escape” doesn't exactly mean “do nothing”, but means, “don't apply special treatment”. As a comparison: the “escape” function in some programming languages (including JavaScript) may actively convert potentially dangerous text into text that can be used with less problems.

Sometimes people use the phrase “escape character” to refer to ASCII character number 27. The Esc key typically sends that ASCII character in text environments. (Such support may be less common in programs that actively use a graphical interface, except when terminals are being used.)

[#charpipe]: | (the “pipe” character)

The “pipe” character is sometimes called a “vertical bar”. On most keyboards, this gets typed by pressing Shift-backslash. Traditionally the pipe looks like two vertical lines, one on top of the other, so they look like one long vertical line with a small break in the middle. Sometimes, though, this character is drawn to just look like one long vertical line. (That is particularly common when using shorter fonts.) Either way is valid; both representations indicate the same character.

This is ASCII code 124.

The location of the backslash/pipe key can vary on different keyboards. This is especially true on laptop keyboards, which often stuff some keys into non-standard locations. The most common location in the late 1990's was probably three spots to the right of the zero/“right perenthesi” key, which was one spot to the right of the “equal(s) sign”/“plus sign” key, and to the left of a backspace key which is the same size as other backspace keys. On this style of keyboard, the “Enter” key is typically shaped something like a backwards L. Another location for backslash/pipe, which may have become more common in the twenty-first century, is three spots to the right of the “P” key, so it is one spot to the right of the “right square bracket”/“right curly brace” key. (In this case, the key might be a bit wider than most other keys.) Other locations include making one or more of the modifier keys, like a shift key, shorter, and placing this next to one or two of the modifier keys. (In the case of a shorter shift key, the backslash/pipe key typically is placed on the outside of the shift key.)

Note that there are also “pipes”, commonly a feature that is available when people use a command line. These may often be referred to as a Unix-style pipe, although such pipes do also get used in other operating systems including modern day versions of Microsoft Windows. So, the word “pipe” is not always referring to the keyboard key. However, if anyone refers to the “pipe key” (or the “pipe character”, this key is what is being referred to.

[#chartild]: ~ (tilde)
tilde, usually in the upper-left corner, just to the left of the number 1, and just above the tab key. Press Shift to press this (or else you are likely to get a back-tick).
[#backtick]: ` (back-quote, back-tick, “left single quotation mark”)

Sharing the same key as the tilde key; do not press shift to use this. (On a standard keyboard, this may often be to the left of the “number one” key, above the Tab key, and below the Esc key.)

Compuers using ASCII will recognize this character as ASCII code 96.

This may be called a back-tick, back-quote, or “left single quotation mark” (perhaps most famously used by HTML's &lsquo; code). Some people might refer to it with a name like a “backwards apostrophe”. AutoHotkey documentation: Escape characters calls this character an “accent”. POSIX on “Alert Character (<alert>)” names this the “alert” character.

[#chrschwa]: @ (“at sign”)
Most commonly called the “at sign”, also known as a “schwa”. Used with Shift-2.
[#chrastrs]: * (asterisk, star)

Officially named the “asterisk”; often also referred to as the “star” character. (Especially on DOS platforms where the term “star dot star” refers to “asterisk, period, asterisk”.)

Some people have also referred to it as the “splat” character. The reason why might be less clear when looking at a 5-pointed (5-“legged”) star, which is used with some small fonts, but an asterisk is most commonly shown with six “legs”. (In that case, the symbol may look like a flattened bug.)

. (period, dot)

Most commonly known as a “period” in regular speech, although sometimes referred to as a “dot” or a “point” (and often as a “decimal point”) when referring to numbers. However, when dealing with command lines, calling it the “dot” character may be most common.

[#chrexclm]: ! (exclamation point, exclamation mark, bang)

Commonly known as an exclamation point, or an exclamation mark. Many people who have worked a lot with Unix machines will also refer to this as a “bang” character.

This character often acts as the “NOT” operator, and so computer programmers may refer to this as the “NOT” character. (Despite the capital letters, which might be habit derived from aseembly language, “NOT” is pronounced just like the words “not” or “knot”.) (The term is related to the word “not”. Capitalizing the words may be an indication that binary logic is intended, reversing meaning rather than just exclusion.)

[#charhash]: # (hash mark/sign/character, other names too)

This may be known as the “hash mark”, “hash sign”, or “hash character”. Some people simply call this character the “hash”, although that can be a bit more ambiguous because the word “hash”, as a noun, is used to describe a created electronic signature (particularly when discussing file integrity and cryptography).

Also known as a “tic-tac-toe” sign (referring to a game named “Tic Tac Toe”, which is other nations may be known by the name “crosses and naughts”). Many fonts will render this like Unicode U+22D5, which is the mathematical “equal and parallel” sign, which has perfectly vertical lines (instead of being slanted to the right slightly, as most detailed resources seem to suggest are used for this sign).

Also known as the “number sign” or “octothorpe”.

Americans have also referred to this as the “pound sign”. One reason this name may be continually reinforced in the culture is that telephones have a button called the “pound” button, which displays this symbol. (When calling somewhere, some automated computers will say to press the “pound” button/key.)

Calling this symbol the “pound” symbol can be a bit confusing since England/“Great Britain” has used a currency called the “pound”. (The nation has also been known to use the Euro, prior to the “Brexit” event when Brits voted to “exit” the European Union.) So, people familar with that currency's common symbol may think of the “pound sign” as a specific shape that looks rather like a curly capital L. In fact, that symbol is what Unicode calls the “Pound sign”. (Unicode: “Pound Sign”, Wikipedia article on “Pound sign”.)

Names based on computing usage

The sequence of characters of a “tic-tac-toe” sign followed by an “exclamation point” (“#!”) is sometimes referred to as a “hash bang”. Also, the hash mark is sometimes referred to as a “she”. As a result, the “hash bang” sequence is also known as “she-bang”. (Depending on a person's accent, the name “she” may be pronounced like “sheh”, using a “short e”, rather rhyming with the “e” in “end”); not the word common English pronoun of “she”, pronounced with a “long e”, like “shee”, rhyming with “beep”.)

Often the hash mark is used as a “comment character”, so some people may refer to this as the comment character. This might be especially true when looking at a text file that is clearly using such comments (often abundantly at the start of a file). This is also the comment character for the “Bourne shell” software in Unix. However, there are other “comment characters”, or perhaps better known as “comment character sequences”, like a double-slash (“//”) or a slash-star (“/*”, which then gets paired with a star-slash (“*/”)”.

Some people have been known to call this the “hashtag character”. Such a name is shunned by other people, because this name refers to a specific implementation which is how the website uses this character, and the shunners don't want to be trying to name a character after something that feels corporate/copyrighted/trademarked.

Some people have referred to this as the “sharp” symbol, famous from its usage in musical notation, but the sign used for a music “sharp” note is slightly different (Unicode U+266F), in that it has unslanted vertical lines and it has horizonal lines which slant upwards as they move to the right.

Besides all these names, more options are mentioned by Wikipedia's article for “Number Sign”, section titled “Other names in English”.

[#chrcaret]: ^ : caret

This is sometimes also known as “Shift 6”, or the “little up arrow”. The most common official name for this character is to call it a “caret”, pronounced just like the word “carat” (used as a measurement for valuable rocks, like the weight of gemstones (perhaps especially diamonds) or purity of gold), and the word “carrot” (the food).

Another term for this character is “circumflex”. (As an example, Oracle regex(5) mentions this character by that name.)

Note: A lot of software has used the caret to symbolize the Ctrl key. (This is mentioned in the section about Control sequences.)

& (ampersand, “and sign”)

Officially called an “ampersand”. People also often refer to it as an “and sign”, although (much less commonly) some people will confusingly call a “plus sign” by the term “and sign”.

$ (dollar sign)

At least in America, Shift-4 tends to show what is referred to as the dollar sign, and produces a symbol that represents the United States dollar.

Before computers were used as frequently, many people would actually make a dollar sign by having two vertical lines go straight through the S shape. The two lines represented the concept of the letter U, and so the symbol looked almost like a letter U ontop of an S, so a commonly used name of the nation was actually (kind of) built into the currency symbol. However, that became less common as people started to use computers more. There was also a variation, also used frequently enough that people were generally familiar with it, where people used just one line. Early computers seemed to use this variation more often, which may have been done to enhance readability since computers were using a rather limited number of pixels for each character. Eventually Americans started to use the single-line dollar sign more, which may be a trend that increased as computers became more widespread. Nowadays, sometimes the dollar sign is shown as just having a short line sticking out on the top of the letter, and symmetrically a short line out of the bottom, and not even having a single line go entirely through the letter.


Also known as the minus sign. The “hyphen key” is located to the right of the zero key. Although, very often the same character will be typed if someone presses the “minus sign” key, which is on the numpad. (The exception tends to be when a program tries to provide special support for the numpad, and terminal incompatabilities cause that to not work.)

Some people have referred to this as the “dash” key. Wikipedia's article on “dash” says, “A dash is a punctuation mark that is similar to a hyphen or minus sign, but differs from both of these symbols”. The differences between these are likely going to be of interest only to specialists.

Still, specializations do exist. HTML authors may be particularly likely to learn about the “em dash” symbol, which can be written using “&mdash;”. There is also a horizontal line called the “en dash”, which HTML 4+ authors can create using “&ndash;”. The em dash is longer than the en dash (just like the lowercase m is typically wider than the lowercase n). More context on the differences are described by Line25's 10 HTML Entity Crimes You Really Shouldn?t Commit article, and Wikipedia's article on “dash”, and article, “The en dash, em dash and hyphen (also ndash and mdash, n dash and m dash or n-dash and m-dash)”.

Wikipedia's article on “dash” says that dash is “Not to be confused with hyphen or minus sign.” The same article later refers to the “preference for an en dash instead of a hyphen”, and later “the en dash is usually used instead of a hyphen”. So there are some differences that are recognized by some people.

Probably because of confusion with various types of dashes, and perhaps also because there is a Unix shell named dash (and some other shells with similar names, ash, and bash which has been very popular), the term “hyphen” is probably the name preferred and recommended by the author of this text. On the numpad, the term “num pad minus” is probably the most clear name for that key.

[#chrundsc]: _ : underscore

This key, which creates a bar that is longer than the minus sign and located lower within a character's space, is typed by pressing shift-hyphen (located between the “right parenthesi”/zero and the “plus sign”/“equal sign” keys).

Some people might call this “the underline character”. People who do that typically seem like they are unknowledgable, or at least rather unfamiliar, with the more common name of the “underscore” character.

[#chrsemcl]: ; semi-colon
a period located above a comma; located to the right of the L key (on a typical QWERTY layout).
[#chrcolon] : : colon
two dots, typed by holding shift and pressing semi-colon
[#charapos]: ' : apostraphe

Located two keys to the right of the L key (on a typical QWERTY layout), this is typically written completely vertically or with a slant from upper-right to lower-left (in the same direction as the forward slash).

At one time, the apostrophe key generally resulted in showing a single short vertical line with no slant (particularly if unitalicized). Since then, many graphical environments have started to support more character glyphs (visual symbols), primarily by supporting a version of the Unicode character set, and will draw a “right single quote” [’].

In the simpler (often older) environments where the unslanted line is used, the typical intent was for this to frequently be thought of as a standard apostrophe which may have a slight slant making it more appropriate for the “right side”, and matching the back-tick character which may be used as the corresponding left single quote.

In some cases, an apostrophe may be used like an alternative to quotation marks. So, an apostrophe may be used to specify the start of something that is quoted, and another apostrophe may be used to specify the end of something that is quoted. This is somewhat commonly supported in computer programming (only some languages support such functionality) and command line prompts/interfaces. This is even proper English, when including a quotation within a quotation, although using the back-tick at the start of the quotation would typically be preferred.

[#dquochar]: " (") : quotation mark

Also, especially when dealing with text environments, often referred to as a “quote” character. There are other quotation marks (e.g.: “ is “left-quote”, and ” is “right quote”, also known as “left double quote” and “right double quote”, or the “curly” quotation marks, and distinguished from the ‘ (“left single quote”) and ’ (“right single quote”), or the apostrophe and back-tick).

[#crlybrac]: { and } : curly braces, curly brackets

The term “curly brace” is most clear (simply due to being pretty unambiguous); also known as a “brace” or a “curly bracket”. Unicode calls these the “Left Curly Bracket” and “Right Curly Bracket”. These have also been described as “handlebars”. (They look rather like the “handle bars” of a bicycle, or similar vehicles: tricycle, motorcycle.)

Many programming languages have used the curly braces as a “grouping symbol”.

ASCII and Unicode both have the left character at position 123, and the right character at 125. (124 is the pipe.)

[#sqarbrak]: [ and ] : square brackets

Perhaps most clearly and commonly described as “square brackets” (although they seem taller than wide, and so they often look like they would form a rectangle rather than a square even if someone draw lines and connected nearby typed square brackets). Sometimes just referred to as “brackets”, the term “brackets” is also used for describing the curly braces. The inequalilty signs (“<” and “>”) look very similar to “angle brackets” (which are officially at a bit of a wider angle, making them look thinner), and so peole may refer to those inequality signs as “angle brackets”. (On modern day systems that support Unicode, that is technically incorrect to do, as there are different angle bracket characters.) Technically, the term “brackets” can be used (and also does get used) to refer to parenthesis, perhaps most often by people who use brackets outside of computers (like people who study typography, or mathematicians). To avoid confusion, it is best to not just call them “brackets”, but to say “square brackets”.

[#kbltngt]: < and > : inequality signs

Some people tend to get them mixed up, which is kind of perplexing (at least in cultures/languages where both language and numbers are read/typed/written from left to right). Stating “ 3 < 4 ” means that “three is less than four”. Stating “ 6 > 5 ” means that “six is greater than five”.

Maybe many people are just unfamiliar with the “alligator mouth” analogy. (Then again, the author of this text heard the “alligator mouth” strategy when Pitfall was a rather advanced video game. Pitfall featured alligator heads that were safe to jump on when the mouths were closed.) The inequality signs can be thought of as looking like a hungry alligator's open mouth. The hungry alligator wants to eat the bigger number, not the smaller number. (A reference to “Pac Man” could also be made.)

So the side with two ends will be near the larger number; this means the other side ends up pointing to the smaller number.

If you can remember which sign to use, then the next thing people struggle with is remembering which name goes with each sign. Well, for people who use a language that reads from left-to-right, this ought to be straightforward. If a person wrote “3 < 4”, that's the “less-than sign”, because a person wouldn't naturally say “three is greater than four”. This is simply a matter of reading from left to right. If a person wrote “7 < 3”, that's the “greater-than sign”, because a person wouldn't naturally say “seven is less than three”. Again, by reading from left to right, there's only one way that really makes sense.

Some similar characters

The IBM PC's Code Page 437 (sometimes referred to as “Extended ASCII”) have codes 174 and 175 look rather like a pair of these, although technically they may be guillemets rather than mathematical inequality symbols. The difference is simply that guillemets are wider open. A pair of guillemets pointing backwards may be recognized as the “rewind” symbol, and gullements pointing to the right may often be recognized as the “fast forward”, referencing terminology that became familiar from magnetic tapes (audio cassette tapes and VCR tapes). Some people might refer to them as a “double less-than sign” or a “double greater-than sign”. Single guillemets can also be seen with Unicode 8249 (0x2039) and 8250 (0x203A). These topics are further discussed by: Wikipedia's article on Guillemet : “Encoding” section and Wikipedia's article on Guillemet : section called “Typing "«" and "»" on computers.

Other inequality signs

The “<” is the “less than” sign. The “>” is the “greater than” sign. (There may also be other inequality signs, like ≥ (“greater-than or equal to”) or even ≠ (“inequal to” / “is not equal to”), but the “less than” sign and “greater than” sign are the most commonly used.)

The ∠ (“angle sign”) also looks close to a “less than” sign.

These, and some other (mostly mathematical) characters, may be seen by The Web Standards Project: HTML Symbol Entitties.

[#kbkeyctx]: “context-sensitive menu”/“context menu”/“shortcut menu”/“alternate menu”/“secondary menu” key

Starting with the “Windows 95”-style keyboards, this is typically located sideways (on one side, or two copies, so one on each side) of the space bar (typically not directly next to the space bar).

Some keyboards just call this the “menu” key. (The Intermec VT220 850-551-002 Keyboard doesn't.)

The typical use of this key is to pull up a “context-sensitive menu”/“context menu”/“shortcut menu”/“alternate menu”/“secondary menu”/“right-click menu” in a graphical environment. Very often, the same menu is accessible by pressing Shift-F10, which could be useful to know if this key is not available (because it is broken, or if using one of the older popular keyboard layouts that simply did not have this key).

[#kbkeymnu]: menu key

Some keyboards many have a key named “menu”. On older computers, those may have typically been used for computers that were not marketed as being compatible with the x86 standard (more commonly known as “IBM PC” back in the day, and later commonly used for running “Microsoft Windows” operating systems). See: Intermec VT220 850-551-002 Keyboard as an example.

However, newer keyboards often don't support that ancient “menu key”. If a key is labelled “menu key” and it shows up next to a “Start” key, particularly if that's to the right of the space bar (and, more specifically, between a right “Alt” key and a right “Ctrl” key), then it probably is a key intended/designed for pulling up a “context-sensitive menu”/“context menu”/“shortcut menu”/“alternate menu”/“secondary menu”.

[#kbfcnkys]: Function keys

The numeric function keys, F1 through F12, have been on keyboards for quite a long time. (Some older computer systems different numbers of numeric function keys, maybe maxing out at F8 or F16.)

They are typically called “function keys”, and are individually named using the word “function” a number. For example, the key labelled F12 can be called the “function twelve” key. However, those full names are often too lengthy for people to bother saying: they will often just say F12 (“eff twelve”).

Some laptops have added a modifier key, which tragically has been named “Fn”, which stands for “Function”. So if somebody refers to a “function key”, they might refer to the key labelled “Fn” (usually located to one side of the space bar, quite possibly between the left Alt key and the left Ctrl key.)

Some systems have enabled a feature which is called “Hotkey” support. At least, that is the name used by a BIOS option that allows this feature to be turned off. With this feature enabled (and this may be enabled by default), holding the “Fn” key and pressing a numeric function key is required for most of the system to recognize that a numeric function key is pressed. Simply pressing a numeric function key, without holding the “Fn” key, will send a different signal to the system, which is probably related to the secondary function described by whatever other writings or drawings are related to that physical key. This feature really complicates things for a user who is familiar with using the basic function keys. Unfortunately, the way to return the system to a more traditional mode of functionality is not as easy as pressing some sort of “Fn Lock” key (similar to “Num lock”). Instead, the method to undo this “enhancement” is to disable the feature in the computer's system setup (e.g., “BIOS Setup”) program.

[#kbaltkys]: Alternate keys
[#kbaltkey]: Alternate key

This is typically labeled “Alt”.

This key is often used to access menus in a GUI (as described by Using a keyboard in a graphical interfaces).

Also, a related topic: Using Alt+numpad.

AltGr/AltGR/“Alt Gr” (“Alt Graph”)

Also known as “right alt”. Keyboards for computers made by a company called “Sun Microsystems” would have an “alternate graphic” key which was labelled “Alt Graph”. Some more keyboards have had a key labelled “Alt Gr&rqduo;, and it is placed where many other keyboards simply have a second “Alt” key to the right side of the “space bar”. On keyboards that simply have two keys labelled “Alt”, the “right Alt key” is treated the same as a key labelled “AltGr” key.

Actually, most software will treat Alt and AltGr the same. For software that do treat the left and right Alt keys different, sometimes the software (or its documentation) uses the term AltGr. Simply use the “right alt” key.

A keyboard layout named “US International” may work with the AltGr key to produce some other symbols, like AltGr-5 producing a Euro key. (Interestingly, at least one keyboard by i-rocks has been known to show a Euro symbol on the 5 key, in addition to the number 5 and the percent sign, but just had a key labelled Alt, not AltGr.)

Even on such a keyboard, AltGr will not be producing additional characters (like the Euro) symbol unless software supports it. Adding such support might involve adjusting which keyboard layout is being used by the platform (the operating system, and/or the graphical interface, and/or whatever terminal emulation is being used, which may often be different based on software being used to remotely access a system).

Wikipedia: “AltGr key” shows some pictures. One shows an AltGr key, while another shows a keyboard that has additional symbols used with the AltGr key. Lower down, the article shows some keyboard layouts with the symbols that get produced using such modifier keys.

See: ][CyberPillar][ meta key
[#ctrlkey]: Ctrl

In programs that were designed to work well outside of a GUI, the Ctrl keys are very commonly used to simply send an ASCII code. There may be other ways to send the same ASCII code. These topics are discussed further at: Ctrl key keyboard sequences.

Modifier key

Keys which are typically held down, and then remain held down while a non-modifier key is pressed.

For instance, Alt-F typically refers to holding the Alt key, then pressing the F key (just a single quick tap), and then releasing the Alt key.

Shift-PgUp refers to holding the Shift key, and then pressing the key labeled “Page Up” or, if the Num Lock is on, pressing the key labeled “PgUp” (which is the same as the 9 key on the numpad). Then, after pressing and releasing the other key, release the Shift key.

Classic “modifier keys” include Shift, Ctrl, and Alt. With the newer keyboard layouts released in the late 1990s, keyboards also started to include a “Start” key. If this button is simply pressed (to pull up a menu), then it is not being used as a modifier key. However, there are often some shortcuts that involve holding down that Start key, and then pressing another key. When the Start key is used in this fashion, then it is being a modifier key.

Multiple modifier keys may be used simultaneously. Alt-Ctrl-Del to holding the Alt key and the Ctrl key. Then, with those keys held down, press and then release the key labelled “Delete” or the key labelled “Del” (with Num Lock off, though pressing the Numpad period with Num Lock on is commonly just as effective).

Some people may have some difficulty with using a modifier key in this fashion. In Unix, a well-known workaround is typically used for the “Meta key”. Some physically handicapped people have struggled with using modifier keys in the usual way, and so the keyboard may use functionality called “Sticky Keys”.

[#kbstrtky]: “Start” key/“Start button”

Introducted to the computing world by Microsoft's “Windows 95”-style keyboards, keyboards have often shown a copy of a Microsoft Windows logo. Sometimes these keys are referred to as the “Windows” key.

Using the term “Start key” is probably a good idea, as such a name would be appropriate even if a keyboard labels the key with the word “Start”, and may feel more appropriate when using an operating system other than Microsoft Windows.

Using the term “Start button” is generally not recommended, as that term often refers to a clickable object on the screen. “Start key” seems like a less ambiguous term.

In Microsoft Windows operating systems (starting with Windows 95), holding Ctrl and pressing Esc will do the same thing as simply pressing the key.

Microsoft may refer to a key like this as the “Windows” key. However, a more generic term was needed so that competitors could have a name, so the term “Start” key seems to be what has been used. The term “start button” may also refer to a graphical part of the screen that pulls up the same menu as a person who presses Ctrl-Esc or the Start key.

[#kbesckey[: “Esc” key

The key is typically labelled “Esc” which is meant to be an abbreviation for the word “escape”. This key typically is often used to close a menu or to go back a screen, or is treated like ASCII code 27, which is sometimes used as an escape character. To clarify, the term “escape character” is a generalized concept, and isn't not necessarily the same thing as what gets created by pressing the Esc key.

[#keybentr]: Enter/Return

On IBM PC computers, and similar machines that were designed to be rather compatible to that standard, the key is called “Enter”. On other systems, like the old classic Apple //e, the key was labelled “Return”.

On most computer systems, consider Enter and Return to be synonymous. That might not be absolutely true with some older equipment, like the Intermec VT220 850-551-002 Keyboard.

The key is typically to the right of the semi-colon, and many (probably most) keyboard layouts have the key being at least twice as wide (perhaps nearly triple as wide) as a standard key. The right side of the key may also be twice as tall, causing the key to be shaped a bit like a horizontally flipped capital L. In a layout that may be more common on European keyboards, a backslash key is located to the right of the quotation mark key, and the Enter key is twice as tall but not quite twice as wide on the lower row, resulting in a shape somewhat similar to a capital letter L that has been rotated half-way (so, 180 degrees).

The “numpad” (numeric keypad) will typically also have an Enter key, making the Enter key the most lower-right key of a full-sized standard keyboard. That key is often twice as tall as most of the keys on a typical numpad.

[#keysysrq] [#keyprtsc]: SysRq (“Print Screen”)

This is typically located to the right of the F12 key on full-sized keyboards, although laptops and other smaller keyboads might have a different location.

On most keys with multiple symbols, the writing on the lower part of the key is what is done if someone doesn't press the Shift key. However, this is an exception.

The PrtSc/SysRq key is most often referred to as the “Print Screen” key.

When this key is pressed, no keystroke is recorded in the standard “keyboard buffer”. Instead, the computer can respond to the key using the software BIOS interrupt 21 (0x15) subroutine 133 (0x85), which is not a process that most computer programmers would be familiar with. Wikipedia's article for the “System Request” key refers to an interview with Sandy Meade, creator of the key, stating, “The SysRq key was added so that multiple operating systems could be run on the same computer, making use of the capabilities of the” Intel 286 CPU. So the key was never meant to be used widely; it's purpose was to provide a way to override normal operation as a way to help with troubleshooting.

The standard BIOS routine, including what was supported by the MS-DOS operating system, simply ignored the key. Sometimes the SysRq key must be combined with the Alt key in order to have any functionality at all. Wikipedia's article on “Magic SysRq Key” notes that in Linux, the “Magic SysRq” functionality can be used with various combinations involving using Alt and SysRq and also another key, unless a desktop environment makes that not work, in which case the necessary keystroke sequence may be Alt+Ctrl+SysRq+another key. As a result of these complications, it is extremely uncommon for anybody to ever use the “system request” (“SysRq”) signal.

So, ignore the “SysRq” writing on the key, which is written out of precedence. People most frequently just refer to the physical key as the “Print Screen” key.

[#scrolock] [#pausbrky] [#sigintky]: “Scroll Lock”, and Pause/Break (and the “Interrupt” sequence/signal)

To press the “Pause” key, just press the key that is labelled “Pause”/“Break”. Unlike many other keys on the keyboard, the name of the unmodified key shows up on the top of the key. (Perhaps, hwoever, this will be like the “PrtSc”/“SysRq” key, which also another rare keyboard key that frequently has this unusual characteristic.)

Like the “Scroll Lock” key, the pause key might stop text scrolling, similar to how XOFF (ASCII 19, Ctrl-S) might be paired with XON (ASCII 17, Ctrl-Q). In some cases, a newline (Enter key) might serve to act similar to XON, releasing the scroll lock. Support for this has varied on different computers, and is not used as frequently in graphical environments. Although the act of pausing scrolling text is something that people don't use a key for as frequently, these keys are typically still available on keyboards.

The other functionality for the “Pause”/“Break” key is to use a “break” signal. Actually, there are two common forms of “Break”. One is to hold Ctrl and press the Pause/Break key. (MSDN: Ctrl-C and Ctrl-Break Signals indicates that Ctrl-Ctrl-Break this sends a “SIGBREAK” signal in Microsoft Windows.) The other is to send a “break” signal by pressing Ctrl-C. (MSDN: Ctrl-C and Ctrl-Break Signals indicates that Ctrl-C sends a “SIGINT” signal in Microsoft Windows.)

Many programs use both of those break sequences identically. Some other programs recognize one keystroke sequence, and ignore the other. Much less commonly, a program may actually recognize both signals, but treat them differently. One program that does treat them differently is Microsoft Windows's ping program (easiest to notice by using “ping -t ” before specifying the network address), where Ctrl-Break shows a status report but Ctrl-C actually stops the program. (Unix versions of “ping” tend to provide similar, but different, methods of how to get “ping” to show a status report.)

On a side note, related to the topic of sending a “break” signal with Ctrl-C: that combination is widely supported in non-graphical environments. This is supported by both Unix text terminals and DOS. Also, command prompts in Microsoft Windows support this. However, many other programs, particularly in graphical environments, use the Ctrl-C sequence, similar to being able to use Ctrl-Insert sequence, to copy text (as described by user interface basics).

Cisco Documentation: tips to troubleshoot a break sequence notes, “In some cases, the break sequence might not get transmitted properly when using a USB/Serial converter cable. In such cases, use a keyboard with a different connector port (for example, a PS/2).” So, note that there are some known possible hardware issues with interpreting these types of signals.

Wikipedia's article for “Break key”, section titled “Modern keyboards” points out, “The Pause key is different from all other keys in that it sends no scancodes at all on release; therefore it is not possible for any software to determine whether this key is being held down.” (The Wikipedia page cites an IBM technical reference.)

Wikipedia's article for “Break key”, section titled “Modern keyboards” mentions Ctrl-“Num Lock may be an alternative for Pause, and Ctrl-“Scroll Lock may be an alternative for Break. Furthermore, different systems may act differently: Wikipedia's article for “Break key”, section titled “Keyboards without Break key mentions other possible ways to generate the same signal, on some systems.

Num Pad (Ins, Del, and similar)

Regular/full-sized keyboards have an “Insert” key and an “Ins” key, as well as a “delete” key and a “Del” key, as well as both a “Page Up” key and a “PgUp” key, as well as both a “Page Down” key and a “PgDn” key. In each of those cases, the latter key is found on the numpad, when the (light related to the) “Num Lock” is off.

The non-numeric keystroke sequence can also be genereated when the “Num Lock” is on, by holding one (but not both) of the Shift keys and pressing the key on the numpad. (Having “Num Lock” off can still useful for highlighting text by holding down a “Shift” key and pressing an arrow key; of course the same thing could be done with Num Lock on by using the arrow keys which are not on the Numpad. People who used arrow keys for playing games may also use the arrow keys quite a lot, and so they may want to not need to hold down the “Shift” key all the time.)

Some programs may have some problems recognizing keystrokes on the Num Pad. One example is PuTTY, which often tries to support a rarely-used “application keyboard mode”. Most people respond by training themselves to just avoid the Num Pad when in PuTTY, but this feature can be disabled on the Terminal\Features menu of PuTTY.

When the NumLock is on, holding Shift and a key on the numpad may have the same effect as pressing the key when NumLock is off. For instance, when NumLock is on, pressing the period key will generate a period, but pressing Shift and that period key will delete a character. (This was verified in Wordpad and Notepad, after doing some follow-up testing after reading Ira Baxter's comment to Ira's question about Insert, and some other references on that same page.)

Unprinted characters
[#chareof]: EOF

The “EOF” character (pronounced as each letter, “E” “O” “F”) is often pronounced by its fuller name, “end of file”. The EOF character is more of a concept, rather than a specific universal value. On very many Unix systems, including operating systems that use the Linux kernel, EOF is ASCII character 4 (which corresponds to “Ctrl-D, according to the standards described by the section on control sequences). However, ASCII character 26 (Ctrl-Z) is generally EOF in CP/M and DOS (which had code based on CP/M's code or design) and derived systems, including modern Microsoft Windows systems. Wikipedia's page for “End-of-file” mentions some other systems.

So, to keep things simple, if someone says to press EOF when using a Unix operating system, then press Ctrl-D.

[#charbell]: “bell character”
\a (for alert, or perhaps audible or alarm), ASCII 7 (^G) is sometimes called the “bell” character. On some terminals, displaying the ^G character caused the computer to play a short beep through a speaker built into the system. (That typically involved the traditional “PC Speaker”, not a speaker connected to the more advanced circuitry of a modern day sound card.)
[#charlnfd]: line feed

ASCII 10 (^J), meant to advance a line. Sometimes the term “line feed” may be abbreviated as \n. The letter n refers to the concept of a “newline” character sequence.

The operating system may actually have an official “newline” character or an official “newline” character sequence, and that “newline” character (sequence) may be the same as a single “line feed” chaaracter, or may be different. Even if the operating system uses a different character (sequence) as the official “newline” character (sequence), the abbreviation of \n may simply be the “line feed” character. In fact, this is the case for MS-DOS and derived operating systems, including modern Microsoft Windows systems, so this is, in fact, quite common. That is why a clear distinction is being made here: \n refers to the generalized concept of a “newline” character, and may actually be a “line feed” character, and doesn't necessarily refer to the operating system's official “new line” character (sequence).

[#charcret]: carriage return
\r, generally ASCII 13 (^M), meant to move the current (cursor) position to the far (left) side of the screen
[#charnwln]: newline

In Unix (or, at least, most Unix systems), the “newline character” is the “line feed” chracter. There's no real difference between a Unix “newline character” and the standard “line feed” character. This can also be true with some other operating systems, such as Cisco IOS. However, some other operating systems may have a difference between “line feed” and “newline”.

In Mac OSX, like most other systems using a lot of Unix code at its heart, the “newline character” is the “line feed” character.

In older versions of “Mac OS”, the “newline character” was the “carriage return”.

In DOS, the term “newline character” is often used to refer to the “newline character sequence”, which is a carriage return followed by a line feed (\r\n).

In the QNX operating system, before version 4, the ”record seperator” (“RS”, ASCII 0x1E) may have been the character used for this.

Often, the difference really doesn't matter much. Other than using twice as many bytes when using the \r\n sequence, there's no major advantage to using one system or the other. When people consistently use just one operating system, issues usually do not happen.

However, some software can have troubles when a document meant for one environment gets used in another environment. For example, in Microsoft Windows, if Notepad opens a document that is using the Unix standard, Notepad might show all of the text as being on one line. (Wordpad handles this better.) Unix software might visibly show the carriage return characters. And some other software might mishandle the character, possibly even by breaking the software (although that is likely rare; much more common might be to have a character, or effects caused by the unexpected character, to be seen or otherwise used in a location where it shouldn't be).

These issues, caused by document/information sharing, have become more common as the world shares more information, which became much more common as computer networking became more common.

A “newline” character might also be referred to by other names, like EOL (“end of line”), or perhaps “hard return”. (See: Wikipedia on “hard return”.)

Historical notes
Stephen Kitt's answer, on to allo's question about “Windows using CRLF and Unix just LF” provides some description of the historical reasoning used by operating system creators that decided on different standards of which charcter sequence to use. That answer does cite the history section of Wikipedia's entry on newlines. Elsewhere in that same article, Wikipedia's entry on “Newline”, section called “Representations in different character encoding specifications” lists different operating systems and supported newline character sequences.
[#charfmfd]: form feed

ASCII 12, Ctrl-L, \f. Also referred to as “page eject” or, a bit more frequently, as a “page break”. In times past (particularly Microsoft Windows became dominant in the late 1990s), one relatively common action was sending a text file to a printer without using some specialized printer driver that performed text formatting. In those days, a printer that received a “form feed” as part of the text stream would treat this character as a command to continue printing on the next page. That practice is far less common now that people have started using word processors to create documents with more complex file structures, but the ASCII character 12 continues to have the old name of “form feed”. Graphically, the ASCII code pages typically showed this as looking like the “female sign” (which looks like a circle on top of a plus sign).

[#charbksp]: backspace

Sometimes the abbreviation of “BKSP” is used for the “Backspace” key. Some keyboards may have the key be twice as wide as a typical key on the keyboard, while others might not (and may place the backslash/pipe key to the left of the backspace key). Sometimes the key is just labelled as with a left arrow. The key is typically located in the upper-right corner of the main area, below the F12 key, and one or two keys above the Enter key. (If the enter key is more than one key tall, then the backspace is just above it. If the enter key is only as tall as other keys, it will be on the “home row”, so commonly the backspace key may be placed there.) So the backspace key is to the right of the numeric keys.

Pressing the Backspace key will typically send ASCII code 8. Some remote terminals may swap the effects of the Backspace key and the Delete key. With some terminals, using Ctrl-Backspace might also send ASCII code 8 or ASCII code 127.

[#chardel]: DEL

Besides the “backspace” character (ASCII code 8, typically sent with the backspace key, there is the “delete” character, which is ASCII code 127. This is commonly generated by pressing the Delete key (or Del on the numpad).

In some terminals, pressing the Delete doesn't end up generating the DEL character. In that case, there is a workaround that will often work: Ctrl-\. This is discussed further in the section on Control sequences.

Other keys
[#keysak]: secure attention key (“SAK”)

On some older computers, this was a key that was designed to be able to switch operating systems. Basically, the effect was to reboot the computer. On newer hardware and software, there is often not a single key that is labelled “secure attention key”. However, the concept of the SAK can be implemented by pressing some combination of other keys.

The most famous of these keyboard combinations is the three finger salute: Alt-Ctrl-Del. DOS used that to reboot the machine, and Microsoft Windows has used that as a way to show some specific user interaction (like bringing up a specific menu) that the operating system provides. (The general thinking was that most other software would not have people pressing Alt-Ctrl-Del for any other purpose, since that keyboard combination typically caused a reboot in older software environments.)

Linux SAK documentation shows that Linux tends to use Ctrl-Alt-Pause/Break.

[#virtkbcd]: Virtual Key Codes

Some keyboards have actually had keys (or perhaps “buttons”) to peform certain functions such as altering volume, telling a media player to move onto a new track, having a web browser to go a user's home page, opening up other applications like an E-Mail client or a calculator, or performing some sort of search. The terms “keysym” (presumably for “keyboard symbol”) or “virtual key code” have been used to describe the "key code" that gets generated by some of these keys. (e.g.: ArchLinux: Extra Keyboard keys mentions scancodes, keycodes, and keysyms.)

Possible related sources: List of Virtual Key Codes, Keytouch: How to create a keyboard file (lists events, also ) and Ubuntu documentation: XfceMultimediaKeys, MSDN: Virtual-Key Codes (lists events), MSDN: Keys and Key Codes for Windows Mobile, W3C: Keyboard properties, JavaScripter: Keycodes (checked in 2015, this showed Firefox different than other browsers for volume), SuperUser: Mac virtual keys.

e.g. for using them: “Hey, Scripting Guy!” Blog: Weekend Scripter: Cheesy Script to Set Speaker Volume

To adjust how they work: XBindkeys or KeyTouch may help for Linux.

Microsoft Windows

Some of the virtual key codes, like Volume increasing, correspond to some of the common keys.

Handling application keys
How does the operating system know what program to run when an Application key is pressed?

Let's take a look at a sample: how the Calculator key works:

Runs the program shown by this:

reg QUERY HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\AppKey\18 /v ShellExecute

That value could be customized. The following shows how to change it back to normal behavior:

reg ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\AppKey\18 /v ShellExecute /t REG_SZ /d calc.exe

(Note: RegEdit will show HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\AppKey\ in character order, so 199 comes before 2. That is because the first character, 1, comes before 2. However, the following table shows things in actual numerical order.)

Here are some default values that have been seen:

VirtKBReg#Key valueKey dataNameExplanation
7AssociationPresumably related to a web browserWebHome(have default web browser go to home page)
15AssociationmailtoMail(Opens user's default E-Mail client)
16Association.cdaMedia(Unknown: presumably starts CD audio?)
17ShellExecute::{20D04FE0-3AEA-1069-A2D8-08002B30309D}My ComputerOpens “My Computer” window. (As noted by Microsoft Windows components), running “Explorer ,” would do the same thing.
18ShellExecutecalc.exeCalculatorOpens a “Calculator” program

These values were obtained from the registry. The names were taken from Microsoft Windows XP Registry Guide Chapter Sample: “Chapter 5: Mapping Tweak UI”: “Command Keys” section Table 5-11.

Similar/related: HKLM\SYSTEM\CurrentControlSet\Control\MobilePc\HotStartButtons\ may exist. Based on Question about Action Keys (answer by “Cyclops”), a subkey named 2 had a value called ApplicationPath.

Based on info from a Forum post and comparing to MSDN Virtual Keys, it appears that the numbers in this "AppKey" registry key are numbers added to 0xA5, so 1=A6.

Some common virtual keys

(This is speculative, and has not been thoroughly tested. Presumably these will work as described/expected when using WScript.Shell SendKeys. (For details, see: keyboard details section on using WScript.Shell SendKeys). The Registry keys can be altered as described in another (the previous) section.

166Browser BackWeb back
167Browser ForwardWeb forward
168Browser RefreshReload web page
169Browser StopStop loading web page content (Currently untested)
170SearchIn Browser: Use Search. Otherwise: have operating system search (by opening up an Explorer window with an interface to search)
171Browser Bookmarks/Favorites : If in web browser, show Bookmarks/Favorites
172Browser Home / WebHomeStarts default browser
173Volume MuteToggle Mute/Unmute
174Volume DownVolume lower
175Volume UpVolume Raise
176Media Next Track(untested)
177Media Prev Track(untested)
178Media Stop(untested)
179Media Next Track(untested)
180MailRuns the executable related to the Microsoft Windows's default handler for mailto:. Ignores parameters; a batch file can be specified if parameters are needed.
181MediaRun AppKey 16: defaults to Media Player
182My ComputerRun AppKey 17: defaults to Explorer window of My Computer
183CalculatorRun AppKey 18: defaults to Calculator

Some of this is largely based on “Hey, Scripting Guy!” Blog: Weekend Scripter: Cheesy Script to Set Speaker Volume and some comments made on that page. SuperUser question was used for some more.

Experts Exchange page on remapping quotes some values from a Winuser.h file which may show some more registry keys from right under AppKey.

Based on Andries Brouwer Keybaord scancodes: Special Keyboards (MF II keyboards), it looks like different keyboards may have different effects for the same scan code. Perhaps drivers caused different effects. What this would mean is that sending the keystroke for something like the “Volume Down” might not work on systems with a custom driver that treats that scan code a different way. However, this likely will work on many systems.


Ubuntu: Hotkeys lists some components and packages, like xkeyboard-config.



Ubuntu documentation: MultimediaKeys refers to KDEMultimediaKeys for Kubuntu, XfceMultimediaKeys for Xubuntu. Also: Ubuntu documentation: Hotkeys Architecture

Keyboard layouts
[#ivt220kb]: Intermec VT220 850-551-002 Keyboard

This was a rather interesting-looking keyboard. It defies some of the conventions.

The keyboard had both an Enter key (in the expected position, to the right of the “home row” letters) and also a smaller and less convenient “Return” key.

It also had what appears to be a “shortcut/context menu” key, as it has the same graphical representation as a more typical keyboard had between the right Alt and Ctrl keys. Another key, which was in the upper-right corner, was labelled as “Menu”. The same keyboard also had a "Microsoft Windows" logo, using the older logo seen from pre-XP versions of Microsoft Windows.

ACT Apricot

This had a key labelled “MENU”, according to a picture seen at Quadibloc: Comments on the Keyboard of the IBM PC. This likely pre-dates the “menu” key promoted by Microsoft.