Symbols
“ (double quotes), 124
‘ (single quotes), 124
/ (forward slash)
command, 75
in paths, 29
/bin directory, 30
/home directory, 30
/media directory, 30
/root directory, 30
/sbin directory, 30
/tmp directory, 30
/usr/bin directory, 30
/usr/sbin directory, 30
/usr/share/doc directory, 27
: (colon) command, 76
; (semicolon) in Perl statements, 119
| (pipe) in redirection, 44–45
#! (sha-bang)
in bash shell scripting, 111
in Perl, 120
in Python, 132
$ (dollar sign) command, 71
( (left parenthesis) command, 72
) (right parenthesis) command, 71
* (asterisk) as wildcard, 38
command, 75
as wildcard, 39
[[ (double left square brackets) command, 72
[] (square brackets) as wildcard, 39
]] (double right square brackets) command, 72
{ (left curly brace) command, 72
} (right curly brace) command, 72
< (left arrow) in redirection, 43
> (right arrow) in redirection, 41–42
>> (double right arrow) in redirection, 41
0 (zero) command, 71
2> (two right arrow) in stderr redirection, 42–43
A
A command, 69
a command, 69
aliases, 56
append method, 135
apt-get command, 88
apt-get install command, 91
arguments (in command line), 22
asterisk (*) as wildcard, 38
auto indentation in vim, 132
B
B command, 71
b command, 71
bash shell. See shell
/bin directory, 30
bluefish editor, 82
creating, 169
pushing, 171
removing, 179
C
C programming language, 107–108
C++ programming language, 108
capitalize method, 134
case statements
in bash shell scripting, 115, 117
in Perl, 126
change directory process, 31
choosing
cloning, 155
cmp command, 54
colon (:) command, 76
command line
aliases, 56
cmp command, 54
components of, 22
gzip command, 60
/usr/share/doc directory, 27
locate command, 52
origin of name, 62
number of commands, 48
files versus directories, 58
viewing, 57
shell, 21
terminal windows, 21
vi editor. See vi editor
head command, 51
tail command, 51
comments
in bash shell scripting, 111
in Perl, 119
cmp command, 54
staged versus committed files, 175
comparison operators in Python, 137
compiled languages, 107
C programming language, 107–108
C++ programming language, 108
Debian, 145
scripting languages versus, 97
viewing, 142
gzip command, 60
conditional expressions
in bash shell scripting, 113–115
in Python, 137
connecting to repositories, 186–187
copying
in vi editor, 73
copyleft, 8
credential helper, 186
D
d$ command, 74
DAG (Directed Acyclic Graph), 153
data structures. See variables
dd command, 74
del method, 135
deleting
user accounts, 93
in vi editor, 74
df command, 87
dG command, 74
dictionaries, 133, 135. See also hashes
Directed Acyclic Graph (DAG), 153
directories
creating, 36
-d option (ls command), 40
most used, 30
permissions, 58
root, 29
working, 31
Distributed Version Control Systems (DVCSs), 151
distribution. See Linux distribution
distro. See Linux distribution
documentation, 22–27. See also resources for information
/usr/share/doc directory, 27
dollar sign ($) command, 71
double left square brackets ([[) command, 72
double quotes (“), 124
double right arrow (>>) in redirection, 41
double right square brackets (]]) command, 72
dpkg command, 88
dpkg -l command, 90
DVCSs (Distributed Version Control Systems), 151
dw command, 74
E
E command, 71
e command, 71
editors
bluefish, 82
gedit, 81
joe, 81
kwrite, 81
lime, 82
nano, 81
vi. See vi editor
egrep command, 116
else statement, 137
elsif statement, 125
environment variables, 56
executables, 23
executing
bash shell scripts, 112
extend method, 135
F
file locking, 149
file test comparisons
in bash shell scripting, 115
files
cmp command, 54
staged versus committed files, 175
gzip command, 60
locate command, 52
hidden, 34
multiple locations in Git, 165–166
permissions, 58
reading
in Python, 137
retrieving from remote repository, 184–186
head command, 51
tail command, 51
filesystem. See also directories; files
defined, 29
most used directories, 30
finding
locate command, 52
text in vi editor, 75
first generation version control software, 149
flags (in command line), 22
flow control statements
in bash shell scripting, 115–117
for loops
in bash shell scripting, 115, 116
in Perl, 125
in Python, 136
forward slash (/)
command, 75
in paths, 29
FOSS (Free and Open Source Software), 6
Four Freedoms, 6
Free Software Foundation (FSF), 6
functions
in Perl, 129
in Python, 138
G
G command, 72
gedit editor, 81
Git
choosing repository host, 156–157
staged versus committed files, 175
connecting to repositories, 186–187
managing repositories, 183–184
multiple file locations, 165–166
patching, 187
resources for information, 162
retrieving content from remote repository, 184–186
git apply command, 187
git branch command, 169
git checkout command, 169
git clone command, 184
git commit command, 158, 162, 185
git diff command, 173–177, 187
staged versus committed files, 175
git difftool command, 177
git help command, 162
git log command, 170
git merge command, 178
git mergetool command, 181
git remote add command, 183
git remote command, 183
git-all package, 155
given statement, 126
origin of name, 62
groupadd command, 93
groupdel command, 94
groups
explained, 93
GUI
man page viewer, 26
vim editors in, 81
gzip command, 60
H
H command, 72
h command, 71
hashes, 122, 124. See also dictionaries
head command, 51
help documentation. See documentation
hidden files, listing, 34
/home directory, 30
HTTPS, connecting to repositories, 186–187
I
I command, 69
i command, 69
id command, 84
IDEs (Integrated Development Environments), 108–109
if statements
in bash shell scripting, 113
in Python, 136
ignoring files in Git, 166–167
immutable, 135
insert method, 135
insert mode (vi editor), 69–70
installing
integer comparisons in bash shell scripting, 115
Integrated Development Environments (IDEs), 108–109
international licenses, 8
interpreted languages. See scripting languages
J
j command, 71
Java, 108
joe editor, 81
K
k command, 71
kernel, 13
keys command, 124
kwrite editor, 81
L command, 72
l command, 71
last line mode, 76
last statement, 126
ldd command, 142
left arrow (<) in redirection, 43
left curly brace ({) command, 72
left parenthesis (() command, 72
len function, 134
libraries. See system libraries
licensing, open source
benefits of, 7
categories of, 8
resources for information, 9
terminology, 8
lime editor, 82
links. See resources for information
Linux distribution
defined, 13
Linux systems, logging in, 15–18
listing
listings
case statement example, 117
deleting file from working directory, 168
features branch, 178
git diff between branches, 176
head command, 51
if statement example, 113
ldd command, 142
matching with grep, 63
merged file, 180
numbers versus strings, 134
the - option of su command, 85
read statement example, 118
set command, 55
staged versus committed difference, 175
staging file to be deleted, 168–168
three versions of file, 165
while loop, 125
yum install command, 90
locate command, 52
logging into Linux systems, 15–18
loops
in bash shell scripting, 115–117
-d option, 40
-l option, 57
M command, 72
man 5 passwd command, 91
managing
software, 88
/media directory, 30
mkdir command, 36
modifiers (vi editor), 72
modifying user accounts, 92
modules
in Python, 138
movement commands (vi editor), 71–72
multiple file locations in Git, 165–166
mv command, 38
my statement, 129
N
N command, 75
n command, 75
naming conventions for files and directories, 30–31
nano editor, 81
network, logging in via, 17–18
newline characters, 119
next statement, 126
nonreusable licenses, 8
numeric comparisons in Perl, 126–127
O
O command, 69
o command, 69
octal method (changing permissions), 58–59
open source
defined, 5
licensing
benefits of, 7
categories of, 8
resources for information, 9
terminology, 8
open statement, 137
options (in command line), 22
P
P command, 74
p command, 74
Debian, 145
paging, 44
passwd command, 92
passwords, complexity of, 92
pasting in vi editor, 74
patch output, 174
paths, 29
for bash shell scripts, 112
comments, 119
conditional expressions, 126–128
flow control statements, 124–126
functions, 129
print statements, 119
resources for information, 121–122
as unstructured, 119
perl command, 120
files versus directories, 58
viewing, 57
permissive permissiveness, 8
permissiveness, 8
pipe (|) in redirection, 44–45
pop method, 135
pop statement, 123
positional parameter variables, 112
pragmas in Perl, 130
private variables, 129
programming languages
compiled languages, 107
C programming language, 107–108
C++ programming language, 108
scripting languages
comparing, 99
compiled languages versus, 97
Ruby, 102
push statement, 123
pushing branches (Git), 171
pwd command, 32
conditional expressions, 137
flow control statements, 136–137
functions, 138
modules, 138
reading files, 137
resources for information, 133
as structured language, 131–132
python command, 132
Q
qq statement, 124
question mark (?)
command, 75
as wildcard, 39
quoting variables, 114
qw statement, 124
R
read() method, 137
reading files
in Python, 137
readline method, 137
Red Hat, 14
regular expressions
in bash shell scripting, 63–65
in Perl, 128
remote repository. See repositories
remove method, 135
removing. See also deleting
branches in Git, 179
software, 91
repeater modifiers (vi editor), 72
replacing text in vi editor, 75–76
repositories
retrieving content from, 184–186
repository host, choosing, 156–157
resources for information. See also documentation
bash shell scripts, 118
Git, 162
open source licensing, 9
Python, 133
right arrow (>) in redirection, 41–42
right curly brace (}) command, 72
right parenthesis ()) command, 71
rmdir command, 36
/root directory, 30
root directory, 29
logging in directly, 83
rpm command, 88
rpm -qa command, 90
Ruby, 102
running. See executing
S
s command, 69
/sbin directory, 30
scripting languages
comments, 111
conditional expressions, 113–115
echo command, 112
executing code, 112
file test comparisons, 115
flow control statements, 115–117
integer comparisons, 115
positional parameter variables, 112
resources for information, 118
sha-bang (#!), 111
comparing, 99
compiled languages versus, 97
comments, 119
conditional expressions, 126–128
flow control statements, 124–126
functions, 129
print statements, 119
resources for information, 121–122
as unstructured, 119
conditional expressions, 137
flow control statements, 136–137
functions, 138
modules, 138
reading files, 137
resources for information, 133
as structured language, 131–132
Ruby, 102
searching. See finding
second generation version control software, 149–151
selecting. See choosing
semicolon (;) in Perl statements, 119
set command, 55
sets, 136
sha-bang (#!)
in bash shell scripting, 111
in Perl, 120
in Python, 132
shared library calls, 139
shell
defined, 21
comments, 111
conditional expressions, 113–115
echo command, 112
executing code, 112
file test comparisons, 115
flow control statements, 115–117
integer comparisons, 115
positional parameter variables, 112
resources for information, 118
sha-bang (#!), 111
shift statement, 123
single quotes (‘), 124
sl package, 94
Slackware/SUSE, 14
software
managing, 88
removing, 91
sort statement, 123
source code
open source
benefits of, 7
defined, 5
licensing categories, 8
resources for information, 9
terminology, 8
version control, 147
choosing Git repository host, 156–157
configuring Git, 157–160, 161–162
connecting to repositories, 186–187
first generation software, 149
managing repositories, 183–184
multiple file locations, 165–166
patching, 187
resources for information, 162
retrieving content from remote repository, 184–186
second generation software, 149–151
third generation software, 151–154
special purpose licenses, 8
special variables in Perl, 124
splice statement, 123
square brackets ([]) as wildcard, 39
SSH, connecting to repositories, 186–187
ssh-agent, 186
staging area (Git), 156
Stallman, Richard, 6
standard licenses, 8
static library calls, 139
stderr (standard error), 41
stdin (standard input), 41
stdout (standard output), 41
strict permissiveness, 8
string comparisons in Perl, 127
strong copyleft, 8
structured languages, Python as, 131–132. See also compiled languages
switch statements in Perl, 126
switching branches (Git), 169–170
symbolic method (changing permissions), 58–59
system administration
groups
explained, 93
root user
logging in directly, 83
software
managing, 88
removing, 91
user accounts, 91
deleting, 93
modifying, 92
viewing, 142
tail command, 51
terminal windows, 21
text
finding in vi editor, 75
text editors. See editors
third generation version control software, 151–154
/tmp directory, 30
touch command, 38
tuples, 135
two right arrow (2>) in stderr redirection, 42–43
U
u command, 73
undoing actions (vi editor), 73
unless statement in Perl, 125
unshift statement, 123
unstructured languages, Perl as, 119
until loops
in bash shell scripting, 115
in Perl, 125
user accounts, 91
deleting, 93
modifying, 92
user interaction in bash shell scripting, 117–118
useradd command, 91
userdel command, 93
/usr/bin directory, 30
/usr/sbin directory, 30
/usr/share/doc directory, 27
V
variables
environment, 56
positional parameters, 112
private, 129
quoting, 114
version control, 147
first generation software, 149
Git
choosing repository host, 156–157
connecting to repositories, 186–187
managing repositories, 183–184
multiple file locations, 165–166
patching, 187
resources for information, 162
retrieving content from remote repository, 184–186
second generation software, 149–151
third generation software, 151–154
vi editor
benefits of, 68
copying in, 73
deleting in, 74
finding text, 75
pasting in, 74
quitting
repeater modifiers, 72
undoing actions, 73
viewing
head command, 51
tail command, 51
permissions, 57
system libraries, 142
auto indentation, 132
vimtutor command, 79
visudo command, 86
W
W command, 71
w command, 71
Wall, Larry, 130
weak copyleft, 8
websites. See resources for information
while loops
in bash shell scripting, 115, 116
in Perl, 125
in Python, 136
white space, comparing files, 175–176
working area (Git), 156
working directory, 31
write method, 137
X
X command, 74
x command, 74
xG command, 72
xman command, 26
Y
y$ command, 73
yanking, 73
yG command, 73
yum command, 88
yum install command, 90
yum list installed command, 89
yum search command, 89
yw command, 73
yy command, 73
Z
zero (0) command, 71
zypper command, 88
zypper install command, 91
18.118.25.174