Skip to content

Commit 3d443e7

Browse files
added example files
1 parent 76770d4 commit 3d443e7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+424
-3
lines changed

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
⚠️ ⚠️ ⚠️ This is a **work-in-progress** book on Linux command line and Shell Scripting for beginner to intermediate level users.
44

5-
[Click this link](https://github.com/learnbyexample/cli-computing/tree/09091253463a313ddce5a95f467857ea85c25ce6) for an earlier version of the book on this repo.
5+
[Click this link](https://github.com/learnbyexample/cli-computing/tree/09091253463a313ddce5a95f467857ea85c25ce6) for an earlier version of the book in this repo.
66

7-
See also my curated list on [Linux CLI and Shell scripting](https://learnbyexample.github.io/curated_resources/linux_cli_scripting.html) for more learning resources.
7+
See my curated list on [Linux CLI and Shell scripting](https://learnbyexample.github.io/curated_resources/linux_cli_scripting.html) for more learning resources.
88

99
<br>
1010

@@ -13,7 +13,7 @@ See also my curated list on [Linux CLI and Shell scripting](https://learnbyexamp
1313
For web version of the book, visit https://learnbyexample.github.io/cli-computing/
1414

1515
* Links to pdf/epub versions of the book will be added once they are done
16-
* See https://learnbyexample.github.io/books/ for list of other books
16+
* See https://learnbyexample.github.io/books/ for a list of my other books
1717

1818
<br>
1919

example_files/scripts/cp.sh

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
dir_name='cp_examples'
2+
if [[ -e "$dir_name" ]] ; then
3+
cd "$dir_name"
4+
return
5+
fi
6+
7+
mkdir "$dir_name" && cd $_
8+
9+
mkdir -p backups/reports reference
10+
echo 'apple banana cherry' > backups/ip.txt
11+
touch backups/reports/jan.log

example_files/scripts/du.sh

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
dir_name='du_examples'
2+
if [[ -e "$dir_name" ]] ; then
3+
cd "$dir_name"
4+
return
5+
fi
6+
7+
mkdir "$dir_name" && cd $_
8+
9+
mkdir -p projects/scripts todos
10+
11+
</dev/urandom tr -cd '[:alnum:]_ \n' | head -c7654321 > report.log
12+
</dev/urandom tr -cd '[:alnum:]_ \n' | head -c12345 > projects/errors.log
13+
</dev/urandom tr -cd '[:alnum:]_ \n' | head -c22222 > projects/scripts/calc.sh
14+
</dev/urandom tr -cd '[:alnum:]_ \n' | head -c3333 > todos/books.txt

example_files/scripts/file.sh

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
dir_name='file_examples'
2+
if [[ -e "$dir_name" ]] ; then
3+
cd "$dir_name"
4+
return
5+
fi
6+
7+
mkdir "$dir_name" && cd $_
8+
9+
printf 'long\nshot\n' > ip.txt
10+
11+
printf '#!/bin/bash\n\necho hi\n' > hi.sh
12+
chmod +x hi.sh
13+
14+
echo 'iVBORw0KGgoAAAANSUhEUgAAAEwAAABMCAMAAADwSaEZAAADAFBMVEX///8cI4AdJIA0TryopsIe
15+
JIHCw9z/5Vh9WFYjJIY0KJMgJIMnJYn/7otmhCT/5lvc4fSddWCXpTuig5c0Srj/7oY0RrM0Qa80
16+
SLb/6Gc0RLHo4eI0Oqc0QKwwJ5AuJo7/6W7/63crJot0UlSSksL/6nP///7/7YL//e7/++f/983/
17+
/vWkjaP/4VX/5l41LJhIR5pUPU5qS1L+7o+jh53/6305OoSZlMqPnEORn0E1MJv/52JgfDJCRZRL
18+
TIexdENSSqKNmUanmLE1PqkpK4U7Q50vMIVkgSj/8rH/9br/8aD/+dmWlMZuU2iopL+mnLX//vtK
19+
WFWFkU2jgpL/0EP/2Fb89OiNhpH/8alifiz46ZH/7pbRxZXm23qBjVKVoj2aothrSkQiISGam9H/
20+
1Uu1scfTztZUacZEPplbWYs1N6M4R61FWIL/9L//9cf++OBdeED/9tRuaZRAPI9SZkVUYl9XbD6l
21+
bkg3OJc6OppDVrpPS5z/5G9UX7vv4ZFNZG5WcFBKXI41M595hWBtfWhUVrI0OnNUT6nSy1X/4nZY
22+
Wnl5VVNYPjqCYm6TZE3s6t3/206hk6fp6eSsqsS8spM8VajZzZRCQKA7SWAyO25kZIf/98NFR4G7
23+
vU9fYnGKlUhtc15yeVnGyuWHXVKPYUz4+fwxKSfu8Pne4e6RZ12CfZV+eLXPlVP/3V++uM307eaw
24+
g17b09csMnc4UbT/32pAVZsxMZFlYJZZZYDEupHY0XRDQIZbczdzfWGirUGwtkpCSGpUZUk9Liyg
25+
q95ASaTX1eB1gslwX4JWTpJ3bZSllKzs0bn/8Xb463aWkX3WwcDn2pL549exp5aroro6SZ9le09S
26+
THm+ubCjmphhcXt4dIo+TpFmc3OelZHt21qJiKTm47erm6ZFRY1IUGjj1Vf55GVna2S3dz+AV0lb
27+
YKRUOzd3g8l3hMq6prWNnNjTtbH46Zzhuq1oYa2xn7J8en3ywVfUpFv81oainHt2c33opkzt577h
28+
1ZNlht2PkGrd1GEc7EGzAAAGeElEQVRYw+3Xd1gTZxwH8FNij5DcRQ8DBrAm0Vwm0TaEJiaASSAE
29+
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' | \
58+
base64 --decode > moon.png
59+
60+
echo '/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIf
61+
IiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7
62+
Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wAARCABMAEwDASIA
63+
AhEBAxEB/8QAGwABAAIDAQEAAAAAAAAAAAAAAAQFAQIDBgf/xAAyEAABAwIEAggFBQEAAAAAAAAB
64+
AAIDBBEFEiExBkETFBZRVZGT0hVCUmGBIiNxgrKh/8QAGgEBAAMBAQEAAAAAAAAAAAAAAAEDBQQC
65+
Bv/EACgRAAICAQMBBwUAAAAAAAAAAAABAgMRBBIhkQUiQlFSYYEUFUHR8P/aAAwDAQACEQMRAD8A
66+
+zIiIAiIgCwsOe1lszgLmwvzK2UZQCIikBERAEREBznmbTxGVwJa3ewUDEqodSbU08gOR4NwVmqx
67+
RlM90VTTvDToCNQQvPhjqipkipZD0DtXE8gsPX69QThF5z1TO7T0bu9LjHQscRxZk0VK+M65szh3
68+
EKRJiIqsQgpoXfoBDnEHfmoLMLpmts4Oee8uK4zUT6XNPSPdcDUE62+xWPHtK3c3L84z8fs6VVS+
69+
6vc9N1uHrAgDs0h5DW38ruvNYTX0tJEXvLpJn72Gy9BTzOniDzG6O+wduvpdHq1fHLfPl5GfdS63
70+
g6oiLvKDC1lkEUTpHbALdQ8UeI8PkedgW/6Ch5xwM45K2ur56mIxiiBB+rVR8OgfDAc8Za5ziSLL
71+
p8QtsSthiLOcixr+zHdLdOTb/vYtjrYqOxLB017j5LNj3HyWra8OOhPksurHDbX8rm+zQ82PqyDS
72+
RS0dY+QUXStzHKTyV/SVvWDldC6J1tjzVWa2T6f+regqzNiUbCflctHSaSWn4i+Pgi3VK18rkvER
73+
FpFYVZxFKIMDqJD8uX/QVmqniakqa7h+qp6SPpZ35crLgXs4Hc6bBeoY3LJXZnY8HiziQJ1cSO4l
74+
YOIC+ht+VG7McS+Fv9aP3J2Y4l8Lf60fuWtsp9SMDN/pfQk/Ejze7zXVmLMj1AcT93KD2Y4l8Lf6
75+
0fuTsxxL4W/1o/codVD8SJUtQvC+hLkxQP2Fv7Eqy4aq+mx2Jt7/ALb1RdmOJfC3+tH7lccKYHjV
76+
DjsdRW0LoYWxuBcZGHU7bEquyFSg9rRbQ7nat0We8REWYboREQBERAEREAREQBERAf/Z' | \
77+
base64 --decode > sunrise.jpg
78+

example_files/scripts/find.sh

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
dir_name='find_examples'
2+
if [[ -e "$dir_name" ]] ; then
3+
cd "$dir_name"
4+
return
5+
fi
6+
7+
mkdir "$dir_name" && cd $_
8+
9+
mkdir -p backups/dot_files projects/{.venv,tictactoe,calculator} todos
10+
ln -s ../../scripts
11+
12+
printf 'long\nshot\n' > ip.txt
13+
touch -a -d "$(date '+%Y-%m-%d %H:%M:%S' -d '-1 days')" ip.txt
14+
15+
printf '#!/usr/bin/python3\n\nprint("Hello World!")\n' > hello_world.py
16+
17+
printf '#!/bin/bash\n\necho hi\n' > hi.sh
18+
touch -d "$(date '+%Y-%m-%d %H:%M:%S' -d '-10 days')" hi.sh
19+
20+
echo 'ghost' > .hidden
21+
touch -d '2018-12-21 22:33:44' .hidden
22+
23+
</dev/urandom tr -cd '[:alnum:]_ \n' | head -c1234567 > report.log
24+
</dev/urandom tr -cd '[:alnum:]_ \n' | head -c54321 > errors.log
25+
touch -d '2022-01-01 01:01:01' report.log
26+
touch -d '2022-01-01 03:30:33' errors.log
27+
28+
touch backups/bookmarks.html backups/{jan,aug}.log
29+
touch backups/dot_files/{.bashrc,.inputrc,.vimrc}
30+
touch projects/tictactoe/game.py projects/calculator/calc.sh
31+
touch todos/{books,TRIP,wow}.txt
32+
33+
chmod +x hello_world.py hi.sh

example_files/scripts/ls.sh

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
dir_name='ls_examples'
2+
if [[ -e "$dir_name" ]] ; then
3+
cd "$dir_name"
4+
return
5+
fi
6+
7+
mkdir "$dir_name" && cd $_
8+
9+
mkdir -p backups/dot_files projects/{tictactoe,calculator} todos
10+
ln -s ../../scripts
11+
12+
printf 'long\nshot\n' > ip.txt
13+
touch -d '2017-07-21 10:11:44' ip.txt
14+
15+
printf '#!/usr/bin/python3\n\nprint("Hello World!")\n' > hello_world.py
16+
touch -d '2020-02-29 20:20:20' hello_world.py
17+
18+
printf '#!/bin/bash\n\necho hi\n' > hi
19+
touch -d '2019-12-05 15:10:05' hi
20+
21+
echo 'ghost' > .hidden
22+
touch -d '2018-12-21 22:33:44' .hidden
23+
24+
</dev/urandom tr -cd '[:alnum:]_ \n' | head -c7654321 > report.log
25+
</dev/urandom tr -cd '[:alnum:]_ \n' | head -c12345 > errors.log
26+
touch -d '2022-01-01 01:01:01' report.log
27+
touch -d '2022-01-01 03:30:33' errors.log
28+
29+
touch backups/bookmarks.html backups/dot_files/{.bashrc,.inputrc,.vimrc}
30+
touch projects/tictactoe/game.py projects/calculator/calc.sh
31+
touch todos/{books,outing}.txt
32+
33+
touch -d '2022-02-04 09:23:25' backups
34+
touch -d '2022-03-05 11:21:27' projects
35+
touch -d '2022-04-06 13:19:29' todos
36+
touch -hd '2022-05-07 15:17:31' scripts
37+
38+
chmod +x hello_world.py hi

example_files/scripts/mv.sh

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
dir_name='mv_examples'
2+
if [[ -e "$dir_name" ]] ; then
3+
cd "$dir_name"
4+
return
5+
fi
6+
7+
mkdir "$dir_name" && cd $_
8+
9+
mkdir -p backups/projects dot_files manuals
10+
touch hello.py loops.py ip.txt
11+
touch backups/projects/game.py manuals/mv.info
12+

example_files/scripts/rm.sh

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
dir_name='rm_examples'
2+
if [[ -e "$dir_name" ]] ; then
3+
cd "$dir_name"
4+
return
5+
fi
6+
7+
mkdir "$dir_name" && cd $_
8+
9+
mkdir -p reports projects/{tictactoe,calculator} empty_dir
10+
touch hello.py loops.py read_only.txt reports/jan.log
11+
touch projects/tictactoe/game.py projects/calculator/calc.sh
12+
chmod -w read_only.txt
13+

example_files/scripts/stat.sh

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
dir_name='stat_examples'
2+
if [[ -e "$dir_name" ]] ; then
3+
cd "$dir_name"
4+
return
5+
fi
6+
7+
mkdir "$dir_name" && cd $_
8+
9+
printf 'long\nshot\n' > ip.txt
10+
touch -a -d '2022-06-01 13:25:18.693823117' ip.txt
11+
touch -m -d '2022-05-24 14:39:41.285714934' ip.txt
12+
13+
ln -s /usr/share/dict/words words.txt
14+
15+
printf '#!/bin/bash\n\necho hi\n' > hi.sh

example_files/scripts/tar.sh

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
dir_name='tar_examples'
2+
if [[ -e "$dir_name" ]] ; then
3+
cd "$dir_name"
4+
return
5+
fi
6+
7+
mkdir "$dir_name" && cd $_
8+
9+
mkdir -p projects/scripts todos
10+
11+
</dev/urandom tr -cd '[:alnum:]_ \n' | head -c7654321 > report.log
12+
</dev/urandom tr -cd '[:alnum:]_ \n' | head -c12345 > projects/errors.log
13+
</dev/urandom tr -cd '[:alnum:]_ \n' | head -c12345 > projects/scripts/calc.sh
14+
</dev/urandom tr -cd '[:alnum:]_ \n' | head -c22222 > todos/books.txt

example_files/scripts/touch.sh

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
dir_name='touch_examples'
2+
if [[ -e "$dir_name" ]] ; then
3+
cd "$dir_name"
4+
return
5+
fi
6+
7+
mkdir "$dir_name" && cd $_
8+
9+
printf 'apple\nbanana\ncherry\n' > fruits.txt
10+
touch -a -d '2017-07-19 17:06:01.523308599' fruits.txt
11+
touch -m -d '2017-07-13 13:54:03.576055933' fruits.txt
12+
13+
printf 'long\nshot\n' > ip.txt
14+
touch -a -d '2022-06-01 13:25:18.693823117' ip.txt
15+
touch -m -d '2022-05-24 14:39:41.285714934' ip.txt
16+
17+
printf '#!/bin/bash\n\necho hi\n' > hi.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/bash
2+
3+
greeting = 'hello world'
4+
echo "$greeting"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
echo "No. of lines in '$1' is $(wc -l < "$1")"
2+
echo "No. of lines in '$2' is $(wc -l < "$2")"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
for file in "$@"; do
2+
echo mv "$file" "$file.bkp"
3+
done
+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
add_border ()
2+
{
3+
size='10'
4+
color='grey'
5+
if (( $# == 1 )) ; then
6+
ip="$1"
7+
elif (( $# == 2 )) ; then
8+
if [[ $1 =~ ^[0-9]+$ ]] ; then
9+
size="$1"
10+
else
11+
color="$1"
12+
fi
13+
ip="$2"
14+
else
15+
size="$1"
16+
color="$2"
17+
ip="$3"
18+
fi
19+
20+
op="${ip%.*}_border.${ip##*.}"
21+
echo convert -border "$size" -bordercolor "$color" "$ip" "$op"
22+
}
23+
24+
add_border flower.png
25+
add_border 5 insect.png
26+
add_border red lake.png
27+
add_border 20 blue sky.png
28+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
echo 'hello'
2+
echo 'have a nice day'
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/bash
2+
3+
echo "Hello $USER"
4+
echo "Today is $(date -u +%A)"
5+
echo 'Have a nice day'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
if (( $# != 1 )) ; then
2+
echo 'Error! One file argument expected.' 1>&2
3+
exit 1
4+
else
5+
if [[ ! -f $1 ]] ; then
6+
echo "Error! '$1' is not a valid file" 1>&2
7+
exit 1
8+
else
9+
echo "No. of lines in '$1' is $(wc -l < "$1")"
10+
fi
11+
fi
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
prev=$(fc -ln -2 | sed 's/^\s*//; q')
2+
echo "$prev"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
while IFS=' : ' read -r field1 field2; do
2+
echo "$field2,$field1"
3+
done < "$1"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
while IFS= read -r line; do
2+
# do something with each line
3+
echo "$line"
4+
done < "$1"
+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
read -p 'Enter a search pattern: ' search
2+
3+
if grep -q "$search" hello.sh ; then
4+
echo "match found"
5+
else
6+
echo "match not found"
7+
fi
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
read -p 'Enter two integers separated by spaces: ' num1 num2
2+
sum=$(( num1 + num2 ))
3+
echo "$num1 + $num2 = $sum"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
i="$1"
2+
while (( i > 0 )) ; do
3+
echo "$i"
4+
(( i-- ))
5+
done

example_files/text_files/c1.txt

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Blue
2+
Brown
3+
Orange
4+
Purple
5+
Red
6+
Teal
7+
White

example_files/text_files/c2.txt

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Black
2+
Blue
3+
Green
4+
Orange
5+
Pink
6+
Red
7+
White

example_files/text_files/colors_1.txt

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Blue
2+
Brown
3+
Orange
4+
Purple

example_files/text_files/colors_2.txt

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Black
2+
Blue
3+
Green
4+
Orange

example_files/text_files/f1.txt

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
1
2+
2
3+
3
4+
world

0 commit comments

Comments
 (0)