Future wireless services must be focused on improving the quality of life by enabling various applications, such as extended reality, brain-computer interaction, and healthcare. These applications have diverse performance requirements (e.g., user-defined quality of experience metrics, latency, and reliability) that are challenging to be fulfilled by existing wireless systems. To meet the diverse requirements of the emerging applications, the concept of a digital twin has been recently proposed. A digital twin uses a virtual representation along with security-related technologies (e.g., blockchain), communication technologies (e.g., 6G), computing technologies (e.g., edge computing), and machine learning, so as to enable the smart applications. In this tutorial, we present a comprehensive overview on digital twins for wireless systems. First, we present an overview of fundamental concepts (i.e., design aspects, high-level architecture, and frameworks) of digital twin of wireless systems. Second, a comprehensive taxonomy is devised for both different aspects. These aspects are twins for wireless and wireless for twins. For the twins for wireless aspect, we consider parameters, such as twin objects design, prototyping, deployment trends, physical devices design, interface design, incentive mechanism, twins isolation, and decoupling. On the other hand, for wireless for twins, parameters such as, twin objects access aspects, security and privacy, and air interface design are considered. Finally, open research challenges and opportunities are presented along with causes and possible solutions.