Fundamentals 8 min read

Linux Filesystem Overview, Common Issues, and Vim/Shell Command Guide

This article introduces the Linux filesystem hierarchy, explains typical directories, provides solutions for MobaTextEditor garbled text, and offers a concise guide to Vim modes, settings, search/replace commands, and useful shell scripts for system administrators.

FunTester
FunTester
FunTester
Linux Filesystem Overview, Common Issues, and Vim/Shell Command Guide

This article, contributed by the FunTester learning community, presents a comprehensive overview of the Linux filesystem directories and their purposes.

Filesystem

/bin (including /usr/bin, /usr/local/bin) – stores frequently used commands.

/sbin (including /usr/sbin, /usr/local/sbin) – system administration programs.

/home – user home directories, one per user.

/root – home directory for the superuser.

/lib – dynamic shared libraries required at boot, similar to Windows DLLs.

/lost+found – usually empty; stores files after an improper shutdown.

/etc – configuration files and subdirectories for system management.

/usr – major directory containing many applications and files, analogous to Windows Program Files.

/boot – kernel and related boot files.

/proc – virtual filesystem exposing kernel and process information.

/srv – data for services after they start.

/sys – sysfs, a newer kernel filesystem.

/tmp – temporary files.

/dev – device files representing hardware, similar to Windows Device Manager.

/media – mount points for detected devices (e.g., USB drives).

/run – temporary files created by processes.

/mnt – temporary mount points for other filesystems.

/opt – directory for additional software installations.

/usr/local – programs installed from source.

/var – logs and frequently changing data.

Linux Work Issue Solutions

MobaTextEditor Garbled Text

Problem: /bin/bash^M: bad interpreter: No such file or directory

Root Cause

In Windows each line ends with \r\n, while Linux expects only \n. When a shell script edited on Windows is copied to Linux, an extra \r character appears (displayed as ^M), causing garbled text in MobaTextEditor.

Solution

Remove carriage returns: sed -i 's/\r$//' filename (replace filename with your script name).

Use dos2unix : dos2unix xxx.sh

Vim Commands

Three Modes

Command mode (cursor navigation)

Insert mode – text entry

Ex mode (also called “quit” mode)

Mode Settings

:set – display options

:set nu – show line numbers

:set nonu – hide line numbers

:set cursorline – highlight current line

Search and Replace

Search: /keyword (use n / N to move forward/backward)

Replace examples: :s/aa/bb – replace first aa on the current line with bb :s/aa/bb/g – replace all aa on the current line :%s/aa/bb/g – replace all aa in the file :3,10s/aa/bb/g – replace aa with bb from line 3 to 10 :%s/\\/\//g – replace backslash with slash (escape special characters) :%s,\\,/,g – alternative delimiter :%s,aa,bb,gic – case‑insensitive replace with confirmation

Edit Multiple Files Simultaneously

Open a split: :sp filename

Ctrl+w ↑ – move cursor to the upper window

Ctrl+w ↓ – move cursor to the lower window

Attached Shell Script Example

#!/bin/bash
# Construct trivial files and compute MD5 values
# author: brh
# date:   2020-10-09

case $1 in
  "-h")
    echo "1: ./xxx.sh touch_file num"
    echo "2: ./xxx.sh touch_md5_file num"
    echo "3: ./xxx.sh check_md5_file num"
    ;;
  "touch_file")
    # generate trivial files
    for((i=1;i<=$2;i++)); do
      echo $i > $i.txt
    done
    ;;
  "touch_md5_file")
    # compute MD5 and save
    for((i=1;i<=$2;i++)); do
      md5sum $i.txt > $i.txt.md5
    done
    ;;
  "check_md5_file")
    # compare MD5 values
    for((i=1;i<=$2;i++)); do
      md5num1=`md5sum $i.txt`
      md5num2=`cat $i.txt.md5`
      if [ "$md5num1"x = "$md5num2"x ]; then
        echo "$i.txt MD5 data consistent"
      else
        echo "$i.txt MD5 data inconsistent"
      fi
    done
    ;;
esac

Author: FunTester – Tencent Cloud annual author, Boss Direct hiring author, GDevOps official media partner.

linuxshellsysadminVimcommandsFilesystem
FunTester
Written by

FunTester

10k followers, 1k articles | completely useless

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.