{
    "mode": "man",
    "parameter": "term",
    "section": "7",
    "url": "https://www.chedong.com/phpMan.php/man/term/7/json",
    "generated": "2026-10-07T01:32:36Z",
    "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 Unices) or /etc/ttys (BSD Unices).  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": []
        },
        "FILES": {
            "content": "/etc/terminfo\ncompiled terminal description database\n\n/etc/inittab\ntty line initialization (AT&T-like Unices)\n\n/etc/ttys\ntty line initialization (BSD-like Unices)\n",
            "subsections": []
        },
        "PORTABILITY": {
            "content": "For maximum compatibility with older System V Unices, names  and  aliases  should  be  unique\nwithin the first 14 characters.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "ncurses(3NCURSES), term(5), terminfo(5)\n\nncurses 6.4                                  2023-12-02                                      term(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"
        }
    ]
}