Grep -komennolla tulostetaan tiedosto — kokonaan tai osittain — merkaten haettavaksi asetetut merkkijonot. Grep on hyvin monipuolinen ohjelma. Merkintävärien näyttäminen perustuu ANSI-koodeihin.
Kuvaan liittyvät käyttöesimerkit:
grep --color -E 'A|' x.txt
GREP_COLOR="1;32" grep --color -E 'A|' x.txt
https://i.postimg.cc/c1mhFt1g/04-12-2018-02-59-50.png
Kuvaan liittyvät käyttöesimerkit:
grep --color -E 'A|' x.txt
GREP_COLOR="1;32" grep --color -E 'A|' x.txt
https://i.postimg.cc/c1mhFt1g/04-12-2018-02-59-50.png
Vastaukset 30
Vanhimmat
Näyttääkö Manjaron konsoli hyvältä ?
Pistäkäähän Ubuntun pojat Ubuntun konsolista pari siistiä kuvaa, vai eikö siinä ole siistiä konsolia ?
Grep näppärä kun haluaa etsiä syötteestä tiettyä merkkijonoa. Esim dmesg | grep sound. Tuossa dmesg tuloste putkitetaan grepille. Voidaan etsiä onko xattr ominaisuus käännetty kerneliin grep XATTR config-4.15.0-29-generic. Onko xttr tarpeen vai ei tiedostojärjestelmässä voidaan olla useampaa mieltä. Lokien lukemiseen riittää usein tail esim tail /var/log/syslog
Minä käytin greppiä skripitissä, joka näyttää prossun lämpötilan sensors-komennon tulosteesta. Päivitysväli tuossa 5 sekuntia. Tuosta hieman kehittelemällä saisi viriteltyä myös jonkun hälytystoiminnon, jos lämmöt nousevat liian korkeaksi.
while :
tput civis
do
temp=$(sensors -u | grep -u 'temp2_input' | cut -f2 -d: | cut -c 2-3)
echo -en "$temp\r"
sleep 5
done
tput cnorm
Vähän oudolta näyttää tuo 𝐶𝑈𝑇 -komento tuossa — eikö tuota saa tehtyä poimimalla näytettävä merkkiväli?
echo "$(sensors | grep "Core 0" | cut -c 16-18)"
Näin vain vaihtaa ytimen numeroa jos niitä on useita.
https://i.postimg.cc/bNxptQkM/08-12-2018-18-49-07.png
Ehkä tuon sensorsin tuloste vaihtelee eri laitteistoissa. Minulla se näyttää kolme eri temppiä, joista "kuumin" on oman käsitykseni mukaan cpu:n lämpötila, siis tuo temp2.
temp1: 34.0°C (high = 85.0°C, hyst = 81.0°C)
(crit = 80.0°C, hyst = 76.0°C) sensor = transistor
temp2: 47.0°C (high = 85.0°C, hyst = 77.0°C)
(crit = 100.0°C, hyst = 92.0°C) sensor = thermistor
temp3: 29.0°C (high = 70.0°C, hyst = 68.0°C)
(crit = 85.0°C, hyst = 83.0°C) sensor = transistor
No ytimien keskimääräinen lämpötila pitäisi tulostua näin:
echo "$(sensors | grep "Core $i" | cut -c 16-18)" | awk '{s =$1} END {print s/4}'
Tuo siis siinä tapauksessa että ytimiä on 4, jos sinulla ytimien lukumäärä on jokin muu, muuta tuota komentoputken loppua näin:
{print s/sinun ytimien lukumäärä tähän}
Ja tällä tavalla näet kaikki ytimet allekain tulostettuna:
echo "$(sensors | grep "Core $i" | cut -c 16-18)"
Ytimien numerointi alka nollasta (0), ja tulosteesi perusteella sinulla on neljän ytimen prosessori, eli aivan sama kuin minullakin. Sinä vain listasit tuohon Temp1 ja jätit Temp0 pois.
eli
Core 0
Core 1
Core 2
Core 3
Ja nämä kaikki on CPUn lämpötiloja, koska jokaisella ytimellä on oma sensorinsa.
Sensors ei näytä mitään temp0:aa. Katson juuri nyt videota Yle-areenasta, joten lämmöt ovat hieman korkeammalla.
--
Adapter: PCI adapter
temp1: 0.0°C (high = 70.0°C)
(crit = 80.0°C, hyst = 78.0°C)
Adapter: ISA adapter
3.3V: 3.26 V
in1: 1.31 V (max = 2.04 V)
in2: 1.10 V
in3: 0.86 V
in4: 0.58 V
in5: 1.27 V
in6: 1.56 V
3VSB: 3.30 V
Vbat: 3.23 V
fan1: 0 RPM ALARM
fan2: 0 RPM ALARM
fan3: 0 RPM ALARM
temp1: 55.0°C (high = 85.0°C, hyst = 81.0°C)
(crit = 80.0°C, hyst = 76.0°C) sensor = transistor
temp2: 65.0°C (high = 85.0°C, hyst = 77.0°C)
(crit = 100.0°C, hyst = 92.0°C) sensor = thermistor
temp3: 29.0°C (high = 70.0°C, hyst = 68.0°C)
(crit = 85.0°C, hyst = 83.0°C) sensor = transistor
Mitä sinulla tulostaa kun kirjoitat tai kopioit komentokehotteeseen tämän:
sensors
https://i.postimg.cc/SQ9x6g5Q/09-12-2018-01-01-33.png
Tuo tuloste on sensors-komennolta. Tässä on vastaavia tulosteita paremmin muotoiltuna https://askubuntu.com/questions/254305/what-is-my-cpu-temperature
Ei ole kaikilla muillakaan mitään temp0:aa. Skripti tulostaa nyt: 61
Kumpa noilla sivuilla ei ollut ydinten lämpötila tulostetta. Noista oli poissa tulosteen alareunaan jäävä osa jossa nuo CPUn lämmöt olisi näkynyt.
Tämä merkattu alue puuttui noista linkkisi tulosteista:
https://i.postimg.cc/qv3w4VZV/09-12-2018-01-34-48.png
Mitä sensors-komento teillä näyttää?
Minähän laitoin kuvia koko ajan omasta koneesta.
Nuo kolme ylempää Temp1, Temp2, Tem3 ovat luultavasti kotelon, virtalähteen, näyttöohjaimen olkoisia sensoreita joita voit mikäli emo sallii niin lisätä tarpeen mukaan, noiden lukemien perusteella laitepuhaltimet nopeutuu tai hidastuu.
Voitko tehdä tavallisen copy-pasten, eli kopioida oman sensors-näkymäsi tähän vastauksena? Minulla tällä hetkellä kun lopetin hetki sitten Yle areenan katsomisen näin:
temp1: 38.0°C (high = 85.0°C, hyst = 81.0°C)
(crit = 80.0°C, hyst = 76.0°C) sensor = transistor
temp2: 50.0°C (high = 85.0°C, hyst = 77.0°C)
(crit = 100.0°C, hyst = 92.0°C) sensor = thermistor
temp3: 29.0°C (high = 70.0°C, hyst = 68.0°C)
(crit = 85.0°C, hyst = 83.0°C) sensor = transistor
>>> sensors
f71858fg-isa-0200
Adapter: ISA adapter
3.3V: 3.31 V
3VSB: 3.34 V
Vbat: 3.30 V
fan1: 1411 RPM
fan2: 949 RPM
fan3: 0 RPM ALARM
temp1: 40.5°C (high = 70.0°C, hyst = 60.0°C)
temp2: 32.4°C (high = 100.0°C, hyst = 85.0°C)
temp3: 35.5°C (high = 100.0°C, hyst = 85.0°C)
radeon-pci-0100
Adapter: PCI adapter
temp1: 49.0°C (crit = 120.0°C, hyst = 90.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: 32.0°C (high = 80.0°C, crit = 98.0°C)
Core 0: 32.0°C (high = 80.0°C, crit = 98.0°C)
Core 1: 36.0°C (high = 80.0°C, crit = 98.0°C)
Core 2: 34.0°C (high = 80.0°C, crit = 98.0°C)
Core 3: 33.0°C (high = 80.0°C, crit = 98.0°C)
Jos tuossa oli kaikki mitä sinulla sensors komento raportoi, niin et ole ohjeistanut kerneliä antamaan informaatiota kaikilta sensoreilta, ja se asia korjaantuu näillä kahdella rivillä:
echo YES | sudo sensors-detect
sudo service module-init-tools restart
ja nyt siten uudetaan se sensors komento.
Lämpötilan saa myös cat /sys/class/thermal/thermal_zone*/temp
sed:llä voi poistaa ylimääräiset desimaalit. apci myös vaihtoehto.
Kerneliltä voi kysellä liki kaikkea.
Kysys vaikka äitis halkaisijaa ja kerro meillekin.
Tarkoitin tietysti koneen toimintaan liittyviä tietoja
/sys/class/thermal sisältää ainakin minulla neljä hakemistoa, ei mitään thermal_zone-alkuisia yksikään.
lrwxrwxrwx 1 root root 0 8.12. 21:50 cooling_device0 -> ../../devices/virtual/thermal/cooling_device0
lrwxrwxrwx 1 root root 0 8.12. 21:50 cooling_device1 -> ../../devices/virtual/thermal/cooling_device1
lrwxrwxrwx 1 root root 0 8.12. 21:50 cooling_device2 -> ../../devices/virtual/thermal/cooling_device2
lrwxrwxrwx 1 root root 0 8.12. 21:50 cooling_device3 -> ../../devices/virtual/thermal/cooling_device3
Esimerkiksi cooling_device0:n sisältö on seuraava:
-rw-r--r-- 1 root root 4096 8.12. 22:47 cur_state
lrwxrwxrwx 1 root root 0 8.12. 22:47 device -> ../../../LNXSYSTM:00/LNXCPU:00
-r--r--r-- 1 root root 4096 8.12. 22:47 max_state
drwxr-xr-x 2 root root 0 8.12. 22:47 power
lrwxrwxrwx 1 root root 0 8.12. 21:50 subsystem -> ../../../../class/thermal
-r--r--r-- 1 root root 4096 8.12. 22:47 type
-rw-r--r-- 1 root root 4096 8.12. 22:47 uevent
Ja edellisen power-hakemisto:
-rw-r--r-- 1 root root 4096 8.12. 22:47 async
-rw-r--r-- 1 root root 4096 8.12. 22:47 autosuspend_delay_ms
-rw-r--r-- 1 root root 4096 8.12. 22:47 control
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_active_kids
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_active_time
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_enabled
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_status
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_suspended_time
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_usage
/sys/class/thermal sisältää ainakin minulla neljä hakemistoa, ei mitään thermal_zone-alkuisia yksikään.
lrwxrwxrwx 1 root root 0 8.12. 21:50 cooling_device0 -> ../../devices/virtual/thermal/cooling_device0
lrwxrwxrwx 1 root root 0 8.12. 21:50 cooling_device1 -> ../../devices/virtual/thermal/cooling_device1
lrwxrwxrwx 1 root root 0 8.12. 21:50 cooling_device2 -> ../../devices/virtual/thermal/cooling_device2
lrwxrwxrwx 1 root root 0 8.12. 21:50 cooling_device3 -> ../../devices/virtual/thermal/cooling_device3
Esimerkiksi cooling_device0:n sisältö on seuraava:
-rw-r--r-- 1 root root 4096 8.12. 22:47 cur_state
lrwxrwxrwx 1 root root 0 8.12. 22:47 device -> ../../../LNXSYSTM:00/LNXCPU:00
-r--r--r-- 1 root root 4096 8.12. 22:47 max_state
drwxr-xr-x 2 root root 0 8.12. 22:47 power
lrwxrwxrwx 1 root root 0 8.12. 21:50 subsystem -> ../../../../class/thermal
-r--r--r-- 1 root root 4096 8.12. 22:47 type
-rw-r--r-- 1 root root 4096 8.12. 22:47 uevent
Ja edellisen power-hakemisto:
-rw-r--r-- 1 root root 4096 8.12. 22:47 async
-rw-r--r-- 1 root root 4096 8.12. 22:47 autosuspend_delay_ms
-rw-r--r-- 1 root root 4096 8.12. 22:47 control
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_active_kids
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_active_time
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_enabled
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_status
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_suspended_time
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_usage
/sys/class/thermal sisältää ainakin minulla neljä hakemistoa, ei mitään thermal_zone-alkuisia yksikään.
lrwxrwxrwx 1 root root 0 8.12. 21:50 cooling_device0 -> ../../devices/virtual/thermal/cooling_device0
lrwxrwxrwx 1 root root 0 8.12. 21:50 cooling_device1 -> ../../devices/virtual/thermal/cooling_device1
lrwxrwxrwx 1 root root 0 8.12. 21:50 cooling_device2 -> ../../devices/virtual/thermal/cooling_device2
lrwxrwxrwx 1 root root 0 8.12. 21:50 cooling_device3 -> ../../devices/virtual/thermal/cooling_device3
Esimerkiksi cooling_device0:n sisältö on seuraava:
-rw-r--r-- 1 root root 4096 8.12. 22:47 cur_state
lrwxrwxrwx 1 root root 0 8.12. 22:47 device -> ../../../LNXSYSTM:00/LNXCPU:00
-r--r--r-- 1 root root 4096 8.12. 22:47 max_state
drwxr-xr-x 2 root root 0 8.12. 22:47 power
lrwxrwxrwx 1 root root 0 8.12. 21:50 subsystem -> ../../../../class/thermal
-r--r--r-- 1 root root 4096 8.12. 22:47 type
-rw-r--r-- 1 root root 4096 8.12. 22:47 uevent
Ja edellisen power-hakemisto:
-rw-r--r-- 1 root root 4096 8.12. 22:47 async
-rw-r--r-- 1 root root 4096 8.12. 22:47 autosuspend_delay_ms
-rw-r--r-- 1 root root 4096 8.12. 22:47 control
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_active_kids
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_active_time
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_enabled
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_status
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_suspended_time
-r--r--r-- 1 root root 4096 8.12. 22:47 runtime_usage
Pahoitteluni toistoista. Palvelin heitti virhettä lähetysvaiheessa ja luulin ettei viesti lähtenyt.
Riippuu varmaan laitteistosta ja miten se on tunnistettu.
Itsellä
cat /sys/class/thermal/thermal_zone*/temp | awk '{ print ($1 / 1000) "°C" }'
tulostaa
27.8°C
29.8°C
33°C
tvbox@digiboxi:~$
Tämä Lubuntu 18. Kerneleissä eroja ja polut vaihtelee. Vanhemmissa oli /proc kansion alla.
sudo sensors-detect auttaa löytämään oikean modulin mikä pitää ladata muistiin. Käytännössä on amd ja intel emoja. Kaikista emoista ei saa oikeita lämpöjä ulos. Bios käytännössa säätää tuulettimet. apci toki vaihtoehto.
"sudo sensors-detect auttaa löytämään oikean modulin mikä pitää ladata muistiin."
Vai auttaa se löytämään oikean modullin . . .
Voi hitto noita sinun juttujasi,
Tutkiskelin asiaa ja toisessa koneessa ei ole. Kokeile grep . /sys/class/hwmon/hwmon*/name. tuossa koneessa on k10temp ajuri käytössä. AMD lauta
Entäs sitten,
mitä sitten kun on kokeiltu grep . /sys/class/hwmon/hwmon*/name.