|
|
slmingol posted this in tips & tricks on May 14th, 2013, @ 5:31 pm
Background
UEFI looks to be a major pain in the @$$, but like it or hate it everyone in the Linux community will need to learn to navigate it. Here’s a list of useful UEFI resources that I’ve come across as I’ve started to get smarter about how to deal with this beast.
Solution
Wikipedia
Ubuntu Docs
AskUbuntu
Rodsbooks.com
Misc.
NOTE: For further details regarding my one-liner blog posts, check out my one-liner style guide primer.
slmingol posted this in tips & tricks on May 10th, 2013, @ 6:39 pm
Background
From time to time it’s useful if you can turn up the debugging messages that come from Bash, when working out either interactive or shell script problems. Here are 2 methods that can help in getting down to the details.
Solution
There are essentially 2 methods.
Method #1: -x method
When writing a shell script you’ll sometimes want to turn on line by line debugging. There’s basically 2 ways to to this.
Before we get started, suppose we have this sample script, myscript.bash:
1
2
3
4
| #!/bin/bash
echo "hi"
echo "bye" |
First you can run your script like so:
1
2
3
4
5
| % bash -x myscript.bash
+ echo hi
hi
+ echo bye
bye |
As an alternative you can add the following line, set -x to the top of our shell script to enable debugging as well:
1
2
3
4
5
| #!/bin/bash
set -x
echo "hi"
echo "bye" |
1
2
3
4
5
| % ./myscript.bash
+ echo hi
hi
+ echo bye
bye |
Method #2: env SHELLOPTS=xtrace …
This approach sets the env. variable SHELLOPTS=xtrace which has the same effect as using bash -x.
For example:
1
2
3
4
5
| % env SHELLOPTS=xtrace ./myscript.bash
+ echo hi
hi
+ echo bye
bye |
You can also use this technique to debug your bash environment (think .bashrc and .bash_profile) like so:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| % env SHELLOPTS=xtrace bash
...
...
+++++ line='complete -f -X
'\''!*.@(zip|[ejw]ar|exe|pk3|wsz|zargo|xpi|sxw|o[tx]t|od[fgpst]|epub|apk)'\''
unzip zipinfo'
+++++ line=' unzip zipinfo'
+++++ list=("${list[@]}" $line)
+++++ read line
+++++ '[' 'complete -f -X '\''*.Z'\'' compress znew' '!=' 'complete -f
-X '\''*.Z'\'' compress znew' ']'
+++++ line='complete -f -X '\''*.Z'\'' compress znew'
+++++ line='complete -f -X '\''*.Z'\'' compress znew'
+++++ line=' compress znew'
+++++ list=("${list[@]}" $line)
+++++ read line
+++++ '[' ' zcmp, zdiff, z*grep, zless, zmore intentionally not here,
see Debian: #455510' '!=' '# zcmp, zdiff, z*grep, zless, zmore
intentionally not here, see Debian: #455510' ']'
...
... |
Here you can see every command getting executed from the system and user’s .bashrc and .bash_profile as bash starts up.
NOTE: For further details regarding my one-liner blog posts, check out my one-liner style guide primer.
slmingol posted this in tips & tricks on April 21st, 2013, @ 7:41 am
Background
If you’ve every dealt with Conky you may have gotten a little confused when you’re trying to get it to display your CPU frequency like so:
… and Conky is reporting your CPU frequency as 1.12GHz when in fact it’s actually much higher than that, say 2.67GHz. Most likely this is being caused by the CPU governing features that are present in most modern hardware. Here’s a behind the scenes 5 second tour of seeing what’s going on within your Linux Kernel.
Solution
First, from the conky man page.
cpu (cpuN)
CPU usage in percents. For SMP machines, the CPU number can
be provided as an argument. ${cpu cpu0} is the total usage, and ${cpu
cpuX} (X >= 1) are individual CPUs.
freq_g (n)
Returns CPU #n’s frequency in GHz. CPUs are counted from 1.
If omitted, the parameter defaults to 1.
You most likely have something like SpeedStep enabled which is acting like a governor on a car, regulating the speed of the cores inside your CPU. You can confirm that this is going on by looking at the output of this command:
1
2
3
4
5
6
7
8
9
| % less /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz
stepping : 5
cpu MHz : 1199.000
... |
The 2 numbers that matter are the 2.67GHz, that the GHz that my CPU is rated to operate at followed by the number 1199.00, this is what my CPU is allowed to run at by the governor setup on my Linux laptop.
You can see what governor is currently configured like so:
…. Continue reading → [one-liner]: Why is Conky reporting a lower CPU frequency, when my CPU frequency is actually much higher? »»
slmingol posted this in tips & tricks on April 21st, 2013, @ 6:20 am
Background
While answering questions on the stackexchage website Unix & Linux I saw the following question which was about something I’d encountered, but until today never knew how to accomplish, so I’m posting it here for my own reference in the future.
The question?
How do you get the exit status ( $? ) from the command haconf -makerw in place of grep? i.e. what need to add in to my syntax in order to understand if haconf -makerw succeeded?
1
2
| haconf -makerw | grep -iq "Cluster already writable"
# echo $? ( will print the exe status from haconf -makerw ) |
Solution
There are 3 ways of doing this. However your current setup should work. The reason here being that the grep won’t match anything if the command fails, so grep will return with status 1 (unless the program always shows that text no matter what).
Pipefail
The first way is to set the pipefail option. This is the simplest and what it does is basically set the exit status $? to the exit code of the last program to exit non-zero (or zero if all exited successfully).
1
2
3
4
5
| # false | true; echo $?
0
# set -o pipefail
# false | true; echo $?
1 |
$PIPESTATUS
Bash also has a variable called $PIPESTATUS which contains the exit status of all the programs in the last command.
…. Continue reading → [one-liner]: How do you capture the status of a command ($?) in Bash, when run through a pipe? »»
slmingol posted this in tips & tricks on April 15th, 2013, @ 5:50 pm
Background
Here’s a quick tip for checking out the overall health of your computer’s hard drive. It makes use of a little known tool called udisks which provides access to information about storage devices from the D-Bus interface.
Solution
Before we jump into udisks here are some resources that might prove useful when dealing with the design/architecture of udisks.
To see which drives are currently under udisks watchful eye, you can use the following command:
1
2
3
4
5
6
7
8
9
10
11
12
| % sudo udisks --enumerate
/org/freedesktop/UDisks/devices/dm_2d0
/org/freedesktop/UDisks/devices/dm_2d1
/org/freedesktop/UDisks/devices/dm_2d2
/org/freedesktop/UDisks/devices/sda1
/org/freedesktop/UDisks/devices/sda2
/org/freedesktop/UDisks/devices/sda3
/org/freedesktop/UDisks/devices/sda4
/org/freedesktop/UDisks/devices/sda5
/org/freedesktop/UDisks/devices/sda6
/org/freedesktop/UDisks/devices/sr0
/org/freedesktop/UDisks/devices/sda |
This output shows that I have several partitions that are currently bing monitored, the last bit in the path tells you which device, i.e. sda1, sda2, sda3, etc. These are partitions /dev/sda1, /dev/sda2, etc.
Now on to the actual health output. This next command will show you the overall health of device /dev/sda, i.e. my primary HDD on my laptop:
…. Continue reading → [one-liner]: Checking out a HDD’s Health using the Command Line Tool udisk »»
slmingol posted this in tips & tricks on April 9th, 2013, @ 9:12 pm
Background
This post is intended to capture various online resources for taking classes and/or getting training in anything. They’re predominately programming language and software engineering courses but their are other tracks that focus on history and chemistry, for example.
Solution
This is by no means meant to be an exhaustive list, it’s a clearinghouse of the different resources as I come across them.
General Sites
General Programming Courses
HTML/Javascript/Web/etc.
Ruby
NOTE: For further details regarding my one-liner blog posts, check out my one-liner style guide primer.
Page 1 of 2612345...1020...»Last »
|