Plushes

PLUSHES (Power Linux User SHEll Scripts)

Plushes is a series of Bash scripts (and eventually Python Scripts) that make using things easy.

Plushes are what I like to call "kitchen sink scripts". Linux gives you all sorts of tools to work with to do stuff with, but nothing practical to do things like enable Wifi.

Scripts

  • wifi.sh - Make sense of wifi, all in the command line! (Currently only WPA Supplcant setups (essid and psk) work. But what if you want to connect to something that doesn't use it.)
  • news.sh - Fetch a list of headlines and quick descriptions of the latest news from Reuters news agency. It doesn't fetch the entire news story, just a quick blurb about what is going on.
  • flu.sh - Make lolcat use the toilet. :3
  • deli.sh - Download a file, privately so that it doesn't appear when you type history.
  • bye.sh - A more mnemonic way to shut down and restart from the command line.
  • zippy.sh - If you have an account with the United States Postal Service, zippy will get zip code data. It requires creating an API key. zippy will store this information in a file called .zippyrc
  • geocoord.sh - Probably a better program than zippy. It uses data from the US Census Bureau to fetch coordinates of place. This app will also let you find zip codes if you don't know the city and find cities if you don't if you just have the address and zip code. It's still a bit beta because it still requires a little bit of user intervention (see zippy.sh help as to why.)
  • rw.sh - Random Wallpaper. If you are using i3 and have feh, you can use this script to choose a file in your Wallpaper directory. My wallpaper directory is ~/Pictures/Wallpaper. Eventually I'll set up something to ask you about a dot file to set that the default wallpaper directory.

Coming Soon

  • MOTD scripting! - create a Message-of-the-Day (MOTD) that loads when you start up your system or login to SSH. I'd eventually like to create a warning prompt (which is more of a MOTD) before you log in. This is used to warn intruders to keep out, but it's also a creative way of showing information about your computer when loggin in.

  • A new weather.sh script that gets data from the National Weather Service rather than Accuweather. (FREE GOVERNMENT STUFF!)

Things I've been thinking about that I may or may not work on

  • A script that is a companion to deli.sh that does other thing clandestinely (moving, renaming, copying, etc.)
  • A script that finds files that isn't as complicated as using find or grep.
  • A script to download image galleries from sites like Imgur. (I had it at one time, but I forgot where I put it.) The archives could be saved as .cbr, .cbz, or .pdf format.
  • A script that downloads everything you need to get Software Defined Radio (SD) installed from source. (EVERYTHING most binary repos is too old!)
  • A script that operates SDR.
  • Mandelbrot and Julia stuff. (I really want to do some fun fractal stuff.)
  • Develop or find some super-light browser that let's you tinker with a JavaScript, CSS3, HTML5, and Canvas browser that doesn't eat up resources. (ARM users, you know you want than!)
  • A script that gets Spotify set up for textual interfaces. (There are programs that do this, but I just want to get it set up. This might be part of my Hacktop project along with the SDR idea.)
  • A script that sets up zsh the right way. (Don't use antigen explicity! Use Zplug!)
  • A script that sets up vim the right way. (Plugins make everything better. Also a better .vimrc for root. I really want to see EditConfig and some sort of auto complete be used.)
  • A script that sets up i3-gaps for Debian systems (Great for Hacktops if you use Raspbian. Why should those Arch Linux nerds have all the fun?!)
  • A few script that promote some lesser known programs that do some cool stuff.

Projects not by me that you should check out.

  • gitignore.io - Need help setting up your .gitignore file? Give them a try.
  • cheat.sh - "The only cheat sheet you need". Curl help for learning how to code.
  • rate.sx - Curl Cryptocurrencies exchange rates. Even if you aren't into cryptocurrenies, you have to admit this is a beautiful demonstration of the power of command line! Using braile characters to act as block characters for drawing charts!
  • lolcat - "Rainbows and unicorns!" 256 blended color cat command. This is why you need to set your terminal to 256 colors!
  • Winds - Open Source RSS & Podcast App powered by GetStrea.io. RSS is back!

Requirements

Most of these scripts are designed for use with Bash, sed, gawk, grep, or find.

Flush requires Toilet or Figlet, Ruby and the Lolcat gem.

Delish reqires curl, and possible tar, unzip, and whatever's require for .gz, .bz2, and .xz.

Many of these scripts may require adminstrative access so passwords may be requires to do some stuff.

Bash, Sed, Awk - Use these scripts as coding examples for your scripts.

Will any of this ever be done?

It depends. Bits and pieces over time. Rome wasn't built in a day.

I've made some good progress so far.

Will you use anything else?

I could use something that uses Python, Ruby, C/C++, or Java. Maybe some LaTeX or PostScript stuff because I like math.

Why do any of this if [insert program here] exists?

Because I can, and I need to clean up a lot of my repos. Decommission some stuff. Put some things together. Impress people. That kinda stuff.

To make this all work

In ~/profile, there should be a few lines that state that if ~/bin is created, it is added to $PATH. To get it working, we need to create that directory and then close the terminal (and terminal multiplexer if you are using that too), then start it up again.

$ mkdir ~/bin
$ exit

After we open up a new terminal (and tmux if we want to open that too), we should notice that /home/$USER/bin added to the beginning of $PATH where $USER is your user name.

If you'd like to see it better, you could run one of two commands

  • echo $PATH | sed -n -e 's/:/\n/g;p'
  • echo $PATH | tr ':' '\n'

If you run one of those commands, you can better understand the order of which Linux accepts which programs to run. Programs that run in ~/bin will take higher precedence over what we add to our dot files (like /opt/ directories), then the '/usr/local' directories (except for /usr/local/games/), then then our /usr/ directories (/usr/sbin and /usr/bin but not /usr/games), then /sbin and /bin, then those games directories.

I prefer to put git projects that are not mine and that I am not forking into a directory called ~/Software. The ones that I do create or fork are put into ~/Projects. It's a good practice in my opinion for this next step to get things going.

$ [ ! -d ~/Software ] && mkdir ~/Software           # Create this directory if it doesn't exist.
$ cd ~/Software                         # Go to that directory
$ git clone https://github.com/jrcharney.com/plushes        # Clone this repo into the ~/Software directory
$ cd plushes                            # Got to the plushes directory
$ ./startup.sh                          # Run this script!

So what does startup do? Create ~/bin if it doesn't exists. It also creates all the soft links in plushes that would go in ~/bin

Built With

Share this project:

Updates