Capital City Christian Church


What to Learn

There are an unimaginable number of areas, topics, languages, applications, and so on that you can spend time and effort learning. Things we need to know. Things we wish we knew. Things we would really like to learn. And things we have no interest in learning.

Out of all those topics, there are a few that we really all need to learn. The things we need to learn will change over time, and some will stay with us always.

Below is a list of those specific areas or skill that are worth your time and effort to dig into, learn, practice, and memorize.


Touch Typing

As you can see, the list is not that long. But each item can be challenging. Regardless, every one of them is critical. It does not matter what area of technology you focus on, whatever you are actually doing, you are doing it on a Linux host, using files, using a network, making this list fundamental to whatever you are working on or with.

Touch Typing Training Sites:


Keyboard Shortcuts

The Ctrl+ key combinations There are a few keyboard shortcuts that you will find yourself using constantly. So, they are work memorizing. Note that in some applications there can be variations, so be careful the first time you are in a new application.

The best approach to this information is to open a terminal and try each of these in different ways to get familiar with them.

Select/Cut/Copy/Paste

Shift+Ctrl+A Select All
Shift+Ctrl+V for Paste
Shift+Ctrl+C for Copy, after highlighting what to copy

The Screen

Ctrl+L Clear the screen
Ctrl+S Stop output scrolling to the screen
Ctrl+Q Resume output to the screen

Moving on the command line

Ctrl+A or Home Go to the beginning of the line
Ctrl+E or End Go to the end of the line
Alt+B Go left (back) one word
Ctrl+B Go left (back) one character
Alt+D Delete all characters after the cursor on the current line

Command History

Shift+Ctrl+F Find (search command history)
Ctrl+P or Up Arrow Go to the previous command in the command history. Press the shortcut multiple times to walk back through the history
Ctrl+N or Down Arrow Go to the next command in the command history. Press the shortcut multiple times to walk forward through the history
Ctrl+R Recall the last command matching the characters you provide. Press this shortcut and start typing to search your bash history for a command
Ctrl+O Run a command you found with Ctrl+R
Ctrl+G Leave history searching mode without running a command
history | grep -i searchterm | less
history 10 Show the last 10 commands
history | tail -n 10
$ export HISTTIMEFORMAT='%F %T'
$ history
To make history show the date as well, we need to set the global variable HISTTIMEFORMAT in the shell to the appropriate format, which can be done using the export command.

Linux

It is the thing to do. It is time. You can do this!

Frustrated with Windows?

Windows is adopting Linux openly and aggressively.

Apple switched to BSD years ago.

IoT is all Linux.

The 'Cloud' - it is just someone else's Linux server.


Finding help about a command

There are several ways to find information about a command or program.

--help
┌──(parth㉿parth)-[~]
└─$ ifconfig --help
Usage:
  ifconfig [-a] [-v] [-s]  [[] 
] [add
[/]] [del
[/]] [[-]broadcast [
]] [[-]pointopoint [
]] [netmask
] [dstaddr
] [tunnel
] [outfill ] [keepalive ] [hw
] [mtu ] [[-]trailers] [[-]arp] [[-]allmulti] [multicast] [[-]promisc] [mem_start ] [io_addr ] [irq ] [media ] [txqueuelen ] [[-]dynamic] [up|down] ... (the rest omitted for brevity...)

which
┌──(parth㉿parth)-[~]
└─$ which ifconfig
/usr/sbin/ifconfig                   

locate
                                                                                   
┌──(parth㉿parth)-[~]
└─$ locate ifconfig
/home/parth/wifite2/build/lib.linux-x86_64-2.7/wifite/tools/ifconfig.py
/home/parth/wifite2/wifite/tools/ifconfig.py
/home/parth/wifite2/wifite/tools/ifconfig.pyc
/usr/lib/dradis/ruby/2.7.0/gems/macaddr-1.7.2/test/data/noifconfig
/usr/local/lib/python2.7/dist-packages/wifite/tools/ifconfig.py
/usr/local/lib/python2.7/dist-packages/wifite/tools/ifconfig.pyc
/usr/sbin/ifconfig
/usr/share/man/de/man8/ifconfig.8.gz
/usr/share/man/fr/man8/ifconfig.8.gz
/usr/share/man/man8/ifconfig.8.gz
/usr/share/man/pt_BR/man8/ifconfig.8.gz
/usr/share/metasploit-framework/vendor/bundle/ruby/2.7.0/gems/packetfu-1.1.13/examples/ifconfig.rb
/usr/share/weevely/modules/net/ifconfig.py
/usr/share/zsh/functions/Completion/Unix/_ifconfig

