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:
- Open a terminal window in your Linux distribution.
- 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:calorcal 2024for 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/usercd .. # 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) -
headandtail: 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--)