Tag Archives: shell

Colorized output for ls on Mac OS X

Short route:

alias ls=”ls -G”
Permanent short route:
echo alias ls=\”ls -G\” >> ~/.bash_profile
Long explanation:
Mac OS X’s BSD-based implementation of ls does not have support for GNU-style long options such as ls –color. All its options are short options. To get color, you can pass -G.
So what we do is tell bash that whenever we type ls, we actually want to type ls -G.
alias ls=”ls -G”
ls also supports another way to turn on colorization, and this is to set environment variable CLICOLORS.
export CLICOLORS=1
You can also reconfigure the colors used. Some people recommend this colorset:
export LSCOLORS=dxfxcxdxbxegedabagacad
What does this mean? Each letter is one color. For example, d is brown, x is default background and foreground, B is bold red, etc. Each position determines function. Straight from the horse’s mouth (man ls):
                     The color designators are as follows:

                           a     black
                           b     red
                           c     green
                           d     brown
                           e     blue
                           f     magenta
                           g     cyan
                           h     light grey
                           A     bold black, usually shows up as dark grey
                           B     bold red
                           C     bold green
                           D     bold brown, usually shows up as yellow
                           E     bold blue
                           F     bold magenta
                           G     bold cyan
                           H     bold light grey; looks like bright white
                           x     default foreground or background

                     Note that the above are standard ANSI colors.  The actual
                     display may differ depending on the color capabilities of
                     the terminal in use.

                     The order of the attributes are as follows:

                           1.   directory
                           2.   symbolic link
                           3.   socket
                           4.   pipe
                           5.   executable
    
                      6.   block special
                           7.   character special
                           8.   executable with setuid bit set
                           9.   executable with setgid bit set
                           10.  directory writable to others, with sticky bit
                           11.  directory writable to others, without sticky
                                bit

                     The default is “exfxcxdxbxegedabagacad”, i.e. blue fore-
                     ground and default background for regular directories,
                     black foreground and red background for setuid executa-
                     bles, etc.

Unix tricks: TCC

I don’t know how to do hex output in either bc or calc, but there’s always C, printf() and … tcc.

ivucica@khaoticone:~$ echo ” main() { printf(\”%x\\n\”, 0x212B32*3); } “| tcc – -run
638196
ivucica@khaoticone:~$

Tiny C Compiler is written by Fabrice Bellard, the same cool guy behind FFMPEG and qemu. Among TCC’s features are compiling from standard input and running code on-the-fly, without outputting stuff to disk.