How similar is Raspbian to desktop Linux's?

Around 14th/1/2020 I intend to ditch windows all together and move on to a Linux distro (I've used Mint & Ubuntu before and liked both (but liked Mint a little better)) but that was only to test the waters; at some point I'll go from Windows to Linux and (hopefully) never go back. So I present this question:

What's different between Raspbian and desktop distros?
I've just finished setting up a Raspberry PI (1st gen, 512MB) and SSH-ing, Remote Desktop-ing into it and with the intention of turning it into a web server (so I can gain some 1st-hand experience after enjoying the web development units on my college course (british b-tec, not the fancy type :P)). Will my tinkering on a PI with Raspbian installed help at all when I make the move to Linux on my desktop?

Thanks!
~pip

p.s. Oh man I ramble a lot...

The only major difference on the desktop is the environment it is using. Raspbian uses LXDE which is a lightweight environment that is well suited for the Pi but their are also other environments such as Unity, Gnome, KDE, Xfce, Cinnamon, and many many more. It all depends on which environment you prefer to use but generally any exposure to Linux would help if you later decide to switch completely, even if you change the environment from LXDE in the process because the command line and general system architecture is pretty much identical in most cases.

1 Like

Any experience at all Linux will be helpful to help your transition.

Raspbian is very similar to debian. The only differences are for usability on such low-end hardware that is the raspberry pi.

The buttons are in different places :/

Mostly just what apps you have access to out of the box. Its a full desktop right there so you would have the same thing with lubuntu.

Sure using a Raspberry will help you get familiar with the Linux environment. If you're going to use the Raspberry as a web server I highly suggest you to turn off the GUI and just interface to it through SSH because: 1) You'll have more resources to run all of your servers and processes; 2) The most experience you can gain with Linux is through BASH, since is the foundation of the Linux kernel and all the basics you learn on it are always applicable to every system based on Linux.

Oh, cheers!
Yeah, after my experiences last night I realized the terminal is much more important than on my windows machine. Something that is confusing me now is what Linux executable files look like. On windows it's an .exe or .bat obviously but in my struggle to get apache to launch I couldn't find any file to open. And when I went start- run and put "apache2" (which showed up in drop-down suggestions) nothing happened... Is this me being dumb or does Linux run programs differently?

Thanks again!
~pip

For an executable to run you first have to mark it as an executable. It does not have to have any extension like .exe on Windows. Also remember not all programs have a GUI, so they'd be run and function in the terminal exclusively.

The good news is that the majority of applications on Linux can be compiled from source to run on any architecture, as long as you have a working compiler that supports the that particular architecture, you can compile both the target application and it's dependencies. This is how the kernel is ported to other platforms so easily.

The only hurdles you might run into if you go from Raspbian to a more popular distribution like Debian, Arch, Fedora, (Etc.) will be in the form of distro-specific utilities. For example, I believe there is an application loaded with raspbian that allows wifi to work out of the box. You might not have the same experience with other distributions when configuring certain features like that. However, I'm sure that won't be a real issue since you can find the documentation any distro easily.

You shouldn't have too much of an issue going from Raspbian to "desktop Linux."

You can mark a script as executable like so

sudo chmod +x myscriptexample

To start apache

sudo service apache2 start

To install gparted (as an example)

sudo apt-get install gparted

On a Pi it is really better to install it headless and just work in a terminal via SSH. It forces you to learn faster. The following might be of help


After you have Raspbian install on the MicroSD card, insert it into the Pi and power it on. You don't need a monitor, mouse or keyboard attached to the PI to do any of the following. Just power and ethernet. You do need a separate computer.

Work out what the IP address the Raspberry Pi has obtained from DHCP. I assume that DHCP is running on your network, probably from your modem / router.

Login to your router and locate the page that lists all connected devices. Find the entry for the Raspberry Pi.

For the purposes of the following command it is assumed that your Raspberry Pi's IP address is 192.168.0.11

If you are using Windows, PuTTY is a suitable program to accomplish this.

Open a terminal and enter the following command

ssh -p 22 [email protected]

This should then connect you to the Raspberry Pi. Login with the default password. The first thing to do is enter the following command.

sudo raspi-config

Proceed through the options. When finished reboot the Raspberry Pi when prompted and then log back in. The IP should the same at this point.

Now set a static IP. Enter the following command to edit the interfaces file.

sudo nano /etc/network/interfaces

Edit the file so it resembles the following where 192.168.0.10 is the static IP you want your Raspberry Pi to have and your default gateway is 192.168.0.1

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.1

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

auto wlan1
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Exit and save the file and then reboot with

sudo shutdown -r now

You can now login with

ssh -p 22 [email protected]

and you know the IP won't change.

The adventure begins!

1 Like

Woo! I got apache to work without the GUI! Thanks a bunch!

This linux business is going to need some serious memory haha. Can I ask what the tags (e.g. -x or -a) mean/do?

Also I figured that, if I add a DHCP reservation in the router it would have the same effect as doing it on the PI- is this right?

Thanks!
~pip

The +x means you have made the file executable.

The fastest (not maybe the easiest) way to learn about anything is to man it. These are the manual pages.

man chmod
man chown

even the simplest commands

man ls
man df

Another good resource

http://ss64.com/bash

http://ss64.com/bash/chmod.html - for your query

I guess a DHCP reservation could work but I would recommend a static IP in any case. I exclude a range from DHCP that is assign static IPs as a preference.

I would also recommend the udacity tutorial for the linux command line. They're a series of really informative and step by step videos that'll get you up to speed with the basic command line functionality.

Those links are ideal! I was a bit confused as to why I couldn't move modified .html files over via Filezilla but my lecturer said it could be file permissions. Those links really helped there haha.

Cheers guys, it seems to be working now (people not on my network can see modified versions of the files so I guess it works haha.)

~pip