Linux Fu: Better Bash Scripting

It is easy to dismiss bash — the typical Linux shell program — as just a command prompt that allows scripting. Bash, however, is a full-blown programming language. I wouldn’t presume to tell you that it is as fast as a compiled C program, but that’s not why it exists. While a lot of people use shell scripts as an analog to a batch file in MSDOS, it can do so much more than that. Contrary to what you might think after a casual glance, it is entirely possible to write scripts that are reliable and robust enough to use …read more

Paul Jacob Evans


BASH games

Get serious about your shell scripting skills and maybe you can pull this one off. It’s a game of snake played in a BASH shell. It seems like a coding nightmare, but the final product turns out to be organized well enough for us to understand and took less than 250 lines of code.

[Martin Bruchanov] started on the project after pining for an old DOS game called Housenka. It’s another version of the classic Snake game which we’ve coded ourselves and seen in several projects including this head-to-head version using musical recorders as controllers. When using a terminal emulator …read more

Paul Jacob Evans

Linux-Fu: Running Commands

One of the things that makes Linux and Unix-like systems both powerful and frustrating is that there are many ways to accomplish any particular goal. Take something simple like running a bunch of commands in sequence as an example. The obvious way is to write a shell script which offers a tremendous amount of flexibility. But what if you just want some set of commands to run? It sounds simple, but there are a lot of ways to issue a sequence of commands ranging from just typing them in, to scheduling them, to monitoring them the way a mainframe computer …read more

Paul Jacob Evans

Free as in Beer, or the Story of Windows Viruses

Whenever there’s a new Windows virus out there wreaking global havoc, the Linux types get smug. “That’ll never happen in our open operating system,” they say. “There are many eyes looking over the source code.” But then there’s a Heartbleed vulnerability that keeps them humble for a little while. Anyway, at least patches are propagated faster in the Linux world, right?

While the Linuxers are holier-than-thou, the Windows folks get defensive. They say that the problem isn’t with Windows, it’s just that it’s the number one target because it’s the most popular OS. Wrong, that’d be Android for the last …read more

Paul Jacob Evans

EV3DEV Lego Linux Updated

The ev3dev Linux distribution got an update this month. The distribution targets the Lego EV3 which is a CPU Lego provides to drive their Mindstorm robots. The new release includes the most recent kernel and updates from Debian 8.8. It also contains tools needed for some Wi-Fi dongles and other updates.

If you haven’t seen ev3dev before, it is quite simply Linux that boots on the EV3 hardware using an SD card. You don’t have to reflash the computer and if you want to return to stock, just take out the SD card. You can also use ev3dev on a …read more

Paul Jacob Evans

VIM Normalization

Linux users–including the ones at the Hackaday underground bunker–tend to fall into two groups: those that use vi and those that use emacs. We aren’t going to open that debate up again, but we couldn’t help but notice a new item on GitHub that potentially negates one of the biggest complaints non-vi users have, at least for vim which is the most common variant of vi in use on most modern systems. The vim keybinding makes vim behave like a “normal” editor (and to forestall flames, that’s a quote from the project page).

Normally vi starts out in a command …read more

Paul Jacob Evans

Btrfs for the Pi

File systems are one of those things that typical end users don’t think much about. Apparently, [seaQueue] isn’t a typical end user. He’s posted some instructions on how to run an alternate file system–btrfs–on the Raspberry Pi.

The right file system can make a big difference when it comes to performance and maintainability of any system that deals with storage. Linux, including most OSs for the Raspberry Pi, uses one of the EXT file systems. These are battle-hardened and well understood. However, there are other file systems, many of which have advanced features superior to the default file system for …read more

Paul Jacob Evans