Linux in General
This bash script displays the Raspberry Pi's CPU temperature:
#!/bin/bash
#This script outputs the current CPU temperature in degrees Celcius and Farenheit
awk '{printf("%.1fC ",$1/1e3)}' /sys/class/thermal/thermal_zone0/temp
awk '{printf("(%.1fF)\n",$1*1.8/1e3)}' /sys/class/thermal/thermal_zone0/temp
Here is how it works:
The awk
command, which is used for processing text, retrieves the value stored in
/sys/class/thermal/thermal_zone0/temp
and formats it to one decimal point. Originally, the temperature is stored in Celcius with no decimal point (42774). The awk command's argument of
'{printf("%.1fC ",$1/1e3)}'
does the formatting. Printf comes from the C programming language, it means print with a defined format. Here the format ("%.1fC ") means print all leading digits, a decimal point, and what ever digit is one decimal place past the point, and the character "C" with two spaces immediately after the formatted number. The lower case "f" probably identifies the output as floating point decimal, a data type in the C programming language. The $1 identifies which space delimited field to extract from the text, the "/" is the division operator, and 1e3 means 1 x 10^3, or 1000.
So, 42774 / (1 x 10^3) = 42.774
42.774 formatted to one decimal place (automatically rounding) and adding the "C " = 42.8C or (77.0F).
I've been learning about the startup files .bashrc, .bash_profile and /boot/config.txt
As far as I can tell, /boot/config.txt is roughly equivalent to DOS's config.sys, while .bashrc and .bash_profile are similar in function to DOS's autoexec.bat.
After buying a Raspberry Pi I had the perfect excuse to learn Linux. One of the ways I've been teaching myself is by trying to replicate the commands and results from DOS in Linux. Here is what I have learned so far:
DOS:
C:\>dir /o:gn /p
Linux:
pi@raspberrypi ~$ ls --group-directories-first -laFh | more -d
DOS:
C:\>copy con myfile.txt
...text...
^Z
Linux:
pi@raspberrypi ~$ cat > myfile.txt
...text...
^D
Take ownership of a directory or file
sudo chown username:group directory
Take ownership of a directory and all subdirectories (recursive)
sudo chown -R username:group directory
Most of the other commands work the same (cd, mkdir, rmdir, etc.).