User:Zucca/tricks

From Gentoo Wiki
Jump to:navigation Jump to:search

This article contains some of the tricks I use have found interesting or useful. Most of them are command line tricks.

Portage/Emerge

List packages that are installed from a certain overlay.
List installed packages and add the overlay after the atom (from the topic above).

user $find /var/db/pkg -name repository | awk '{"cat " $0 | getline rep; close("cat " $0); sub("/var/db/pkg/",""); sub(/\/repository$/,""); print "=" $0 "::" rep}'

[1] Another method that is about as twice as fast in processing the data:

user $find /var/db/pkg -name repository -printf '%h::' -exec cat {} \; | sed 's|/var/db/pkg/||'

Or by simply using equery (which is interestingly slower, by a fraction, than previous method):

user $equery l -F '$cpv:$slot:$repo' "*"


How to re-emerge all of a package's dependencies? - forum topic. Many interesting answers there.

Kernel related

Read config variable description.

user $find -O2 /usr/src/linux/ -type f -name 'Kconfig' -print0 | xargs -0 sed -n '/^config KVARIABLE/,/^config/p' | head -n -1

[2]... and replace KVARIABLE with the one you're looking for. Just do not include the CONFIG_ at the beginning.
I bet there's much room for improvement --Zucca (talk) 18:24, 16 April 2017 (UTC)

Remove old kernels from /boot that aren't installed anymore:

root #find /boot -type f \( -name 'vmlinuz-*' -or -name 'System.map-*' -or -name 'initc-*' \) $(qlist -vI gentoo-kernel | xargs qatom --nocolor --format '-not -name *%{PV}*')

... Most users need to ajust this.

Uptime

The percentage CPU has been idling since last boot.

Perl version
user $procup="$(cat /proc/uptime)"; perl -e "printf '%.3f',${procup##* }/$(nproc --all)/${procup%% *}*100"
bc version
user $procup="$(cat /proc/uptime)"; echo -e "scale=3\n${procup##* }/$(nproc --all)/${procup%% *}*100" | bc
Note
When computer is sleeping it isn't idling.

systemd tricks

How many times the computer has been put to sleep since last boot.

root #journalctl --boot=0 | grep -c 'Reached target Sleep.$'
Note
This command does not require root permissions if the user running the command has permission to read all journal logs.

wiki tricks

Convert clipboard content to "wiki formatted". Basically escapes = and |.

user $xclip -o -selection clipboard | sed -e 's/|/{{!}}/g' -e 's/=/{{=}}/g' -e 's/{{{{=}}}}/=/g' | xclip -i -selection clipboard

awk tricks

Very hacky shebang for awk scripts:

#!/usr/bin/awk {for (i in ARGV) {if (i < 2) continue; A = A " '" ARGV[i] "'"} exit system("awk -f " FILENAME " -- " A)}

This shebang allows awk script to use switches that would normally be grabbed by the awk interpreter, like --help for example. It maybe debatable if this is really needed.

misc tricks

root #beep -f 659 -l 460 -n -f 784 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 880 -l 230 -n -f 659 -l 230 -n -f 587 -l 230 -n -f 659 -l 460 -n -f 988 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 1047-l 230 -n -f 988 -l 230 -n -f 784 -l 230 -n -f 659 -l 230 -n -f 988 -l 230 -n -f 1318 -l 230 -n -f 659 -l 110 -n -f 587 -l 230 -n -f 587 -l 110 -n -f 494 -l 230 -n -f 740 -l 230 -n -f 659 -l 460

[3]... To find out what does this do, you need a PC-speaker support of some kind.

Another one, but compressed:

root #beep $(gunzip -ck <(base64 -d <<< "
H4sIAAAAAAACA+1StXEAMAxcxQtYJ7bVZ5Y0gf27
MMsQ5lb4VI+LGJZ6WCS41INCiKWellfU+aZOBPS0
c9lQd/i4Uw2XaK03kNe3MjZnBvYX8vSAiI+m2rrm
F2OVX3OmSUD00SWPDurDjsVQrLGMho939KkkZCCX
DU5+mYL4ELaxANtQ4RDofaY9jT1WzJjvFzLmK3/H
oHepkJe4liFn//ckG6b4/+yQ/YcseJuwPS7B22OA
eNWyzb1ztZaqH2AGAAA=
"))

[4]

References

  1. Gentoo forums - post: 8056088, list installed packages with overlay they are installed from.
  2. Gentoo forums - post: 7976738, how to extract and display kernel config variable description. Taken and modified slightly.
  3. Linux Beep Music #2
  4. Reddit - r/linux - Does anyone have or know a source for beep scripts?