Back in 2010, I needed some shellcode, so I wrote this. It spawns Vim rather than a shell, so I guess it's technically "vimcode".
It is, of course, null-free. There is a commented version in the test file, but here it is in its entirety:
\x31\xc0\x31\xc9\x99\x50\x68\x2f\x76\x69\x6d\x68\x2f\x62\x69\x6e\x68\x2f\x75\x73\x72\x89\xe3\xb0\x0b\xcd\x80
This is 32-bit shellcode, so if you want to run the test file on x86_64, you'll need multilib GCC:
gcc -m32 -o test test.c