The sys admin's daily grind – The Fuck

Expletives Not Deleted

Article from Issue 191/2016

In the 25 years of Linux kernel history, a huge amount of code and many comments have accumulated. They can be explanatory, enlightening, funny, or even profane. Charly prefers to do things differently, so he types fuck in the shell.

… profanity provides a relief denied even to prayer. – Mark Twain

As early as 1998, Sean Dreilinger created the first statistics on swear words in Linux [1]. It showed evidence of a sharp increase of the word "fuck" in kernel 2.1.5. Vidar Holen [2] delved even deeper into the murky depths (Figure 1). He found evidence of almost 50 incidences of "fuck," many incidences of "shit," and even 180 incidences of "bastard."

Figure 1: Kernel versions are shown on the x axis, and incidence of words on the y axis. Top to bottom: crap (blue line), shit (green), penguin (teal), fuck (red), bastard (violet).

How often Linus has raised a warning middle finger against hardware vendors such as Nvidia is unfortunately unknown; however, contemporary historians have probably only investigated the kernel mailing list quantitatively.

Damned Shell!

Cursing has made its way out of the kernel to other system components; a good example of this in many ways is The Fuck [3], a semi-automatic correction function for shell input. The tool, written in Python 3 is installed as follows:

sudo apt install python3 python3-dev
git clone
cd thefuck
sudo ./ install

After installing, if you make a typing error, such as forgetting the space in cd .., you first see the standard -bash: cd..: command not found. However, if you then type fuck, The Fuck suggests the correct command,

cd .. [enter/^/V/ctrl+c]

and you just need to confirm by pressing Enter. Of course, cd.. is a very simple example. Many users will already have created aliases for these typical errors. Incidentally, my favorite alias is

alias doch='sudo $(history -p !-1)'

where doch, in this case, roughly translated into English, could mean "actually" or "of course" (slap forehead). This alias saves me much suppressed cursing after forgetting to sudo.

However, The Fuck can do far more; it can even prevent you from shooting yourself in the foot with more complex Git commands. Ergo, the world needs much more of The Fuck to make it a more polite place.

Charly Kühnast

Charly Kühnast is a Unix operating system administrator at the Data Center in Moers, Germany. His tasks include firewall and DMZ security and availability. He divides his leisure time into hot, wet, and eastern sectors, where he enjoys cooking, freshwater aquariums, and learning Japanese, respectively.


  1. Linux kernel fuck count:
  2. Linux kernel swear counts:
  3. The Fuck:

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Expletives and the Kernel List

    Kernel amateurs are best advised to read summaries of the heated discussions on the Linux Kernel Mailing List (LKML) before they delve in. We analyze 2.5 million postings to study the density of cursing.

  • The sys admin's daily grind: Smorgasbord

    Sys admin columnist Charly Kühnast has an electronic note box in which he collects ideas and small snippets of code. He calls it his "quarry" and is taking this opportunity to offer up some collectors' items to regular readers.

  • Con Kolivas Introduces New BFS Scheduler

    After two years deep into Linux, the Australian Con Kolivas has emerged with a new scheduler that above all should provide significantly better performance on dual and quad processors.

  • Charly's Column: Metasploitable

    If you mess around with a pen-testing tool on your own network, you might survive the consequences, but chances are you'll take the prize for outstanding recklessness. Charly has some advice: Use Metasploitable, perhaps the most broken Linux ever.

  • Charly’s Column: Cluster SSH

    Charly doesn’t relish the idea of searching through the logfiles of a dozen proxy servers when page requests fail. Now that he has deployed Cluster SSH, he can pull the strings on many machines at the same time.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More