As always, if you have any data that needs to be saved, make a backup of the entire drive using a program such as clonezilla before re-partitioning. The safest way to resize the windows partition is with Windows' Disk Management program. However, Windows likes to spread out data and has "unmovable" files like the pagefile and system restore files which often limits the amount of space available to shrink the volume, even when there is a quite a bit more "free" space in that partition. See this post which describes how to free up more space on the volume. You will benefit from defragmenting the windows volume beforehand as well as turning off hibernation.
Windows is messy with partitions and loves to gobble the whole disk with partition, so your sda4 and sda6, as the flags suggest, are diagnostic and recovery tools for Windows. Unfortunately, they've sandwiched your Linux partition, which is nearly full. If you shrink the Windows system partition, you will be adding unallocated space at the beginning of your Linux partition. The key point is that the unallocated space is contiguous with your Linux partition, which it will be.
Once you've freed the unallocated space, you can reboot to your Unbuntu live USB and use GParted to expand the unallocated space into your Linux volume. You can find some discussions on the considerations for adding to the volume here and here. I hope this helps get you started.
mount
command./dev/sda6
is the Windows recovery partition and can be deleted – phuclv Mar 28 '20 at 10:03