Linux Content Search Tool

Use Catfish to find files and file content quickly – note content search only works for text type files. Use Recoll for other file types.

Install using Synaptic Package Manager or from Terminal as follows:

sudo apt install catfish

Run it by selecting it from from Utilities or use the Search function and enter Catfish to locate.

Once running you should see screen below.

To search for content first click the settings cog and check “Search File Contents”. This will then force Catfish to search for the string in the files within the top directory you have selected to the left of the search box. In this example we are searching for the content string “tooltip” within files in the the top folder “scss”. The number of hits (3) and files are displayed that contain “tooltip” in the main window. To open a file double-click it.

To search for file names only uncheck “Search File Contents”

Windows 10 F8 Safe Mode Boot

Follow steps below to enable F8 safe mode boot (applies to Windows 10 and 8.1):

  1. Boot PC using Windows 10 (8.1) iso USB flash drive or DVD
  2. Click Next to skip the first screen
  3. Press Shift + F10 To open advanced Command prompt window

Type the following command to enable F8 Safe Mode boot key:

bcdedit /set {default} bootmenupolicy legacy

Type Exit and press Enter to quit the Command Prompt. Remove your usb flash drive or DVD and turn your computer off. When you start your PC, you can now press F8 to get the Advanced Boot Options menu




Create macOS install usb using Linux

If you don’t have a spare Mac or your Mac is too old to download macOS from the Apple App Store then use the method below.

Create account on

The download required macOS from

Insert a usb (16GB+ recommended) into Linux PC usb port and run Terminal

Use fdisk to determine your usb dev name letter, e.g. /dev/sdc. double check the target device letter to avoid overwriting the wrong drive.

sudo fdisk -l

Use dm2img to copy macOS (OS X El Capitan in this example) to your usb device (sdc in this example). This completely overwrites whatever is on the usb drive already!

sudo apt install dmg2img  # install dmg2img if not installed

sudo dmg2img -v -i ./EL_Capitan.dmg  -o /dev/sdc
Output from dmg2img...
dmg2img v1.6.7 (c) vu1tur (

./EL_Capitan.dmg --> /dev/sdc

reading property list, 361779 bytes from address 6237611619 ...
partition 0: begin=192, size=430, decoded=284
partition 1: begin=908, size=430, decoded=284
partition 2: begin=1611, size=356137, decoded=239844

opening partition 0 ...         [2] 100.00%  ok
opening partition 1 ...         [2] 100.00%  ok
opening partition 2 ...      [5991] 100.00%  ok

When complete eject the usb.

Insert usb in your Mac and when power-up holding down the Alt | Option key until the Install usb icon is displayed in the middle of the screen.

Select the install usb to install macOS

Once in Recovery mode select Disk Utility to erase disk (if new drive or clean install)

Exit Disk Utility

Select mac OS to install from main menu and install to your main HDD or SSD

Note: the download source above is not Apple approved. To be safe, once your Mac is up and running, download the mac OS again from the Apple Store and re-create the install usb and carry out a clean install again.

Alternative MacOS (English) Source

user:~$ cd Downloads/
mkdir macosdownload
git clone macOS-Big-Sur
Cloning into 'macOS-Big-Sur'...
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 991 (delta 0), reused 1 (delta 0), pack-reused 986
Receiving objects: 100% (991/991), 223.56 MiB | 1.29 MiB/s, done.
Resolving deltas: 100% (501/501), done.
Checking out files: 100% (94/94), done.
user:~$ ~/Downloads/macosdownload$ cd macOS-Big-Sur/

user:~/Downloads/macosdownload/macOS-Big-Sur$ ./
[+] Fetching
[+] Fetching
[+] Fetching
 #    ProductID    Version   Post Date  Title                                                                                                                               
 1    061-26578    10.14.5  2019-10-14  macOS Mojave
 2    061-26589    10.14.6  2019-10-14  macOS Mojave
 3    041-91758    10.13.6  2019-10-19  macOS High Sierra
 4    041-88800    10.14.4  2019-10-23  macOS Mojave
 5    041-90855    10.13.5  2019-10-23  Install macOS High Sierra Beta
 6    061-86291    10.15.3  2020-03-23  macOS Catalina
 7    001-04366    10.15.4  2020-05-04  macOS Catalina
 8    001-15219    10.15.5  2020-06-15  macOS Catalina
 9    001-36735    10.15.6  2020-08-06  macOS Catalina
10    001-36801    10.15.6  2020-08-12  macOS Catalina
11    001-51042    10.15.7  2020-09-24  macOS Catalina
12    001-57224    10.15.7  2020-10-27  macOS Catalina
13    001-68446    10.15.7  2020-11-11  macOS Catalina
14    001-79699     11.0.1  2020-11-12  macOS Big Sur

Choose a product to download (1-14):

This will download a .pkg file from which you can extract the .app require to create a bootable usb

  1. Right-click on the .pkg file > select “Show Package Contents”
  2. Open the Contents/SharedSupport folder and locate the file named InstallESD.dmg

For further information see:

Note: to get install version of app file open dmg file to copy app file to Applications folder


Useful Linux Terminal Commands

Display details about firmware, cache, memory

$ sudo lshw -C memory
       description: BIOS
       vendor: FUJITSU // Phoenix Technologies Ltd.
       physical id: 0
       version: 6.00 R1.06.3012.A1
       date: 04/21/2011
       size: 110KiB
       capacity: 4032KiB
       capabilities: pci pnp upgrade shadowing escd cdboot bootselect int13floppynec int13floppytoshiba int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer int10video acpi usb ls120boot zipboot biosbootspecification
       description: L1 cache
       physical id: 5
       slot: L1 Cache
       size: 64KiB
       capacity: 64KiB
       capabilities: burst synchronous internal write-through data
       configuration: level=1
       description: System Memory
       physical id: 2a
       slot: System board or motherboard
       size: 16GiB
          description: DIMM DDR3 Synchronous 1067 MHz (0.9 ns)
          product: 99U5471-021.A00LF
          vendor: Toshiba
          physical id: 0
          serial: DE131F7C
          slot: Slot-1
          size: 4GiB
          width: 64 bits
          clock: 1067MHz (0.9ns)

Test and Benchmark 3D Graphics

sudo apt install glmark2

Command Prompt

Some less well known Windows 7, 8.1, 10 Terminal (cmd) commands

Command Description
powercfg /batteryreport Detailed battery diagnostics >  html
netsh wlan show wlanreport WLAN data last 3 days > html
Alt+Enter Full screen mode
F7 List previous commands
doskey /history > c:\cmd.txt Save command history to \cmd.txt to view last saved history session
msinfo32 System Summary  >  BIOS version amongst others
findstr /s dinosaur *.txt Search inside your files with findstr add /s to search subfolders
sfc /scannow
Fixes corrupted system files by replacing them with fresh ones from the local  Windows recovery image
dism /online/cleanup-image /checkhealth
Check the health of the recovery image. If you see a message saying corruption has occurred run command below
dism /online /cleanup-image /restorehealth
Fix recovery image. Only run if you have Checkhealth errors
Switch to Powershell in same window
start powershell  Start Powershell in a new window
 Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”} Powershell command to reinstall Microsoft Store core Windows 10 apps
