Bash cheatsheet
Find files with GREP
Search for a specific word, phrase or Regex in file contents.
# Search for a specific word or phrase in a specific file
grep "word" file.txt
# Same as above, but limiting to one extension/suffix
grep "word" *.txt
# or using wildcard to search multiple files
grep "word" *
# As above, while traversing subdirectories
grep -r "word" *
# Case-Insensitive search (ignore case)
grep -i "word" *
Read x last lines from a file
# example
tail -100 /var/log/apache2/error.log
Copy a file
sudo cp /path/to/source/file.txt /path/for/destination/file.txt
Recursively search for filename
# Add wildcard '*' on either side where required
find . -name "yourfilename*"
# Case insensitive
find . -iname "yourfilename*"
Measure temperature
# If command is not found, install lm-sensors
sudo apt install lm-sensors
# Then run
sensors
# or
sensors-detect
TCPtrack
tcptrack displays the status of TCP connections that it sees on a given network interface. tcptrack monitors their state and displays information such as state, source/destination addresses and bandwidth usage in a sorted, updated list very much like the top(1) command.
# If command is not found, install with
sudo apt install tcptrack
# Assumed network name - wlp2s0 - replace with your own.
sudo tcptrack -r 1 -i wlp2s0
Securely erase/replace free space on disk
# Example. Replace 'Desktop' with desired path
sfill -v Desktop/
Skip -v for less verbose output
Permissions
Change permissions
# Change owner user and group on a directory or file
chown yourusername:yourgroup <directory or file>
# Make a file editable for owner and group
chmod 774 file.txt
Find files not owned by user
sudo find ~yourusername/ \! -user yourusername -print
Measure wireless (WiFi/WLAN) signal quality and strength
iwconfig
# Output example
wlp2s0 IEEE 802.11 ESSID:"Network Name"
Mode:Managed Frequency:2.472 GHz Access Point: 1D:B7:2C:37:0F:D0
Bit Rate=144.4 Mb/s Tx-Power=22 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=53/70 Signal level=-57 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:991 Missed beacon:0
Look for Signal level, this example outputs -57dbm, a good signal. Not excellent, but good.
Count words in a plain text file
cat filename.txt | xargs -n1 | sort | uniq -c > newfilename.txt
Diff - Find differences between two folders
diff -r dir1 dir2 | grep dir1 | awk '{print $4}' > difference1.txt
# For skipping pipe output to file
diff -rq dir1 dir2
DU (disk usage)
Find the biggest files in a directory (and subdirs)
du -Sh | sort -rh | head -20
Directory size
du -sh *