commandlinefu.com is the place to record those command-line gems that you return to again and again.
Delete that bloated snippets file you've been using and share your personal repository with the world. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.
If you have a new feature suggestion or find a bug, please get in touch via http://commandlinefu.uservoice.com/
You can sign-in using OpenID credentials, or register a traditional username and password.
First-time OpenID users will be automatically assigned a username which can be changed after signing in.
Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.
» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10
Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):
Subscribe to the feed for:
Returns the version of the kernel module specified as "MODULENAME", when available.
Reload all defined kernel variables from /etc/sysctl.conf(if no parameter after -p is given) without the old myth "Ah, you'll need to reboot to apply those variables"...
Display the machine "hardware name" 32 or 64 bit.
"x86_64" is shown on 64 bit machines
"i686" is typically shown on 32 bit machines (although, you might also see "i386" or "i586" on older Linuxen).
On other "unix-like" systems, other hardware names will be displayed.
For example, on AIX, "uname -m" gives the "machine sequence number".
For whatever reason, IBM decided that "uname -M" would give the machine type and model.
(ref: http://www.ibm.com/developerworks/aix/library/au-aix-systemid.html )
On Sun Solaris, "uname -m" can be used to determine the chip type and "isainfo -v" will reveal
if the kernel is 64 or 32 bit.
(ref: http://www.ibiblio.org/pub/packages/solaris/sparc/html/32.and.64.bit.packages.html )
A more reliable way to determine "64-bit ness" across different Unix type systems is to compile the following simple C program:
cat <<eeooff > bits.c
/*
* program bits.c
* purpose Display "32" or "64" according to machine type
* written January 2013
* reference http://www.unix.org/whitepapers/64bit.html
*/
/* hmm, curious that angle-brackets removed by commandlinefu.com data input processing? */
#include "/usr/include/stdio.h"
long lv = 0xFFFFFFFF;
main ( ) {
printf("%2d\n",(lv < 0)?32:64);
}
eeooff
Compile and run thusly: cc -o bits bits.c; ./bits
This is likely only valid on Solaris based systems. Unfortunately a lot of the more universal techniques for determining if a system is 32bit or 64bit on x86 solaris fail to give much more information than "i86pc"
Needed a quick way to see if my server distro that I setup years ago was running 32bit or not, since with time I had forgotten.
Note: does not check _hardware_ e.g. /proc/cpuinfo but rather the kernel installed
Use modprobe to list all the dependencies of a certain kernel module. Handy when debugging system issues.
Remove old kernels (*-generic and *-generic-pae) via apt-get on debian/ubuntu based systems. Tested on ubuntu 10.04 - 12.04.
small update for this command to work with linux kernels 3.x
Gets the (previously obtainable with:
finger @kernel.org
) info of the latest linux kernel versions available.
after kernel build with make deb-pkg, I like to install the 4 newest packages that exist in the directory. Beware: might be fewer for you....
since awk was already there one can use it instead of the 2 greps. might not be faster, but fast enough
Then exit from the shell.
exit
some time need to exit twice
exit
exit
Now the OS will boot with the new parameters.
run sync first to flush useful things out to disk!!!
To free pagecache:
echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:
echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_caches
Same as 7272 but that one was too dangerous
so i added -P to prompt users to continue or cancel
Note the double space: "...^ii␣␣linux-image-2..."
Like 5813, but fixes two bugs: [1]This leaves the meta-packages 'linux-headers-generic' and 'linux-image-generic' alone so that automatic upgrades work correctly in the future. [2]Kernels newer than the currently running one are left alone (this can happen if you didn't reboot after installing a new kernel).
Note the double space: "...^ii␣␣linux-image-2..."
Like 5813, but fixes two bugs: [1]This leaves the meta-packages 'linux-headers-generic' and 'linux-image-generic' alone so that automatic upgrades work correctly in the future. [2]Kernels newer than the currently running one are left alone (this can happen if you didn't reboot after installing a new kernel).
I'm bummed that this took 228 characters. I'd like to see a simpler version.
A little aptitude magic. Note: this will remove images AND headers. If you just want to remove images: aptitude remove ?and(~i~nlinux-im ?not(~n`uname -r`))
I used this in zsh without any problems. I'm not sure how other shells will interpret some of the special characters used in the aptitude search terms. Use -s to simulate.
This should do the same thing and is about 70 chars shorter.
This will remove all installed kernels on your debian based install, except the one you're currently using.
From:
http://tuxtweaks.com/2009/12/remove-old-kernels-in-ubuntu/comment-page-1/#comment-1590