Выражение возникло в среде охотников и было основано на суеверном представлении о том, что при прямом пожелании (и пуха, и пера) результаты охоты можно «сглазить». Перо в языке охотников означает «птица», «пух» — звери.
В ответ, чтобы тоже не «сглазить», звучало теперь уже традиционное: «(Пошёл) К чёрту!». В давние времена охотник, отправляющийся на промысел, получал это напутствие, дословный «перевод» которого выглядит примерно так: «Пусть твои стрелы летят мимо цели, пусть расставленные тобой силки и капканы останутся пустыми, так же, как и ловчая яма!». На что добытчик обычно отвечал в таком же духе: «К черту!».
И оба были уверены, что злые духи, незримо присутствующие при этом диалоге, удовлетворятся и отстанут, не будут строить козней во время охоты. Вот такое пожелание удачи в своеобразной форме.
Бояться сглазить люди не перестали и до сей поры. «Ни пуха ни пера» говорят школьнику или студенту перед экзаменом.