Linux first steps

2020-09-19 @Technology

You wish to submerge into the Linux OS with absolutely no prior exposure. Where do you start? How do you choose the distribution from all these never-ending options? The Window Manager? What terminal commands need you adapt? How does everything interact?

Better yet, you probably only care for the essential elements to make you functional. You don’t want elaborate guides and extensive tutorials. They’re boring and not the best use of time. We deal in usability, not academic rigor.

I’ll therefore aim to provide precisely those initial steps necessary to build momentum, emphasizing the 80/20 of time vs benefit.

Distribution

Choose whatever you want that’s not specialized or catered for specific use cases. Otherwise, it doesn’t matter.

Beginners often settle for some Debian variant, such as Ubuntu, Mint, or the very Debian. You could also begin with Arch Linux (my laptop distro) or a variant, although you’d probably face greater initial confusion.

It doesn’t matter because you can severely customize most aspects that make up a distribution. With time, you can augment, strip, and carve one distribution in spirit of another.

Of greater concern are the fundamental terminal commands, the core applications you’ll use all the time, and the basic file system layout. The visual aspect is merely a façade. (See also this commentary of mine.)

Window Manager

Without the specifics of the X framework (the Linux visual layer), a Window Manager is the graphical environment you interact with to launch applications or consoles for terminal interaction.

Similar story. It doesn’t matter because the subtle differences will bear very little impact on your initial productivity. Very little.

Your initial setup, irrespective of distro and WM, will be a sloppy hell of a mess anyway. Trial-and-error learning will bear greater weight than whatever marginal conveniences a WM offers.

For the record, WMs vary from heavyweight (ie Gnome, KDE), to light-weight (Awesome, i3, xfce), to ultra-minimalist (dwm), although the choice expands to hundreds. Each functions according to a certain paradigm. I’ve used the Awesome WM for many years.

A distribution typically comes preconfigured for a specific WM. Go with that for now. WMs are swappable with incredible ease anyway.

Basic terminal functionality

While the WM enables you to launch applications and conduct certain operations graphically, you will remain severely handicapped and oblivious to the underlying power if you evade the terminal.

Although the Linux/Unix ecosystem features hundreds of just the core commands and shell functions, a very small number will account for most that you’ll initially care for:

  1. Commands ls, cd, cp, mv, rm, mkdir, cat, less, sudo, exit
  2. Keys <up>, <down>, CTRL+R to navigate the command line history.
  3. CTRL+C to abandon a running command.

You can typically launch the terminal via a quickly accessible icon/button/menu option in your Window Manger or via a shortcut key (often CTRL+ALT+T, WIN+T, CTRL+ENTER or WIN+ENTER).

For the command syntax,

  1. The --help option often provides basic command documentation (ex: cp --help)
  2. man <command> launches the man page. man pages constitute the Linux de-facto Linux help system.
  3. Quick internet search.

Modify your shell prompt

The pwd command indicates what directory you’re in. But it’s quiet ludicrous to have to type this when you can simply reconfigure your shell prompt (the preceding portion to the line where you type your terminal commands) to always include that information.

Since you’re probably using the Bash shell, open the configuration file ~/.bashrc with whatever editor at your disposal, and insert the following somewhere in there:

PS1="\u@\h:\w\$ "

In this case, your shell prompt will display user@host:current_directory$.

Alternatively, the color version, per my present setting:

PS1="\[\033[00;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ "

Applications

You’ll likely use a package manager for most software installation. In Debian-based systems that’s APT. In Arch, pacman. In the first case, sudo apt-get install <package> installs the respective package. In the latter case, sudo pacman -S <package>.

The crucial applications and packages should likely be installed. That includes some web browser, desktop email client, file manager. Plenty of alternate options exist, though I recommend the terminal way of doing things when possible. But for the short-term, you should be set.

Text editing

I can’t recommend VIM enough. Emacs is an alternative power editor of cult status, though I can’t speak much of it.

If accustomed to a monkey point-and-click and arrow-key type of editing, VIM could become your life-changing element. But it demands a learning curve. See a number of options to quickly acquire the basics:

  1. Launch a built-in tutorial via vimtutor: a mere text file loaded in VIM that you follow and interact with.
  2. Endless (cheat) sheets among the myriads you can find via a quick web search. How about this, this, or this.
  3. Inside VIM, :help command launches the respective built-in documentation.

Lasting remarks

The availability of Linux-related hacks, helper scripts, power-tools, shortcuts, automations, etc, can appear exhausting. But the core fundamentals haven’t heavily varied for all intensive purposes. These initial steps should get you started.

Questions, comments? Connect.