Running `crontab -e` on a server drops you into vi, but you would rather it opened nano for your account from now on. Which line, added to your shell startup file, is the intended way to arrange that?
LPIC-1 Exam 101-500, objective 103. GNU and Unix commands medium
Machine-checked — no person has signed for it. This question was read against the source cited below by an automated pass, which found no contradiction. That is a weaker claim than it sounds: the same kind of process wrote the question, so it can confirm its own mistake.
Treat it as a good draft rather than as settled fact, and read the source below before you rely on it. It is not used in mock exams here — only questions a person has signed for are.
How these questions are written — where each question comes from, what the verification ledger records, and what happens when one is found wrong.
The options
Correct export EDITOR=/usr/bin/nano
Correct. crontab, and many other programs that need to hand a file to an editor, read the EDITOR variable and run whatever it names. Exporting it puts it in the environment the child process inherits.
Not correct alias vi=nano
Wrong. An alias is expanded only by the interactive shell when you type `vi` yourself. crontab does not go through your shell's alias table, so it still runs the real vi.
Not correct export PAGER=/usr/bin/nano
Wrong variable. PAGER names the program used to display text a screen at a time, such as the one man uses; it is not consulted when an editor is needed.
Not correct export SHELL=/usr/bin/nano
Wrong, and harmful. SHELL names your login shell, and cron also uses it to run jobs, so pointing it at an editor breaks unrelated things.
Why
The convention is an environment variable holding the editor's name or path, which the calling program passes to the shell. crontab, visudo, git and similar tools consult VISUAL first when it is set and fall back to EDITOR, so setting EDITOR alone works unless VISUAL is already set to something else in the same environment. Setting it in a startup file such as ~/.bashrc or ~/.profile makes it apply to later sessions rather than only the current one.
Where this comes from
- Cited
- manual page crontab(1)
Practise this
Reading one question is not practice. The trainer will draw a short set from objective 103 and space the ones you get wrong.
More questions on this objective
- A user starts a new terminal window in a running graphical desktop session, which launches bash as an interactive shell that is NOT a login shell. Which file in the user's home directory does bash read in that case? machine-checked
- In bash, which history expansion re-runs the entire previous command line? machine-checked
- Which bash command prints the literal five characters $USER instead of the current user name? machine-checked
- You want /opt/bin searched for executables, after all the directories already in PATH, in the current bash session and in every command started from it. Which command does that? machine-checked
- There is a passwd manual page in section 1 (the command) and another in section 5 (the /etc/passwd file format). Which command opens the section 5 page? machine-checked
- Select the TWO true statements about shell variables and the environment in bash. machine-checked