ELUG Meetup: February 25, 2021

In our meeting, Rob provided the group with an overview on Regular Expression. Walking through what regular expressions are, Rob provided the basics to understand where these come from, where these are used and how they can be applied in the context of linux and programming.

The presentation can be accessed through the ELUG’s Nextcloud instance:


ELUG Meetup: January 28, 2021

In our last meeting Rajiv was kind enough to give a fantastic overview of all the functionality that vi/vim offers. With it’s advanced features vim offers a lot of options to read but more importantly to manipulate text documents, such as log files, scripts, programs and more. Here are some useful commands

The different modes of vim

Normal /command mode - (press <ESC> to get to this mode)
Ex/last line Mode  - (press :)
Input mode - (press, i,I,a,A,o,O,s)

Input modes explained

:q  - quit
:w  - write (save)
:saveas - save as
:q! - quit without saving
:w! - write a read only file
:wq - Save and quit
:wq!     - save a read only file and quit
ZZ  - save and quit
o    - opens a new line below the current cursor line
O    - opens/inserts a new line above the current cursor line

vim can be intimidating at first. Once you get used to the tool Using vim is fairly simple and straight forward. In the normal mode you can enter certain syntax

[optional number] verb + noun
d – delete
w - word
combine them (dw) to delete word
commands are repeat-able (.) and undo-able (u)

This syntax executes a command, in the above example deleting a word. If you put a number in front, for example 2, the command will delete 2 words.

How do you know what verbs to use? Here they come.

d   - delete
c   - change
v   - visual select
y   - yank (copy)
p   - paste
>>  - right indent
<<  - left indent

Once you know how you can change a document it is time to look at how to get to the position that you want to got to. There are a few commands to move around in the document.

h   - left
j   - down 
k   - up
l    - right
ctrl+u  - Page up (80x24)
ctrl+d  - Page dn (80x24)
ctrl+f  - screen up
ctrl+b  - Screen dn
^,0 - beginning of line
$    - end of line
gg  - beginning of the file
G   - end of the file

Lets look at an example how to use these movements. By entering 5j in the normal mode you will now move 5 lines down. Entering 10k moves your cursor 10 lines up.

Combining commands

Verbs can be combined. Lets take a look at some examples:

d$  - delete to end of line
y$  - yank/copy to end of line
#dd - delete # number of lines
#yy - yank # number of lines


Where there are verbs there are nouns. vim offers the whole set of language. Let’s take a look at what nouns can be used in vim.

d   - word
p   - paragraph
b   - back
iw  - inner word (defines a region)
i   - inner (can be used with pretty much anything)
ip  - inner paragraph
a   - around
as  - around sentence

Parameterized Objects

f,F<phrase>   - find (next character, capitals for backwards)
t,T<phrase>   - find (up to but not including the next character)
/,?<phrase>   - Search (up to next match)
/,?<phrase>\c - search but ignore case
n        - next search item
N        - previous search item   


Parameterized objects can be combined with other items.

the quick brown fox jumped over the lazy sleeping dog

Assuming the cursor is at the beginning of the line the command ctc will take cursor to the 1st c in the statement.

Advanced commands

:set number      - absolute line number
:set relativenumber - set relative line number
ctrl+v           - visual block
:set mouse+=a       - enable mouse 
:s/find/replace/g   - find and replace string in a file
:s/find/replace/gc  - same as above but interactive
:#,#s/find/replace/g   - same as above within those lines
:set incsearch       - incremental search
:set hlsearch        - highlighted search
:noh             - removes highlights
:sp          - split windows (horizontally) 
:vsp             - split vertically
ctrl+w w         - move cursor to next vim window
ctrl+w r         - move the current window to vertically
ctrl+w x         - move the current window to horizontally
:tabedit         - open new vim tab
gt           - move between tabs
:!<commmands>      - run bash commands
:%!<commands>      - run bash commands on current file
                         and return results back to vim buffer
~            - change case
q<character>       - records macro
q            - stops macro
@<character>      - plays macro
q<character>q      - clears a macro
|topic|, *topic*     - create tags in a text file
:helptags ./         - create tags file 
%            - follow the parantheses, brackets
                         or quotes    
J            - join two lines
"           - multiple clipboards
/pl[abc]ce       - search for place, plbce, plcce
ctrl+p           - in insert mode - complete the word   
*            - search for the current word
                         under the cursor
ctrl+o,ctrl+i       - jump back and forward between open
                      files with e
:set ignorecase      - ignore case
:'a,'bs/find/replace/g - find and replace between two mark
                         points marked 'a' and 'b' (mark with m)
"ay             - copy to register 'a' (paste with "ap)

ELUG Meetup: December 17, 2020

Topic: general conversation

During December’s meetup no presentation was prepared. Instead the group discussed anything and everything on their “Linux-minds” at the time. The big hack of SolarWinds was a topic of course. The security breach impacted a lot of companies worldwide and some participants of the meeting had to do overtime because of the hack. The most interesting aspect was the longevity of the intrusion. The hackers had access to SolarWind’s systems since March of 2020 and were only caught late in the year.

There were some general questions asked by the participants and together as a group we tried to answer them as good as possible or to the best of knowledge available.

The meeting was finalized around 8:30pm.

The next meeting will happen on January 28, 2021 and be posted on ELUG.ca and on groups.io.

ELUG Meetup: October 22, 2020

Topic: Reverse Proxies – David

Many home users like to run services off of their residential ISP but are limited by a single IP address. Using an nginx reverse proxy we can run multiple services, running on the same port, point to the same address and have them function properly. For those who are interested in HTTPS support we suggest you look at certbot.

ELUG Meetup: September 24, 2020

Topic: Catching up with the group

General chit chat with the group members about their current projects and problems. We talked about future goals and what we’ve got coming up. It was great to see the usual crowd as well as a couple new faces. If you have any specific interests in upcoming meeting topics please reach out to contact@elug.ca.

ELUG Meetup: August 27, 2020

Rick ran through a Pi-hole demo for the group, showing us to implement a simple network level block for advertisements and trackers. Now you can explore the internet without the nuisance and distractions. If you’d like to follow along you can run through the notes that Rick provided as well some videos that he thinks you should check out!

Install Raspbian
---- make sure the Micro Card is blank----
I use Gparted and ;  Delete all partitions   # There can be some weird stuff hanging around.
Then  'Create partition table' under the Device tab.  #  This messed me up a few times too .
Das Geek Video
Pi-Hole - Setup Network-wide Ad Blocking w_ Raspberry Pi
The Link :
Timestamp ;  2:45 ==== Note of how it Does Not Download Adds to Save D/L bandwidth --Neat
Timestamp :  4:15 run the curl script below
curl -sSL https://install.pi-hole.net | bash
Timestamp 7:25 Note the Assigned IP address of the Pi-Hole
Timestamp  9:50  # Note the http://pi.hole/admin or   # My Pi IP is 43
+++++++  note the Login password
Timestamp 12:00 Router setup

ELUG Meetup: July 23, 2020


Are you confused about nftables and iptables? So am i! Manuel walked us through some of the differences between the two toolsets and lead us through examples of how you could implement firewall rules using both of them. Included in the presentation are some code examples as well as additional sources for a nice long read in front of the fire this winter. Afterwords you can read up on UFW and explain to the group how it fits in.