computer chip

Linux

INTRODUCTION TO DEBIAN LINUX

I do love Penguins!

Is it possible to fall in love with a penguin?
Yes, it happened to me!
Well, I am talking about:
Gnu / Linux

the operative system I have embraced after many years with the dreadful Microsnot Windoze ...sorry... Macroscam Win$O$ ...gosh, what was the name?.. [alert: profanity] Microshaft Copulation Windblows [end of alert] ...alright, I mean, you know what I am talking about, don't you BSOD survivors?
Yes, right that one with Internet Exploder and viruses a go go; with air conditioning, that stops working as soon as you open windows... damn, I have forgotten everything about that remote era.

TUX Anyway, rejoice! Why use windows when you can use doors?
And the Linux doors are always open, it's free for everyone, Open Source, safe, collaborative, comes in all possible flavors, serves you breakfast, and Tux is sooo cute.

The shift was a serious and difficult challenge, admit, but I would never go back again, as I have experienced how wonderful it is to get free, off proprietary and closed systems, from office / business / money / power environments and discover there is a whole world of co-working, sharing, enthusiasm, creativity.

Linux has come a long way by now. If you are going to use it as a 'standard', average user, then it is fully usable for you. Right out of the box in most cases.
Only if you need it for special uses, like me as a musician, then it will challenge you, no doubt. You'll have to learn it, to get beyond the apparently impossible technicality of it (or nasty rude nerdiness at times), and discover its logic and its commands. At some point it will click, and the reward will be huge.

In case you still languish somewhere, like I did in my first hard, heroic and solitary times with learning Linux, here it comes some help!
It is by no means a complete, unbiased and authoritative guide, way far from it, and the usual disclaimer:
⚠ use it at your own risk! ⚠
is much needed.
Rather: just my personal collection of all what I have found out, little by little (or curse by curse if you prefer). Like when a printer suddenly is not working any more, or your fingers got stuck in the cd-rom burner. It is handy to have the command needed to avoid annoying amputations right at hand (no pun intended).
So that you don't have to bang your head on the same problems more than necessary.

What Linux?

Linux is not just Linux, rather hundreds (thousands) of different distributions (or 'distros' for short). Have a look here and you will probably faint:
- List of Linux distributions
- DistroWatch

Still there? All have the same core in common (the kernel), but differ greatly in functionalities, appearance, 'taste', specialization for specific tasks.
That is one of the most confusing aspects for the beginner:
what distribution should I choose???

I would humbly suggest to choose the Debian one, as I did.
Without starting the usual religion war, and perfectly aware of the fact it is namely the distro that is usually not suggested to a beginner, I still maintain that it is unbeatable, and you won't regret it in the long run.
First of all because it is the most rock-solid thing in the Universe. I haven't experienced one single crash for years, that's a fact. And I am not even using its 'Stable' edition, the 'Testing' one in fact.

You can alternatively start with other distros, easier on beginners, like:
Ubuntu
Linux Mint
or such.

Just consider: they are definitely more bulky, bloated, unstable, compared to Debian, even if based on the very same O.S.
In the beginning they might appear familiar, esthetically pleasant, fun, but in the long run you will realize my warning was wise, and what mentioned was actually just one of the problems you might experience.
Anyway, the above mentioned distros are very popular, have a big users base, and plenty of documentation, forums, help [in Linux usually consisting in kind and loving "R.T.F.M.!" encouragements], that can assist you in case you need.
The problem can be more for smaller or specialized distros that suddenly stop being maintained [the developer got a full-time job or a bad Kundalini awakening, tipically], or if you have special hardware, I mean your computer has.
There it comes Debian to your rescue again, the most universal OS. Really: I suspect it could even run on a vintage Maine wooden toothpick.

A screenshot of my super-cool-minimalistic LucOs, my personal multimedia Debian OS (an installed from scratch and customized Debian Testing, with a low-latency multimedia kernel, an IceWm window manager, and a few optimizations)
Voilà: the best multimedia station in the world! (and such a modest and proud owner :) SCREENSHOT

FREE SOFTWARE

FREE ALTERNATIVES TO PROPRIETARY FORMATS, CODECS AND SOFTWARE

Before finally getting into all the Debian tips, I would like to write a bit about what is available,
of the free and OpenSource kind.

Talking about software, it is a very simple choice here:
do you want to be a slave to commercial owners or do you want to be free?

I don't think many would choose the first, if they were fully conscious about it.
Being free, is a gorgeous feeling, a motivation and inspiration that is not the least comparable to passive slavery.

Be surprised now: free software is way better than proprietary, under many respects,
because the OpenSource method is intrinsically superior.
Being the way to go, our future, things are going to be even better and better with time.
Besides, free software is not only "free as in speech", it is also "free as in beer". in most cases.
That's also intrinsically superior, believe me...

Not all comes by itself though, you need to sustain its development.
Refusing to use closed source facilities, and supporting the free ones in stead.
A shift to Linux is one fundamental way, Or using ogg in stead of mp3 is another one.
The same with all other formats, software, systems.

Following will come a list of what I am using in my own Debian box.
Again: not at all exhaustive, just what I personally like.
Apart from a few bugs now and then, it all works quite stably and smoothly though,
so this will be a real daily life list, and useful as such:
you can safely use it too.

In case you want a larger choice, a good place to find most available alternatives is:

FREE PROPRIETARY
OPERATIVE SYSTEM Linux Windows, Apple
GRAPHICS .bmp .tif
.png .jpg (is it proprietary?)
.svg (Scalable Vector Graphics) .wmf
VIDEO Openshot
MULTIMEDIA
web video .webm .swf (Adobe Flash)
AUDIO
lossy compression .ogg (can carry both audio/vorbis
and video/theora)
.mp3 (Fraunhofer Institute)
.aac (Microsoft)
.wma (Microsoft)
lossless audio .flac
OFFICE
office suite LibreOffice Microsoft Office
formatted documents .odt (Open Text Document) .doc (Microsoft Word Document)
pdf viewers Evince Acrobat Reader (Adobe)
COMMUNICATION
softphones Firefox Hello
instant messaging Pidgin
tips

