W 1965 ukończył studia na Wydziale Filozoficzno-Historycznym Uniwersytetu Jagiellońskiego w Krakowie. W 1972 obronił doktorat, habilitował się w 1985. Tytuł profesora otrzymał w 2001, dwa lata później objął stanowisko profesora zwyczajnego.
Od 1965 do 1972 pracował w Wojewódzkim Archiwum Państwowym w Kielcach. W 1973 został zatrudniony w Wyższej Szkole Nauczycielskiej w Kielcach, przemianowanej na Wyższą Szkołę Pedagogiczną. Od 1978 kierował Zakładem Bibliotekoznawstwa i Informacji Naukowej, w latach 1988–1996 Instytutem Historii WSP. Od 1990 do 1993 sprawował obowiązki prorektora, a w latach 1999–2005 pełnił funkcję rektora WSP, przemianowanej w okresie jego urzędowania na Akademię Świętokrzyską. Kieruje Zakładem Historii Oświaty Kultury i Nauki w Instytucie Historii. Wykładał też w WSP w Rzeszowie i w WSP w Częstochowie. Od 1996 współpracuje z Wszechnicą Świętokrzyską.
Specjalizuje się w zagadnieniach dotyczących dziejów oświaty i nauki na ziemiach polskich w XIX i XX wieku, a także historii społecznej i regionalnej. Jest autorem licznych publikacji naukowych.
Od 1957 należy do Związku Harcerstwa Polskiego. W latach 1973–1977 zasiadał w Radzie Naczelnej ZHP. W 2007 Zjazd Nadzwyczajny ZHP wybrał go na funkcję przewodniczącego ZHP. Funkcję tę pełnił do 2013.
W 1965 został członkiem Polskiego Towarzystwa Historycznego (w latach 70. był sekretarzem i prezesem oddziału w Kielcach). Od 1968 należy do Kieleckiego Towarzystwa Naukowego, w latach 1989–2010 sprawował funkcję prezesa zarządu. Wchodził też jako jego przedstawiciel w skład Rady Towarzystw Naukowych przy Prezydium PAN. W latach 1991–2004 pełnił funkcję prezesa zarządu wojewódzkiego i regionalnego Towarzystwa Wiedzy Powszechnej, był też wiceprzewodniczącym zarządu głównego (2001–2004), a w 2002 p.o. prezesa. Przez kilka kadencji zasiadał w Okręgowej Komisji Badania Zbrodni Hitlerowskich w Kielcach. Został również członkiem honorowym Radomskiego Towarzystwa Naukowego.
Działalność polityczna
W latach 1994–1998 sprawował mandat radnego rady miasta Kielce, jednocześnie reprezentował tę radę w sejmiku samorządowym województwa kieleckiego.