Let's start with 食. By itself, 食 means "to eat"; it is a verb. But it can be used to refer to "food" as a noun with 食品 or 食物.
餐 means "meal". 早餐 means "breakfast", 午餐 means "lunch", and 晚餐 means "dinner".
Here comes the hard part. The difference between 飯 and 菜 is hard to identify. Really, they both mean "food". There is even a phrase 飯菜 that means "food". I will try to tackle 飯 first.
飯 literally means "rice" (e.g. 米飯), but it can refer to meals. The phrases 早餐, 午餐, and 晚餐 can all be rewritten as 早飯, 午飯, and 晚飯. The difference here is that 餐 in my opinion is more commonly used, and more formal than 飯.
餐 can also be used as 量詞 (a quantifier, if you will). 兩餐飯 means "two meals".
Now, for 菜. 菜 by itself refers to food. 青菜 means "vegetables". 菜 can be used to refer to a cuisine with 菜式. At a restaurant, a menu is referred to with 菜單 or 菜譜 (although 菜單 is more common).
That is all I can think of.