Frequently Asked Question
Why does every Linux server ship with vi?
Two reasons, one historical and one regulatory. Historically, vi was the standard editor of BSD Unix from 1979 onward, and AT&T's System V picked it up in the mid-1980s. Every Unix vendor of the next twenty years inherited it. When Linux arrived in 1991 it cloned the same toolchain, including the editor, and Bram Moolenaar's Vim, written specifically as a free vi-compatible replacement, became the version most distributions shipped.
Regulatorily, the POSIX standard (IEEE Std 1003.1) mandates that a conforming
system provide a vi command with a defined set of behaviours. That makes vi the
one editor a portable shell script is allowed to assume exists. Even the most
stripped-down systems comply: Alpine Linux's BusyBox includes a tiny vi
reimplementation in about a hundred kilobytes; embedded routers, Docker base
images, and minimal recovery shells all carry it.
The practical consequence is that learning even basic vi commands, enough to open a file, edit a few lines, save and quit, is the single most portable keyboard skill a Linux user can have. Whatever machine you SSH into in the next decade, whatever container drops you into a broken shell, the muscle memory will transfer.