Main Page

From Wiki at Neela Nurseries
Jump to: navigation, search

m   b   bl   d   e   z   a   d

MediaWiki installation at Neela Nurseries, 2017 June


Consult the User's Guide for information on using the wiki software.

Getting started

Note "Getting started" is MediaWiki's default main page section. But it can be edited like any other page section.

Contents



^ Linux Distributions


Following section holds links to some commonly used server and desktop Linux distributions, available for download as install isos and sometimes as minimal net install isos. After these full-scale distros are listed some of the smaller distributions of Linux and supporting softwares. These smaller distros appear to be a good starting point for learning how to design and build embedded Linux systems . . .

- 2017-11-30 -

- 2017-12-08 -

- 2018-08-24 - 32-bit and light-weight Linux distros



^ lists of Linux distribution releases


^ Create Linux install drive from iso

Iso to USB thumb drive details at https://askubuntu.com/questions/372607/how-to-create-a-bootable-ubuntu-usb-flash-drive-from-terminal . . .

Excerpt from AskUbuntu article:

sudo umount /dev/sdb
sudo dd if=/path/to/ubuntu.iso of=/dev/sdb bs=1M


^ 32-bit OS options BSD and Linux

Having trouble locating a Linux distro with Long Term Support (LTS), such as Ubuntu, which yet supports 32-bit computer systems. Here is a first article on the search for alternatives:


^ Netbsd

Some hardware related references to vintage Sun Microsystems computers, on which NetBSD can be installed and used:


^ Linux and Linux Kernel Projects


^ Dual Boot Linux and Other OS


^ Issue related to Linux kernel

Radeon GPU graphics driver not working, gives error in dmesg:

 [    6.266884] [drm:r600_ring_test [radeon]] *ERROR* radeon: ring 0 test failed (scratch(0x8504)=0xCAFEDEAD)
 [    6.266902] radeon 0000:01:00.0: disabling GPU acceleration


^ Linux Administration

This section needs organizing, including a better separation of Debian package management from networking configuration. - TMH

While setting up Ubuntu LTS package mirros, using Perl based program from package named apt-mirror, needed at least 470GB of disk space for Ubuntus LTS 12.04 through 16.04. Also want to add 10.04 LTS. Have 1TB drive just purchased from FreeGeek. Partitioned and formatted as follows, UUID included here in mke2fs messages:

$ sudo cfdisk /dev/sda

Syncing disks.

$ sudo mke2fs -j /dev/sda1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 244190390 4k blocks and 61054976 inodes
Filesystem UUID: dfb1e141-85c0-43b0-930c-6bb5dde6d9aa
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
        102400000, 214990848

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done     

$

Information on setting up an Ubuntu or Debian packages mirror here at Programster blog site:


Beyond apt-mirror, modify meta-release files to enable Ubuntu dist-upgrade tool to accept our own, unofficial mirror:


How to get past some circular dependencies in Ubuntu / Debian package management system:

$ sudo dpkg -i --force-breaks dpkg_1.18.4ubuntu1_i386.deb

Some further notes on manual Debian package fixes.



Article detailing how to add IPV4 route to configured network interface:


- 2018-03-30 FRI - In the midst of attempting a dist-upgrade of a two or three year old Debian system, encountered need to run apt or aptitude with its "Force Loop Break" option enabled. This option is spelled Force-LoopBreak . . .

   $ sudo aptitude -o APT::Force-LoopBreak=1
 *  https://wiki.ubuntu.com/DpkgTriggers

Issue with older Debian system trying to upgrade:

