This tutorial also applies to other Cisco switches. The Cisco Catalyst 2960 is a layer 2 switch, perhaps one of the most commonly used switches I see in the field. Trunking is a solution for connecting two switches at layer 2, trunking even allows for VLANs in both switches to communicate.

For this tutorial I will create a trunk between two Cisco Catalyst 2960 switches. My Catalyst 2960 come with two gigabit uplink ports, I will use one port on each switch to establish the trunk. By default all VLANs will be able to traverse the trunk(this includes VLAN 1).
SWITCH-A Trunk Configuration
SWITCH-A# configure terminal SWITCH-A(config)# interface gigabitEthernet 1/1 SWITCH-A(config-if)# description trunk link SWITCH-A(config-if)# switchport mode trunk SWITCH-A(config-if)# switchport nonegotiate
Command explanation:
- switchport mode trunk - Configure interface for trunking mode
- switchport nonegotiate - Since the interface was manually configure for trunking there is no need to negotiate
SWITCH-B Trunk Configuration
SWITCH-B configuration steps are identical to SWITCH-A.
SWITCH-B# configure terminal SWITCH-B(config)# interface gigabitEthernet 1/1 SWITCH-B(config-if)# description trunk link SWITCH-B(config-if)# switchport mode trunk SWITCH-B(config-if)# switchport nonegotiate
Conclusion
By trunking two switches together the amount of available ports can be increased. The interfaces linking the two switches may be come bottle necks if the switches send more traffic than either the Fast Ethernet or Gigabit Ethernet port used for the trunk can handle, to increase bandwidth between the switches consider adding EtherChannel to the trunk link.
Feel free to leave a comment below, who knows I maybe able to provide some extra assistance.