Température du processeur intégrée à l'invite de commande Bash

18

Je me demandais s'il serait possible d'obtenir la température du processeur et de l'intégrer dans l'invite de commande.

Ceci est ma sortie pour sensors:

$}-sensors
coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +55.0°C  (high = +87.0°C, crit = +105.0°C)
Core 0:         +55.0°C  (high = +87.0°C, crit = +105.0°C)
Core 1:         +52.0°C  (high = +87.0°C, crit = +105.0°C)

Pourriez-vous s'il vous plaît me montrer comment utiliser la grepfonction pour intégrer la température dans mon invite de commande?

LinuxSailorTech
la source
qucik: cat / sys / class / thermal / thermal_zone0 / temp, pour moi, il montre 50000, quand ma température est de 50 ° C
mondjunge
@mondjunge ces fichiers sont très dépendants du matériel. Les noms et les chemins changeront en fonction du matériel dont vous disposez. Sur mon système, ce fichier montre la température de l' acpitz-virtual-0appareil virtuel et c'est très différent de la température de mon CPU.
terdon
Vous pouvez utiliser le même code que j'ai dans ma réponse. Cela fonctionnera également pour votre sensorssortie.
terdon
@terdon: Je sais mais je n'ai pas le temps d'expliquer, je marque juste les questions en double dans mes 5 minutes gratuites et j'essaye de trouver une solution rapide.
lundi

Réponses:

36

Oui, c'est possible, mais les détails dépendent de votre système. Dans la plupart des cas, la commande sensorsdevrait l'afficher.

  1. Installez le package nécessaire

    sudo apt-get install lm-sensors
  2. Exécutez sensors-detectet suivez les invites

    sudo sensors-detect
  3. Installez tous les pilotes supplémentaires si sensors-detectvous le souhaitez.

  4. Courez sensorspour vous assurer que cela fonctionne

    $ sensors
    acpitz-virtual-0
    Adapter: Virtual device
    temp1:        +27.8°C  (crit = +110.0°C)
    temp2:        +29.8°C  (crit = +110.0°C)
    
    coretemp-isa-0000
    Adapter: ISA adapter
    Physical id 0:  +63.0°C  (high = +105.0°C, crit = +105.0°C)
    Core 0:         +62.0°C  (high = +105.0°C, crit = +105.0°C)
    Core 1:         +63.0°C  (high = +105.0°C, crit = +105.0°C)
    
    nct6776-isa-0a00
    Adapter: ISA adapter
    Vcore:                  +1.86 V  (min =  +0.00 V, max =  +1.74 V)  ALARM
    in1:                    +1.36 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
    AVCC:                   +3.33 V  (min =  +2.98 V, max =  +3.63 V)
    +3.3V:                  +3.33 V  (min =  +2.98 V, max =  +3.63 V)
    in4:                    +1.01 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
    in5:                    +0.00 V  (min =  +0.00 V, max =  +0.00 V)
    in6:                    +0.21 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
    3VSB:                   +3.31 V  (min =  +2.98 V, max =  +3.63 V)
    Vbat:                   +3.18 V  (min =  +2.70 V, max =  +3.63 V)
    fan1:                     0 RPM  (min =    0 RPM)
    fan2:                  3292 RPM  (min =    0 RPM)
    SYSTIN:                  +0.0°C  (high =  +0.0°C, hyst =  +0.0°C)  sensor = thermistor
    CPUTIN:                 +51.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = CPU diode
    AUXTIN:                  +0.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = CPU diode
    PCH_CHIP_CPU_MAX_TEMP:  +58.0°C  (high = +80.0°C, hyst = +75.0°C)
    PECI Agent 0:           +60.0°C  (high = +80.0°C, hyst = +75.0°C)
                                     (crit = +105.0°C)
    PCH_CHIP_TEMP:           +0.0°C  
    PCH_CPU_TEMP:            +0.0°C  
    intrusion0:            OK
    intrusion1:            OK
    beep_enable:           disabled
  5. Analysez la sortie pour obtenir uniquement la température du processeur.

    Comme vous pouvez le voir ci-dessus, la sortie sur mon système est différente de la vôtre. Cependant, la ligne qui nous intéresse ici est la même. Vous pouvez obtenir la température du processeur avec:

    $ sensors | grep -oP 'Physical.*?\+\K[0-9.]+'
    63.0
  6. Modifiez votre ~/.bashrc(ou fichier équivalent si vous utilisez un autre shell) et ajoutez une fonction qui exécute la commande ci-dessus:

    show_temp(){
        sensors | grep -oP 'Physical.*?\+\K[0-9.]+'
    }
  7. Utilisez la fonction dans votre invite. Par exemple:

    PS1="\u@\h $(show_temp) $ "
terdon
la source
Est-il vraiment nécessaire d'installer des capteurs lm dans Ubuntu? Est installé par défaut dans Debian.
Braiam
1
@Braiam Il n'est pas installé par défaut en 15.10 ou 16.04.
chat
1

Installez des capteurs lm:

sudo apt-get install lm-sensors

Détectez les capteurs disponibles:

sudo sensors-detect

Pour afficher la température:

sensors
Bram Koert
la source
5
Si je comprends bien la question, l'OP souhaite que la température du CPU apparaisse dans leur invite Bash, comme username@hostname (cputemp): /current/directory $- Ils savent déjà comment exécuter la sensorscommande en général, comment auraient-ils pu afficher la sortie dans la question autrement?
Byte Commander
3
@ByteCommander à la défense de Bram, l'OP n'a pas mentionné sensorsdans sa question d'origine et n'a ajouté la sortie qu'après l'avoir demandé dans la première révision de ma réponse. Certes, cette réponse n'explique pas comment afficher uniquement la température du processeur ni comment l'inclure dans l'invite, mais mentionner sensorsdes informations utiles lors de la publication de la réponse.
terdon
Sur un système AMD, je devais activer "IOMMU" dans le BIOS avant de pouvoir obtenir la température du processeur (carte mère MSI avec FX8300: paramètres d'overclocking -> Caractéristiques du processeur -> IOMMU, changé "Désactivé" en "64 Mo" (le seul autre option)).
Peter Mortensen