Angelo Mathews has been named as Sri Lanka's Test and one-day international captain for the rest of 2013.
The 25-year-old succeeds Mahela Jayawardene, who recently nominated Mathews to replace him.
Jayawardene, who quit the Twenty20 captaincy after the World Cup last October, keeps his place in the squad for the tour of Bangladesh in March.
Dinesh Chandimal will lead the Twenty20 side, and serve as vice-captain in the longer formats of the game.
Mathews has scored 1,668 runs in 31 Tests since making his debut in 2009, recording his only Test century against Australia two years later.
Injuries have restricted his bowling to 11 Test wickets, but Mathews' all-round skills have seen him make effective contributions in 50 and 20-over cricket.
Among those not selected for the two-Test series in Bangladesh is batsman Thilan Samaraweera, who has signed for Worcestershire for the 2013 season.
Sri Lanka will also play three one-day internationals and one T20 international in Bangladesh.
Sri Lanka Test squad: Angelo Mathews (captain), Dinesh Chandimal (vice captain), Tillakaratne Dilshan, Dimuth Karunaratne, Ashen Silva, Kumar Sangakkara, Lahiru Thirimanne, Mahela Jayawardene, Kushal Perera, Jeevan Mendis, Kithruwan Vithnage, Ajantha Mendis, Suraj Randiv, Nuwan Kulasekara, Shaminda Eranga, Chanaka Welegedera, Nuwan Pradeep, Dushmantha Chameera, Rangana Herath, Tharindu Kaushal.