Линукс температурен монитор за 5 минути
Като цяло с помощта на аплета stdin можете да поставите много на работния плот;)
„UNIX е проста. Но трябва да си гений, за да разбереш неговата простота. Денис Ричи.
Философията на UNIX не е просто набор от правила. Това е идеологията, която прилагате всеки ден, защото е наистина удобна и проста. Понякога може да бъде много трудно да се обясни тази концепция, но ще се опитам да го направя с реален пример - една от задачите, които наскоро трябваше да реша.
Едно от най-важните правила на начина на UNIX е правилото за композиция: "Проектирайте програмите така, че да могат да бъдат свързани с други програми." Това са програмите, от които се нуждаем сега. Например, популярният плазмен аплет stdin ви позволява да показвате изхода на друга програма директно на вашия работен плот. Това е много удобно, тъй като нашата задача е сведена до по-проста - напишете скрипт, който показва температурата на всички устройства! Веднага възникват въпроси - ще бъде ли сложен този скрипт, колко време ще отнеме да го напишете? Не е много, защото имаме програми за отчитане на температурата и просто трябва да „срешете“ изхода им.
# nvidia-settings -q [gpu:0]/GPUCoreTemp
Тук последователно се показват идентификаторът на устройството, името на модела на диска, неговата температура и мерните единици.
Разбира се, преглеждането на информация в тази форма е много неудобно. Следователно ние трансформираме изхода на всяка програма. Например, ще подложим текста от сензорите на следната обработка:
# сензори grep 'Core' awk '< печат $1 " " $2 " " $3; >' sed -e 's/+//' -e 's/^/CPU /'
Тук се казва, че трябва да вземете изхода от сензорите, изберете само редовете, съдържащи "Core" (помощна програма grep). Оказва се
След това трябва да изберете 1-ва, 2-ра и 3-та колони (нека си представим, че това е текстова таблица) и да ги отпечатате разделени с интервал (помощна програмаawk). Оказва се
След това премахнете "+" и добавете "CPU" (помощна програма sed) в началото на реда. Оказва се
Тук отново използвахме правилото за композиция - комбинирахме работата на четири програми, за да постигнем желания резултат. Всяка една от малките програми grep, awk, sed е в състояние да изпълни качествено специфичната си задача, за която е създадена тази програма. grep е за избиране на редове по критерии, awk е за текстови таблици, sed е за промяна на редове. Заедно те са сила.
Резултатът е следният скрипт:
Той извежда следното:
Сега остава да дадете скрипта на stdin аплета, да зададете желания интервал за актуализиране - и сте готови - можете да гледате температурата на работния плот в реално време.

И така, голямото предимство на този подход е възможността да се сглоби персонално решение от универсални компоненти като тухли. На някои може да им е трудно да напишат такъв код. Разбира се, за да интегрирате всички компоненти за 5 минути, ви е необходим известен опит. Въпреки това, времето, прекарано в придобиването му, се отплаща с отмъщение. Опитайте и ще успеете.