4D Tensor Shape
fn':
It represents number of channels in previous layer which also indirectly specifies depth(or channels) of each kernels in current layer.
fn:
It represents number of feature maps in current layer i.e. number of different kernels in current layer. Because each kernel outputs single channel.
fw:
It represents kernel width.
fh:
It represents kernel height.
Suppose  [fh, fw, fn′, fn] = [3, 3, 10, 20] then layer(weight) will be of size 20x10x3x3. Each kernel will be of size 10x3x3 (where 3x3 is spacial and 10 is depth) and there will be 20 such kernels. These kernels operate on previous 20 feature maps to output 10 feature maps.
And each entry in this 4d matrix representing weight will be shared. It doesn't connect neurons one to one because of convolution. Convolution's main advantages itself is parameter sharing and receptive field/local connectivity.
I was reading a Machine Learning book and came across this in the CNN chapter.

The weights of a convolutional layer are represented as a 4D tensor of
shape [fh, fw, fn′, fn]. The bias terms of a convolutional layer are
simply represented as a 1D tensor of shape [fn]. Where fh is the heigher of the receptive field and fw is the width of the receptive field. fn' is the number of feature maps in the previous layer and fn is the number of feature maps in the current layer.

I am trying to understand what each number in the given order signifies. Is it creating a rank 4 matrix where each entry represents the weight connecting an output neuron from the previous layer with specified feature map and location in the receptive field to the current ouput neuron?