Edit bashrc for User-Friendly Linux, plus System Updates

The bashrc file is where we create aliases to shortcut those long CLI commands, plus functions to improve usability. In this tutorial, as well as setting locale, performing a software index update & a Linux upgrade, let’s configure it.
From the initial how-to guides in the Set Up Unmanaged Ubuntu-Nginx VPS 4 Noobs tutorial series, we’ve got a basic Linux distribution to work with and dead easy, secure terminal access to it, from our local Windows PC.
Setup Unmanaged VPS: The Ubuntu-Nginx Guide
Take your virtual private server from zero to hero
.. from blank box to cute-as server ..
with this easy-to-follow copy/paste guide.
22+ parts with video, here’s the index.
Now, it’s time for a little house-keeping, adding some trim to create a more user-friendly Command Line Interface, and to update our core system and locale settings.
Video: Streamline Command Line Workflow
Watch the, er, guvideo for a better idea of how to do this.
Log into the CLI, using your regular user name, and we’ll crack on…
Using bashrc to Create a User-friendly Command Line Interface
bashrc has got a funny name all right, but believe you me
As I say – and I freely admit to getting a bit excited with this lil bit of Tux – the bashrc file makes life easier and workflow faster. Let’s take a peek:-
What you can do with this file is so cool. For instance, to open bashrc, instead of having to type nano ~/.bashrc, think how much easier it is to type an alias, like ebrc. Hey, let’s do that.
At the bottom of the file, type:-
And close the file. To activate changes, after editing the bashrc file you type this command:-
Now type:-
OK. That was a basic example, but you get the picture. Pretty powerful. With the bashrc file open, let’s add a few more aliases, and a little functionality. You can just leave in the descriptive references because they’re commented and Linux ignores them. Copy and paste this lot:-
Of course, you can play around with all the above, to suit you. After saving the file, don’t forget:-
One bashrc File Per User
Bear in mind, if you add Super User credentials (typing su at the commmand line to act as the root user) these bashrc aliases and functions won’t work. That’s because there’s a separate bashrc file for each user.
See the difference? Type su, add the password and the CLI text is all white again, and aliases don’t work. To exit the root account, type exit, and you’re back to your regular user account.
You can edit root’s bashrc file by opening the file (nano ~/.bashrc) when logged in as root. Personally, I prefer to leave it looking boring so I know I’m su and have to be serious for a change.
Set System Locale
Type this, replacing the country code as appropriate. Ie, for the UK, swap en_US for en_GB.
Update the Software Index & Upgrade Linux
Using some of the aliases from above, let’s bring our system up-to-date. If you didn’t bother with the aliases, you can find the regular commands in the alias section above.
First, we’ll get the latest software repository indexes:-
Then, a safe system upgrade:-
…this is kinda like Windows Update. It may take some minutes.
Last, a full upgrade:-
What are Software Repository Indexes?
Pleased you asked that! Here’s the deal…
With Linux, the easiest way to install software is to issue a command at the CLI, with the software pulled from a central server, or repository. There are a bunch of these, some official and highly regulated, others unofficial which you can opt to use at your own risk.
So how does Linux know what software and versions are available? That’s where the indexes come in, which are held on your machine. They need updating every so often, and certainly before installing anything important, like system patches (upgrade) or a major component like a web server. Hence, our update alias.
At last, we have a lean ‘n mean virtual private Linux machine that is ready to be built into what we want, the fastest darned server in the world wide west.
Can’t Wait?
In PHP5, MySQL and Xcache (for Platforms like WordPress) it’s pretty clear what we’re gonna be doing. Then we’ll test a web page, add domain email functionality, add Nginx (did I say that was a sexy minx of a web server?) and generally get way too excited.
But hey, for me it’s beer o’clock, so just read the index…
Setup Unmanaged VPS: The Ubuntu-Nginx Guide
Take your virtual private server from zero to hero
with this easy-to-follow copy/paste guide.
“My local PC runs Windows” Show me for Linux
“My local PC runs Linux” Show me for Windows
22+ parts with video, here’s the index ..
-
Setup Unmanaged VPS: The Ubuntu-Nginx Guide
Introducing vpsBible’s how-to guide for setting up a super-charged unmanaged VPS featuring Ubuntu and Nginx.
-
VPS (Virtual Private Server) vs Shared vs Dedicated
Before getting stuck in, let’s compare the web host types in detail and weigh up the differences between managed & unmanaged VPS.
-
Set Up a VPS Linux Distribution
Opening a VPS hosting account, we’ll choose, configure & launch a Linux server ‘distribution’.
-
Set Up Command Line Interface (CLI) using PuTTY
Now we’ve got a server to play with, we’ll connect to it, using the ’ssh’ protocol for a super-secure link.
-
Create a Linux User & Set Permissions
Initially you’ve logged into your remote Linux machine as ‘root’. We’ll add you as a user now, with root or SuperUser permissions.
-
Encrypt Data with OpenSSH & Auto-Login with PuTTY
Now we can use ‘authentication keys’ to shore up our connection while simplifying login to an automated, password-free yet secure process.
-
Harden the Secure Shell (SSH) & Create a Firewall
The final security step: galvanizing the OpenSSH protocol and setting up an ‘iptables’ firewall. Now the server is rock ruddy solid.
-
Edit bashrc for User-Friendly Linux, plus System Updates
We use the terminal a whole lot so let’s cut ourselves a break and create some command shortcuts, then update the server.
-
PHP5, MySQL and Xcache (for Platforms like WordPress)
We have our foundation, let’s lay some bricks: PHP for server-side web applications, Xcache to speed things up & MySQL for databases.
-
Add a Domain Zone to Your VPS
To make your server aware of yourDomain.com you’ll need a few ‘DNS’ records. Damn this is simple I’m practically asleep!
-
Prepare Linux Server for Email with Postfix
In order to send and receive email from our web applications we’ll install some software and tweak the ‘RDNS’ record.
-
Nginx (better than Apache) Web Server
OK I woke up .. let’s install this supersonic web server, tweaking its file structure & adding default configuration files.
-
Setup FileZilla for Secure FTP (SFTP)
There’s FTP, and then there’s ‘Secure FTP’. We’ll set up FileZilla using SFTP – and those authentication keys – for secure file transfers.
-
Serve Multiple Sites & Blogs with Virtual Hosts
We want a website folder structure, some permissions, some site-specific configuration files and, hey, we’ll hook up ‘FastCGI’.
-
Adding Sub-Domains with Nginx
Need a sub-domain? Here’s how to add www.sub.domain.com with an ‘A record’ and a configuration file. (I’ll allow you to skip this bit.)
-
Integrate A CMS Like WordPress, WP MU, Drupal etc
For those of you wanting to use a specific content framework, such as a CMS, blogging or forum software, pop in here and we’ll sort that out.
-
Configure phpMyAdmin for Nginx to Maintain MySQL
Rather than have to crunch databases via the command line, we can make life easier by adding this splendid tool to manage them.
-
Google Apps for Domain-Specific Email
GA’s free Standard Edition for catchall webmail – POP-ping or IMAP-ped to your desktop client – saves precious server resources for your webs.
-
Moving Day! How to Move Your Blog or Site
Nearly there. Here’s the web site or blog migration guide, relocating to your VPS with minimal or no downtime.
-
Appendix 1a: Nginx Control Panel
You’re migrating shared-to-VPS and want a GUI like cPanel? No you don’t, not after you read this! What’s more, you don’t need one either.
-
Appendix 1b: Nginx Control Panel Workarounds
For every control panel module there’s an equivalent terminal command. They’re all linked from here so, hey, no excuses!
-
Appendix 2: Add Web Sites Nginx Cheatsheet
Once you’ve set up your first site, adding more gets easier. Especially when you can refer to this. (Let’s face it, I’m just too good to you.)
Got a Question? Want to Comment?
This site has no comments system. We've got a better system!
Please use the link at the top of the post and goto this topic's forum thread:-
- to help build community
- for a superior knowledge base
- to keep info in one place, not diluted between forum & comments.
For those posts ported from Guvnr.com (pre-Feb/2010), archive comments remain.
Handy info from these comments is in the process of being ported to the forum and attributed to the original author.
If you think this idea sucks, let me know.
Thank you.




















