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] <interface> [[<AF>] <address>]
  [add <address>[/<prefixlen>]]
  [del <address>[/<prefixlen>]]
  [[-]broadcast [<address>]]  [[-]pointopoint [<address>]]
  [netmask <address>]  [dstaddr <address>]  [tunnel <address>]
  [outfill <NN>] [keepalive <NN>]
  [hw <HW> <address>]  [mtu <NN>]
  [[-]trailers]  [[-]arp]  [[-]allmulti]
  [multicast]  [[-]promisc]
  [mem_start <NN>]  [io_addr <NN>]  [irq <NN>]  [media <type>]
  [txqueuelen <NN>]
  [[-]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

It is very helpful if you pick a text editor, learn it well, and expect to use it often.

In this case, a text editor is a GUI app that allows you to create and modify files. These are often called ASCII editors, though the newer/better text editors support at least UTF-8.

Pick one that has at least these options;

Options that are very helpful, but not necessary;

Examples of recommended text editors include;