Power User Tools
Managing configs with vcsh
vcsh
[1] is a utility that allows you to create multiple git repositories to store configuration files in your home directory.
It solves the problem of having to use symlinks, and is a very nice tool. It works well with another tool named mr
[2] that allows
you to synchronize all of your config repos with a single command.
Common Tasks
Adding new repo
Let say you want to add a repo for tracking your zsh configuration.
First, create a gitignore file for the repo so you can just do git add .
> vim ~/.gitignore.d/zsh ...
Add the following lines
/* !/.zsh
Now create the repository and push to a remote
> vcsh init zsh # create the repo > vcsh zsh add . # add all files not masked by ~/.gitignore.d/zsh > vcsh zsh commit # commit files > vcsh zsh remote add origin ssh://user@host/repo/with/write/access # create remote repo > vcsh zsh push --set-upstream origin master # push to the origin and setup tracking
Reverse SSH
The ssh
command has a -R
option that can be used to allow ssh access to a computer that does not have a public, static IP address (such as a computer behind a NAT at home) using another
computer that does have a public IP Address.
Assume you have two computers, Public
and Private
. Public
has a public, static IP address, and you have ssh access to it. Private
is a computer that sits behind your home router, and cannot be accessed from the outside. On Private
, run the following command: