Navigating Linux systems relies heavily on command-line tools. Here’s a comprehensive guide to 25 fundamental commands for managing directories and files, complete with practical examples.
1. Directory Navigation
-
pwd
(Print Working Directory)- Shows your current directory path.
Example:$ pwd /home/username
- Shows your current directory path.
-
cd
(Change Directory)- Moves between directories.
Examples:$ cd Documents # Enter "Documents" $ cd .. # Go back one level $ cd ~ # Return to home directory
- Moves between directories.
-
ls
(List Files/Directories)- Displays directory contents.
Examples:$ ls # List visible items $ ls -a # Include hidden files (e.g., .config) $ ls -l # Detailed view (permissions, size)
- Displays directory contents.
-
tree
- Shows directories/files in a visual tree structure.
Example:$ tree -L 2 # Display 2 levels deep
- Shows directories/files in a visual tree structure.
2. Creating & Deleting Directories
-
mkdir
(Make Directory)- Creates new directories.
Examples:$ mkdir Projects # Single directory $ mkdir -p Projects/2024/docs # Nested directories
- Creates new directories.
-
rmdir
(Remove Directory)- Deletes empty directories.
Example:$ rmdir Old_Projects
- Deletes empty directories.
3. File Operations
-
touch
- Creates empty files or updates timestamps.
Example:$ touch report.txt
- Creates empty files or updates timestamps.
-
cp
(Copy)- Copies files/directories.
Examples:$ cp file.txt backup/ # Copy to "backup" $ cp -r dir1/ dir2/ # Copy directories recursively
- Copies files/directories.
-
mv
(Move/Rename)- Moves or renames files/directories.
Examples:$ mv old.txt new.txt # Rename $ mv file.txt ~/Documents/ # Move to "Documents"
- Moves or renames files/directories.
-
rm
(Remove)- Deletes files/directories. Use cautiously!
Examples:$ rm temp.log # Delete file $ rm -r Junk_Folder/ # Delete directory & contents
- Deletes files/directories. Use cautiously!
4. Viewing & Searching Files
-
cat
(Concatenate)- Displays entire file content.
Example:$ cat notes.txt
- Displays entire file content.
-
less
- Views large files page-by-page (press
q
to quit).
Example:$ less system.log
- Views large files page-by-page (press
-
head
- Shows first 10 lines of a file.
Example:$ head -n 5 log.txt # Display first 5 lines
- Shows first 10 lines of a file.
-
tail
- Shows last 10 lines (useful for logs).
Example:$ tail -f app.log # Monitor real-time updates
- Shows last 10 lines (useful for logs).
-
grep
(Global Regular Expression Print)- Searches text patterns.
Example:$ grep "error" system.log # Find "error" in file
- Searches text patterns.
-
find
- Locates files/directories.
Examples:$ find /home -name "*.jpg" # Search JPEGs in /home $ find . -type d -name "docs" # Find directories named "docs"
- Locates files/directories.
-
locate
- Finds files quickly using a database.
Example:$ locate budget.xlsx # Requires: sudo updatedb
- Finds files quickly using a database.
5. File Metadata & Permissions
-
file
- Identifies file type.
Example:$ file unknown_data # Output: "PDF document, version 1.5"
- Identifies file type.
-
chmod
(Change Mode)- Modifies file permissions.
Examples:$ chmod +x script.sh # Make executable $ chmod 644 config.txt # Set rw-r--r--
- Modifies file permissions.
-
chown
(Change Owner)- Changes file/directory ownership.
Example:$ sudo chown user:group data.txt
- Changes file/directory ownership.
6. Disk Usage & Archives
-
df
(Disk Free)- Shows disk space usage.
Example:$ df -h # Human-readable format (GB/MB)
- Shows disk space usage.
-
du
(Disk Usage)- Estimates file/directory space.
Example:$ du -sh Documents/ # Summary size of "Documents"
- Estimates file/directory space.
-
tar
(Tape Archive)- Combines files into archives.
Examples:$ tar -cvf archive.tar dir/ # Create archive $ tar -xvf backup.tar # Extract files
- Combines files into archives.
-
gzip
/gunzip
- Compresses/decompresses files.
Example:$ gzip bigfile.log # Compress → bigfile.log.gz $ gunzip bigfile.log.gz # Decompress
- Compresses/decompresses files.
-
stat
- Displays detailed file metadata.
Example:$ stat report.txt # Access/modify times, inode, etc.
- Displays detailed file metadata.
Tips for Beginners
- Combine commands with
|
(pipe):$ ls -l | grep ".txt" # List only .txt files
- Use
man
for help:$ man rm # View rm's manual
- Avoid
rm -rf /
– this deletes everything!
Practice these commands in a safe environment to build confidence. Mastery unlocks efficient Linux system management! 🐧