Tag-Archive for » bash «

Thursday, November 12th, 2009 | Author:

If you ever find yourself updating a single application in Arch Linux (a very bad idea, btw) and it upgrades readline you might end up seeing an error along the lines of:
/bin/bash: error while loading shared libraries: libreadline.so.5: cannot open shared object file: No such file or directory
Hopefully you still have a bash prompt open and you haven’t closed them all. If you still can, immediately run the following:
pacman -S bash
else you won’t be able to run bash any more because bash would still be linking to the old version of readline.

Also, in future, don’t run
pacman -Sy application
(python in my case)
instead, run:
pacman -Syu
which will ensure that all applications are upgraded.

Personally, I think that bash should have had a dependency set saying that it required the old specific version of readline and the same for the new bash, requiring the new version of readline. Regardless, rather play it safe. 😉

Friday, June 05th, 2009 | Author:

Well it turns out that the problem is a little more subtle than that. It is only the root user that does not have syntax highlighting.

You see, vim does have syntax highlighting but vi and vim are different binaries. A shell startup script only aliases vi to vim if the user id is higher than 100 – which excludes root. The simplest workaround is to just add an explicit alias to root’s .bashrc at /root/.bashrc :

alias vi='vim'

run the command manually or just log in again to “activate” the alias.

Btw, I’m starting to like vi… a lot. For a long time it made no sense to me – but now I am found. 🙂

Saturday, March 28th, 2009 | Author:

Its amazing how much you can do by combining the small yet powerful commands Unix has available.

This little-used command, time, finally became useful today as a way to report the length of time that certain automated operations are running. In my example, I’m timing how long it takes to build the Linux kernel:

$ time rebuild-kernel26
==> Finished making: kernel26 x86_64 (Sat Mar 28 17:19:52 SAST 2009)
real    62m21.994s
user    43m31.846s
sys     6m1.096s

Yup, that took a little over an hour to build. The values are:

  • “real” the actual time elapsed while the command was running – 62 minutes
  • “user” the amount of userland time the command used – 43 minutes
  • “sys” the amount of system time the command used – 6 minutes

(I was busy doing other things while this was happening which is why it took 62 minutes for the desktop to do (43+6=) 49 minutes-worth of work)

If you’re using the GNU version (most likely), it also gives you the option of displaying the results in a custom fashion. Mostly, this command could be useful in scripts where you need to report how long a task took – or maybe? just a geeky way to time something random. 😛

Category: linux  | Tags: , , , , , , ,  | Leave a Comment
Wednesday, March 18th, 2009 | Author:

[edit] So much for that. It turns out that openssl is able to determine that the key and certificate are already in a single file. Therefore, no csplitting required (well, I hope somebody reading this at least learned about how nice csplit is). In fact, the whole script might as well be obsolete… blaargh. Well, at least it gives a nice warning about not giving a blank passphrase. 😀

Here’s the new version:

pem2pfx – converts a .pem-formatted file containing a private key and signed certificate into a Windows-compatible .pfx certificate file.