DEBIAN LINUX COMMANDS AND HACKS

Now: don't let the following scare you, as a beginner.
In general you don't need all this, you can use easy graphical interfaces.

But what is beautiful with Linux is that you can use the command line and terminals to do all kind of actions.
So, it is a very good idea to learn a lot of this stuff, your experience with Linux will be greatly enhanced!

DO NOTICE:

  • $ is the prompt in the terminal window, as a user
  • # is the prompt in the terminal window, as root (administrator)
    [do not confuse it with the same # used to start a comment in system files]
  • "bluefish" is my text editor; use any other non-formatting text editor,
    such as leafpad , gnome-editor or vim
  • aptitude is what I use to manage packages, as it gives better possibilities,
    but you can substitute it with apt-get if you prefer it
  • TERMINAL
    to open the terminal window in the desktop menu, look after: "terminal" or "x-terminal" or "gnome-terminal"
    The "x-terminal as root" will ask you for the root password and will open the terminal as administrator [careful what you do there!] .

    In case you are in the normal user terminal (you see the dollar $ prompt) you can switch to root by typing "su", writing your root password and hitting "enter" key (then the prompt will switch to #)
    the output of a command, instead of just scrolling very fast to the end, has to be shown screen by screen add | more to your command: $ your-command | more
    HELP
    get help for a specific command for ex., if you need help for the
    command aplay then type:
    $ aplay --help | more
    COMMANDS
    COMMAND PARAMETERS DESCRIPTION
    $ a prompt, what you see in an empty terminal, when logged in as a non-root user.
    # a prompt, what you see in an empty terminal, when logged in as a root / superuser.
    $ aplay keyword lists alsa (sound server) devices (sound-cards typically).
    $ apropos keyword searches the manual pages for occurrences of the specified keyword and prints short descriptions from the beginning of matching manual pages
    # apt-get see next: 'aptitude' (I prefer aptitude because it has wider possibilities)
    # aptitude update updates the list of available packages
    install installs the updated/new packages. If you type the name of a specific package after 'apt-get install' only that specific package will be installed
    upgrade upgrades all your packages to the newest available version
    $ bg puts a process in the background; the opposite is 'fg'
    $ clear clears the screen
    # dselect lets you browse a list of packages available in the apt-get repositories you are using
    $ fg puts a process in the foreground, opposite of 'bg'
    $ free displays the amount of used and free system memory
    $ glxgears graphics demo drawing some rotating gears, with framerate information in the command line
    # hdparm /dev/hda some hardware info about the harddisk, in particular if DMA is enabled
    $ jobs displays all background jobs
    kill it kills (closes, stops, terminate etc.) a running process, program, job. To know what to use as an id for the process just type jobs or ps in the command line.
    $ locate name When you install a program, its files will typically to be found in the /usr/share and /usr/bin folders, but where are all the others? They are usually spread all over, and it can be tricky, not to say bloody frustrating, to find them out. 'Locate' lists where all the files related to a specific program are in fact located on the hard disk.
    $ lsmod lists of running modules, their size and what is using them
    modinfo modulename will display data about that specific module
    $ mount
    -a looks into /etc/fstab and accordingly mounts all filesystems
    $ ps displays the processes associated with the current userid (the name of a user, like yourself or someone else)
    -aux displays a description of each process
    # shutdown now -h the system will shut down
    now -r the system will shutdown and then reboot
    $ su lets you switch from the current userid to root
    - with a default environment for the userid
    # su userid changes the current userid to the specified userid
    - userid with a default environment for the userid
    THE CD IS STUCK IN THE DRIVE
    $#
    $#
    $#
    $#
    $#
    $#
    $#
    HARDWARE:   CDROM
    MOUNTING the official documentation about "mount" $# man mount
    mounting $ # man mount
    unmounting $ # umount
    THE CD IS STUCK IN THE DRIVE If the cd-rom is not ejected when pressing the button, then, even if nothing seems running, it is likely the cd is still used by some program. Try to run this command: $# lsof /dev/cdrom
    If you get as an output a list of processes going on, that's why the disk doesn't want to be expelled. Then notice there is a column called "PID", it is the identification number for the processes. You need to stop them issuing: $ kill PID
    Repeat this for all the PIDs listed, and then you will be able to eject the cd, by pressing the usual button.
    If it does not work, then you can write in a terminal window: $ eject /dev/cdrom
    USB
    Info about your curently connected USB devices $ # lsusb
    QUIETEN THE BEAST
    Temporary solution: switch the damn bell off! $ xset b off
    visual bell in stead of audio bell $ setterm -blength O
    Permanent: permanently disable the damn bell! $ bluefish /etc/inputrc
    find the lines: # do not bell on tab-completion
    # set bell-style none
    uncomment the "set bell-style none" one: # do not bell on tab-completion
    set bell-style none
    in case that is still not enough to eliminate all belling, do not smash the computer with a hammer, as a last resort you can edit: # bluefish /etc/modprobe.d/blacklist
    and insert at the end of the file: # finally in peace
    blacklist pcspkr
    CLEANUP YOUR SYSTEM
    What is using my hard disk's space? fancy to know what uses your hard disk? # aptitude install xdiskusage
    Eliminate unused packages empty the packages cache # apt-get (or aptitude) clean
    remove partial packages # apt-get (or aptitude) autoclean
    $#
    $#
    $#
    $#