cipher /e c:\Vault
Replace “c:Vault” with the Folder or file to encrypt. To unencrypt right-click folder or file, select Properties; Advanced and untick “Encrypt contents to secure data” option.
shutdown /r /o
Boot to Windows 10 advanced options
netsh wlan show profile
netsh wlan show profile WiFi-name key=clear
Recover forgotten WiFi password. Replace WiFi-name with the one shown in list of network names (1st command). Scroll through results to see password shown against WiFi-name
 robocopy c:\users\username\Documents d:\backup\Documents /mir /copyall /dcopy:T /r:0 /w:0 /log:c:\users\username\log.txt /tee
Copy folders fast – mirror the source to the destination copying all files and folders, including empty ones +  all file attributes including NTFS permissions and copy timestamps and retry 0 times and wait 0 secs between retries and logfile and  log output to console and logfile


Create bootable usb using DD

This method depends on the iso file being designed as bootable, e.g Kaspersky Rescue Disk or Bitdefender Rescue CD, etc.

Plug in the USB flash drive and list its device name using fdisk

sudo fdisk -l
Disk /dev/sdc: 3.8 GiB, 4009754624 bytes, 7831552 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x052e500d

Device     Boot Start     End Sectors  Size Id Type
/dev/sdc1  *     2048 7831551 7829504  3.8G  c W95 FAT32 (LBA)

Unmount the device partition, e.g. sdc1.

umount /dev/sdc1

Copy the iso. file to the device (sdc) not the partition (sdc1). Note the larger block size (4M, default 512bytes) to speed up the transfer. The usb light will flash during copying. Note this can take a long time depending on iso file size. Be patient. When finished dd displays a summary report of bytes copied.

sudo dd if=filename.iso of=/dev/sdc bs=4M

Finally flush the io buffers and eject


sudo eject /dev/sdc

Gulp Sass suddenly rejecting double quotes

A slip-up of adding an extra ” to a string definition highlights an anomaly in Sass which causes it to flag every line of scss  code (including comments) with double quotes as an error including the real error lost in the jungle of errors. See example below with ” added to the end of $fontfamily (not easy to spot) and an excerpt of the Sass compiler error message pointing to valid line of code amongst many more misleading messages.

$fontfamily: "Comic Sans MS",Arial,Helvetica,sans-serif!important";
Error in plugin "sass"
Error: Invalid CSS after '...nd-image: url("': expected expression (e.g. 1px, bold), was "../images/Computer_"
on line 430 of src/scss/style.scss
>> // background-image: url("../images/Computer_Doctor_1800x1149.png");

All this confusion leaves you scratching your head trying to figure out what’s suddenly gone wrong leading you down false trails, e.g. thinking Sass has been updated to a buggy version or should I replace all double with single quotes or whatever.

Once you’ve tracked down the real error line and removed that extra ” all the other error messages miraculously disappear – phew!

I hope this  revelation saves you many hours of lost productivity.


Free Public DNS servers

Free public DNS servers include Google, Quad9, OpenDNS, Cloudflare, CleanBrowsing, Verisign, Alternate DNS, AdGuard DNS, etc.

Here’s a short list of some of the most popular ones:


OpenDNS (,
Google Public DNS (,
Cloudflare (,


OpenDNS 2620:0:ccc::2 and 2620:0:ccd::2
Google 2001:4860:4860::8888 and 2001:4860:4860::8844
Cloudflare 2606:4700:4700::1111 and 2606:4700:4700::1001.

Browsersync not Injecting or Refreshing page

If all else fails check for a commented <body> tag  before your <body> tag within the source code. Right-click the page and select View Page Source to eliminate this cause.


<!-- <body><script id="__bs_script__">//<![CDATA[
    document.write("<script async src='/browser-sync/browser-sync-client.js?v=2.26.3'><\/script>".replace("HOST", location.hostname));
//]]></script> -->

Browsersync appends its Java script after the first <body> tag it finds regardless of whether it is embedded in a comment or not! Obviously, being wrapped in a comment  effectively disables it from injecting or refreshing the page.