config | ||
customize.sh | ||
README.md |
My standard configuration files for Debian and basic services
This is a collection of several configuration files that I use when setting up a BASIC bare-bones Debian system. Quite often, such a system will become something else like a webserver, git-server, cloud platform, programming workstation, etc. Therefore, only a few core files applicable to nearly every conceivable installation are included here.
Included files
bash template files
bash.rc
Included are .bashrc files for both new users (in the /etc/skel/ directory) and the root user. These files are the Debian default files. They are included and copied so that user profiles start out at baseline settings and pull all initial customizations from /etc/bash.bashrc. Users are free to alter their .bashrc as they see fit and those settings will override or add to the ones I've included in /etc/bash.bashrc
profile
This is the Debian default profile and is copied to /etc/profile to return the system to a baseline configuration. Again, this is done to ensure that only /etc/bash.bashrc is providing initial customizations to users.
bash.bashrc
Of the bash customization files, this is the only one that is NOT in a default configuration. I have added the following customizations I find useful especially for new users and system admins:
- colourized directory listings with built-in automatic colour settings
- changed prompt to include 24-hour clock, username, hostname and current
directory display
- username changes to RED when working as ROOT (uid=0)
- added the following command aliases
alias full command explanation ll ls -l default 'ls' output l ls -lAsh --group-directories-first far more useful and robust file display including sizes, permissions and owners rm rm -i confirmation prompt when deleting file mv mv -i confirmation prompt when moving file would result in overwriting existing file cp cp -i confirmation prompt when copying file would result in overwriting existing file
nano defaults (nanorc)
The following options have been enabled/set in nano to provide what I feel is an easier editing experience especially for people coming from a Windows background and new users/admins.
- 'rebind' numeric keypad to fix problems with using keypad with some SSH clients
- set 'smart home' some home key is useful
- allow opening multiple files at once
- always display line numbers
- constantly display cursor position at the bottom of the screen
- set vim lock-files
- autoindent ON, tab-size of 4 spaces
- convert tabs to spaces
- turn off hard line wrapping
- turn ON soft line wrapping for ease of readability
- closing 'brackets' (for alignment purposes) set as: "')>]}
- cut to end of line by default
- set proper bracket matching (ie. "<" matches ">", etc.)
- turned on default colours so nano doesn't look so drab
- added the following key-bindings
binding | fuction |
---|---|
alt-c/alt-C | copy selected text |
alt-x/alt-X | cut selected text |
alt-v/alt-V | paste text on clipboard |
time syncronization settings (timesyncd.conf)
This file configures systemd-timesyncd.service and allows for very simple NTP-sync setup. Simply edit the *NTP= to list your desired timeservers, each separated by a single space. In the event those timeservers are not available, you can configure back servers by listing them on the FallbackNTP= line, again space delimited.
I've set the default in this file to be the worldwide NTP.org servers. This should work for pretty much anyone that uses this file, but you really should customize the list to use geographically closer timeservers or the timeserver on your LAN, etc.