# bin My Linux `~/bin` folder, including my `.bashrc` and `.bash_aliases`. This repository will contain all the various tools and / or commands I find that I put in my `~/bin` folder. Here's a list of the most interesting ones, along with what they do and where they came from (assuming I can find / remember): - [style](https://github.com/LuRsT/style) - Add style to your output - [hr](https://github.com/LuRsT/hr) - A horizontal ruler for your terminal - [dropbox_uploader.sh](https://github.com/andreafabrizi/Dropbox-Uploader) - Dropbox Uploader is a BASH script which can be used to upload, download, list or delete files from Dropbox. - swapusage - Shows swap usage by process. Useful for determining which services to restart if you aren't allowed to fiddle with your swap. - extract - Extracts several different types of archive. - mail-service-restart - Restarts all service related to my mail server. Currently needs upgrading to use systemd. - decrypt - Decrypts something encrypted with a password with openssl. - encrypt - Encrpyts something with a password with openssl. - splitdotmbox.sh - Splits a `.mbox` file into it's component messages - ctx - Shows contact switches by process in real time - ps_mem - Shows memory usage by process. - node-update - Adapted from a bash script given in a github issue for io.js, this script will update you to the latest version of node. I think that there's a bug with it, but it works well enough for me. - stealtime - Tells you how much of your CPU time has been stolen by other virtual machines. - [speedtest-cli](https://github.com/sivel/speedtest-cli) - mountunishares - A script that automatically mounts my university file shares. - pd - A directory stack helper. Insanely useful - I think I picked it up from a superuser answer somewhere. - [transfer](https://transfer.sh/) - A look that looks very useful. Like termbin.com, but for any kind of file. Keeps files for 14 days, and has an uppder limit of 5GB. - [xidel](http://www.videlibri.de/xidel.html) - A (what looks like) a brilliant html extraction tool. Supports various selector languages. - [micro](https://github.com/zyedidia/micro) - A new (experimental) terminal-based text editor. - [tig](http://jonas.nitro.dk/tig/) - A terminal-based git repository browser. - backup - A script I wrote to make using Duplicity easier. - genimagecomparisonframes - Another script I wrote to generate the frames for the first half of [this video](https://starbeamrainbowlabs.com/blog/images/20160525-Tessellator-Comparison.webm). - [dtach](http://dtach.sourceforge.net/) - A minimal alternative to `screen` and `tmux`. - [commacd](https://github.com/shyiko/commacd) - A faster way to move around. - drop_pagecache - A quick script I wrote to drop the linux page cache. - [hastebin](https://gist.github.com/flores/3670953) - A [hastebin](http://hastebin.com/) CLI. - [quickshare](https://github.com/netham91/Quick-Share) - A quick way to share files via HTTP. - [cscz](https://git.starbeamrainbowlabs.com/sbrl/cscz) - The one and only C# class generator. A little timesaving tool I built myself, written in C# or course :D - [repren](https://github.com/jlevy/repren) - A good bulk file renaming tool. - [goldilocks](http://unix.stackexchange.com/a/124460/64687) - A script that displays all of the possible terminal colours. - [catimg](https://github.com/posva/catimg) - A cool script to display images in the terminal. Useful when you're sshing into servers. - [tldr](http://github.com/pepa65/tldr-bash-client) - A bash client for [tldr-pages](https://github.com/tldr-pages/tldr). - [git ignore](https://gitignore.io/) - A really useful subcommand for git that allows you to generate ignore files automagically. - organise-photos - A small bash script I wrote that organises the photos in a directory by year & month. - [ogg-cover-art](https://github.com/acabal/scripts/blob/master/ogg-cover-art) - A script that adds cover art to ogg files. - senddir - A small script I wrote to send whole directories over the network as a temporary thing. Uses netcat + gzip + tar. - recvdir - The counterpart to the above that receives the directory sent. - brightness.sh - Another small script I've written that controls the brightness of my screen. It works for me, but it may not work for you. - ptr - A small script I wrote that uses `dig` to do PTR (reverse DNS) lookups, since I have to keep looking the command up every time :P - * clip - setclip - Sets the clipboard to the contents of the standard input - getclip - Sends the current clipboard contents out of the standard output - listenclip - Listens on localhost:5556 and pipes any data recieved into the clipboard. Make sure you're firewall is working correctly! - sendclip - Pipes stdin to localhost:5556. Useful in conjuntion with ssh port forwarding and the tool above. - serveclip - Serves the clipboard on port 5557. Doesn't close the connection automatically, sadly - pathes welcome! - [shellshare](https://shellshare.net/) - A live terminal broadcasting utility. - [colortrans](https://gist.github.com/MicahElliott/719710) - Convert rgb colours to xterm ones - nautilus-here - A quick command that opens nautilus in the current directory. For lazy people :P - ssh-retry - I forget where it came from, but this command reepeatedly calls ssh until it succeeds in connecting. - quote-get - Displays a random quote from a remote file. The quote stays the same until the following day. The remote file is cached locally for convenience :smiley_cat: - teleport / telepeek / telepick - A pair of quick functions in my `.bash_aliases` file for quickly jumping about. Works best if you've got a decent amount of free RAM for the cache. ## cloudsurfer.sh `cloudsurfer.sh` is a new script I'm writing to bring some of the customisations I store here in this repository to terminals on shared machines - where I can't modify `.bashrc`, for example. It's designed to be executed in a single bash context, and leave no trace on the host machine after the customisations are applied - just in case the bash process crashes! If need be, it can also be executed in multiple separate bash processes and will bring the customisations to each one separately - without interfering with the rest of the machine. Due to it's transient nature, cloudsurfer is bound to be more lightweight and be missing a few features of the full list that my main bin folder can provide, but the aim is to make a foreign terminal feel a bit more like home :smiley_cat: Here's a list of things it currently supports: - Aliases - by dynamically loading the main `.bash_aliases` - Colouring the prompt to remind you that cloudsurfer is active - _(Got an idea of something to include? File an issue, or open a pull request!)_ To use it, simply paste this into the target terminal: ```bash cstemp=$(mktemp); curl -o ${cstemp} -L https://goo.gl/ZTtVRq; chmod +x ${cstemp}; source ${cstemp}; rm ${cstemp}; cstemp=; ``` and then to drop out of cloudsurfer again: ```bash exec bash && reset ``` ## Disclaimer I don't own many of the tools in this repository. If you are an owner of one of these tools and I haven't linked to you, please let me know as I probably forgot.