At the very basic level, the Arduino Yun has all the functionality of the Arduino Uno. The pin-out arrangements are identical, so almost all of your Arduino shields, built for the Uno, can work on the Yun too. You can connect the Yun to the Arduino IDE and upload sketches just like using some of the simpler boards. The Yun has the same processor as the Leonardo, so some of the older TFT display shields that were built for the Uno might not work. Otherwise, you get all of the benefits of a tight micro controller including precise timing and the ability to talk to lots of other devices with many popular communication protocols.
The other side of the Yun is where the microprocessor power comes in. Underneath the shiny rectangle on the board is where the Yun runs a version of the Linux Operating System called OpenWRT. Here we can interface with the Internet to get or post information, and also write programs in a higher level programming language like Python. The OpenWRT manages the WiFi and other network connections allowing you to connect to the Yun directly using SSH when you are on the same network.
When you connect to the Yun using SSH, you can really see the inner workings of Linux. If you are using Windows, a free program called Putty is your best bet (www.putty.org). When using Linux simply type SSH ROOT@<IP ADDRESS> in the terminal window to get started. Once the Yun is connected to the WiFi or ethernet network, you can find it by connecting to it's IP Address, or Yun's usually represent themselves as arduino.local on the network. The default username is root and the default password is : arduino.
Once at the command prompt, you can explore using basic Linux commands like ls and cd / , and install or update software using opkg . Also, to get started with programming Python, just type python , and it will put you in the construct for writing programs.
The Linux side of the Yun can talk to the Uno side of the Yun through a library called 'The Bridge' ; and here is where the real power lies. There can be a Python program running on the Linux side, maybe using data from the Internet or doing more advanced logic 'thinking', passing information to the Arduino side to control the GPIO pins. The simplest example is turning on an LED from the Internet. An easy way to add this and more exotic functionality to your scripting is by using a site like Temboo (www.temboo.com). These 'choreos' will allow your Yun to touch the really-real world, like sending you a text message or calling you!
Basic6 provides a really neat way to look after and program your Arduino Yun. B6Launch is a web based interface, together with a small program you install on the Yun. It allows you to take a look at information about your Yun, restart it if you need to or push new sketches to it from anywhere! You don't even have to be on the same network to get access to your device. If you have a group of them, you can push updated sketches or start Python scripts to a bunch at a time. B6Launch even lets you keep a personal library of sketches, right in the web program. When you plan your Arduino Yun, IoT project, plan to include B6Launch control.
Check it out at basic6.com.