Language Selection

English French German Italian Portuguese Spanish

Howtos

The Bash Fingertips: Making Your Own 'Information Centre'

Filed under
Howtos

Information Centre

FORGET bloated Web browsers. Forget so-called 'social' media (I call it social control media). They're not efficient, they eat up a lot of memory and CPU cycles, and the interfaces are not consistent (across sites). They're sufficiently distracting and they have ads. They erode privacy. They don't scale well; neither for an aging system (my laptop turns 10 in a few months) nor for users. GUIs are good in particular scenarios, but when the same things are repeated over and over again one might as well set up scripts, automating things and tailoring one's own interfaces, which is easy to achieve (relatively fast and simple) in the command line. It's also more accessible, e.g. over SSH. The pertinent tools are already out there (available for download/installation from repositories), they just need to be put together and programming skills aren't required, just batching in a bash file.

Some years ago I 'developed' a little script (I've been scripting since I was about 12). I called it getswap-sorted.sh and it just ran another script that helped me see what applications use the swap (and how much of it). For the sake of speed I like to restart applications that heavily use swap (i.e. depend on magnetic disk operations). I don't have much RAM. I never had more than 2 GB. getswap-sorted.sh just called out ./getswap.sh | sort -n -k 5 and getswap.sh comes from Erik Ljungstrom. Here it is:

#!/bin/bash
# Get current swap usage for all running processes
# Erik Ljungstrom 27/05/2011
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]"` ; do
PID=`echo $DIR | cut -d / -f 3`
PROGNAME=`ps -p $PID -o comm --no-headers`
for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
do
let SUM=$SUM+$SWAP
done
echo "PID=$PID - Swap used: $SUM - ($PROGNAME )"
let OVERALL=$OVERALL+$SUM
SUM=0

done

The output of getswap-sorted.sh would be something like this:


PID=1559 - Swap used: 16472 - (x-terminal-emul )
PID=21980 - Swap used: 16648 - (kwalletd5 )
PID=25548 - Swap used: 16704 - (konversation )
PID=631 - Swap used: 19336 - (kded5 )
PID=23817 - Swap used: 50048 - (pidgin )
PID=23923 - Swap used: 180312 - (thunderbird )


This helps me see which application/process number uses swap and to what degree. It's sorted by the amount of swap taken and the PID helps when I just want to kill a process from the command line (some are small and obsolete anyway).

My script, however, grew bigger over time. I added more things to it, eventually binding it to a special (fifth) mouse key, using xbindkeys -- an immensely valuable and powerful program I've used since around 2004. Extra mouse buttons always seemed worthless (anything more than three), but that's just because there was no program I needed to open or action I needed to invoke often enough. Over time I found that keeping a new terminal one click away (fourth button) and another special terminal also a click away improved my workflow/productivity. I just needed to invest some time in tailoring it. I ended up opening, temporarily, a terminal window with important information displayed, such as weather, disk space (I'm always near the limits), swap usage (I have only 2GB of RAM), uptime, real-time football scores etc. Change of wallpapers was lumped in too, for good measure...

For football tables/scores use one of the following 1) livescore-cli 2) soccer-cli and 3) football-cli.

Sadly, the above CLI football scores' tools got 'stolen' by Microsoft and need to isolate themselves GitHub, in due cource/time. I use the first of the three as it suits my needs best and does not require an API key.

The output looks like this:

 ... Fetching information from www.livescore.com ... 