#Tricky - brendan@swiftspirit.co.za
# Converts a .pem certificate file to .pfx format
# $1 is the source file
set -e
if [ $# = 1 ]; then
  outputfile=`echo $1 | sed 's/.pem$/.pfx/'`
  echo "Please specify a password below. Windows refuses to import a .pfx certificate with a blank password."
  openssl pkcs12 -export -out $outputfile -in $1
  echo "pem2pfx - converts a .pem formatted private-key and certificate file to an IIS-compatible .pfx file."
  echo "Usage: pem2pfx inputfile.pem"


Saturday, February 21st, 2009 | Author:

… and my Personal Rating (PR) out of 10 😉

I use Firefox so most of these won’t apply to non-FF users. However, I’d be very very interested to hear what other addons my friends, subscribers, and random websurfers find interesting or useful to them. Have your say and let us know why you love the addons you love. 🙂

Personally, I prefer addons that aren’t intrusive. Ideally, an addon must have a minimal interface and give me a measurable benefit for me to keep it installed.

Cacheviewer – 7

This is a GUI front-end for the Cache Firefox keeps of the last few pages and media. I’ve found this addon more interesting than useful right now so I’m probably going to remove it soon.

ColorfulTabs – 9

I love the colours. The tab colour-grouping doesn’t work very well when you reach about 30 tabs though… :-/

Download Statusbar – 10

I prefer having everything in Firefox in a single window in tabs. Having a download box in a separate window is a big no-no for me. It also saves screen real-estate since it is very minimal. 🙂

Video DownloadHelper – 10

Video DownloadHelper looks for streaming media – specifically looking for any large content that is being downloaded. When you click on the icon, it shows you the currently-downloading streams and gives you the option to queue it as a “normal” download.

Since you never know if FF is going to crash or the power is going to cut, I’d prefer to save a copy to my desktop and I can then view the video without using more bandwidth to download the video again. Also, at work, when people send me links to youtube or other media, I usually don’t bother watching till much after – at my own leisure or during a break.

Expiry Canary – 9

This neat and minimal addon tells you if the SSL certificate for the site you’re currently viewing is soon going to expire. If your own site has an SSL certificate, I recommend you use this addon to help avoid your site’s SSL certificate expiring due to a simple lack of notification or miscommunication.

Fasterfox – 8

Fasterfox adds some network optmisation options. Some of the options could make your corporate network admin a little mad with you though. 😉

Firebug – 9

For web development and experimentation with pages. Awesome for testing little bits of code as well as debugging pages.

FoxClocks – 6

err – tells you the time in other time zones. o.O Was useful for a short time – now its redundant since my head is working it out faster than I can glance. rm -f

FoxyProxy – 9

Awesome for browsing specific pages through specific proxy servers. This is useful for when some sites are blocked or the SAIX Transparent Proxy servers aren’t working properly. 🙂

I use this to route some traffic over proxy servers that I’d rather not go through default routes. Its also very flexible. If you have more than one proxy server available and the one you usually use suddenly goes on the blink, just switch over to the next one. 🙂

Greasemonkey – 10

Right now, I use this only for the GooglemonkeyR script. This script reformats Google‘s search results to your specifications and also has an option to show small thumbnail of the pages Google links to. Greasemonkey can do a lot more and there are plenty of scripts readily available for many many sites.

Live HTTP headers – 8

I’ve used this a few times to diagnose gzip compression issues with IIS web servers. Not much else to say though: It works.

Live PageRank – 10 (so far – only installed it yesterday)

This addon seems simple enough. It gets the PageRank from Google and shows it in the tray.

NoScript – 10

NoScript is AWESOME at blocking adverts. Its a little irritating at first since you have to whitelist all the sites you like – but in the long run it is soooo worth it. 🙂

Resurrect Pages – 10

Very useful for if you browse to a site and it happens to be down. If the site is static-content-oriented then this makes it easy to quickly find the content if its cached online.

Tab Mix Plus – 8

Awesome for if you have more than 7-or-so tabs.

ShowIP (using a version modified for work purposes – displays company server’s canonical name when browsing) – 10

I cannot imagine the hell I’d have to go through to identify a server without this plugin. Okay, I can. Used to have to do this all the time. I eventually scripted it but I can’t find the original script. Here’s my 60-second attempt at recreating what was in that script:

$ cat /etc/hosts | grep `dig A $hostname @mycachingnameserver | grep . | grep -v "^;"`
$ dig -x `dig A $hostname @mycachingnameserver | grep ^$hostname | grep A | \
  awk '/[.]/{print $5}'` @mycachingnameserver | grep . | grep -v "^;"

Web Developer – 9

I used this once to diagnose some issues with a page. I don’t do much web development so I’m going to remove this one. Its no comment on its capabilities since I believe this is a top notch add-on if you’re doing a lot of web development work.