Here are some commands/snippets I’ve found useful.
IP/Connection/TLS info
curl https://ipinfo.io/json
# Response like:
{
"ip": "34.77.243.238",
"hostname": "238.243.77.34.bc.googleusercontent.com",
"city": "Brussels",
"region": "Brussels Capital",
"country": "BE",
"loc": "50.8505,4.3488",
"org": "AS396982 Google LLC",
"postal": "1000",
"timezone": "Europe/Brussels",
"readme": "https://ipinfo.io/missingauth"
}
curl https://tls.peet.ws/api/all
# For TLS fingerprint data
1-line installs for Linux/Mac
- Brew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Micromamba:
curl micro.mamba.pm/install.sh | bash
- Pixi:
curl -fsSL https://pixi.sh/install.sh | bash
- Tailscale:
curl -fsSL https://tailscale.com/install.sh | sh
- Bun:
curl -fsSL https://bun.sh/install | bash; source ~/.bashrc
- DuckDB:
wget -qO- https://github.com/duckdb/duckdb/releases/latest/download/duckdb_cli-linux-amd64.zip | funzip | sudo tee /usr/local/bin/duckdb > /dev/null && sudo chmod +x /usr/local/bin/duckdb
- Fish:
brew install fish
Add Apache-2.0 license to project
curl -O https://www.apache.org/licenses/LICENSE-2.0.txt
(Remember to update the license field in your package manifest file like package.json
or Cargo.toml
)
Create an SOCKS proxy over SSH
ssh -NCD8080
# -N just forwards the ports, doesn't run a command
# -C compresses data
# -D creates "dynamic" port forwarding by running a SOCKS proxy on your machine tunelling to the remote machine.
Then use HTTP_PROXY
, HTTPS_PROXY
, or ALL_PROXY=localhost:8080
to use your proxy.
Detect/convert character encodings
Chardet is a Python CLI tool great at detecting encodings, and iconv is a standard GNU Linux tool that converts between encodings.
chardet myfile.txt
iconv -f <detected encoding> -t UTF8 myfile.txt > myfile-utf8.txt
Firefox browser history with specific visit datetimes
Run duckdb places.sqlite
from your Firefox Profile directory (a randomly-named subdirectory of ~/Library/Mozilla/Firefox/Profiles/
on Mac or %APPDATA%\Mozilla\Firefox\Profiles\
on Windows)
Note: This will modify the SQLite DB in place, and you will need Firefox to be closed. (You can just use the SELECT part make it read only) You may want to make a copy of the DB so you can run it when Firefox is open. Another option is to create a DuckDB version of the DB and import the right table.
Make sure to replace 'US/Eastern'
with your timezone. ('America/New_York'
also works for EST).
CREATE OR REPLACE VIEW history AS
SELECT
title AS page_title,
make_timestamp(visit_date) AT TIME ZONE 'UTC' AT TIME ZONE 'US/Eastern' AS visit_time,
url AS webpage_url,
(CASE visit_type
WHEN 1 THEN 'Link'
WHEN 2 THEN 'Typed URL'
WHEN 3 THEN 'Bookmark'
WHEN 4 THEN 'Embedded'
WHEN 5 THEN 'Permanent Redirect'
WHEN 6 THEN 'Temporary Redirect'
WHEN 7 THEN 'Download'
WHEN 8 THEN 'Iframe'
WHEN 9 THEN 'Reload'
ELSE 'Other'
END) AS visit_type,
visit_count AS visit_count,
make_timestamp(last_visit_date) AT TIME ZONE 'UTC' AT TIME ZONE 'US/Eastern' AS last_visit_time,
from_visit AS visit_source
FROM
moz_historyvisits,
moz_places
WHERE
moz_historyvisits.place_id = moz_places.id
ORDER BY
moz_historyvisits.visit_date DESC;