Comportement à la fin de Linux moins en fonction de la source de connexion
Question
Quand j'ai essayé de démarrer avec Linux avec le livre "New Linux Textbook", certains manuels ne fonctionnaient pas et je ne l'ai pas trouvé. Je vais donc le laisser sous forme de mémorandum.
Plus précisément, il s'agit de l'exemple d'utilisation de "commande d'exportation" dans le chapitre 08-04.
Dans ce chapitre, définissez "--no-init" pour la variable d'environnement "LESS" et vérifiez le changement de comportement de la commande less (l'écran a été effacé à la fin, mais l'écran n'est pas effacé). Cependant, lorsque je me connectais et fonctionnais à partir d'Hyper-V, l'écran n'était pas effacé même si je n'avais pas modifié les paramètres, et je ne comprenais pas pourquoi il ne suivait pas le manuel.
(J'ai également vérifié l'alias, mais il n'y a pas de paramètre pour moins)
Je suis donc un débutant, mais j'ai essayé de découvrir quelle en était la cause autant que possible.
Comportement que j'ai examiné
Fonctionnement sous Linux (lors d'un accès depuis Hyper-V) (se terminer par moins / etc / crontab → q)
Vous pouvez confirmer que l'écran n'est pas effacé et que le contenu affiché reste.
Fonctionnement du terminal (lorsque le terminal est lancé depuis Teraterm ou GUI) (comme ci-dessus)
Si vous accédez à partir du terminal, vous pouvez voir que l'écran est effacé à la fin.
J'ai découvert en enquêtant
--Lorsque j'ai regardé la source de ~~ less, l'écran a été effacé lorsque "is_tty" était True. Cette variable est définie sur "isatty (1)", et selon la documentation, elle semble être "1" lors d'une connexion depuis un terminal. ~~
- ~~ moins de source Partie applicable: https://github.com/gwsw/less/blob/e27853c89be227ad7a1a81aefd2942c03bd32dad/main.c#L387~~
- ~~ isatty manual ("1" semble indiquer la sortie standard): https://linuxjm.osdn.jp/html/LDP_man-pages/man3/isatty.3.html~~
(06/04/2020: Lorsque j'ai vérifié sur la base des commentaires que j'ai reçus, il a été supprimé car isatty (1) a certainement renvoyé "1" dans les deux cas. Merci @ angel_p_57!)
- J'ai confirmé que la valeur de la variable d'environnement $ TERM change en fonction de la façon dont vous vous connectez.
- Lors de la connexion avec Hyper-V: linux
--Si vous démarrez le terminal depuis l'interface graphique ou vous connectez de l'extérieur (avec teraterm): xterm
- Lorsque vous modifiez la variable d'environnement TERM ci-dessus, elle se comporte comme Linux sur le terminal, et elle se comporte comme le terminal sous Linux, elle semble donc être liée à ~~ isatty. Cela semble fonctionner avec ~~ $ TERM.
-Lors de la commutation avec $ TERM, l'opération change selon que "smcup" ou "rmcup" est inclus dans "information de terminal (infocmp)".
(Corrigé sur la base des commentaires reçus le 06/04/2020. Merci @ angel_p_57!)
Conclusion privée
Puisque le manuel ci-dessus est censé être exécuté dans le terminal, en principe, il est préférable de l'exécuter dans le terminal au lieu d'accéder directement à Linux.