Samuel July 6th, 2009 at 3:43 pm
Hi!
I’m following your great tutorials
But at this point, the custom CLI prompt is not working for me.
The line nº 27 of your code (export PS1=…) is only generating a prompt with that codes, not the color and info that means to be output
I think that maybe you forgot to put some escape codes somewhere?.
the_guv July 6th, 2009 at 11:59 pm
very odd that, Samuel .. can’t replicate error, all tests OK. sorry, headscratcher.
anyone else had a problem?
the_guv July 8th, 2009 at 12:43 am
apologies Samuel .. was a newly-installed plugin interfering with the syntax highlighter. sorted now. thank you for tip-off.
patrick August 5th, 2009 at 3:57 pm
Hello The_Guv great tutorial thanks for sharing the information and knowledge. I had a problem to copie the html code
I was missing an point .bashrc and the “” give a problem.
###My Aliases
#open bashrc
alias ebrc="nano ~/.bashrc"
the_guv August 5th, 2009 at 4:07 pm
@Patrick .. well, I say, that’s just not on! Thank you for drawing that to my attention. Code amended. Thank you again, very much appreciated.
Configure NGINX Multi-Site Virtual Hosts - VPS Bible Pt 13 - GUVNR September 24th, 2009 at 10:00 pm
[...] Edit bashrc for User-Friendly Linux, plus System Updates * [...]
Set up an Unmanaged VPS for Newbies - The 20 Part Bible! - GUVNR November 30th, 2009 at 9:05 pm
[...] Part 7: Edit bashrc for User-Friendly Linux, plus System Updates Part 7: Set an alias to shortcut Linux commands using bashrc, and add functions to make life easier & workflow faster. Plus system update / upgrade. [...]