oneliners/falsefriends.md

1022 B

False friends

Bash and CLI-tools waiting to shoot you from behind

PATH

an empty string in $PATH is equivalent to ., so prepending : to your PATH, effectively includes the CWD into the PATH, giving it priority over everything else in the PATH, which is incredibly dangerous.

killall -1

in killall the parameter -1 is - differently to kill - NOT interpreted as signal, but is a special variable for "applies to everything except PID1 and self". Therefore no signal is given, and the default one (15, SIGTERM) will be applied to each and every PID (but is then usually reduced again to the searchterm given). So killall -1 java does in pseudocode effectively: where name is java; do [ ! PID == 1 ] && kill -s 15 $name; done ...very dangerous

grep -irl

you'd normally expect, that grep -irl will find an expression to grep for at the desired location, but it does not, if symlinks are into play. Use grep -iRlinstead.

watch

watch on freeBSD is NOT the same thing as watch on Linux!