Displaying Table for Barclay's Premier League
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                Barclay's Premier League TABLE
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 LP     Team Name               GP      W       D       L       GF      GA      GD      Pts
--------------------------------------------------------------------------------------------------
 1      Liverpool               24      19      4       1       55      14      41      61
 2      Tottenham Hotspur       25      19      0       6       51      24      27      57
 3      Manchester City         24      18      2       4       63      19      44      56
 4      Chelsea                 25      15      5       5       45      23      22      50
 5      Arsenal                 24      14      5       5       50      33      17      47
 6      Manchester United       24      13      6       5       48      35      13      45
 7      Wolverhampton Wanderers 25      11      5       9       33      32      1       38
 8      Watford                 25      9       7       9       33      34      -1      34
 9      Everton                 25      9       6       10      36      36      0       33
 10     AFC Bournemouth         25      10      3       12      37      44      -7      33
 11     Leicester City          24      9       5       10      30      30      0       32
 12     West Ham United         24      9       4       11      30      37      -7      31
 13     Brighton & Hove Albion  25      7       6       12      27      36      -9      27
 14     Crystal Palace          25      7       5       13      26      33      -7      26
 15     Newcastle United        25      6       6       13      21      33      -12     24
 16     Southampton             25      5       9       11      27      42      -15     24
 17     Burnley                 25      6       6       13      26      46      -20     24
 18     Cardiff City            25      6       4       15      22      46      -24     22
 19     Fulham                  25      4       5       16      25      55      -30     17
 20     Huddersfield Town       25      2       5       18      13      46      -33     11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 LP = League Position   GP = Games Played       W = Wins        D = Draws       L = Lose 
 GF = Goals For         GA = Goal Against       GD = Goal Differences
--------------------------------------------------------------------------------------------------
 Champions League       Champions League qualification  Europa League
 Europa League qualification    Relegation
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Real-time scores (when matches are on):

 ... Fetching information from www.livescore.com ... 
Displaying Scores for Barclay's Premier League
----------------------------------------------------------------------------
                 Barclay's Premier League SCORES 
----------------------------------------------------------------------------
 January 29  FT     Arsenal                  2 - 1  Cardiff City           
 January 29  FT     Fulham                   4 - 2  Brighton & Hove Albion 
 January 29  FT     Huddersfield Town        0 - 1  Everton                
 January 29  FT     Wolverhampton Wanderers  3 - 0  West Ham United        
 January 29  FT     Manchester United        2 - 2  Burnley                
 January 29  FT     Newcastle United         2 - 1  Manchester City        
 January 30  FT     AFC Bournemouth          4 - 0  Chelsea                
 January 30  FT     Southampton              1 - 1  Crystal Palace         
 January 30  FT     Liverpool                1 - 1  Leicester City         
 January 30  FT     Tottenham Hotspur        2 - 1  Watford                
 February 2  FT     Tottenham Hotspur        1 - 0  Newcastle United       
 February 2  FT     Brighton & Hove Albion   0 - 0  Watford                
 February 2  FT     Burnley                  1 - 1  Southampton            
 February 2  FT     Chelsea                  5 - 0  Huddersfield Town      
 February 2  FT     Crystal Palace           2 - 0  Fulham                 
 February 2  FT     Everton                  1 - 3  Wolverhampton Wanderers
 February 2  FT     Cardiff City             2 - 0  AFC Bournemouth        
 February 3  15:05  Leicester City           ? - ?  Manchester United      
 February 3  17:30  Manchester City          ? - ?  Arsenal                
 February 4  21:00  West Ham United          ? - ?  Liverpool              
----------------------------------------------------------------------------
---------------------------------------

Now putting it all together:


feh --bg-fill --randomize /media/roy/c3fd5b6e-794f-4f24-b3e7-b4ead3722f11/home/roy/Main/Graphics/Wallpapers/Single\ Head/natgeo/* &

livescore -t bpl 

./getswap.sh | sort -n -k 5
 curl -4 http://wttr.in/Manchester
 swapon --summary | grep sda2
 df | grep sda1
uptime

sleep 10

livescore -s bpl 

sleep 40

The first line is feh choosing a wallpaper at random from a collection of award-winning National Geographic photographs. The options and the underlying parameters are self-explanatory.

The football league's table is then shown.

Next, after about 10 seconds of processing, a list of processes will show up based on swap usage (as described above)

The weather at home (Manchester) will then be shown, with colour. Right now I get:

Weather report: Manchester

     \   /     Sunny
      .-.      -5--2 °C       
   ― (   ) ―   ↑ 9 km/h       
      `-’      10 km          
     /   \     0.0 mm         
                                                       ┌─────────────┐                                                       
┌──────────────────────────────┬───────────────────────┤  Sun 03 Feb ├───────────────────────┬──────────────────────────────┐
│            Morning           │             Noon      └──────┬──────┘     Evening           │             Night            │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│    \  /       Partly cloudy  │      .-.      Light drizzle  │  _`/"".-.     Light rain sho…│               Mist           │
│  _ /"".-.     -4-0 °C        │     (   ).    -2-3 °C        │   ,\_(   ).   1-3 °C         │  _ - _ - _ -  0-3 °C         │
│    \_(   ).   ↑ 12-20 km/h   │    (___(__)   ↑ 17-26 km/h   │    /(___(__)  ↗ 7-14 km/h    │   _ - _ - _   ↑ 9-17 km/h    │
│    /(___(__)  20 km          │     ‘ ‘ ‘ ‘   20 km          │      ‘ ‘ ‘ ‘  16 km          │  _ - _ - _ -  13 km          │
│               0.0 mm | 0%    │    ‘ ‘ ‘ ‘    0.4 mm | 83%   │     ‘ ‘ ‘ ‘   0.4 mm | 65%   │               0.0 mm | 0%    │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
                                                       ┌─────────────┐                                                       
┌──────────────────────────────┬───────────────────────┤  Mon 04 Feb ├───────────────────────┬──────────────────────────────┐
│            Morning           │             Noon      └──────┬──────┘     Evening           │             Night            │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│      .-.      Light drizzle  │  _`/"".-.     Patchy rain po…│               Cloudy         │               Cloudy         │
│     (   ).    2-6 °C         │   ,\_(   ).   3-7 °C         │      .--.     1-4 °C         │      .--.     -2 °C          │
│    (___(__)   → 16-26 km/h   │    /(___(__)  → 20-27 km/h   │   .-(    ).   → 13-23 km/h   │   .-(    ).   ↗ 9-16 km/h    │
│     ‘ ‘ ‘ ‘   14 km          │      ‘ ‘ ‘ ‘  18 km          │  (___.__)__)  20 km          │  (___.__)__)  20 km          │
│    ‘ ‘ ‘ ‘    0.3 mm | 88%   │     ‘ ‘ ‘ ‘   0.3 mm | 88%   │               0.0 mm | 0%    │               0.0 mm | 0%    │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
                                                       ┌─────────────┐                                                       
┌──────────────────────────────┬───────────────────────┤  Tue 05 Feb ├───────────────────────┬──────────────────────────────┐
│            Morning           │             Noon      └──────┬──────┘     Evening           │             Night            │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│    \  /       Partly cloudy  │               Overcast       │               Overcast       │      .-.      Light drizzle  │
│  _ /"".-.     -1-3 °C        │      .--.     2-6 °C         │      .--.     6 °C           │     (   ).    1 °C           │
│    \_(   ).   ↖ 19-31 km/h   │   .-(    ).   ↑ 23-33 km/h   │   .-(    ).   ↑ 24-40 km/h   │    (___(__)   ↑ 24-40 km/h   │
│    /(___(__)  20 km          │  (___.__)__)  19 km          │  (___.__)__)  8 km           │     ‘ ‘ ‘ ‘   9 km           │
│               0.0 mm | 0%    │               0.0 mm | 0%    │               0.0 mm | 0%    │    ‘ ‘ ‘ ‘    0.3 mm | 0%    │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘


After this I am shown general memory usage and disk usage (for a particular partition) along with uptime thusly:

/dev/sda2                               partition       2097148 381128  -1
/dev/sda1        84035088   77299588   2443660  97% /
 08:03:28 up 116 days, 12:36,  7 users,  load average: 1.70, 1.40, 1.26

It will close on its own after I see what needs seeing, owing to the sleep command. It saves me the clicking (required to then close the window); it just fades away or 'expires', so to speak (until the next time the mouse button gets pressed).

How to rename files in bulk

Filed under
Howtos

Consider this common scenario. A directory contains multiple files that are named using a common convention: for example, image-001.png, image-002.png, image-003.png, etc. You want to rename the files to, say, upload-001.png, upload-002.png, upload-003.png, etc.

The coders among us can write a bash script to automate the process. For expedience, this post shows how to use the built-in rename command to achieve the same goal.

Fixing OpenSuse’s Dog Awful default fonts…

Filed under
Howtos

Lets not beat around the bush here, the default font rendering in OpenSuse and the default font do not an OS fit for reading make.. this can be fixed however..

Love or hate Ubuntu, out of the box it has one of the best font rendering setups of any distro and considering how much time we spend on our PC’s setting your fonts up correctly is one less headach, literally.

I’m not sure how much of these instructions I got right, however after a reboot the screen text does at least look better..

Read More

Stopping Screen Flickering on Ivy Bridge Laptops using Linux

Filed under
Howtos

This is a solution to a problem which has been dogging me on every version of Linux I install on the Acer Aspire S3. I'm hoping it will help someone.

Read my solution

Forgot your Ubuntu Password? All is not lost.

Filed under
Howtos

It’s always a pain when you forget your password, and i’ve often done it on an Ubuntu install. All however is not lost as a stock Ubuntu install its quite easy to reset your password

Read More

Creating an AD Server for Free using Ubuntu and Samba

Filed under
Howtos

While being a huge fan of the GNU/Linux OS I do also live in the real world which means using Active Directory Domain Controllers and Windows networks. this week however I’ve had to build for a project a stand alone AD network. This got me thinking to a project I built for a school 6 uears ago which I did the same thing with Samba on Fedora.

Remote Application launching using X11 and SSH.. Oldie but a goodie..

Filed under
Howtos

Using WordPress as my central blog platform I’m very happy with it, not much to complain about, some good features, it’s very social and some nice themes. However it’s got me thinking not so much my content i’m now having a “problem” to manage it’s dealing with the replies

Read More

Using the right tools to get your media..

Filed under
Howtos

When it comes to getting what you want off the interent, its pretty fair to say, that there is an application and a set of instructions to do this. In this day and age its fair to say that getting media off the web should be the way that media companies distribute. Instead of trying to reinvent the wheel. Unfortunately they don't they bog you down with Websites, DRM, Magma and lots more.. Well This is how to get your media another way..

Standard Disclaimer: Your use of this software and configuration is at your own risk. Check the legality of downloading TV shows in your area. This post is purely for the sake of information.

.

Read more...

Big Bear's Helpful Hints-Google Docs Spreadsheets

Filed under
Howtos

I like to jot down things that I learn how to do on the spur of the moment so that I can find it later.

I admit, in the 80's there was quite of bit of "herbal remedy" usage and my short term memory isn't what it could be. That's my story and I'm sticking to it.

I've decided that I might as well potentially help some other folks who might want to know about some of the things I discover, so I thought why not here?

For my very first post, I wanted to figure out how to sum cells across multiple pages in Google Docs spreadsheets.

How to get APT to work through a proxy..

Filed under
Howtos

APT is the core of package management on Debian based systems, its a powerful suite of tools for getting and managing packages onto the system.

As powerful as the Apt suite is, it has problems as I found out this week working through a proxy server. Something i've recently implemented.

Read How...

Syndicate content

More in Tux Machines

SUSE: Release of SUSE CaaS Platform, SUSE Enterprise Storage, SUSE Linux Enterprise 15 Service Pack 1 and More

  • SUSE CaaS Platform 4.0 Beta 3 is out!

    SUSE CaaS Platform 4.0 is built on top of SLE 15 SP1 and requires either the JeOS version shipped from the product repositories or a regular SLE 15 SP1 installation. Please note that SLE 15 SP1 is now officially out! Check out the official announcement for more information. Thus you should not use a SLES 15 SP1 environment with the SLE Beta Registration Code anymore. Because the SLE Beta Registration Code has expired now, but you can either use your regular SLE Registration Code or use a Trial.

  • SUSE Enterprise Storage 6 Now Available

    With the current increase in data creation, increased costs and flat to lower budgets, IT organizations are looking for ways to deploy highly scalable and resilient storage solutions that manage data growth and complexity, reduce costs and seamlessly adapt to changing demands. Today we are pleased to announce the general availability of SUSE Enterprise Storage 6, the latest release of the award-winning SUSE software-defined storage solution designed to meet the demands of the data explosion.

  • What’s New for SUSE Linux Enterprise Server for Arm 15 SP1

    Happy Birthday! It’s been 1 year since we introduced the world’s first multimodal OS supporting 64-bit Arm systems (AArch64 architecture), SUSE Linux Enterprise Server for Arm 15. Enterprise early adopters and developers of Ceph-based storage and industrial automation systems can gain faster time to market for innovative Arm-based server and Internet of Things (IoT) solutions. SUSE Linux Enterprise Server for Arm is tested with a broad set of Arm System-on-a-Chip (SoC) processors, enabling enterprise-class security and greater reliability. And with your choice of Standard or Premium Support subscriptions you can get the latest security patches and fixes, and spend less time on problem resolution as compared to maintaining your own Linux distribution.

  • Are you ready for the world’s first Multimodal Operating System

    Today, SUSE releases SUSE Linux Enterprise 15 Service Pack 1, marking the one-year anniversary since we launched the world’s first multimodal OS. SUSE Linux Enterprise 15 SP1 advances the multimodal OS model by enhancing the core tenets of common code base, modularity and community development while hardening business-critical attributes such as data security, reduced downtime and optimized workloads.

  • The future of OpenStack?

    Before we can answer these questions, let’s take a look at its past to give some context. Since its original release in 2010 as a joint venture by Rackspace and NASA, and its subsequent spin-off into a separate open source foundation in 2012, OpenStack has seen growth and hype that was almost unparalleled. I was fortunate enough to attend the Paris OpenStack Summit in 2014, where Mark Collier was famously driven onto stage for a keynote in one of the BMW electric sports cars. The event was huge and was packed with attendees and sponsors – almost every large technology company you can think of was there. Marketing budget had clearly been splurged in a big way on this event with lots of pizazz and fancy swag to be had from the various vendor booths. Cycle forward 4 years to the next OpenStack Summit I attended – Vancouver in May 2018. This was a very different affair – most of the tech behemoths were no longer sponsoring, and while there were some nice pieces of swag for attendees to take home, it was clear that marketing budgets had been reduced as the hype had decreased. There were less attendees, less expensive giveaways, but that ever-present buzz of open source collaboration that has always been a part of OpenStack was still there. Users were still sharing their stories, and developers and engineers were sharing their learnings with each other, just on a slightly smaller scale.

  • SUSE Academic Program to be present at 2019 UCISA SSG Conference

    Engaging with the community has always been important for SUSE and this is no different for our Academic Program. That is why next week, the SUSE Academic Program is excited to attend and participate in a three day event hosted by one of the most respected networks in UK education.

Glen Barber: Statement regarding employment change and roles in the [FreeBSD] Project

Dear FreeBSD community:

As I have a highly-visible role within the community, I want to share
some news.  I have decided the time has come to move on from my role
with the FreeBSD Foundation, this Friday being my last day.  I have
accepted a position within a prominent company that uses and produces
products based on FreeBSD.

My new employer has included provisions within my job description that
allow me to continue supporting the FreeBSD Project in my current
roles, including Release Engineering.

There are no planned immediate changes with how this pertains to my
roles within the Project and the various teams of which I am a member.

FreeBSD 11.3 and 12.1 will continue as previously scheduled, with no
impact as a result of this change.

I want to thank everyone at the FreeBSD Foundation for providing the
opportunity to serve the FreeBSD Project in my various roles, and their
support for my decision.

I look forward to continue supporting the FreeBSD Project in my various
roles moving forward.

Glen
Read more Also: FreeBSD's Release Engineering Lead Departs The Foundation

There's A Professional Grade Digital Cinema Camera Powered By Linux

Digital camera startup Octopus Cinema has been designing the "OCTOPUSCAMERA" as a digital cinema camera that's professional grade yet is an open platform with removable/upgradeable parts and this camera platform itself is running Linux. The OCTOPUSCAMERA supports up to 5K full frame recording, weighs less than 1kg, and is powered by Linux. It's a rather ambitious device and they aim to be shipping in 2020. Read more Also: Old Linus Torvalds is back: Linux page caching sparks 'bulls**t' outburst [Ed: Anti-Linux writers of the CBS tabloid ZDNet are mobbing Torvalds into silence again]

Android Leftovers