
export LEN=5
uv run bloom-hash train $'\''abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'\''()*+,-./:;<=>?@[\\]^_{|}~0123456789'\'' "$LEN" --hash-alg sha256
cd ./pretrained_filters/sha256 || exit
tar -I "gzip -9" -cvf "$LEN.tar.gz" "$LEN"
rm -rf "$LEN"


export LEN=2; uv run bloom-hash train $'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_{|}~0123456789' $LEN --hash-alg sha256; cd ./pretrained_filters/sha256; tar -I 'gzip -9' -cvf $LEN.tar.gz $LEN; rm -rf $LEN; cd ../../

export LEN=3; uv run bloom-hash train $'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_{|}~0123456789' $LEN --hash-alg sha256; cd ./pretrained_filters/sha256; tar -I 'gzip -9' -cvf $LEN.tar.gz $LEN; rm -rf $LEN; cd ../../

export LEN=4; uv run bloom-hash train $'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_{|}~0123456789' $LEN --hash-alg sha256; cd ./pretrained_filters/sha256; tar -I 'gzip -9' -cvf $LEN.tar.gz $LEN; rm -rf $LEN; cd ../../

export LEN=5; uv run bloom-hash train "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" $LEN --hash-alg sha256; cd ./pretrained_filters/sha256; tar -I 'gzip -9' -cvf $LEN.tar.gz $LEN; rm -rf $LEN; cd ../../

export LEN=6; uv run bloom-hash train "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" $LEN --hash-alg sha256; cd ./pretrained_filters/sha256; tar -I 'gzip -9' -cvf $LEN.tar.gz $LEN; rm -rf $LEN; cd ../../


tmux is designed exactly for this workflow. The basic idea is:

Start a new session.
Run your command inside it.
Detach from the session (leaving it running).
Reattach whenever you want to check progress.
Create a new session
tmux new -s myjob


This creates a session named myjob.

Run your command

For example:

python train_model.py


or

long_running_script.sh

Detach without stopping the command

Press:

Ctrl+b d


(Ctrl+b is the tmux prefix, followed by d.)

You'll return to your normal shell, while the session and the command continue running in the background.

List running sessions
tmux ls


Example:

myjob: 1 windows (created Wed Aug 5 14:00:00 2026)

Reattach later
tmux attach -t myjob


or the shorter form:

tmux a -t myjob


You'll see exactly what the terminal looked like when you detached, including any output produced while you were away.

Leave again

Press:

Ctrl+b d


again to detach.

When the command finishes

The session will remain open if the shell is still running, so you'll see the command's output and can inspect it.

To exit the session, simply type:

exit


or press Ctrl+d.

One-liner to start a command immediately

If you already know the command you want to run:

tmux new -s myjob 'python train_model.py'


or

tmux new -d -s myjob 'python train_model.py'


The -d flag starts the session detached, so you never enter it. Later, check on it with:

tmux attach -t myjob

A common pattern
# Start detached
tmux new -d -s backup 'rsync -av /data /backup'

# Check that it's running
tmux ls

# Later...
tmux attach -t backup

# Detach again
Ctrl+b d


This is one of the most common uses of tmux for long-running jobs on local machines and remote servers over SSH.