Penguin
  • strace(1) is your friend :) It shows all the C library calls made by a process – this is very useful for debugging or just casual snooping. Also try ltrace(1)? sometime. it shows all library calls made. (Consider how often you call strcmp(3), then ponder how much information this is going to churn out.) :)
  • In a similar vein, you can get the dynamic linker to show you how external symbols in executables get resolved. See LD_DEBUG.
  • procinfo(8) gives a nice summary of the Kernel information available in the /proc FileSystem, such as memory/CPU usage, KernelModule?s, IRQ usage, devices and supported FileSystems. See ProcFileSystem
  • netstat(8) shows active connections, including tcp(7), udp(7) and unix(7) socket connections. netstat -anAinet shows all TCP and UDP Ports that are open on your machine – very handy.
  • Depending on the permissions on certain executables, you can start another X server as a normal user. (Default Slackware lets you, Debian doesn't.) To use virtual terminal 8 (which is normally unused), do xinit /usr/bin/X11/xterm -display :1.0 -- /usr/bin/X11/Xwrapper :1.0 vt08. Now if you run X programs with $DISPLAY set to :1 instead of :0, they go to the server running on vt 8. See xinit(1), Xwrapper(1)?
  • Store all your data in CVS (or SubVersion, or...). It's great. If you're bored, store /etc in CVS too :)
  • Use MakeFiles (or Ant or rake or…) to build everything.
  • Learn m4(1) to write macros in. If you're a programmer, M4 is the language used by autoconf(1) for creating portable configure scripts.
  • Learn LaTeX for documentation (or lyx(1) if you're lazy). You can use pdflatex(1) (which is normally included with the tetex package that provides LaTeX for linux distributions) to create PDF files in any style that normal LaTeX allows you to. This is very handy for making portable slide presentations as well as the "more typical" reports and articles. See PdfLatexNotes for more hints on this.
  • For pure EyeCandy, your desktop's "background picture" doesn't have to be a picture at all. You can amaze Windows users by running one of the xscreensaver(1)s in the root window. Try $ atlantis -root & – if you have hardware accelerated OpenGL graphics, it causes negligible CPU load. (Try locate atlantis if you don't know where it is.) Another favourite for running in the root window is xearth(1)?.
  • If you add a line saying . /dev/tty9 to /etc/syslog.conf all log messages will also be printed to tty9, making it really easy to watch the logs.
  • If you're having issues with DNS resolution intermittently failing then try adding the line options attempts:4 and/or options timeout:10 to /etc/resolv.conf. (See resolv.conf(5))
  • To change your language/key mappings under Debian use dpkg-reconfigure console-common
  • If you specify the path to one of your files in a program other than a shell, you can still omit the name of your home directory, if it was your PWD when the program was started.
  • Have a look at the PerlOneLiners for some useful perl one-liners :)
  • A similar node, BashOneLiners, has bash pipelines that you might find useful