{
    "mode": "man",
    "parameter": "term",
    "section": "7",
    "url": "https://www.chedong.com/phpMan.php/man/term/7/json",
    "generated": "2026-06-13T22:56:24Z",
    "sections": {
        "NAME": {
            "content": "term - conventions for naming terminal types\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "The  environment variable TERM should normally contain the type name of the terminal, console\nor display-device type you are using.  This information is critical for  all  screen-oriented\nprograms, including your editor and mailer.\n\nA  default TERM value will be set on a per-line basis by either /etc/inittab (e.g., System-V-\nlike UNIXes) or /etc/ttys (BSD UNIXes).  This will nearly always suffice for workstation  and\nmicrocomputer consoles.\n\nIf  you  use  a  dialup line, the type of device attached to it may vary.  Older UNIX systems\npre-set a very dumb terminal type like “dumb” or “dialup” on dialup lines.   Newer  ones  may\npre-set  “vt100”,  reflecting  the prevalence of DEC VT100-compatible terminals and personal-\ncomputer emulators.\n\nModern telnets pass your TERM environment variable from the local side  to  the  remote  one.\nThere can be problems if the remote terminfo or termcap entry for your type is not compatible\nwith yours, but this situation is rare and can almost always be avoided by explicitly export‐\ning  “vt100”  (assuming you are in fact using a VT100-superset console, terminal, or terminal\nemulator).\n\nIn any case, you are free to override the system TERM setting to your  taste  in  your  shell\nprofile.  The tset(1) utility may be of assistance; you can give it a set of rules for deduc‐\ning or requesting a terminal type based on the tty device and baud rate.\n\nSetting your own TERM value may also be useful if you have created a custom entry incorporat‐\ning  options (such as visual bell or reverse-video) which you wish to override the system de‐\nfault type for your line.\n\nTerminal type descriptions are stored as files of capability data  underneath  /etc/terminfo.\nTo browse a list of all terminal names recognized by the system, do\n\ntoe | more\n\nfrom your shell.  These capability files are in a binary format optimized for retrieval speed\n(unlike the old text-based termcap format they replace); to examine an entry,  you  must  use\nthe infocmp(1) command.  Invoke it as follows:\n\ninfocmp entryname\n\nwhere  entryname is the name of the type you wish to examine (and the name of its capability\nfile the subdirectory of /etc/terminfo named for its first letter).  This command dumps a ca‐\npability file in the text format described by terminfo(5).\n\nThe  first line of a terminfo(5) description gives the names by which terminfo knows a termi‐\nnal, separated by “|” (pipe-bar) characters with the last name field terminated by  a  comma.\nThe  first  name  field  is the type's primary name, and is the one to use when setting TERM.\nThe last name field (if distinct from the first) is actually a description  of  the  terminal\ntype (it may contain blanks; the others must be single words).  Name fields between the first\nand last (if present) are aliases for the terminal, usually  historical  names  retained  for\ncompatibility.\n\nThere  are  some conventions for how to choose terminal primary names that help keep them in‐\nformative and unique.  Here is a step-by-step guide to naming terminals  that  also  explains\nhow to parse them:\n\nFirst,  choose  a  root name.  The root will consist of a lower-case letter followed by up to\nseven lower-case letters or digits.  You need to avoid using punctuation characters  in  root\nnames,  because they are used and interpreted as filenames and shell meta-characters (such as\n!, $, *, ?, etc.) embedded in them may cause odd and unhelpful behavior.  The slash  (/),  or\nany  other  character  that may be interpreted by anyone's file system (\\, $, [, ]), is espe‐\ncially dangerous (terminfo is platform-independent, and choosing names with  special  charac‐\nters could someday make life difficult for users of a future port).  The dot (.) character is\nrelatively safe as long as there is at most one per root name; some historical terminfo names\nuse it.\n\nThe  root  name  for a terminal or workstation console type should almost always begin with a\nvendor prefix (such as hp for Hewlett-Packard, wy for Wyse, or att for AT&T terminals), or  a\ncommon  name of the terminal line (vt for the VT series of terminals from DEC, or sun for Sun\nMicrosystems workstation consoles, or regent for the ADDS Regent series.  You  can  list  the\nterminfo tree to see what prefixes are already in common use.  The root name prefix should be\nfollowed when appropriate by a model number; thus vt100, hp2621, wy50.\n\nThe root name for a PC-Unix console type should be the OS name, i.e., linux, bsdos,  freebsd,\nnetbsd.  It should not be console or any other generic that might cause confusion in a multi-\nplatform environment!  If a model number follows, it should indicate either  the  OS  release\nlevel or the console driver release level.\n\nThe  root  name for a terminal emulator (assuming it does not fit one of the standard ANSI or\nvt100 types) should be the program name or a readily recognizable abbreviation of  it  (i.e.,\nversaterm, ctrm).\n\nFollowing  the  root name, you may add any reasonable number of hyphen-separated feature suf‐\nfixes.\n\n2p   Has two pages of memory.  Likewise 4p, 8p, etc.\n\nmc   Magic-cookie.  Some terminals (notably older Wyses) can only support one attribute with‐\nout magic-cookie lossage.  Their base entry is usually paired with another that has this\nsuffix and uses magic cookies to support multiple attributes.\n\n-am  Enable auto-margin (right-margin wraparound).\n\n-m   Mono mode - suppress color support.\n\n-na  No arrow keys - termcap ignores arrow keys which are actually there on the terminal,  so\nthe user can use the arrow keys locally.\n\n-nam No auto-margin - suppress am capability.\n\n-nl  No labels - suppress soft labels.\n\n-nsl No status line - suppress status line.\n\n-pp  Has a printer port which is used.\n\n-rv  Terminal in reverse video mode (black on white).\n\n-s   Enable status line.\n\n-vb  Use visible bell (flash) rather than beep.\n\n-w   Wide; terminal is in 132-column mode.\n\nConventionally,  if  your  terminal type is a variant intended to specify a line height, that\nsuffix should go first.  So, for a hypothetical FuBarCo model 2317 terminal in  30-line  mode\nwith reverse video, best form would be fubar-30-rv (rather than, say, “fubar-rv-30”).\n\nTerminal  types  that  are  written not as standalone entries, but rather as components to be\nplugged into other entries via use capabilities, are distinguished  by  using  embedded  plus\nsigns rather than dashes.\n\nCommands which use a terminal type to control display often accept a -T option that accepts a\nterminal name argument.  Such programs should fall back on the TERM environment variable when\nno -T option is specified.\n",
            "subsections": []
        },
        "PORTABILITY": {
            "content": "For  maximum  compatibility  with  older  System V UNIXes, names and aliases should be unique\nwithin the first 14 characters.\n",
            "subsections": []
        },
        "FILES": {
            "content": "/etc/terminfo/?/*\ncompiled terminal capability database\n\n/etc/inittab\ntty line initialization (AT&T-like UNIXes)\n\n/etc/ttys\ntty line initialization (BSD-like UNIXes)\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "ncurses(3NCURSES), terminfo(5), term(5).\n\n\n\nterm(7)",
            "subsections": []
        }
    },
    "summary": "term - conventions for naming terminal types",
    "flags": [],
    "examples": [],
    "see_also": [
        {
            "name": "ncurses",
            "section": "3NCURSES",
            "url": "https://www.chedong.com/phpMan.php/man/ncurses/3NCURSES/json"
        },
        {
            "name": "terminfo",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/terminfo/5/json"
        }
    ]
}