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:
I use terminal with black background on the Mac. Unfortunately, the default ls color for the directory is blue, which is very hard to see. By including the line above in my ~/.bash_profile file, I changed the directory's color to cyan, which is easer to see. For more information on the syntax of the LSCOLORS shell variable:
man ls
I tested this command on Mac OS X Leopard
It colors the machine name and current directory different colors for easy viewing.
I put that line in my .bash_profile (OS X) and .bashrc (Linux).
Here is a summary of what the \char means: n=new line, u=user name, h=host, !=history number, w=current work directory
The \[\e[32m\] sequence set the text to bright green and \[\e[0m\] returns to normal color.
For more information on what you can set in your bash prompt, google 'bash prompt'
changes the PS1 to something better than default.
[username.hostname.last-2-digits-of-ip] (current directory)
used in an if-then-else in case the default shell is ksh, not bash.
The $(basename ${0#-}) is handy to echo which shell and strip the dash some flavors put in front of "bash"
if [ $(basename ${0#-}) == "bash" ] ; then
export PS1='\[\e]0;\h \u \w\a\]\n\[\e[0;34m\]\u@\h \[\e[33m\]\w\[\e[0;32m\]\n\$ '
else
HOST=`hostname`
ESC=`echo "\033"`
BEL=`echo "\007"`
RAW=`echo "\r"`
export PS1='-${RAW}${ESC}]0;${HOST} ${USER}${BEL}-${ESC}[0;34m${USER}${ESC}[0m@${ESC}[0;34m${HOST%%.*}${ESC}[0;33m${ESC}[0m $ '
fi
Must be done as root - will cause subsequent ssh connections to use the identities available via the [user]'s agent socket.