While updating a Debian based system, you may encounter an error as follows:
W: GPG error: http://ppa.launchpad.net lucid Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 2836CB0A8AC93F7A
This is a feature of the apt-getpackage manager that checks the authenticity of servers while updating Debian. It just means that the system is unsure if the repository it listed is safe to receive updates from.
To fix this problem (provided you are sure that the repository is safe), all you need to do is execute the following commands with the pubkey you received in the error:
Open the console and type the following command: sudo apt-get install adobeair (if the package is not detected then you will need to activate Ubuntu partner repositories)
Alternatively you can go to http://get.adobe.com/air/ and choose to download the deb package of Adobe Air.
Run the downloaded file to install Adobe Air
Other Distributions
Go to http://get.adobe.com/air/ and choose to download the package of Adobe Air depending on what your distribution supports.
If you are not sure download the bin package.
Once the file is downloaded, give it executable permission and run it:
Linux systems commonly run on ext2/ext3/ext4 file systems. These file-systems have a built-in feature to tell the operating system to do a disk check while booting up if the number of times the disk has been mounted exceeds a certain number. Most commonly the count is set to 30.
This is an inconvenience to anyone who regularly switches off the system, its even worse if the hard disk sizes reach 1Tb. So changing the number to suit your preference might be an excellent idea.
Changing the maximum mount count:
sudo tune2fs -c 50 /dev/sda1
Here: tune2fs is the command that allows modification on the disk flags -c enables the max mount count to be changed to the next parameter(50 in this case) /dev/sda1 is the partition on which to do the operation
Changing the maximum time count:
sudo tune2fs -i 30d /dev/sda1
Here: tune2fs is the command that allows modification on the disk flags -i enables the max time count to be changed to the next parameter(30d in this case means the consecutive checks are scheduled 30 days apart). This parameter can be also give in terms of months(2m for 2 months) and weeks(3w for 3 weeks) /dev/sda1 is the partition on which to do the operation
Update (2026): This guide has been updated with modern Linux CLI tools, performance optimizations, and common terminal patterns for searching multiple strings seamlessly.
Searching for multiple strings inside text files or terminal streams is an absolute staple of system administration, DevOps, and backend software engineering. While traditional Linux systems offer classic tools like grep, modern environments also benefit from blazing-fast alternatives like ripgrep (rg).
In this practical guide, we will break down the most effective ways to look for multiple search terms simultaneously.
1. Using grep with the OR Operator (Traditional Way)
The classic way to search for multiple strings using standard grep requires escaping the pipe | operator. This acts as a logical OR.
Bash
# General syntax
grep 'string1\|string2\|string3' filename.txt
# Example: Searching a log file for errors or warnings
grep 'ERROR\|WARNING\|CRITICAL' server.log
2. Using Extended Grep (grep -E or egrep)
To avoid messy backslash escapes, you can switch to Extended Regular Expressions by appending the -E flag (or using egrep). This makes your syntax remarkably cleaner.
Bash
# Using grep -E
grep -E 'string1|string2|string3' filename.txt
# Example: Searching for different modern framework instances
grep -E 'react|vue|angular' package.json
3. Using Multiple -e Flags
If you prefer explicit declaration or want to cleanly build your search strings dynamically using terminal scripts, you can pass multiple individual -e patterns.
Bash
# Using explicit flag pairs
grep -e 'string1' -e 'string2' filename.txt
4. The Modern Standard: Using ripgrep (rg)
If you work on modern microservices or large codebases, standard grep can feel slow. ripgrep is a modern alternative written in Rust that respects .gitignore files out of the box and matches strings using regex syntax seamlessly.
Bash
# Simple alternation using ripgrep
rg 'string1|string2' filename.txt
Quick Commands Cheat Sheet
Tool
Command Pattern
Best Used For
grep -E
grep -E 'A|B'
Built-in compatibility across all POSIX servers
grep -e
grep -e 'A' -e 'B'
Scripting & automated parsing loops
ripgrep
rg 'A|B'
Blazing-fast searches across massive repositories
Frequently Asked Questions (FAQs)
How do I search for multiple strings across all files in a directory?
You can combine the extended regex flag -E with the recursive flag -r. For example: grep -Er 'string1|string2' /path/to/directory/
How can I make the multiple string search case-insensitive?
Simply append the -i flag to your command. This tells grep to match both uppercase and lowercase variations of your keywords: grep -Ei ‘error|warning’ server.log
How do I count the total occurrences of multiple search terms?
Add the -c flag to get a specific count of matching lines, or pipe the output to wc -l: grep -E ‘string1|string2’ filename.txt | wc -l
Can I search for lines containing ALL keywords instead of ANY (Logical AND)?
Yes, but instead of using a pipe inside a single pattern, you chain multiple grep commands together via standard Unix piping: grep ‘string1’ filename.txt | grep ‘string2’