3.4 KiB

Basic Shell (Bash)

1. Introduction to Bash and the command line

Bash (Bourne Again SHell) is a command-line interface and scripting language used in Unix-like operating systems, including Linux. It's an improved version of the original Bourne Shell (sh).

Key points about Bash:

  • It's the default shell in most Linux distributions.
  • It allows users to interact with the operating system through text commands.
  • It's both an interactive shell and a scripting language.

To start using Bash:

  1. Open a terminal window in your Linux distribution.
  2. You'll see a prompt, typically ending with a $ symbol for regular users or # for root users.

Basic syntax:

command [options] [arguments]

For example:

ls -l /home/user

Here, 'ls' is the command, '-l' is an option, and '/home/user' is an argument.

Some essential commands to get started:

  • echo: Prints text to the screen Example: echo "Hello, World!"

  • date: Displays the current date and time Example: date

  • cal: Shows a calendar Example: cal or cal 2024 for a specific year

  • man: Displays the manual page for a command Example: man ls (Use 'q' to exit)

2. Basic navigation and file management

Linux file system hierarchy: The file system in Linux is organized in a tree-like structure, starting from the root directory (/).

Key directories:

  • /: Root directory
  • /home: User home directories
  • /etc: System configuration files
  • /var: Variable data (logs, temporary files)
  • /bin: Essential command binaries
  • /usr: User programs and data

Navigation commands:

  • pwd: Print Working Directory Example: ```bash pwd

    
    
  • cd: Change Directory Examples:

    cd /home/user
    

    cd .. # Move up one directory cd ~ # Move to home directory cd - # Move to previous directory

    
    
  • ls: List directory contents Examples:

    ls
    ls -l  # Long format
    ls -a  # Show hidden files
    ls -lh # Human-readable file sizes
    

File and directory management:

  • mkdir: Create a new directory Example: mkdir new_folder

  • touch: Create an empty file or update timestamp Example: touch newfile.txt

  • cp: Copy files or directories Examples:

    cp file.txt /path/to/destination/
    cp -r folder/ /path/to/destination/  # Recursive copy for directories
    
  • mv: Move or rename files/directories Examples:

    mv file.txt newname.txt  # Rename
    mv file.txt /new/location/  # Move
    
  • rm: Remove files or directories Examples:

    rm file.txt
    rm -r folder/  # Remove directory and contents
    rm -i file.txt # Interactive mode (asks before deleting)
    
  • cat: Concatenate and display file contents Example: cat file.txt

  • less: View file contents page by page Example: less longfile.txt (Use 'q' to exit)

  • head and tail: View the beginning or end of a file Examples:

    head -n 5 file.txt  # First 5 lines
    tail -n 10 file.txt # Last 10 lines
    

File permissions: Linux uses a permission system for files and directories. You can view permissions with ls -l:

-rw-r--r-- 1 user group 1234 Jan 1 12:00 file.txt

The first 10 characters represent:

  • File type (- for regular file, d for directory)
  • Read (r), Write (w), and Execute (x) permissions for Owner, Group, and Others

To change permissions, use the chmod command:

chmod u+x script.sh  # Add execute permission for the owner
chmod 644 file.txt   # Set specific permissions (rw-r--r--)