7 votes

Comment produire une sortie constante dans une fenêtre Terminal ?

Comme quand tu fais brew install wget o mysqld restart Je veux que quelques lignes d'information passent constamment dans ma fenêtre de terminal. Y a-t-il quelque chose que je puisse surveiller ou un flux d'informations dans lequel je puisse me lancer ? Est-il possible de surveiller les processus du moniteur d'activité dans le terminal ?

Pourquoi voudrais-je avoir ça ? Parce que ça a l'air super cool quand tu as ce code digne de Matrix sur ton écran. Et je pourrais avoir besoin de ça pour certaines scènes de films de famille.

0 votes

Matrix-like (aka top down) ou similar to brew (horizontalement) sont deux choses différentes, que recherchez-vous exactement ? Et avez-vous déjà demandé une réponse au puissant Google ?

0 votes

Tout à fait différent, vous avez raison ! Maintenant que je l'ai regardé à nouveau, Matrix-like ressemble beaucoup plus à un jouet ou à un écran de veille qu'à un outil productif en fonctionnement. Le style Homebrew serait bien mieux. J'ai trouvé des tutoriels pour enfants sur Youtube sur la façon de faire tourner des nombres aléatoires dans le terminal, mais cela ne semble pas très professionnel.

0 votes

Télécharger le code source d'un grand programme et le compiler dans votre terminal, cela "ressemblerait" à ceci professionnel Tout le reste n'est que du bruit, à moins qu'il ne s'agisse d'un résultat utile comme l'observation de certains journaux (comme le suggère @Matteo). Bien sûr, la compilation nécessite également des ressources importantes.

8voto

shsteimer Points 8749

En tirant des idées de ceci unix.stackexchange.com Questions et réponses sur la génération d'une sortie de terminal de style "hollywoodien". .

Le type lent

Ce script produit cet effet de frappe retardée comme on le voit dans les films. Où l'ordinateur imprime des choses dans le terminal à un rythme vraiment horrible et lent.

Enregistrez les éléments suivants dans un fichier nommé hollywood :

#!/bin/bash

while IFS= read -r line; do
    length="${#line}"
    bol=1
    for (( offset = 0 ; offset < length ; offset++ )); do
        char="${line:offset:1}"
        printf '%s' "$char"
        if (( bol )) && [[ "$char" == " " ]]; then
            continue
        fi
        bol=0
        sleep 0.05
    done

    if (( length == 0 )); then
        sleep 0.$(( RANDOM % 3 + 2 ))
    else
        sleep 0.$(( RANDOM % 7 + 3 ))
    fi

    printf '\n'
done

Définir les autorisations d'exécution sur le fichier hollywood :

chmod +x hollywood

Et ensuite, le pipe la sortie de dmesg pour lui donner un gros morceau de texte élégant à imprimer lentement sur l'écran :

dmesg | hollywood

The Hex Dump

Cela permet d'afficher des données hexagonales à l'écran. C'est impressionnant mais largement incompréhensible pour le grand public.

hexdump -C /dev/urandom | GREP_COLOR='1;32' grep --color=auto 'ca fe'

La Matrice

Numéros. Des chiffres partout.

LC_CTYPE=C tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"

Malheureusement, avec celui-ci, il n'y a pas de bon moyen de contrôler la vitesse.

Il y a une meilleure version de cette vue disponible Homebrew appelée cmatrix . Vous pouvez l'installer et l'exécuter avec :

brew install cmatrix
cmatrix

0 votes

Excellente solution. La ligne de vidage hexagonal devrait cependant se terminer par '. J'ai essayé de la modifier mais Stackexchange s'attend à ce qu'au moins 6 caractères soient modifiés. Pourquoi ? -Malheureusement "tr -c "[:digit :]"" " " < /dev/urandom" produit un "tr : Illegal byte sequence" sur OS X 10.11.6.

0 votes

@AlexIxeras bonne prise. corrigé.

0 votes

Merci. Une idée de pourquoi "tr -c "[:digit :]"" " " < /dev/urandom" entraîne l'erreur "tr : Illegal byte sequence" ?

6voto

Leonard Points 2832

Si vous avez des fichiers qui grossissent, vous pouvez utiliser tail -f . Par exemple

 $ tail -f /var/log/system.log

Il existe plusieurs outils de terminal similaires au moniteur d'activité, par exemple top (livré avec OS X) et htop (vous devrez l'installer avec MacPorts ou Homebrew).

Vous pouvez également télécharger les sources d'un gros logiciel (par exemple, gcc, OpenOffice), puis le compiler. Cela génère généralement beaucoup de données sur la console.

Vous pouvez également générer d'importantes listes d'annuaires

$ ls -lRt

o find (le second retardera chaque ligne d'une seconde)

$ find .
$ find . -print -exec sleep 1 \;

0 votes

top est assez agréable, certains personnages changent constamment. Mais il n'y a pas de lignes qui courent sur l'écran. Le téléchargement des sources, je trouve que c'est trop de données pour seulement du plaisir.

1 votes

Combinez un cat /var/log/system.log avec un tuyau vers le type lent script ci-dessous et vous auriez un joli flux continu de sortie du Terminal.

4voto

Rich Points 2429

El matrix command :

od -c /dev/random

Lisez attentivement, à un moment donné, vous verrez la clé secrète.

0 votes

Réponse parfaite !

2voto

nohillside Points 82672

Quelque chose comme

while sleep 1; do
    t=$(( RANDOM % 80 ))
    for ((i=0; i < $t; i++)); do
        echo -n '*'
        sleep 1
    done
    echo
done

pourrait faire l'affaire. Changez la longueur des manchons pour différentes vitesses et remplacez le * avec ce que vous voulez (même $(( RANDOM % 10 )) pour des nombres variables).

0voto

Saaru Lindestøkke Points 5124

Vous pouvez essayer tcpdump dans le terminal. Il répertorie les connexions que votre ordinateur établit via les interfaces réseau actives. Lorsque vous avez une activité réseau, il affiche les données en cours à l'écran.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X