URL: https://linuxfr.org/forums/linux-general/posts/ou-est-mon-terminal Title: Où est mon terminal ? Authors: chimrod Date: 2021年04月09日T12:01:29+02:00 License: CC By-SA Tags: Score: 2 Bonjour à tous, j'ai récemment décidé de changer de terminal sur mon bureau (c'est ma vie, on s'en fout un peu). Sauf que c'est pas si simple : j'utilise parfois le terminal pour lancer un shell et des commandes, et je l'utilise parfois pour lancer une application directement. Par exemple, quand je suis dans mon gestionnaire de fichier (pcmanfm-qt), dès que je veux ouvrir un fichier texte (associé avec Neovim), mon bureau ouvre le terminal rxvt, alors que celui-ci n'est pas configuré comme étant mon terminal par défaut... Voilà les étapes qui sont réalisées au moment où je clique sur mon fichier à ouvrir : ### Identifier l'application associée au type Cela se fait en allant chercher le fichier `/usr/share/applications/mimeinfo.cache`. À l'intérieur on y trouve une référence à `nvim.desktop` ### Rechercher quelle commande lancer pour `nvim` Il est présent dans le même répertoire : `/usr/share/applications/nvim.desktop` et je trouve à l'intérieur les deux lignes suivantes : ```ini Exec=nvim %F Terminal=true ``` ### Lancer la commande dans un terminal Je suppose donc que désormais, il ne reste plus qu'à lancer la commande un terminal. Mais lequel ? Je ne trouve aucune information qui me permette de savoir lequel est sélectionné. Quand je lance ce process dans un `strace` j'obtiens cette liste qui me laisse un peu perplexe : ``` stat("/usr/bin/nvim", {st_mode=S_IFREG|0755, st_size=3882736, ...}) = 0 access("/usr/bin/nvim", X_OK) = 0 getuid() = 1000 stat("/usr/bin/nvim", {st_mode=S_IFREG|0755, st_size=3882736, ...}) = 0 access("/usr/local/bin/gnome-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/bin/gnome-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/bin/gnome-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/local/games/gnome-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/games/gnome-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/local/bin/mate-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/bin/mate-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/bin/mate-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/local/games/mate-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/games/mate-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/local/bin/xfce4-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/bin/xfce4-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/bin/xfce4-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/local/games/xfce4-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/games/xfce4-terminal", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/local/bin/nxterm", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/bin/nxterm", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/bin/nxterm", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/local/games/nxterm", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/games/nxterm", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/local/bin/color-xterm", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/bin/color-xterm", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/bin/color-xterm", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/local/games/color-xterm", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/games/color-xterm", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/local/bin/rxvt", X_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type) access("/usr/bin/rxvt", X_OK) = 0 getuid() = 1000 stat("/usr/bin/rxvt", {st_mode=S_IFREG|S_ISGID|0755, st_size=1411072, ...}) = 0 ``` On dirait que l'ensemble du path est parcouru avec une liste prédéfinie de commandes. D'où sortent-elles ? Pourquoi cet ordre là ? C'est là où j'ai besoin de vos lumières pour comprendre ce qui se passe dans ma machine... Je vous remercie d'avance !