Identify your terminal device on Unix/Linux: Which command prints the device file name (for example, /dev/tty2 or /dev/pts/0) of the terminal session you are currently using?
-
Awho
-
Bls
-
Ctty
-
Dstty
-
ENone of the above
Answer
Correct Answer: tty
Explanation
Introduction / Context:Interactive sessions in Unix are attached to pseudo-terminals or console devices. Knowing exactly which device your shell is connected to can help with redirection, permission debugging, and multi-user administration.
Given Data / Assumptions:
- The user is logged in via a terminal or pseudo-terminal (SSH, console, or TTY).
- We want the command that directly prints the device path of the current terminal.
- We are using standard core utilities.
Concept / Approach:
The tty program writes the file name of the terminal connected to standard input. If the shell is attached to a TTY-like device, it returns a path under /dev; otherwise, it may print 'not a tty' when input is not a terminal.
Step-by-Step Solution:
Run the command: ttyObserve typical output: /dev/pts/0 on modern systems or /dev/tty1 on consoles.Use cases: feed device names to scripts or adjust permissions appropriately.Therefore, 'tty' is the correct command.Verification / Alternative check:
Piping or redirecting input can change behavior; for example, running tty < /dev/null will report not a tty. In an interactive shell, plain tty always prints the device name, confirming its identity purpose.
Why Other Options Are Wrong:
- who: Lists users logged in and their terminals, but it does not identify your current controlling terminal directly without parsing.
- ls: Lists directory contents; unrelated to terminal identity.
- stty: Configures terminal line settings; does not by itself print the device file path.
- None of the above: Incorrect because 'tty' is precisely the identity tool.
Common Pitfalls:
Confusing 'who am i' with 'tty'; the former prints your login name and terminal line but is less direct than tty's device path output. Also, note that scripts running non-interactively may not have a controlling TTY.
Final Answer:
tty