Steeph's Web Site

Menu

Entries tagged 'cat:Code' (Page 4)

SBWG 0.8.6-wip

By now the initial introduction of SBWG that I've written in the first entry in this category is not only incomplete but in its details largely obsolete. SBWG matured a great deal in the last months and I feel like publishing a new version. I have started documenting stuff properly in the README and other files included in the package since I have a set goal for version 1.0. I will likely add no new features until I have made something that I can satidfyingly call version 1.0. Right now I'm in between versions 0.8.6 and 0.8.7. I call in-between version wip (work in progress). I feel like publishing what I have so far right now. So here is a wip version: 0.8.6-wip.

Bash Dotfiles

I've finally taken some time to overhaul my dotfiles. I took a lot from git repositories and reddit posts that I've found and added some functions and aliases myself. I'm using Bash 4 and haven't tested any of this with any other shell. I've removed and redacted personal lines.

.bashrc

.bash_profile

.bash_aliases

.bash_functions

.bash_options

There are a lot of dotfiles that other's have shared that would be worth sharing here. But it's easy to find those and I don't know what you'd like or not. So I'll point out just one simple project, "Sensible Bash by Mattia Tezzele, that attempts to set saner Bash defaults.

Beep Wars

This is one of these things that gets copied around without crediting the author or mentioning any source. Yea, I'm doing it too. I don't know where I got it from anymore.

If you still have a physical pcspeaker, execute this in your Linux shell for some beep music:

beep -l 350 -f 392 -D 100 -n -l 350 -f 392 -D 100 -n -l 350 -f 392 -D 100 -n -l 250 -f 311.1 -D 100 -n -l 25 -f 466.2 -D 100 -n -l 350 -f 392 -D 100 -n -l 250 -f 311.1 -D 100 -n -l 25 -f 466.2 -D 100 -n -l 700 -f 392 -D 100 -n -l 350 -f 587.32 -D 100 -n -l 350 -f 587.32 -D 100 -n -l 350 -f 587.32 -D 100 -n -l 250 -f 622.26 -D 100 -n -l 25 -f 466.2 -D 100 -n -l 350 -f 369.99 -D 100 -n -l 250 -f 311.1 -D 100 -n -l 25 -f 466.2 -D 100 -n -l 700 -f 392 -D 100 -n -l 350 -f 784 -D 100 -n -l 250 -f 392 -D 100 -n -l 25 -f 392 -D 100 -n -l 350 -f 784 -D 100 -n -l 250 -f 739.98 -D 100 -n -l 25 -f 698.46 -D 100 -n -l 25 -f 659.26 -D 100 -n -l 25 -f 622.26 -D 100 -n -l 50 -f 659.26 -D 400 -n -l 25 -f 415.3 -D 200 -n -l 350 -f 554.36 -D 100 -n -l 250 -f 523.25 -D 100 -n -l 25 -f 493.88 -D 100 -n -l 25 -f 466.16 -D 100 -n -l 25 -f 440 -D 100 -n -l 50 -f 466.16 -D 400 -n -l 25 -f 311.13 -D 200 -n -l 350 -f 369.99 -D 100 -n -l 250 -f 311.13 -D 100 -n -l 25 -f 392 -D 100 -n -l 350 -f 466.16 -D 100 -n -l 250 -f 392 -D 100 -n -l 25 -f 466.16 -D 100 -n -l 700 -f 587.32 -D 100 -n -l 350 -f 784 -D 100 -n -l 250 -f 392 -D 100 -n -l 25 -f 392 -D 100 -n -l 350 -f 784 -D 100 -n -l 250 -f 739.98 -D 100 -n -l 25 -f 698.46 -D 100 -n -l 25 -f 659.26 -D 100 -n -l 25 -f 622.26 -D 100 -n -l 50 -f 659.26 -D 400 -n -l 25 -f 415.3 -D 200 -n -l 350 -f 554.36 -D 100 -n -l 250 -f 523.25 -D 100 -n -l 25 -f 493.88 -D 100 -n -l 25 -f 466.16 -D 100 -n -l 25 -f 440 -D 100 -n -l 50 -f 466.16 -D 400 -n -l 25 -f 311.13 -D 200 -n -l 350 -f 392 -D 100 -n -l 250 -f 311.13 -D 100 -n -l 25 -f 466.16 -D 100 -n -l 300 -f 392.00 -D 150 -n -l 250 -f 311.13 -D 100 -n -l 25 -f 466.16 -D 100 -n -l 700 -f 392

I've converted it for FreeBSD:

echo "L15T120MSO4G...G...G...D#..A#G...D#..A#G.....>D...D...D...D#..<A#F#...D#..A#G.....>G...<G..G>G...F#..FED#E.~~~~<G#~>C#...C..<BA#AA#.~~~~D#~F#...D#..GA#...G..A#>D.....G...<G..G>G...F#..FED#E.~~~~<G#~>C#...C..<BA#AA#.~~~~D#~G...D#..A#G.._~D#...A#G....." > /dev/speaker

I'm no musician. I know it's not quite right. But if you ask me, for what it is it's almost good enough. (I think you can tell that I'm not a Star Wars fan.)

Generate Random Passwords in Linux

Two ways to generate random passwords on the command line:


#!/bin/bash
if [ $# -eq 0 ]
then
  echo "I'll not generate anything for you if you won't give me at least one argument."
  echo "1st argument: password length"
  echo "2nd argument: number of passwords (optional)"
  exit
fi
i=0
if [ $# -gt 1 ]
then
  num=$2
else
  num=1
fi
while [ $i -lt $num ]; do
  let i=i+1 
  </dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c$1
  echo ""
done

Pass the length of the password as the first argument and the number of passwords as the second argument, if you want more than one.

Or you can use just this line to generate a single 16 character long password with the same rules.


</dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c16; echo ""

Or just use pwgen (man page) to have more options. It's probably in your distro's repos.

moviefy.sh - Make Bash Output like It's The 80s And We're In Hollywood

Source this script in Bash to make unformatted output of commands appear on screen slowly, accompanied by beeping galore.

source moviefy.sh or . moviefy.sh. Every command executed after that will be moviefied. There is no way to turn it off again. (Just exit.) Please note that formatted output may be mangled or it may crash the script. Curses stuff won't work.

#!/bin/bash

export LC_ALL=C
exec > >\
(while IFS= read -d '' -r line; do
  if [[ -n $line ]]; then
    echo
    for (( i=0; i<${#line}; i++ )); do
      char="${line:$i:1}"
      printf '%c' "$char"
      case $char in
        [" "]) sleep 0.04
               ;;
        [$'\t']) sleep 0.08
                 ;;
        [$'\v']) sleep 0.7
                 ;;
        [$'\n'$'\r'$'\f']) sleep 0.25
                           ;;
        *) beep -f $(shuf -i 3000-3200 -n 1) -l 5
           sleep 0.015
           ;;
      esac
    done
    printf "${PS1@P}"
    printf ""
  fi
done)
PROMPT_COMMAND='printf "\0"'