apropos
┌──(parth㉿parth)-[~]
└─$ apropos ifconfig
ifcfg (8)            - simplistic script which replaces ifconfig IP management
ifconfig (8)         - configure a network interface

man
┌──(parth㉿parth)-[~]
└─$ man ifconfig

IFCONFIG(8)                  Linux System Administrator's Manual

NAME
       ifconfig - configure a network interface

SYNOPSIS
       ifconfig [-v] [-a] [-s] [interface]
       ifconfig [-v] interface [aftype] options | address ...
(the rest omitted for brevity...)

whatis
┌──(parth㉿parth)-[~]
└─$ whatis ifconfig
ifconfig (8)         - configure a network interface

info
┌──(parth㉿parth)-[~]
└─$ info ifconfig

IFCONFIG(8)                  Linux System Administrator's Manual                  IFCONFIG(8)

NAME
       ifconfig - configure a network interface

SYNOPSIS
       ifconfig [-v] [-a] [-s] [interface]
       ifconfig [-v] interface [aftype] options | address ...


The Linux Terminal

Linux Command Line / Shell / Core commands

ls
cd
cp
df
du
ifconfig
cat
less
grep
find
chown
chmod
sudo
sort
uniq
mount
shutdown
mv
ping
traceroute
rm
top
wc
wget

https://ss64.com/bash/


Piping and Redirecting
<Pull the expression on the right as input for the expression on the left
>Send the output from the left as input for the filename on the right, over writing the file
>>Send the output from the left as input for the filename on the right, appending to the filename on the right
|Pipe the output on the left as input for the right
&
&&

https://www.geeksforgeeks.org/piping-in-unix-or-linux/


A text/programming editor

We will start with geany

Geany is a powerful, stable and lightweight programmer's text editor that provides tons of useful features without bogging down your workflow. It runs on Linux, Windows and MacOS is translated into over 40 languages, and has built-in support for more than 50 programming languages. From https://www.geany.org/

Install geany with the following command;

┌──(parth㉿parth)-[~]
└─$ sudo apt install geany

Geany-Themes is a collection of color schemes for Geany, either written originally by the Geany community or ported from color schemes for other editors. - https://www.geany.org/download/themes/

Download the theme(s) configuration file(s) you want and save it to the folder colorschemes in your Geany configuration directory (usually ~/.config/geany/colorschemes/). You can then select which to use at 'View / Change Color Scheme'.

Geany has a plugin system which allows to get more features into Geany and developers can easily add new features and/or improve existing ones. List of available plugins - https://plugins.geany.org/

Copy and paste the following in to a terminal. You will be prompted for the sudo password (once). You may need to press the enter key once all have run, if there was no carriage control character at the end of the last command.

sudo apt install geany
sudo apt install geany-plugin-addons
sudo apt install geany-plugin-autoclose
sudo apt install geany-plugin-automark
sudo apt install geany-plugin-defineformat
sudo apt install geany-plugin-doc
sudo apt install geany-plugin-extrasel
sudo apt install geany-plugin-gendoc
sudo apt install geany-plugin-geniuspaste
sudo apt install geany-plugin-gproject
sudo apt install geany-plugin-insertnum
sudo apt install geany-plugin-lineoperations
sudo apt install geany-plugin-macro
sudo apt install geany-plugin-markdown
sudo apt install geany-plugin-numberedbookmarks
sudo apt install geany-plugin-overview
sudo apt install geany-plugin-pairtaghighlighter
sudo apt install geany-plugin-prettyprinter
sudo apt install geany-plugin-prj
sudo apt install geany-plugin-projectorganizer
sudo apt install geany-plugin-sendmail
sudo apt install geany-plugin-shiftcolumn
sudo apt install geany-plugin-spellcheck
sudo apt install geany-plugin-tableconvert
sudo apt install geany-plugin-treebrowser
sudo apt install geany-plugin-updatechecker
sudo apt install geany-plugin-workbench
sudo apt install geany-plugins
sudo apt install geany-plugins-common