When I first moved to linux I had become addicted to keeping my distro updated and so I found myself typing and retyping
$ sudo aptitude update password: $ sudo aptitude dist-upgrade
At least once a day. Having read about shell scripts, I thought I’d try my hand at putting this into a shell script which, if you don’t already know, is linux’ more powerful answer to the Windows batch file.
So that’s what I did, and here’s how I did it.
Get organised – I created a shell-scripts directory in my home directory. All my other shell scripts will reside in this directory should I find another need for a shell script. -> mkdir ~/shell-scripts [enter]
Create the empty text file – I created an empty file and called it update-xubuntu.sh -> vim ~/shell-scripts/update-xubuntu.sh [enter]
Start scripting! – Every shell script needs to start with a specific declaration in the first line of where to find the executable to run the commands you are going to type in below it – the generic for ubuntu is “/bin/sh “-> #!/bin/sh [... new line and continue script]
Make it executable – After I finished my script, I had to make it executable so that it can be run straight from command line without needing to feed it as a parameter to the sh program. -> chmod a+x ~/shell-scripts/update-xubuntu.sh (alternatively, I could have done chmod 0755 ~/shell-scripts/update-xubuntu.sh – basically, what a+x means that the everyone (all) should have the permission to eXecute the file).
Run it! – You’d think it’s straight forward, but to run my newly made executable shell script in the directory I’m currently in, I will need to type in the path of the file eg if I am inside the shell-scripts directory, I will need to execute the shell script by preceding the filename with a dot slash (./) this actually tells the shell that the current directory is where the shell script is and helps the shell resolve the location of your script. -> ./update-xubuntu.sh [enter]
Gosh, hope that made sense, whatever, just keep in mind dot slash (./) means “current directory” and if you are running a shell script, you need to include it! (unless of course you add your directory to your PATH environment variable…. but that’s outside the scope of this commentary).
The Shell Script: update-xubuntu.sh
#!/bin/sh # shell scripts need to start with this line. I'm sick of trying to explain this, so I won't. sudo aptitude update # use aptitude to update your sources sudo aptitude dist-upgrade # run a dist-upgrade.
rvdavid@desktop:~$ mkdir shell-scripts # get organised rvdavid@desktop:~$ vim shell-scripts/update-xubuntu.sh # create empty text file + Start Scripting rvdavid@desktop:~$ chmod a+x shell-scripts/update-xubuntu.sh # Make it executable rvdavid@desktop:~$ cd shell-scripts/ # I didn't really need to do this, but I thought I'd do it just to make an example of dot slash in the next line. rvdavid@desktop:~/shell-scripts$ ./update-xubuntu.sh [sudo] password for rvdavid: Get:1 http://archive.canonical.com gutsy Release.gpg [191B] Ign http://archive.canonical.com gutsy/partner Translation-en_AU Get:2 http://archive.ubuntu.com gutsy Release.gpg [191B] Ign http://archive.ubuntu.com gutsy/main Translation-en_AU Hit http://archive.canonical.com gutsy Release Ign http://archive.ubuntu.com gutsy/restricted Translation-en_AU Ign http://archive.ubuntu.com gutsy/universe Translation-en_AU Ign http://archive.ubuntu.com gutsy/multiverse Translation-en_AU ...
- Trying out the Fedora 7 Linux Distro
- Your “Legacy Code” – Quick HIDE!
- Working in a Linux environment: A month on.