I have been learning English since 2 years ago.
He has lived here since 20 years ago.
Both of these do not make sense, the correct form should be as below:
I have been learning English for 2 years. OR I have been learning English since 2015. (OR since high school etc.)
If you want to use "ago" you can say:
I started learning English 2 years ago.
He started living here 20 years ago.
Since gives the starting point of actions, events or states. It refers to when things began.
Since + a point in time (in the past), until now. When you add "ago" after the time it doesn't follow the meaning to "until now" instead changes the meaning to a point in time before the stated event, therefore is not grammatically correct to use ago with since.
Examples: I've been waiting since 7 o'clock.
I have known him since January.
For + a period of time
To measure a period of time up to the present, we use the present perfect tense and not the present tense.
I have known her for a long time. (Correct)
I know her for a long time. (Incorrect)
I have lived here for ten years. (Correct)
I live here for ten years. (Incorrect)