Bangladesh have axed Habibul Bashar as Test skipper and appointed 22-year-old batsman Mohammad Ashraful in his place.
Bashar stepped down as one-day skipper last week after his team lost the Test series 1-0 to India, following a 2-0 ODI series defeat to the visitors.
The 34-year-old had expressed his desire to continue as Test captain.
But a spokesman said: "The board has named Mohammad Ashraful as captain of both one-day and Test teams as it wants the team to be led by one captain."
Pace bowler Mashrafe Mortaza will be Ashraful's deputy, spokesman Rabeed Imam announced.
"With his captaincy, Bangladesh cricket enters a new era. The board is confident Ashraful will lead by example and take the country's cricket to a new height," he added.
"He is a talented batsman and has all the abilities to be a very good leader."
Ashraful will lead the side on a tour of Sri Lanka later this month, which includes three Tests and three one-day internationals.
"I may be young, but I have been playing Test cricket for more than six years. I also led my team for two years in the national league," he said.
"I think age is no bar for being a successful captain. Quite a few players have led their national teams even at a younger age than me."
Bashar led Bangladesh to 29 one-day victories in 69 matches, and one win and five draws in 18 Tests.