Lorsque vous vous trouvez dans le "terminal de niveau inférieur" (vous ne savez pas comment cela s'appelle), celui qui est ouvert en appuyant sur Ctrl + Alt + F1, comment puis-je copier le contenu de la commande que j’ai utilisée, puisqu’il n’ya pas de souris et que je ne peux pas déplacer mon curseur pour la ligne de commande?
Vous pouvez simplement rediriger la sortie vers un fichier avec >
ou &>
... On m'a demandé de le déplacer de commentaires en réponses, alors le voici.
A propos, quelques notes:
Le fait de placer >
entre une commande et un nom de fichier écrasera le contenu actuel du fichier avec la sortie standard.
Mettre >>
est ajouté à un fichier.
Placer un &
avant le redirecteur interceptera également l'erreur standard (dans Bash> 4).
Le dernier historique de commande utilisé est généralement stocké dans votre fichier historique (.bash_history
). Vous pouvez ouvrir ce fichier avec l'éditeur de votre choix et copier le contenu.
En ce qui concerne la manipulation de la ligne de commande de la fenêtre de la console, vous pouvez compter sur les fonctions d’édition de ligne de commande du bash Shell. Ils sont décrits dans la section READLINE de la page de manuel de Bash (man bash
). Mais ils ne vous permettront pas de coller la partie copiée dans un éditeur.
Une autre façon de contourner ce problème consiste à utiliser l'utilitaire d'écran . Il existe plusieurs présentations tutoriels sur le Web. L’écran a une fonction copier-coller:
Pour envoyer la sortie d'une commande dans un fichier, vous pouvez utiliser redirection.
Par exemple, vous pouvez envoyer votre commande dmesg
dans un fichier avec
dmesg > ~/Documents/output.txt
Ensuite, la sortie va écrire dans ce fichier au lieu de l’écran. Lorsque vous revenez à l'interface graphique, vous pouvez trouver le fichier dans votre dossier Documents et accéder au contenu.
Il y a plusieurs façons de contourner ce problème. Le plus simple est avec xclip
et j'ai sauvegardé pour le dernier.
la réponse de hbdgaf présente une solution: la redirection. Voici deux variantes du thème - redirection avec tube nommé et byobu
. Premièrement, aucune installation de logiciel supplémentaire n’est requise, alors que byobu
doit être installé.
Option 1: tube nommé
Lorsque vous exécutez une commande et utilisez le pipeline |
pour rediriger sa sortie vers une autre commande, appelée canal anonyme - elle existe pour un moment donné. Le canal nommé, en revanche, est un type de fichier spécial dans lequel les données entrent, puis sortent.
Voici les étapes pour le faire fonctionner:
créer le canal nommé avec mkfifo /tmp/myPipe
exécutez la commande souhaitée et redirigez le résultat vers /tmp/myPipe
. Par exemple, Sudo apt-get install byobu > /tmp/myPipe
. Notez que la commande attendra jusqu'à ce que vous libériez la sortie de myPipe
. Utilisez &
pour le faire attendre en arrière-plan et laissez-vous continuer à utiliser le terminal, comme si Sudo apt-get install byobu > /tmp/myPipe &
. Notez également que stdout ira dans le tuyau, mais que stderr ira à l'écran. Si vous voulez à la fois stderr et stdout dans le tube, utilisez &>
au lieu de >
cat /tmp/myPipe
. Vous pouvez maintenant copier le résultat avec la souris et le clavier.Option 2: session partagée en byobu
En ce qui concerne byobu
, l’idée de base est de créer une session partagée. Vous lancez Byobu dans les terminaux ATS et GUI, et vous voyez la même sortie ici et là. Je suggèrerais de lancer TTY en premier, car de cette façon, c'est plus propre. Alors disons que je lance Byobu dans TTY2, que je lance df;free
, que je vais à l'interface graphique, que je lance gnome-terminal
, puis que j'appelle byobu
, et le tour est joué - je vois le même résultat que j'ai vu dans TTY!
Option 3: xclip, le moyen le plus simple
Supposons que je veuille copier le résultat de la commande df
. Tout ce que j'ai à faire avec xclip
est la suivante:
$ export DISPLAY=:0 ; df | xclip -sel clip
Et ce sera déjà dans votre presse-papiers graphique!
Il y a cependant une petite erreur: xclip
n'est pas une application native, et doit être installé via Sudo apt-get install xclip
Bien sûr, la saisie de tous ces éléments peut être répétitive, vous pouvez donc créer une fonction .bashrc
pour effectuer le travail. Copiez et collez simplement la fonction ci-dessous dans votre fichier .bashrc
, sauvegardez-le et maintenant, chaque fois que vous vous connectez, vous disposez d'une commande simple pour copier le résultat dans le presse-papier
function toClipboard
{
export DISPLAY=:0
"$@" | xclip -sel clip
}
Et vous l'exécuteriez comme $ toClipboard df -h
, alors remarquez que vous pouvez exécuter une commande avec des paramètres.
Option 4: script
Il existe une commande appelée script
qui a exactement cet objectif - enregistrez ce que vous voyez en ligne de commande dans un fichier. Vous pouvez soit l'exécuter en premier, puis taper la sortie dans son shell, puis quitter; ou vous pouvez appeler l'écran avec le drapeau --command
, comme si script --command "df -h"
Cependant, il y a un inconvénient: le fichier de sortie peut contenir des caractères spéciaux. Cliquez ici pour savoir comment nettoyer la sortie
Option 5:/dev/vcsX
Comme montré par Giles du site U & L, on peut réellement vider le contenu de tty sur la sortie standard d'un autre terminal. Supposons que nous voulions vider tty2. La commande pour cela est
cat /dev/vcs1
Cette méthode a pour inconvénient que si votre terminal est défini sur un certain niveau de lignes de défilement, vous ne pouvez obtenir qu’une sortie partielle.
Sudo apt-get install gpm
GPM est exactement ce dont vous avez besoin et très utile. Dans la console (ctrl+alt+f1
), vous pouvez copy
en faisant glisser le bouton gauche de la souris, puis paste
en cliquant sur le bouton droit de la souris.