Preparing to unpack libc-bin_2.27-2_i386.deb ...
dpkg: error processing archive libc-bin_2.27-2_i386.deb (--install):
 triggers ci file contains unknown directive `interest-await'
Errors were encountered while processing:
 libc-bin_2.27-2_i386.deb


Dpkg developers' team at https://wiki.debian.org/Teams/Dpkg. Article linked to from there regarding apt triggers:

See also man page for dpkg-trigger(1).


Linux system libraries and `ldconfig`:


Debian APT sources.list files

Example Linux Mint official-package-repositories.list file:

deb http://packages.linuxmint.com sarah main upstream import backport 

deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu xenial-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://archive.canonical.com/ubuntu/ xenial partner


^ Linux User Space Configuration

To configure xserver-xorg

Snippet from work on getting xserver-xorg to recognize a 1920x1080 native resolution monitor, ViewSonic VX2250 Series monitor . . .


user@localhost:~$ gtf 1920 1080 60

  # 1920x1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 172.80 MHz
  Modeline "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync

user@localhost:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.9 (jessie)
Release:        8.9
Codename:       jessie

user@localhost:~$


Looking at /var/log/Xorg.0.log there appear to be two or more issues keeping xserver-xorg framework from fully recognizing the resolutions of the attached monitor. First we'll sift for errors from X, then we look at loading of modules, unloading of modules, the module named 'radeon', and also look at the timing of these X-logged events:


user@localhost:/var/log$ grep -n EE Xorg.0.log
15:     (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
342:[    27.938] (EE) open /dev/dri/card0: No such file or directory
344:[    27.938] (EE) open /dev/dri/card0: No such file or directory
351:[    27.945] (EE) open /dev/fb0: No such file or directory
359:[    27.946] (EE) open /dev/fb0: No such file or directory
360:[    27.946] (EE) Screen 0 deleted because of no matching config section.
362:[    27.946] (EE) Screen 0 deleted because of no matching config section.
364:[    27.946] (EE) Screen 0 deleted because of no matching config section.
2689:[    28.915] (EE) AIGLX: reverting to software rendering

user@localhost:/var/log$ grep -n 'LoadModule: ' Xorg.0.log
47:[    27.193] (II) LoadModule: "glx"
58:[    27.669] (II) LoadModule: "ati"
64:[    27.719] (II) LoadModule: "radeon"
70:[    27.795] (II) LoadModule: "modesetting"
76:[    27.832] (II) LoadModule: "fbdev"
82:[    27.842] (II) LoadModule: "vesa"
346:[    27.938] (II) LoadModule: "fbdevhw"
354:[    27.946] (II) LoadModule: "fbdevhw"
368:[    27.946] (II) LoadModule: "vbe"
374:[    27.994] (II) LoadModule: "int10"
396:[    28.200] (II) LoadModule: "ddc"
2651:[    28.611] (II) LoadModule: "shadow"
2657:[    28.621] (II) LoadModule: "fb"
2664:[    28.630] (II) LoadModule: "int10"
2694:[    31.327] (II) LoadModule: "evdev"

user@localhost:/var/log$ grep -n UnloadModule Xorg.0.log
361:[    27.946] (II) UnloadModule: "radeon"
363:[    27.946] (II) UnloadModule: "modesetting"
365:[    27.946] (II) UnloadModule: "fbdev"

user@localhost:/var/log$ grep -n radeon Xorg.0.log
64:[    27.719] (II) LoadModule: "radeon"
65:[    27.720] (II) Loading /usr/lib/xorg/modules/drivers/radeon_drv.so
66:[    27.795] (II) Module radeon: vendor="X.Org Foundation"
361:[    27.946] (II) UnloadModule: "radeon"

user@localhost:/var/log$



^ to configure net-tools ifconfig and isc-dhcp-client

The program or script ifconfig is, as of this spring 2018 entry found in Debian's package named net-tools. Having a weird issue where ifconfig no longer properly configures the primary network interface to request and obtain and DHCP address on the LAN. The specific error message which occurs for both an Intel-based PCIExpress card and an integrated Marvel 10/100/1000 mbit card is:

user@localhost:~/Desktop$ sudo ifup eth4
2018-04-12 - called with $IFACE set to eth4,
user[1678]: WARNING: Initialising interface eth4 which does not have link


These messages come from a script in /etc/network/if-up.d/00check-network-cable.

Attempting the basic shot-gun approach of purging this package and re-installing. Dependent packages which must also be purged include ifupdown-extra and dhcp-probe . . .


A patch for one of the ifconfig network scripts:


Example lshw command to list network card interface details:

https://www.linuxquestions.org/questions/centos-111/network-interface-is-not-shown-in-ifconfig-command-4175577340/


Verbose output of ELF executable ifup:

user@localhost:/etc/network$ sudo ifup -v eth4
Configuring interface eth4=eth4 (inet)
run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/ethtool
run-parts: executing /etc/network/if-pre-up.d/vde2

run-parts --exit-on-error --verbose /etc/network/if-up.d
run-parts: executing /etc/network/if-up.d/00check-network-cable
2018 check_status:  above IF-ELSE block to call /sbin/ethtool or other,
2018 check_status:  calling check_status_ethtool . . .
2018-04-12 - called with $IFACE set to eth4,
 +  and $ABORT_NO_LINK holds 'iyes',
 +  changing $ABORT_NO_LINK to 'yes',
2018 check_status_ethtool:  as a test returning 0 in place of 1 when link not found . . .
2018 check_status:  back from routine check_status_ethtool, $status holds 0,
2018 check_status:  returning 0 to calling script . . .
run-parts: executing /etc/network/if-up.d/10check-duplicate-ip
run-parts: executing /etc/network/if-up.d/20static-routes
run-parts: executing /etc/network/if-up.d/30check-gateway
run-parts: executing /etc/network/if-up.d/avahi-daemon
run-parts: executing /etc/network/if-up.d/ethtool
run-parts: executing /etc/network/if-up.d/ifupdown-scripts-zg2-05vlan
run-parts: executing /etc/network/if-up.d/ifupdown-scripts-zg2-10eth-interfacename
run-parts: executing /etc/network/if-up.d/ifupdown-scripts-zg2-10lo-linkup
run-parts: executing /etc/network/if-up.d/ifupdown-scripts-zg2-30link
run-parts: executing /etc/network/if-up.d/ifupdown-scripts-zg2-40address
run-parts: executing /etc/network/if-up.d/ifupdown-scripts-zg2-60specialcommands
run-parts: executing /etc/network/if-up.d/ifupdown-scripts-zg2-60staticroutes
run-parts: executing /etc/network/if-up.d/ifupdown-scripts-zg2-80proxy-arp
run-parts: executing /etc/network/if-up.d/ifupdown-scripts-zg2-80redirects
run-parts: executing /etc/network/if-up.d/ifupdown-scripts-zg2-90flags
run-parts: executing /etc/network/if-up.d/mountnfs
run-parts: executing /etc/network/if-up.d/openssh-server
run-parts: executing /etc/network/if-up.d/upstart
user@localhost:/etc/network$ which run-parts
/bin/run-parts


- 2018-04-18 WED - No reference from run-parts messages about missing DHCP client. Turns out Debian 8.10 "Jessie" provides a package named isc-dhcp-client, or offers it as part of their package mirrors lists, but its recommended rather than required when installing the ifupdown package. Adding this package solved the problem of no action and no messages occurring when attempting to bring up one or another network interface card whose config settings called for DHCP to be applied to those interfaces. - TMH



^ Edit point . . .

References for Linux user-space configuration issues:



^ SSH key pair configuration and use


Ted copying some ssh key commands from Digital Ocean article on-line. Also noting that ssh keys and secure network connections is a topic to factor into its own wiki article at Neela wiki installation . . . - TMH



Key ssh key generation and set up commands are:


   $ ssh-keygen -t rsa

   $ cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"



^ SSH keep alive facility

In the file /etc/ssh/ssh_config make sure to add . . .

Host *
    ServerAliveInterval 300
    ServerAliveCountMax 2



^ installing PHP 7.0

Creating config file /etc/php/7.0/cgi/php.ini with new version
Setting up php7.0 (7.0.25-0ubuntu0.16.04.1) ...
Setting up php (1:7.0+35ubuntu6) ...
Setting up shtool (2.0.8-8) ...
Setting up php7.0-dev (7.0.25-0ubuntu0.16.04.1) ...
update-alternatives: using /usr/bin/php-config7.0 to provide /usr/bin/php-config (php-config) in auto mode
update-alternatives: using /usr/bin/phpize7.0 to provide /usr/bin/phpize (phpize) in auto mode
Setting up php-all-dev (1:35ubuntu6) ...
Setting up php-cgi (1:7.0+35ubuntu6) ...
Setting up php-cli (1:7.0+35ubuntu6) ...
Setting up php-dev (1:7.0+35ubuntu6) ...
Setting up php-doc (20140201-1ubuntu1) ...
Setting up php7.0-mysql (7.0.25-0ubuntu0.16.04.1) ...

Creating config file /etc/php/7.0/mods-available/mysqlnd.ini with new version

Creating config file /etc/php/7.0/mods-available/mysqli.ini with new version


- 2018-03-28 -



^ GNU gpg utility and to configure gpg with proxy

- 2018-03-29 THU -

 We have a new and strict firewall policy in place, which is blocking GNU gpg requests from our work site to the greater internet.  Here are some initial references to the issue, both of which mention a protocol called hkps, and also a default gpg port 11371 . . .

  * https://www.gnupg.org/faq/gnupg-faq.html#no_default_of_rsa4096


Invoking gpg for first time, and then a second time behind firewall we get the following messages:

user@localhost:~$ gpg --keyserver pgpkeys.mit.edu --recv-key 7638D0442B90D010
gpg: directory `/home/ted/.gnupg' created
gpg: new configuration file `/home/ted/.gnupg/gpg.conf' created
gpg: WARNING: options in `/home/ted/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/home/ted/.gnupg/secring.gpg' created
gpg: keyring `/home/ted/.gnupg/pubring.gpg' created
gpg: requesting key 2B90D010 from hkp server pgpkeys.mit.edu
^C
gpg: Interrupt caught ... exiting

user@localhost:~$ gpg --keyserver pgpkeys.mit.edu --recv-key 7638D0442B90D010
gpg: requesting key 2B90D010 from hkp server pgpkeys.mit.edu
^C
gpg: Interrupt caught ... exiting

user@localhost:~$


STEP 1

Configuration file created for gpg, to allow communications across filewall with few ports open:

## Started 2018-30-29 - TMH
## Reference - https://wiki.archlinux.org/index.php/GnuPG
keyserver hkp://pool.sks-keyservers.net:443


STEP 2

And a crucial step to adding a public key to apt explained here at this ccm web page:

gpg --keyserver pgpkeys.mit.edu --recv-key 010908312D230C5F
gpg -a --export 010908312D230C5F | sudo apt-key add -


- 2019-01-30 WED -

Again missing a public key on host running "Debian GNU/Linux 8.11 (jessie)" . . .

*  https://askubuntu.com/questions/13065/how-do-i-fix-the-gpg-error-no-pubkey



^ Secure shell via alternate ports

- 2018-04-04 -

- 2018-04-10 -

- 2018-04-11 -

ArchLinux article:


Using netstat to see ports in use . . .

 1010  sudo netstat -tulnp | grep 10443
 1011  sudo netstat -tulnp | grep 53
 1012  sudo netstat -tulnp | grep 443
 1013  sudo netstat -tulnp | grep 180
 1014  sudo netstat -tulnp | grep ssh
 1015  ps aex | grep sshd
 1016  cd /etc/init.d
 1017  ls
 1018  vi ssh 
 1019  sudo ./ssh status
 1020  date
 1021  history


^ Keybox a possible web based shell client + server



^ Samba and Windows to Linux file shareing

How-to-Geek reference good:

Step 1 right-click on lower edge of screen System Tray or task bar, on the networking icon. Select "advanced sharing settings". Make sure that among a few sets of radio buttoned options that 'network discovery' is enabled and that 'file and printer sharing' is enabled . . .

    [*] Turn on network discovery
    [*] Turn on file and printer sharing



^ Desktop environments

2019-11-02 - Ted breaking out linux-desktop-environments to its own article, first references yet here also:


^ Wayland replacement for Xserver graphics infrastructure



^ Unix and Linux utilities

[ Key words: unix utils unix utilites , linux utils linux utilities ]
This section as of 2018-11-01 Thursday contains both command line utilities (some shell built-ins) and user space programs both text-based and graphical.

^ date command

Unix date command syntax to change time and date on Unix-like systems:

 $ sudo date -s 15:59 +%H:%M

Some related timezone check and set stuff:

 $ date +%Z

 $ timedatectl list-timezones

 $ sudo timedatectl set-timezone America/Los_Angeles

And a good reference to these commands: https://www.serverlab.ca/tutorials/linux/administration-linux/how-to-check-and-set-timezone-in-ubuntu-20-04/

Use of `date` command to convert Unix timestamps:

Vagrant Cascadian < * e-mail address here * >
	
AttachmentsDec 7 (1 day ago)
	
to Juergen, Santiago, Reprobuilds, bug-apl
On 2017-12-05, Juergen Sauermann wrote:
> I have adopted the environment variable approach, which is now
> contained in *SVN 1026*. (and therefore also in the next GNU APL release).

That's great news!


> I took the freedom to change your patch from:
>
> +    BUILD_DATE=`date -u "%F %R:%S %Z" --date=@$SOURDCE_DATE_EPOCH`
>
> to:
>
> + BUILD_DATE=`date -u "+%F %R:%S %Z" --date=$SOURCE_DATE_EPOCH`

Unfortunately, the "@" in the --date argument is necessary for it to
work correctly when SOURCE_DATE_EPOCH is specified:

  $ date -u "+%F %R:%S %Z" --date=1412583777
  date: invalid date ‘1412583777’
  $ date -u "+%F %R:%S %Z" --date=@1412583777
  2014-10-06 08:22:57 UTC
  $ date -u "+%F %R:%S %Z" --date=
  2017-12-06 00:00:00 UTC

At least, that's how it works on my Debian system...


live well,
  vagrant


^ vim

On-line posting how to configure vim text editor, on Windows and Unix systems:


^ bash for windows


^ udevadm

Linux "user devices" subsystem and udevadm:


^ bc

Note that along with Unix utility `bc` there is also a *nix calculator utility named `dc`.


^ cpu info related

2022


^ retext editor for editing Markdown and Restructured Text files

The following AskUbuntu forum post mentions not only `retext` package, but Debian package managing utility `apt-cache`:


^ Linux Security



^ Shell scripting


A well-written and comprehensive guide to bash shell scripting:

Shell aliases to sequence of commands, return values of shell aliases:

GNU reference to bash builtin commands:

Bash arrays:


^ bash example: back up multiple MYSQL databases

Simple bash script to back up MYSQL databases to local .sql file, in following figure. Ted noting that script variables are not consistently capitalized, would be better form to capitalize all or none of them. Ted also noting that script could read database user passphrase from a file, a file which could be root-only readable and located in a place different from the script, which is likely to be run as a cron job.


Figure x - shell script to dump MYSQL databases, first draft script:

#!/bin/bash


DATABASE_LIST="information_schema mysql phpmyadmin wikidb database_1 database_2 database_3 ..."

SERVER_NAME="example_database_server"

user="root"
pass_phrase_for_mysql="database-passphrase"
options_extra="--skip-lock-tables"


response="n"

mode_interactive="n"



echo "shell script starting,"



for database in ${DATABASE_LIST}; 
do echo "backing up $SERVER_NAME database $database . . .";

#    command="mysqldump --databases $database -u$user -p$pass_phrase_for_mysql $options_extra >> au-database-back-up--${database}.sql"
    command="mysqldump --databases $database -u$user -p$pass_phrase_for_mysql $options_extra"
    redirect="au-database-back-up--${database}.sql"

    if [ $mode_interactive = 'y' ]; then

        echo "build command '$command' and database back-up filename'$redirect',"
        echo "full command will be '$command' > '$redirect',"
        echo "trying running this command and redirect? [y/N/q]  yes, no, 'q' to quit"

        read response
        if [ $response = 'Y' -o $response = 'y' ]; then
            ${command} > $redirect
        elif [ $response = 'N' -o $response = 'n' ]; then
            echo "skipping present command . . ."
        elif [ $response = 'Q' -o $response = 'q' ]; then
            echo "stopping script '$0' and exiting."
            break
        fi
        echo

    else

        echo "$0:  backing up database '$database' to file '$redirect' . . ."
        ${command} > $redirect
        ls -l $redirect

    fi

done


echo "done."

exit 0



^ bash example: show Linux kernel version in kernel makefile

Figure x - script to show Linux kernel version in source tree makefile

#!/bin/bash


## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
## Started 2017-12-15 FRI - script to parse and show Linux kernel
##  version from top-level makefile in set of kernel sources.  Patterns
##  to `grep` chosen based on kernel version identifiers in first
##  three lines of typical kernel top-level makefile.  Example:
##
##  $ head -n 6 Makefile
##  VERSION = 4
##  PATCHLEVEL = 9
##  SUBLEVEL = 66
##  EXTRAVERSION =
##  NAME = Roaring Lionus
##
##
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


if [ ]; then
    head -n 5 Makefile | grep ^VERSION | cut -d " " -f 3
    head -n 5 Makefile | grep ^PATCH | cut -d " " -f 3
    head -n 5 Makefile | grep ^SUBLEVEL | cut -d " " -f 3
fi

MAJOR=$(head -n 5 Makefile | grep ^VERSION | cut -d " " -f 3)
MINOR1=$(head -n 5 Makefile | grep ^PATCH | cut -d " " -f 3)
MINOR2=$(head -n 5 Makefile | grep ^SUBLEVEL | cut -d " " -f 3)

KERNEL_REVISION="${MAJOR}.${MINOR1}.${MINOR2}"

echo
echo "Kernel version in present kernel sources tree, per makefile, is ${KERNEL_REVISION}"
echo



exit 0


^ bash example: list symbolic links in long format

for file in `ls`; do if [ -h $file ]; then ls -l $file; fi; done


^ directory bookmarking script

For ease of navigating long directory paths Ted has written a amending script to the Bash start up script. The directory bookmarker is open sourced by its author,

On a system which has Bash or Gitbash but no default user start up script, a minimal .bashrc file can be created containing something like the following, which happens to be tailored for Gitbash installed under Windows 10:

#!/usr/bin

if [ -e $HOME/Desktop/dot-bashrc-amendments.sh ]; then
    . $HOME/Desktop/dot-bashrc-amendments.sh
fi

# --- EOF ---


This start up file assumes there is a shell script named dot-bashrc-amendments.sh in the user's Desktop directory, under their home directory. This is a typical Windows path, but not a typical Unix or Linux path. This path came about during author's early gitbash use, when it was unclear which path gitbash was adopting as the user's home directory. This uncertainty, it turned out, came from some intermittently available network mapped volumes. The reader is encouraged to make their own best choice of a stable and sensible path or location for their start up files.

As of this Monday 2018-11-05 wish list for directory bookmarker script includes:

  • automatic dating of latest update of given bookmark
  • verbose listing of directory bookmarks in given group of bookmarks
  • option for users to give title to each group of bookmarks
  • option for users to further annotate groups of bookmarks



^ ssh-agent start-up script for gitbash

2020-10-30 Friday, amendment to bashrc amendments script to better configure ssh-agent in gitbash environment:

# 2020-10-30 FRI - work to configure ssh-agent per gitbash session:

LOCAL_VAR_SSH_AGENT_RUNNING_PROCESS_COUNT=$(ps -u $USERNAME | grep agent | wc | awk '{print $1}')
LOCAL_VAR_SSH_AGENT_VARS_FILENAME="z--ssh-agent-env-vars.txt"

echo "Checking for ssh-agent daemon process:"

if [ $LOCAL_VAR_SSH_AGENT_RUNNING_PROCESS_COUNT -ne 0 ]; then
    echo "Found one or more ssh-agent processes running,"
    if [ -e $LOCAL_VAR_SSH_AGENT_VARS_FILENAME ]; then
        echo "Reading env variables relating to earliest started ssh-agent instance..."
        var1=$(cat $LOCAL_VAR_SSH_AGENT_VARS_FILENAME | sed -n '2p')
        var2=$(cat $LOCAL_VAR_SSH_AGENT_VARS_FILENAME | sed -n '4p')
        echo "exporting $var1 to SSH_AGENT_PID env var..."
        export SSH_AGENT_PID=$var1
        echo "exporting $var2 to SSH_AUTH_SOCK env var..."
        export SSH_AUTH_SOCK=$var2
    else
        echo "but no locally written environment vars found!"
    fi
else
    echo "none found, starting..."
    eval $(/usr/bin/ssh-agent -s)
    /usr/bin/ssh-add $HOME/.ssh/ssh_private_key_for_gitlab
    var3=$(set | grep SSH_AGENT_PID | cut -d'=' -f 2)
    var4=$(set | grep SSH_AUTH_SOCK | cut -d'=' -f 2)
    echo "var3 holds $var3"
    echo "var4 holds $var4"
    echo "Writing these variables to file for future Gitbash shell instances to read..."
    echo $var3 > $LOCAL_VAR_SSH_AGENT_VARS_FILENAME
    echo $var3 >> $LOCAL_VAR_SSH_AGENT_VARS_FILENAME
    echo $var4 >> $LOCAL_VAR_SSH_AGENT_VARS_FILENAME
    echo $var4 >> $LOCAL_VAR_SSH_AGENT_VARS_FILENAME
fi


echo "done."



# EOF ( end of file )

Separate page created for refined version of ssh-agent checking script.


^ shell arrays and array implementation

Classic Unix/*nix shell command interpreters are not designed to provide full or detailed mathematical operations support. Variables tend to be weakly typed and treated as strings, but Bourne Again SHell or bash has some basic math facilities. This in turn lends support to some limited, kind of clunky array syntax. But this array facility in one or more versions of Unix based shell can be better than no array support. Some references:

 *  https://tldp.org/LDP/abs/html/arrays.html

Also may be worth looking at example 11-14, second shell script which omits 'do' and 'done' keywords in shell FOR-loop construct:

 *  https://tldp.org/LDP/abs/html/loops1.html

. . . there may be syntax here which allows for more sane, flexible array element assignments.


^ C pointers and dereference rules

*  https://wiki.neelanurseries.com/index.php/User:Ted#.5E_C_programming_notes


^ Windows User Applications


^ How To Use Git


- 2017-12-04 - Hey Ted moving Git notes to a separate article. Not a lot of notes but anticipating need to write down more detailed git-related stuff. Ted's git notes on Neela wiki will be here at Git notes article.


Wanting to understand and use git better, here are some on-line references to git version control. Also, Ted searching for a git reference posted by a female author, can't remember name but reference well-written with lots of commands and concise explanations of each command. First URL reference may be that page, now 2017-10-02 not sure of the author's name . . .


Basic git commands:


Git references found while answering specific git task questions:

Markdown and .md file formatting at Github


Git and Working with Remote Repositories



^ Drupal Content Management




2017-08-23


2017-08-23 - Drupal installation . . .


2017-08-24

2017-08-25

2017-08-30
Ted looking for information on how Drupal can aid setting up dynamic, site navigation menus:


2017-09-01



^ JProgramming

.
C and C++


Java Programming and Android App Development . . .



^ Composer, a dependency manager of PHP



^ Geography and Science

  • Mountain trail in Madeira, Portugal

Beyond the biodiverse forests on the outer edges of Madeira Island, the land rises, reminding hikers that this Portuguese island is the tip of a shield volcano. Trails allow passage up into these higher elevations, including paths created from the island’s old (and still functioning) aqueduct system. Some of the decommissioned channels, called levadas, have been repurposed as hiking trails.

2023


^ Mathematica

The irrational number e:

Recommended calculus and algebra notes at Paul's Online Notes:

Applied math . . .

Fractal geometry and math . . .


^ Technology

Tech related references and notes moved to NN Technology page.


^ Music and Culture

Musica . . .


^ Ralph Vaughan Williams . . .

Claude Debussy . . .


^ Sinfonias

2018-08-20

^ Harry Potter


2020-05-04 Monday . . .


^ Lord Of The Rings

       00:11:23 Rivendell
       00:14:40 Rohan, 15:10 . . .
       00:24:05 mourning for Gandalf
      ~00:30:00 elf song,
      ~00:42:00 "But in dreams I can hear your name"
    28:16 - 31:20 . . . Many Meetings
    31:21 - 35:15 . . . The Counsel of Elrond
    ~35:20 - . . . The Ring Goes South
    1:34:40 . . . Evenstar
    1:38:40 -- The White Rider --
    2:47:55 . . . Twilight and Shadow


2019-10-16 Wednesday:

2019-11-06 Wednesday:


^ edit point - LOTR, the Hobbit, Narnia

    ~1:20:00 Counsel of Elrond, ~1:30:00, ~2:23:15 flauta breve y canto por los duendes, ~2:48:00, ~2:54:00 "May It Be", ~2:57:30 "And In Dreams", 3:51:15 ..., 4:35:00, ~5:31:30

2020-09-03


^ Narnia


^ Elder Scrolls




^ Ciudades y Lugares

  • Connemara Ireland
  • Cordillera Paine mountains, Chile
      Vermont cities: Burlington, Montpelier, South Burlington, Essex, Middlebury

^ edit point


^ Hans Zimmer

Similar:


Symphonies and compositions to explore . . . see also songs and song titles nn wiki article.

11:03 am - Friday, June 1st, 2018
Tragic Overture, Opus 81
Brahms, Johannes
London Philharmonic Orchestra
Marin Alsop
NAXOS 8.557428 

Mas sinfonias . . .

8:02 am - Monday, July 23rd, 2018
Ein Walzertraum (Waltz Dream)
Straus, Oscar
Cincinnati Pops Orchestra
Erich Kunzel
Telarc 80547


7:50 am - Monday, July 23rd, 2018
Oboe Concerto in C, RV 450
Vivaldi, Antonio
Albrecht Mayer, oboe
I Musici di Roma
DG 002713602


2018-11-26 Monday . . .

5:23 pm - Monday, November 26th, 2018
Five Bagatelles, Opus 47
Dvorak, Antonin
Quartetto Gelato
Linus 270055


8:07 pm - Wednesday, November 28th, 2018
Norfolk Rhapsody No. 1
Vaughan Williams, Ralph
New Philharmonia Orchestra
Adrian Boult
EMI 64022




4:15 pm - Wednesday, December 5th, 2018
Oberon Overture
Weber, Carl Maria Von
Philharmonia Orchestra
Neeme Järvi
Chandos 9066 



2018-12-06 Thursday . . .

11:18 am - Thursday, December 6th, 2018
Violin Concerto in a minor, Opus 82
Glazunov, Alexander
Chloë Hanslip, violin
Swiss Italian Orchestra
Alexander Vedernikov
Hyperion 67940


^ Felix Mendelssohn y otros


^ Ragas


^ Chill

Chill and ambient music mixes, several by Blume:

2020-06-09

2020-06-17

      +++ 00:42:18 NumberNin6 "Saltwater"

    ^ Glide

      • 3 de 15 Vaeros "Exemption"
      • 4 de 15 The Ambientalist "Missing You"
      • 6 de 15 Vonnboyd "Mursa"
      • 11 de 15 Daminika "The Colors Of The Evening"
      • 13 de 15 subknoT "Vision"
      • +++ 2 de 43 Ed Carlsen "Otto" Steve Gibbs remix
      • 7 de 43 Mvnners : Camden
      • 11 de 43 'Wezi Mkandawire : Oh The Wonder'
      • 19 de 43 'Borrtex : Snowflake'
      • 20 de 43 'Dexter Britain : Sleep Walker'
      • 24 de 43 'Sylvester G. Faustmann : Engage' part of Harry Potter score?
      • 29 de 43 "Flame Shapes : Beginnings"
      • 34 de 43 "Jameson Nathan Jones : "Fallen feat. Hannah Sumner",


^ Singles

2020-09-17 Thursday . . .


^ Compilations

^ edit point

Liquid Drum mix #60 . . .


^ Skyrim and others

2019-07-30 - Tuesday


^ Musica de Bharat

2019-08-01 - Thursday



^ Outdoors


- - - top of page - - -