Temperatura della CPU incorporata nel prompt dei comandi di Bash

17

Mi chiedevo se sarebbe stato possibile ottenere la temperatura della CPU e incorporarla nel prompt dei comandi.

Questo è il mio output per 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)

Potresti mostrarmi come utilizzare la funzione grep per incorporare la temperatura nel mio prompt dei comandi?

    
posta LinuxCyberGeek 31.05.2016 - 10:52

2 risposte

33

Sì, è possibile, ma i dettagli dipendono dal tuo sistema. Nella maggior parte dei casi, il comando sensors dovrebbe mostrarlo.

  1. Installa il pacchetto necessario

    sudo apt-get install lm-sensors
    
  2. Esegui sensors-detect e segui le istruzioni

    sudo sensors-detect
    
  3. Installa eventuali driver aggiuntivi se sensors-detect ti dice di

  4. Esegui sensors per assicurarti che funzioni

    $ 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. Analizza l'output per ottenere solo la temperatura della CPU.

    Come puoi vedere sopra, l'output sul mio sistema è diverso dal tuo. Tuttavia, la linea che ci interessa qui è la stessa. È possibile ottenere la temperatura della CPU con:

    $ sensors | grep -oP 'Physical.*?\+\K[0-9.]+'
    63.0
    
  6. Modifica il ~/.bashrc (o il file equivalente se stai usando un'altra shell) e aggiungi una funzione che esegue il comando sopra:

    show_temp(){
        sensors | grep -oP 'Physical.*?\+\K[0-9.]+'
    }
    
  7. Usa la funzione nel tuo prompt. Ad esempio:

    PS1="\[email protected]\h $(show_temp) $ "
    
risposta data terdon 31.05.2016 - 11:03
1

Installa i sensori lm:

sudo apt-get install lm-sensors

Rileva quali sensori sono disponibili:

sudo sensors-detect

Per mostrare la temperatura:

sensors
    
risposta data Bram Koert 31.05.2016 - 10:57

Leggi altre domande sui tag