LinuxClub@UCU - First semester 2020/21
+ ++ 5.4.2021 | 4 min. +
+diff --git a/404.html b/404.html new file mode 100644 index 0000000..435df72 --- /dev/null +++ b/404.html @@ -0,0 +1,382 @@ + + +
+ ++ 5.4.2021 | 4 min. +
+Click here to be redirected.
diff --git a/archive/2020_1/readme/index.html b/archive/2020_1/readme/index.html new file mode 100644 index 0000000..c30a839 --- /dev/null +++ b/archive/2020_1/readme/index.html @@ -0,0 +1,469 @@ + + + + +If you are going to visit the club regularly, the best is to install Arch/Manjaro natively. If you can't, you are going to need:
+Week 0 - Club Presentation - +Lecture notes
+Richard Stallman talk - +Lecture notes
+Week 1 - Introduction to open-source, different distributions - +Lecture notes
+Week 2 - Introduction to the shell - +Lecture notes
+Week 3 - Git and Github - +Lecture notes
+Week 4.1 - Vim, Terminal multiplexers - +Lecture notes
+Week 4.2 - Package managers - +Lecture notes
+Week 5 - File systems - +Lecture notes
+Week 6.1 - Linux Filesystem Hierarchy Standard - +Lecture notes
+Week 6.2 - Regular expressions - +Lecture notes
+Week 7.1 - Boot (EFI/UEFI) - +Lecture notes
+Week 7.2 - Disk tables (MBR/GPT) - +Lecture notes
+Week 8 - Systemd, systemctl, kernel options - +Lecture notes
+Week 9.1 - X.org, Gnome, Wayland, i3, KDE, XFCE, MATE etc. +Week 9.2 - The C Programming Language
+# Fork this repository
+# Watch the lecture
+# Create your personal directory in 'homework'
+# Copy the files from the respective directory in 'weeks' into your personal directory in 'homework'
+# Submit a pull request into your own repository's master
+# Add us as contributors into your repository
+# Add the responsible person as a reviewer to the pull request
+# Done!
+
+
+ + 5.4.2021 | 2 min. +
++ 5.4.2021 | 1 min. +
++ 5.4.2021 | 26 min. +
++ 5.4.2021 | 3 min. +
++ 5.4.2021 | 2 min. +
++ 5.4.2021 | 2 min. +
++ 5.4.2021 | 5 min. +
++ 5.4.2021 | 1 min. +
++ 5.4.2021 | 2 min. +
++ 5.4.2021 | 3 min. +
+Click here to be redirected.
diff --git a/archive/2020_1/weeks/page/2/index.html b/archive/2020_1/weeks/page/2/index.html new file mode 100644 index 0000000..af6c6ce --- /dev/null +++ b/archive/2020_1/weeks/page/2/index.html @@ -0,0 +1,411 @@ + + + + ++ 5.4.2021 | 3 min. +
+# More in the cheatsheet: https://ss64.com/bash/
+# Just prints the contents of the following command
+echo $SHELL
+
+# Prints out the process working directory (folder)
+pwd
+
+# Prints out the logged in user
+whoami
+
+# Changes the directory
+cd
+
+# cd's into /home/$USER directory
+cd ~/
+
+# . is the current directory
+cd ./
+
+# .. is the directory up the tree
+cd ../
+
+cd /home/$USER/Downloads
+
+# cd's into the root directory
+cd /
+
+# Lists the contents of the current directory
+ls
+
+# Lists the contents of the directory up the tree
+ls ../
+
+# Lists the contents of the directory two times up the tree
+ls ../../
+
+# Lists the contents of the root directory
+ls /
+
+# Lists the contents of the current directory, formatted as a list with additional info
+ls -l
+
+# Also includes the hidden files (starting with .)
+ls -a
+
+# Combines -l and -a options
+ls -la
+
+# Prints the directory name, not their contents
+ls -d
+
+# Creates a directory called try
+mkdir try
+
+# Creates all the directories included in path provided
+mkdir -p try/try2/try3
+
+# Creates the file, or updates its 'modified date'
+touch file_try
+
+# Opens the file in vim
+vim file_nvim_try
+
+echo Hello
+
+# Redirects the output to file helloworld, rewriting the contents
+echo Hello > helloworld
+
+echo world > helloworld
+
+# Appends the output to the file
+echo hello_world >> helloworld
+
+# Prints out the contents of the file
+cat helloworld
+
+
+ apps
or cs
or ba
case insensitive separated with ->
. Example: pr_apps.py->cs2->ba_11
. Hint: to list all installed packages use pacman -Q
[year:month:day|hour:min:sec]
). The commands should work as in the usual command line. Prompt of the keylogger can be any symbol or string (e.g. >
or $
).All programs must have a description and usage examples on the very top of the file as a comment or in the README.md file.
+ +You can access this tutorial just by typing vimtutor
in your shell!
===============================================================================
+= W e l c o m e t o t h e V I M T u t o r - Version 1.7 =
+===============================================================================
+
+ Vim is a very powerful editor that has many commands, too many to
+ explain in a tutor such as this. This tutor is designed to describe
+ enough of the commands that you will be able to easily use Vim as
+ an all-purpose editor.
+
+ The approximate time required to complete the tutor is 30 minutes,
+ depending upon how much time is spent with experimentation.
+
+ ATTENTION:
+ The commands in the lessons will modify the text. Make a copy of this
+ file to practice on (if you started "vimtutor" this is already a copy).
+
+ It is important to remember that this tutor is set up to teach by
+ use. That means that you need to execute the commands to learn them
+ properly. If you only read the text, you will forget the commands!
+
+ Now, make sure that your Caps-Lock key is NOT depressed and press
+ the j key enough times to move the cursor so that lesson 1.1
+ completely fills the screen.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 1.1: MOVING THE CURSOR
+
+
+ ** To move the cursor, press the h,j,k,l keys as indicated. **
+ ^
+ k Hint: The h key is at the left and moves left.
+ < h l > The l key is at the right and moves right.
+ j The j key looks like a down arrow.
+ v
+ 1. Move the cursor around the screen until you are comfortable.
+
+ 2. Hold down the down key (j) until it repeats.
+ Now you know how to move to the next lesson.
+
+ 3. Using the down key, move to lesson 1.2.
+
+NOTE: If you are ever unsure about something you typed, press <ESC> to place
+ you in Normal mode. Then retype the command you wanted.
+
+NOTE: The cursor keys should also work. But using hjkl you will be able to
+ move around much faster, once you get used to it. Really!
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 1.2: EXITING VIM
+
+
+ !! NOTE: Before executing any of the steps below, read this entire lesson!!
+
+ 1. Press the <ESC> key (to make sure you are in Normal mode).
+
+ 2. Type: :q! <ENTER>.
+ This exits the editor, DISCARDING any changes you have made.
+
+ 3. Get back here by executing the command that got you into this tutor. That
+ might be: vimtutor <ENTER>
+
+ 4. If you have these steps memorized and are confident, execute steps
+ 1 through 3 to exit and re-enter the editor.
+
+NOTE: :q! <ENTER> discards any changes you made. In a few lessons you
+ will learn how to save the changes to a file.
+
+ 5. Move the cursor down to lesson 1.3.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 1.3: TEXT EDITING - DELETION
+
+
+ ** Press x to delete the character under the cursor. **
+
+ 1. Move the cursor to the line below marked --->.
+
+ 2. To fix the errors, move the cursor until it is on top of the
+ character to be deleted.
+
+ 3. Press the x key to delete the unwanted character.
+
+ 4. Repeat steps 2 through 4 until the sentence is correct.
+
+---> The ccow jumpedd ovverr thhe mooon.
+
+ 5. Now that the line is correct, go on to lesson 1.4.
+
+NOTE: As you go through this tutor, do not try to memorize, learn by usage.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 1.4: TEXT EDITING - INSERTION
+
+
+ ** Press i to insert text. **
+
+ 1. Move the cursor to the first line below marked --->.
+
+ 2. To make the first line the same as the second, move the cursor on top
+ of the character BEFORE which the text is to be inserted.
+
+ 3. Press i and type in the necessary additions.
+
+ 4. As each error is fixed press <ESC> to return to Normal mode.
+ Repeat steps 2 through 4 to correct the sentence.
+
+---> There is text misng this .
+---> There is some text missing from this line.
+
+ 5. When you are comfortable iserting text move to lesson 1.5.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 1.5: TEXT EDITING - APPENDING
+
+
+ ** Press A to append text. **
+
+ 1. Move the cursor to the first line below marked --->.
+ It does not matter on what character the cursor is in that line.
+
+ 2. Press A and type in the necessary additions.
+
+ 3. As the text has been appended press <ESC> to return to Normal mode.
+
+ 4. Move the cursor to the second line marked ---> and repeat
+ steps 2 and 3 to correct this sentence.
+
+---> There is some text missing from th
+ There is some text missing from this line.
+---> There is also some text miss
+ There is also some text missing here.
+
+ 5. When you are comfortable appending text move to lesson 1.6.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 1.6: EDITING A FILE
+
+ ** Use :wq to save a file and exit. **
+
+ !! NOTE: Before executing any of the steps below, read this entire lesson!!
+
+ 1. Exit this tutor as you did in lesson 1.2: :q!
+ Or, if you have access to another terminal, do the following there.
+
+ 2. At the shell prompt type this command: vim tutor <ENTER>
+ 'vim' is the command to start the Vim editor, 'tutor' is the name of the
+ file you wish to edit. Use a file that may be changed.
+
+ 3. Insert and delete text as you learned in the previous lessons.
+
+ 4. Save the file with changes and exit Vim with: :wq <ENTER>
+
+ 5. If you have quit vimtutor in step 1 restart the vimtutor and move down to
+ the following summary.
+
+ 6. After reading the above steps and understanding them: do it.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 1 SUMMARY
+
+
+ 1. The cursor is moved using either the arrow keys or the hjkl keys.
+ h (left) j (down) k (up) l (right)
+
+ 2. To start Vim from the shell prompt type: vim FILENAME <ENTER>
+
+ 3. To exit Vim type: <ESC> :q! <ENTER> to trash all changes.
+ OR type: <ESC> :wq <ENTER> to save the changes.
+
+ 4. To delete the character at the cursor type: x
+
+ 5. To insert or append text type:
+ i type inserted text <ESC> insert before the cursor
+ A type appended text <ESC> append after the line
+
+NOTE: Pressing <ESC> will place you in Normal mode or will cancel
+ an unwanted and partially completed command.
+
+Now continue with lesson 2.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 2.1: DELETION COMMANDS
+
+
+ ** Type dw to delete a word. **
+
+ 1. Press <ESC> to make sure you are in Normal mode.
+
+ 2. Move the cursor to the line below marked --->.
+
+ 3. Move the cursor to the beginning of a word that needs to be deleted.
+
+ 4. Type dw to make the word disappear.
+
+ NOTE: The letter d will appear on the last line of the screen as you type
+ it. Vim is waiting for you to type w . If you see another character
+ than d you typed something wrong; press <ESC> and start over.
+
+---> There are a some words fun that don't belong paper in this sentence.
+
+ 5. Repeat steps 3 and 4 until the sentence is correct and go to lesson 2.2.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 2.2: MORE DELETION COMMANDS
+
+
+ ** Type d$ to delete to the end of the line. **
+
+ 1. Press <ESC> to make sure you are in Normal mode.
+
+ 2. Move the cursor to the line below marked --->.
+
+ 3. Move the cursor to the end of the correct line (AFTER the first . ).
+
+ 4. Type d$ to delete to the end of the line.
+
+---> Somebody typed the end of this line twice. end of this line twice.
+
+
+ 5. Move on to lesson 2.3 to understand what is happening.
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 2.3: ON OPERATORS AND MOTIONS
+
+
+ Many commands that change text are made from an operator and a motion.
+ The format for a delete command with the d delete operator is as follows:
+
+ d motion
+
+ Where:
+ d - is the delete operator.
+ motion - is what the operator will operate on (listed below).
+
+ A short list of motions:
+ w - until the start of the next word, EXCLUDING its first character.
+ e - to the end of the current word, INCLUDING the last character.
+ $ - to the end of the line, INCLUDING the last character.
+
+ Thus typing de will delete from the cursor to the end of the word.
+
+NOTE: Pressing just the motion while in Normal mode without an operator will
+ move the cursor as specified.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 2.4: USING A COUNT FOR A MOTION
+
+
+ ** Typing a number before a motion repeats it that many times. **
+
+ 1. Move the cursor to the start of the line below marked --->.
+
+ 2. Type 2w to move the cursor two words forward.
+
+ 3. Type 3e to move the cursor to the end of the third word forward.
+
+ 4. Type 0 (zero) to move to the start of the line.
+
+ 5. Repeat steps 2 and 3 with different numbers.
+
+---> This is just a line with words you can move around in.
+
+ 6. Move on to lesson 2.5.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 2.5: USING A COUNT TO DELETE MORE
+
+
+ ** Typing a number with an operator repeats it that many times. **
+
+ In the combination of the delete operator and a motion mentioned above you
+ insert a count before the motion to delete more:
+ d number motion
+
+ 1. Move the cursor to the first UPPER CASE word in the line marked --->.
+
+ 2. Type d2w to delete the two UPPER CASE words.
+
+ 3. Repeat steps 1 and 2 with a different count to delete the consecutive
+ UPPER CASE words with one command.
+
+---> this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 2.6: OPERATING ON LINES
+
+
+ ** Type dd to delete a whole line. **
+
+ Due to the frequency of whole line deletion, the designers of Vi decided
+ it would be easier to simply type two d's to delete a line.
+
+ 1. Move the cursor to the second line in the phrase below.
+ 2. Type dd to delete the line.
+ 3. Now move to the fourth line.
+ 4. Type 2dd to delete two lines.
+
+---> 1) Roses are red,
+---> 2) Mud is fun,
+---> 3) Violets are blue,
+---> 4) I have a car,
+---> 5) Clocks tell time,
+---> 6) Sugar is sweet
+---> 7) And so are you.
+
+Doubling to operate on a line also works for operators mentioned below
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 2.7: THE UNDO COMMAND
+
+
+ ** Press u to undo the last commands, U to fix a whole line. **
+
+ 1. Move the cursor to the line below marked ---> and place it on the
+ first error.
+ 2. Type x to delete the first unwanted character.
+ 3. Now type u to undo the last command executed.
+ 4. This time fix all the errors on the line using the x command.
+ 5. Now type a capital U to return the line to its original state.
+ 6. Now type u a few times to undo the U and preceding commands.
+ 7. Now type CTRL-R (keeping CTRL key pressed while hitting R) a few times
+ to redo the commands (undo the undo's).
+
+---> Fiix the errors oon thhis line and reeplace them witth undo.
+
+ 8. These are very useful commands. Now move on to the lesson 2 Summary.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 2 SUMMARY
+
+
+ 1. To delete from the cursor up to the next word type: dw
+ 2. To delete from the cursor to the end of a line type: d$
+ 3. To delete a whole line type: dd
+
+ 4. To repeat a motion prepend it with a number: 2w
+ 5. The format for a change command is:
+ operator [number] motion
+ where:
+ operator - is what to do, such as d for delete
+ [number] - is an optional count to repeat the motion
+ motion - moves over the text to operate on, such as w (word),
+ $ (to the end of line), etc.
+
+ 6. To move to the start of the line use a zero: 0
+
+ 7. To undo previous actions, type: u (lowercase u)
+ To undo all the changes on a line, type: U (capital U)
+ To undo the undo's, type: CTRL-R
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 3.1: THE PUT COMMAND
+
+
+ ** Type p to put previously deleted text after the cursor. **
+
+ 1. Move the cursor to the first line below marked --->.
+
+ 2. Type dd to delete the line and store it in a Vim register.
+
+ 3. Move the cursor to the c) line, ABOVE where the deleted line should go.
+
+ 4. Type p to put the line below the cursor.
+
+ 5. Repeat steps 2 through 4 to put all the lines in correct order.
+
+---> d) Can you learn too?
+---> b) Violets are blue,
+---> c) Intelligence is learned,
+---> a) Roses are red,
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 3.2: THE REPLACE COMMAND
+
+
+ ** Type rx to replace the character at the cursor with x . **
+
+ 1. Move the cursor to the first line below marked --->.
+
+ 2. Move the cursor so that it is on top of the first error.
+
+ 3. Type r and then the character which should be there.
+
+ 4. Repeat steps 2 and 3 until the first line is equal to the second one.
+
+---> Whan this lime was tuoed in, someone presswd some wrojg keys!
+---> When this line was typed in, someone pressed some wrong keys!
+
+ 5. Now move on to lesson 3.3.
+
+NOTE: Remember that you should be learning by doing, not memorization.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 3.3: THE CHANGE OPERATOR
+
+
+ ** To change until the end of a word, type ce . **
+
+ 1. Move the cursor to the first line below marked --->.
+
+ 2. Place the cursor on the u in lubw.
+
+ 3. Type ce and the correct word (in this case, type ine ).
+
+ 4. Press <ESC> and move to the next character that needs to be changed.
+
+ 5. Repeat steps 3 and 4 until the first sentence is the same as the second.
+
+---> This lubw has a few wptfd that mrrf changing usf the change operator.
+---> This line has a few words that need changing using the change operator.
+
+Notice that ce deletes the word and places you in Insert mode.
+ cc does the same for the whole line
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 3.4: MORE CHANGES USING c
+
+
+ ** The change operator is used with the same motions as delete. **
+
+ 1. The change operator works in the same way as delete. The format is:
+
+ c [number] motion
+
+ 2. The motions are the same, such as w (word) and $ (end of line).
+
+ 3. Move the cursor to the first line below marked --->.
+
+ 4. Move the cursor to the first error.
+
+ 5. Type c$ and type the rest of the line like the second and press <ESC>.
+
+---> The end of this line needs some help to make it like the second.
+---> The end of this line needs to be corrected using the c$ command.
+
+NOTE: You can use the Backspace key to correct mistakes while typing.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 3 SUMMARY
+
+
+ 1. To put back text that has just been deleted, type p . This puts the
+ deleted text AFTER the cursor (if a line was deleted it will go on the
+ line below the cursor).
+
+ 2. To replace the character under the cursor, type r and then the
+ character you want to have there.
+
+ 3. The change operator allows you to change from the cursor to where the
+ motion takes you. eg. Type ce to change from the cursor to the end of
+ the word, c$ to change to the end of a line.
+
+ 4. The format for change is:
+
+ c [number] motion
+
+Now go on to the next lesson.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 4.1: CURSOR LOCATION AND FILE STATUS
+
+ ** Type CTRL-G to show your location in the file and the file status.
+ Type G to move to a line in the file. **
+
+ NOTE: Read this entire lesson before executing any of the steps!!
+
+ 1. Hold down the Ctrl key and press g . We call this CTRL-G.
+ A message will appear at the bottom of the page with the filename and the
+ position in the file. Remember the line number for Step 3.
+
+NOTE: You may see the cursor position in the lower right corner of the screen
+ This happens when the 'ruler' option is set (see :help 'ruler' )
+
+ 2. Press G to move you to the bottom of the file.
+ Type gg to move you to the start of the file.
+
+ 3. Type the number of the line you were on and then G . This will
+ return you to the line you were on when you first pressed CTRL-G.
+
+ 4. If you feel confident to do this, execute steps 1 through 3.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 4.2: THE SEARCH COMMAND
+
+
+ ** Type / followed by a phrase to search for the phrase. **
+
+ 1. In Normal mode type the / character. Notice that it and the cursor
+ appear at the bottom of the screen as with the : command.
+
+ 2. Now type 'errroor' <ENTER>. This is the word you want to search for.
+
+ 3. To search for the same phrase again, simply type n .
+ To search for the same phrase in the opposite direction, type N .
+
+ 4. To search for a phrase in the backward direction, use ? instead of / .
+
+ 5. To go back to where you came from press CTRL-O (Keep Ctrl down while
+ pressing the letter o). Repeat to go back further. CTRL-I goes forward.
+
+---> "errroor" is not the way to spell error; errroor is an error.
+NOTE: When the search reaches the end of the file it will continue at the
+ start, unless the 'wrapscan' option has been reset.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 4.3: MATCHING PARENTHESES SEARCH
+
+
+ ** Type % to find a matching ),], or } . **
+
+ 1. Place the cursor on any (, [, or { in the line below marked --->.
+
+ 2. Now type the % character.
+
+ 3. The cursor will move to the matching parenthesis or bracket.
+
+ 4. Type % to move the cursor to the other matching bracket.
+
+ 5. Move the cursor to another (,),[,],{ or } and see what % does.
+
+---> This ( is a test line with ('s, ['s ] and {'s } in it. ))
+
+
+NOTE: This is very useful in debugging a program with unmatched parentheses!
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 4.4: THE SUBSTITUTE COMMAND
+
+
+ ** Type :s/old/new/g to substitute 'new' for 'old'. **
+
+ 1. Move the cursor to the line below marked --->.
+
+ 2. Type :s/thee/the <ENTER> . Note that this command only changes the
+ first occurrence of "thee" in the line.
+
+ 3. Now type :s/thee/the/g . Adding the g flag means to substitute
+ globally in the line, change all occurrences of "thee" in the line.
+
+---> thee best time to see thee flowers is in thee spring.
+
+ 4. To change every occurrence of a character string between two lines,
+ type :#,#s/old/new/g where #,# are the line numbers of the range
+ of lines where the substitution is to be done.
+ Type :%s/old/new/g to change every occurrence in the whole file.
+ Type :%s/old/new/gc to find every occurrence in the whole file,
+ with a prompt whether to substitute or not.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 4 SUMMARY
+
+
+ 1. CTRL-G displays your location in the file and the file status.
+ G moves to the end of the file.
+ number G moves to that line number.
+ gg moves to the first line.
+
+ 2. Typing / followed by a phrase searches FORWARD for the phrase.
+ Typing ? followed by a phrase searches BACKWARD for the phrase.
+ After a search type n to find the next occurrence in the same direction
+ or N to search in the opposite direction.
+ CTRL-O takes you back to older positions, CTRL-I to newer positions.
+
+ 3. Typing % while the cursor is on a (,),[,],{, or } goes to its match.
+
+ 4. To substitute new for the first old in a line type :s/old/new
+ To substitute new for all 'old's on a line type :s/old/new/g
+ To substitute phrases between two line #'s type :#,#s/old/new/g
+ To substitute all occurrences in the file type :%s/old/new/g
+ To ask for confirmation each time add 'c' :%s/old/new/gc
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 5.1: HOW TO EXECUTE AN EXTERNAL COMMAND
+
+
+ ** Type :! followed by an external command to execute that command. **
+
+ 1. Type the familiar command : to set the cursor at the bottom of the
+ screen. This allows you to enter a command-line command.
+
+ 2. Now type the ! (exclamation point) character. This allows you to
+ execute any external shell command.
+
+ 3. As an example type ls following the ! and then hit <ENTER>. This
+ will show you a listing of your directory, just as if you were at the
+ shell prompt. Or use :!dir if ls doesn't work.
+
+NOTE: It is possible to execute any external command this way, also with
+ arguments.
+
+NOTE: All : commands must be finished by hitting <ENTER>
+ From here on we will not always mention it.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 5.2: MORE ON WRITING FILES
+
+
+ ** To save the changes made to the text, type :w FILENAME **
+
+ 1. Type :!dir or :!ls to get a listing of your directory.
+ You already know you must hit <ENTER> after this.
+
+ 2. Choose a filename that does not exist yet, such as TEST.
+
+ 3. Now type: :w TEST (where TEST is the filename you chose.)
+
+ 4. This saves the whole file (the Vim Tutor) under the name TEST.
+ To verify this, type :!dir or :!ls again to see your directory.
+
+NOTE: If you were to exit Vim and start it again with vim TEST , the file
+ would be an exact copy of the tutor when you saved it.
+
+ 5. Now remove the file by typing (Windows): :!del TEST
+ or (Unix): :!rm TEST
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 5.3: SELECTING TEXT TO WRITE
+
+
+ ** To save part of the file, type v motion :w FILENAME **
+
+ 1. Move the cursor to this line.
+
+ 2. Press v and move the cursor to the fifth item below. Notice that the
+ text is highlighted.
+
+ 3. Press the : character. At the bottom of the screen :'<,'> will appear.
+
+ 4. Type w TEST , where TEST is a filename that does not exist yet. Verify
+ that you see :'<,'>w TEST before you press <ENTER>.
+
+ 5. Vim will write the selected lines to the file TEST. Use :!dir or :!ls
+ to see it. Do not remove it yet! We will use it in the next lesson.
+
+NOTE: Pressing v starts Visual selection. You can move the cursor around
+ to make the selection bigger or smaller. Then you can use an operator
+ to do something with the text. For example, d deletes the text.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 5.4: RETRIEVING AND MERGING FILES
+
+
+ ** To insert the contents of a file, type :r FILENAME **
+
+ 1. Place the cursor just above this line.
+
+NOTE: After executing Step 2 you will see text from lesson 5.3. Then move
+ DOWN to see this lesson again.
+
+ 2. Now retrieve your TEST file using the command :r TEST where TEST is
+ the name of the file you used.
+ The file you retrieve is placed below the cursor line.
+
+ 3. To verify that a file was retrieved, cursor back and notice that there
+ are now two copies of lesson 5.3, the original and the file version.
+
+NOTE: You can also read the output of an external command. For example,
+ :r !ls reads the output of the ls command and puts it below the
+ cursor.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 5 SUMMARY
+
+
+ 1. :!command executes an external command.
+
+ Some useful examples are:
+ (Windows) (Unix)
+ :!dir :!ls - shows a directory listing.
+ :!del FILENAME :!rm FILENAME - removes file FILENAME.
+
+ 2. :w FILENAME writes the current Vim file to disk with name FILENAME.
+
+ 3. v motion :w FILENAME saves the Visually selected lines in file
+ FILENAME.
+
+ 4. :r FILENAME retrieves disk file FILENAME and puts it below the
+ cursor position.
+
+ 5. :r !dir reads the output of the dir command and puts it below the
+ cursor position.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 6.1: THE OPEN COMMAND
+
+
+ ** Type o to open a line below the cursor and place you in Insert mode. **
+
+ 1. Move the cursor to the first line below marked --->.
+
+ 2. Type the lowercase letter o to open up a line BELOW the cursor and place
+ you in Insert mode.
+
+ 3. Now type some text and press <ESC> to exit Insert mode.
+
+---> After typing o the cursor is placed on the open line in Insert mode.
+
+ 4. To open up a line ABOVE the cursor, simply type a capital O , rather
+ than a lowercase o. Try this on the line below.
+
+---> Open up a line above this by typing O while the cursor is on this line.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 6.2: THE APPEND COMMAND
+
+
+ ** Type a to insert text AFTER the cursor. **
+
+ 1. Move the cursor to the start of the first line below marked --->.
+
+ 2. Press e until the cursor is on the end of li .
+
+ 3. Type an a (lowercase) to append text AFTER the cursor.
+
+ 4. Complete the word like the line below it. Press <ESC> to exit Insert
+ mode.
+
+ 5. Use e to move to the next incomplete word and repeat steps 3 and 4.
+
+---> This li will allow you to pract appendi text to a line.
+---> This line will allow you to practice appending text to a line.
+
+NOTE: a, i and A all go to the same Insert mode, the only difference is where
+ the characters are inserted.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 6.3: ANOTHER WAY TO REPLACE
+
+
+ ** Type a capital R to replace more than one character. **
+
+ 1. Move the cursor to the first line below marked --->. Move the cursor to
+ the beginning of the first xxx .
+
+ 2. Now press R and type the number below it in the second line, so that it
+ replaces the xxx .
+
+ 3. Press <ESC> to leave Replace mode. Notice that the rest of the line
+ remains unmodified.
+
+ 4. Repeat the steps to replace the remaining xxx.
+
+---> Adding 123 to xxx gives you xxx.
+---> Adding 123 to 456 gives you 579.
+
+NOTE: Replace mode is like Insert mode, but every typed character deletes an
+ existing character.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 6.4: COPY AND PASTE TEXT
+
+
+ ** Use the y operator to copy text and p to paste it **
+
+ 1. Move to the line below marked ---> and place the cursor after "a)".
+
+ 2. Start Visual mode with v and move the cursor to just before "first".
+
+ 3. Type y to yank (copy) the highlighted text.
+
+ 4. Move the cursor to the end of the next line: j$
+
+ 5. Type p to put (paste) the text. Then type: a second <ESC> .
+
+ 6. Use Visual mode to select " item.", yank it with y , move to the end of
+ the next line with j$ and put the text there with p .
+
+---> a) this is the first item.
+ b)
+
+ NOTE: You can also use y as an operator: yw yanks one word,
+ yy yanks the whole line, then p puts that line
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 6.5: SET OPTION
+
+
+ ** Set an option so a search or substitute ignores case **
+
+ 1. Search for 'ignore' by entering: /ignore <ENTER>
+ Repeat several times by pressing n .
+
+ 2. Set the 'ic' (Ignore case) option by entering: :set ic
+
+ 3. Now search for 'ignore' again by pressing n
+ Notice that Ignore and IGNORE are now also found.
+
+ 4. Set the 'hlsearch' and 'incsearch' options: :set hls is
+
+ 5. Now type the search command again and see what happens: /ignore <ENTER>
+
+ 6. To disable ignoring case enter: :set noic
+
+NOTE: To remove the highlighting of matches enter: :nohlsearch
+NOTE: If you want to ignore case for just one search command, use \c
+ in the phrase: /ignore\c <ENTER>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 6 SUMMARY
+
+ 1. Type o to open a line BELOW the cursor and start Insert mode.
+ Type O to open a line ABOVE the cursor.
+
+ 2. Type a to insert text AFTER the cursor.
+ Type A to insert text after the end of the line.
+
+ 3. The e command moves to the end of a word.
+
+ 4. The y operator yanks (copies) text, p puts (pastes) it.
+
+ 5. Typing a capital R enters Replace mode until <ESC> is pressed.
+
+ 6. Typing ":set xxx" sets the option "xxx". Some options are:
+ 'ic' 'ignorecase' ignore upper/lower case when searching
+ 'is' 'incsearch' show partial matches for a search phrase
+ 'hls' 'hlsearch' highlight all matching phrases
+ You can either use the long or the short option name.
+
+ 7. Prepend "no" to switch an option off: :set noic
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 7.1: GETTING HELP
+
+
+ ** Use the on-line help system **
+
+ Vim has a comprehensive on-line help system. To get started, try one of
+ these three:
+ - press the <HELP> key (if you have one)
+ - press the <F1> key (if you have one)
+ - type :help <ENTER>
+
+ Read the text in the help window to find out how the help works.
+ Type CTRL-W CTRL-W to jump from one window to another.
+ Type :q <ENTER> to close the help window.
+
+ You can find help on just about any subject, by giving an argument to the
+ ":help" command. Try these (don't forget pressing <ENTER>):
+
+ :help w
+ :help c_CTRL-D
+ :help insert-index
+ :help user-manual
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 7.2: CREATE A STARTUP SCRIPT
+
+
+ ** Enable Vim features **
+
+ Vim has many more features than Vi, but most of them are disabled by
+ default. To start using more features you have to create a "vimrc" file.
+
+ 1. Start editing the "vimrc" file. This depends on your system:
+ :e ~/.vimrc for Unix
+ :e $VIM/_vimrc for Windows
+
+ 2. Now read the example "vimrc" file contents:
+ :r $VIMRUNTIME/vimrc_example.vim
+
+ 3. Write the file with:
+ :w
+
+ The next time you start Vim it will use syntax highlighting.
+ You can add all your preferred settings to this "vimrc" file.
+ For more information type :help vimrc-intro
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 7.3: COMPLETION
+
+
+ ** Command line completion with CTRL-D and <TAB> **
+
+ 1. Make sure Vim is not in compatible mode: :set nocp
+
+ 2. Look what files exist in the directory: :!ls or :!dir
+
+ 3. Type the start of a command: :e
+
+ 4. Press CTRL-D and Vim will show a list of commands that start with "e".
+
+ 5. Type d<TAB> and Vim will complete the command name to ":edit".
+
+ 6. Now add a space and the start of an existing file name: :edit FIL
+
+ 7. Press <TAB>. Vim will complete the name (if it is unique).
+
+NOTE: Completion works for many commands. Just try pressing CTRL-D and
+ <TAB>. It is especially useful for :help .
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lesson 7 SUMMARY
+
+
+ 1. Type :help or press <F1> or <HELP> to open a help window.
+
+ 2. Type :help cmd to find help on cmd .
+
+ 3. Type CTRL-W CTRL-W to jump to another window.
+
+ 4. Type :q to close the help window.
+
+ 5. Create a vimrc startup script to keep your preferred settings.
+
+ 6. When typing a : command, press CTRL-D to see possible completions.
+ Press <TAB> to use one completion.
+
+
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ This concludes the Vim Tutor. It was intended to give a brief overview of
+ the Vim editor, just enough to allow you to use the editor fairly easily.
+ It is far from complete as Vim has many many more commands. Read the user
+ manual next: ":help user-manual".
+
+ For further reading and studying, this book is recommended:
+ Vim - Vi Improved - by Steve Oualline
+ Publisher: New Riders
+ The first book completely dedicated to Vim. Especially useful for beginners.
+ There are many examples and pictures.
+ See http://iccf-holland.org/click5.html
+
+ This book is older and more about Vi than Vim, but also recommended:
+ Learning the Vi Editor - by Linda Lamb
+ Publisher: O'Reilly & Associates Inc.
+ It is a good book to get to know almost anything you want to do with Vi.
+ The sixth edition also includes information on Vim.
+
+ This tutorial was written by Michael C. Pierce and Robert K. Ware,
+ Colorado School of Mines using ideas supplied by Charles Smith,
+ Colorado State University. E-mail: bware@mines.colorado.edu.
+
+ Modified for Vim by Bram Moolenaar.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n
+
+
+ Using only command-line programs (ls
, cd
) jump around your user directories. What are some of the interesting options for these programs?
Consider an i-node that contains 10 direct addresses to disk blocks. Disk Blocks are 1024 kb each. What's the largest file size possible?
+How are external devices represented in file systems in Unix-like systems?
+For a given class, the student records are stored in a file. The records are randomly accessed and updated. Assume that each student's record is of fixed size. Which of the three allocation schemes (contiguous, linked and table/indexed) should be used?
+One way to use contiguous allocation of the disk and not suffer from holes is to compact the disk every time a file is removed. Since all files are contiguous, copying a file requires a seek, a disk hand rotation, followed by the transfer at full speed. Writing the file back requires the same work. Assuming a seek time of 5 msec, a rotational delay of 4 msec, a transfer rate of 80 MB/sec, an average file size of 8 KB, how long does it take to read a file into main memory and then write it back to the disk at a new location? Using these numbers, how long would it take to compact half of a 16-GB disk?
+Suggest a few real-world examples for devices that would work with contiguous file systems?
+Is it possible to recover the disk in the case that free space list is damaged?
+How many disk operations are necessary to get the file at /home/$USER/Documents/history/foucault.txt
path? Presume that we are located at the root (/
), no i-node is cached and each i-node transition takes 1 disk operation.
In many *nix systems, the i-nodes are kept at the start of the disk. An alternative design is to allocate an i-node when a file is created and put the i-node at the start of the first block of the file. What are the tradeoffs of this approach?
+There are more examples and details in the presentations, this is just a short and quick reminder
+^
- Start of string$
- End of string\b
- Word boundary\B
- Not word boundary?=
- Lookahead assertion?!
- Negative lookahead?<=
- Lookbehind assertion?!=
- Negative lookbehindExamples
+ucu(?=rules)
matches ucurules
ucu(?=rules)
doesn’t match ucu
(?<=linux)club
matches linuxclub
(?<=linux)club
doesn’t match roboclub
.
- Any character except newline(a|b)
- a or b(...)
- Group[abc]
- a or b or c[^abc]
- Not (a or b or c)[a-q]
- a or b or ... up to q[A-Q]
- The same, but for uppercase letters[2-7]
- The same, but for digits\x
- Allows to reuse group number x
Examples
+[A-D]
matches A, B, C or D(abc)\1
matches abcabc
\s
- White space\d
- Digit\w
- Word\S
\D
\W
- Not whitespace, digit or word respectively*
- 0 or more+
- 1 or more?
- 0 or 1{3}
- Exactly 3{3,}
- 3 or more{3,5}
- 3,4 or 5\
- Escape the following metacharacter{}[]()^$.*+?|\
- Common metacharacters to escape to use their literal meaning$n
- nth group$1
- will capture first group - abc
in (abc)(xyz)
Examples:
+ucu doesnt rule
and replace the match (ucu) doesnt (rule)
with the $1 $2s
pattern, the result will be: ucu rules
insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+insert your pattern here
+
+
+ This week you had a lecture about booting and bootloaders in particular. Even though they are very small they still can cause a lot of troubles. In this homework, you don't need to submit anything, though it doesn't mean that you should do nothing. You have a few tasks below with the most common problems and just useful things.
+If you are a happy owner of mac than these tasks aren't for you. But you still have your own homework: as we didn't talk about mac bootloader, please find out more about it.
+I have heard that some of you still don't know how to access BIOS setup. So your first task will be to boot from it :)
+BIOS setup is also very small, but have many useful and interesting settings. I do not recommend you to play with them unless you want to crash your computer, but highly recommend you to read more about them.
+As Linux user, you often will need to boot from USB (flash drive) and you can do this from BIOS, so, this task is MANDATORY! If you won't know how to boot from USB after this homework - shame on you ^^. +(For lazy ones) Hope you will be able to find out how to boot Linux/Windows from it.
+As I have noted boot loaders are really small, so most companies initially put 100 MB on them. But now your bootloader has to deal with two OS (or even more), so they need more space. Firstly, check how much space it already has:
+lsblk
+
+This will show you all your partitions, you just need to find one with '/boot' mark.(more commands for partitions). +
+As you can see I allocated 900MB for my boot 0_0 I think for you 500MB will be more than enough. If you already have 200MB+ than it isn't so critical for you...maybe... But if you have only 100MB it is mandatory for you to increase it to 500!
+I know that you are new to Linux, so was I when I faced with a boot memory problem. So you have no excuses for not doing this part!
+(Plz, do not hate me for this task)
+I know that most of you didn't install Linux by themselves(someone did it for you). So you probably don't know how to install and set bootloader. Change your bootloader (systemd-boot <-> GRUB), delete previous one (for users that have already changed something in their boot loaders' config: don't delete files with configs), do some tasks for it and go back to your previous bootloader, or stay on a new one if you like it more. (Some guides below)
+(If you have another bootloader than it probably will be better if you change it to systemd-boot|GRUB)
+Check whether you have UEFI or BIOS.
+I hate when I have only 5, 4, 3, 2, 1.... ****! seconds to choose the wanted OS. Haven't you changed it yet? If no, then it is a perfect time for it! Make your bootloader more comfortable.
+Systemd-boot doesn't give you so many configurations as GRUB. But still, try to find out how to autoload another OS (a task with *) Useful site +Useful site
+Switch to GRUB now (install grub, mount it, remove systemd-boot (REMEMBER THAT SOME COMMANDS YOU CAN EXECUTE ONLY FROM ROOT (sudo su)).
+The same task to change your timer :) Remember what GRUB files you can edit and what you don't need to touch?
+Find where GRUB add your Arch|Manjaro and Windows(another second OS) to the menu (do not change anything). It may help you if GRUB doesn't add all OS automatically and you need to do it by yourself. Big hint:
+cd /etc/grub.d
+
+Change your theme (task with *, for ones that will stay with GRUB).
+If you are familiar with GRUB and want to do something harder then try to put a password on it :)
+Hints BUT DO NOT USE Grub-customizer!!!
+Change GRUB to systemd-boot (scroll to the bottom and do exactly like this guy)
+This homework won't be hard. So, what do you need to do:
+All this things you should do on virtual machine, as you may damage your partition table!
+You need to create a new GTP table and a number of partitions
+You can use cfdisk
or parted
to do it.
+Steps to do:
As result you should write short text about which commands you used, which menu opened etc.
+Save this file as report_partitions.txt
Also, after your work you should take a screenshot of command fdisk -l
that will show your work and save it as report_partitions.jpg
Hint: Use journalctl and dmesg
+Rewrite hello_world unit from the lecture using the timer (If systemd refuses to start a unit each second, trigger it each 10 sec)
+write a timer unit that clears all versions except for the last version of the package in pacman cache.
+Hint: paccache
+All details, like syntax for the config in 1) are up to you. (But bash for scripting is prefered) Just write good README with explanations. If you want to add some functionality, go ahead!
+Useful links for the homework:
+My telegram: @pavlohiley
+think twice before writing -_-
+ +After setting up your IDE (VS Code, JetBrains CLion, Vim are among many +of the options available) and having your program ready, you have to compile it +(i.e. turn the text of the program into a machine code which your computer will +be able to run later).
+This can be done like this, in your terminal:
+gcc programname.c -o outputname
+
+If there were errors or notes during the compilation process, the compiler +(here we are using the GCC compiler) will notify you. If the program compiled +correctly, you can later run the generated executable:
+./outputname
+
+Code for execution goes into files with “.c” suffix. Shared decl’s +(included using #include “mylib.h”) in “header” files, end in “.h”
+Characters to the right of //
are not interpreted; they’re a comment.
+Text between /*
and */
(possibly across lines) is commented out as well.
char
- an ASCII value: e.g. ‘a’ (see: man ascii)int
- a signed integer: e.g. 97 or hex 0x61, oct 0x141float
- a floating-point (possibly fractional) valuedouble
- a double length float char
, int
, and double
are most frequently and easily used in small
+programs.
sizeof(double) computes the size of a double in bytes.
+Zero values represent logical false, nonzero values are logical true.
+A function is a pointer to some code, parameterized by formal parameters, +that may be executed by providing actual parameters. Functions must be +declared before they are used, but code may be provided later.
+A sqrt
function for positive n
might be declared as:
int addNumbers(int a, int b) // function definition with return type, name and parameters
+{
+ int result;
+ result = a+b;
+ return result; // return statement
+}
+Functions that do not return anything return `void`.
+There must always be a main function that returns an int:
+
+int main()
+{
+ return 0;
+}
+
+Angle brackets identify syntactic elements and don’t appear in real +statements
+<expression> ; //semicolon indicates end of a simple statement
+break; //quits the tightest loop or switch immediately
+continue; //jumps to next loop test, skipping rest of loop body
+return x; //quits this function, returns x as value
+if (<condition>) <stmt>! //stmt executed if cond true (nonzero)
+if (<condition>) <stmt> else <stmt> // two-way condition
+while (<condition>) <stmt> //repeatedly execute stmt only if condition true
+do <stmt> while (<condition>); //note the semicolon, executes at least once
+for (<init>; <condition>; <step>) { <statements> }
+
+The homework requires you to include several header files with the needed functions:
+#include <stdio.h>
)🔗Default input comes from “stdin”; output goes to “stdout”; errors to “stderr”.
+Standard input and output routines are declared in stdio.h
: #include <stdio.h>
scanf(p,...)
- reads ... args using format p (below); printf(p, ...)
- write ... args using format p (below); pass args as is fprintf(f,p,...)Format specifiers:
+%c
- character
+%d
- decimal integer
+%s
- string
+%f
- float
#include <stdlib.h>
)🔗malloc(n)
- allocates n
bytes of memory; (for type T: p = (T*)malloc
)There is a short introduction and cheat sheat available here, which explains +the basics of the C programming language and its compilation process on Linux.
+Let's recreate the pyramids from Super Mario in text:
+ #
+ ##
+ ###
+ ####
+ #####
+######
+
+So, the program should prompt the user to input the height of the pyramid +and then output the pyramid of the specified height:
+$ ./mario
+Height: 6
+ #
+ ##
+ ###
+ ####
+ #####
+######
+
+Other examples:
+$ ./mario
+Height: 2
+ #
+##
+
+$ ./mario
+Height: 1
+#
+
+Create a program that takes two integer numbers as an input from the user +(a ≤ b) and for every number in the interval [a; b] outputs:
+odd
or even
$ ./interval
+Input a: 8
+Input b: 11
+
+eight
+nine
+even
+odd
+
+Other examples:
+$ ./interval
+Input a: 13
+Input b: 15
+
+odd
+even
+odd
+
+$ ./interval
+Input a: 1
+Input b: 4
+
+one
+two
+three
+four
+
+Develop a program which is going to output English text according to these rules:
+L
.
+Then, output the text as a table with the number of rows and columns, where
+[√L] ≤ rows ≤ columns ≤ [√L] + 1
([x] is an integer part of the number) For example, the message capital is an abstract parasite, an insatiable vampire and zombie maker; but the living flesh it converts into dead labor is ours, and the zombies it makes are us
has a length of 134 symbols without
+the whitespace, we can output it in a table 12 x 12.
capitalisan
+abstractpar
+asite,anins
+atiablevamp
+ireandzombi
+emaker;butt
+helivingfle
+shitconvert
+sintodeadla
+borisours,a
+ndthezombie
+sitmakesare
+us
+
+You have to check whether rows × columns ≥ L
and if there are several
+possible rectangles choose the one with the smaller area.
Other examples:
+$ ./table
+Input your text: it is time that lived moments replace the dead memory that has stamped acquaintance with the hidden restriction that nothing can ever be experienced.
+
+Characters total: 126
+Rows: 11
+Columns: 12
+
+itistimethat
+livedmoments
+replacethede
+admemorythat
+hasstampedac
+quaintancewi
+ththehiddenr
+estrictionth
+atnothingcan
+everbeexperi
+enced.
+
+Develop a program which, taking two integer arrays as its input will +create a new integer array. The new array consists of the digits of the sum of the original +two arrays' elements.
+So, for the example if given two arrays {23, 5, 2, 7, 87} and {4, 67, 2, 8}, +the new array will look like this {2, 7, 7, 2, 4, 1, 5, 8, 7}.
+If the array is empty, just consider the respective elements as zeros. +Then, if given two arrays { } and {4, 67, 3, 8} then the new array will look +like {4, 6, 7, 3, 8}.
+An example usage:
+$ ./arrays
+Input the length of the first array: 5
+Input the numbers: 5
+23
+5
+2
+7
+87
+
+Input the length of the second array: 5
+Input the numbers: 4
+4
+67
+2
+8
+
+The output array:
+2 7 7 2 4 1 5 8 7
+
+
+ + 6.8.2021 | 4 min. +
+Click here to be redirected.
diff --git a/archive/2020_2/readme/index.html b/archive/2020_2/readme/index.html new file mode 100644 index 0000000..374602a --- /dev/null +++ b/archive/2020_2/readme/index.html @@ -0,0 +1,481 @@ + + + + +We are just a bunch of students from Ukrainian Catholic University passionate about +computing! We like to know how our system works under the hood, both because we +want to use all the resources we have at our disposal - the computing power, +useful abstractions and tools; and because we like to tinker with stuff. +And what's even better than knowing how to do magical things with your computer? +Letting others know they can do it too, which is why we are organizing this club - +an informal course for Ukrainian computer science students taught by students!
+We are also huge supporters of the philosophy of open source and free software, +which is why we've chosen to call our club after the Linux operating system +(and why we're going to use it throughout our lectures), +and why we've decided to make this course public.
+You can join us live - we have lectures each Wednesday 16:30 Kyiv time, or watch +our previous recorded lectures and read through lecture notes.
+(Previous semesters' resources are available in the archive)
+Week 1 - Internet and Network Interfaces - +Zoom | +Lecture notes
+Week 2.1 - Markup Languages (Latex, XML HTML, JSON, TOML) - +Zoom | +Lecture notes
+Week 2.2 - Development Lifecycle and Licenses - +Zoom | +Lecture notes
+Week 3 - Extended Git - +Zoom | +Lecture notes | +Recording
+Week 4 - Extended Bash - +Zoom | +Lecture notes | +Recording
+Week 5 - Logs and Debugging the System - +Zoom | +Lecture notes | +Recording
+Week 6 - Rust #1 - +Zoom | +Lecture notes | +Recording
+Week 7 - Rust #2 - +Zoom | +Lecture notes | +Recording
+Week 8.1 - Extended Vim - +Zoom | +Recording
+Week 8.2 - Ricing (System customization) - +Zoom | +Recording
+Week 9 - Rust #3 - +Zoom | +Lecture notes | +Recording
+Week 10 - Rust #4 - +Zoom | +Lecture notes | +Recording
+Week 11 - SSH - +Zoom | +Lecture notes
+Week 12 - Docker
+Yeah, we don't like homework either, but practicing something yourself +is the best way to learn a new topic! Most of our lectures will provide +some kind of a home task for you to complete - both to remind yourself +what the lecture was about and to learn on your own.
+You don't need to submit these homeworks, but if you want our feedback on +them to learn even more, here are a few simple steps for you to follow:
+./homework
+ 5.4.2021 | 1 min. +
+Click here to be redirected.
diff --git a/archive/readme/index.html b/archive/readme/index.html new file mode 100644 index 0000000..7b37404 --- /dev/null +++ b/archive/readme/index.html @@ -0,0 +1,394 @@ + + + + +Our previous semesters' lectures and materials are all available in the archive.
+Note that first and second semesters are different and generally you have to complete +the first before going over to the second!
+ + +The basis for this tutorial is this one
+Always keep tabs on this extended official tutorial.
+First of all, install arch ISO on your USB stick. Here you can find an official image.
+Check your USB name using fdisk program fdisk -l
. Ypu are interested in /dev/sdX
kind of disk.
Use dd
tool to make bootable drive
$ sudo dd if=path_to_arch_image.iso of=/dev/sdX bs=4M
+
+
+First of all, install arch ISO on your USB stick. Here you can find an official image.
+I recomend using RUFUS for proper image installation. Choose everything as you see on this photo: +
+Important! all files from USB-stick will be deleted
+Now go to the BIOS (press F2 or F8 or smth else on you laptop during booting), and choose UEFI mode
and change boot order (make your USB first prior). result should be something like that:
Save changes and exit
+Firstly check if you're loaded in EFI mode: efivar -l
. The output should be like this:
+
On some computers Wifi won't work without turning the module on with this command: rfkill unblock all
Now let's turn on Wifi. Firstly get name of your interface: ip link
(it usually starts with 'w', i.e: 'wlan0')
+Then activate the interface: ip link set interface_name up
.
First method: iwctl
iwctl
+station interface_name scan
+station interface_name get-networks
+station interface_name connect network_name
+
+Example of turning on wifi:
+ +Check if internet works with ping google.com
(should appear messages with '64 bytes' at the beginning, press CTRL+C to finish check)
Time synchronization: timedatectl set-ntp true
Now let's look at your previous boot records: efibootmgr
and delete previous linux or some other stuff: efibootmgr -b X -B
, where 'X' is number of stuff's boot
Here is how it should look like +
+Now disk management: cfdisk
. Here I delete everything from previous system and
Here, how it looks on my laptop: + +As you can see I have 64GB root (/dev/sda11), 33GB home (/dev/sda10) 20GB swap (/dev/sda5), and my boot is /dev/sda3. Remeber, that on your laptop/PC, there will be other partition numbers.
+Now format partition and mount them. Root:
+mkfs.ext4 /dev/sda{root number} -L "arch"
+mount /dev/sda{root number} /mnt
+
+Boot:
+mkdir -p /mnt/boot
+mkfs.fat -F32 /dev/sda{boot number}
+mount /dev/sda{boot number} /mnt/boot
+
+Or just mount Windows EFI partition, if you didn't create new one
+mount /dev/sda{windows boot number} /mnt/boot
+
+Swap:
+mkswap /dev/sda{swap num}
+swapon /dev/sda{swap num}
+
+Home:
+mkdir -p /mnt/home
+mkfs.ext4 /dev/sda{home number} -L "home"
+mount /dev/sda{home number} /mnt/home
+
+Now let's update pacman: pacman -Syy
Install base system and packet for future AUR using: pacstrap /mnt base linux linux-firmware base-devel linux-headers
Generate fstab: genfstab -L /mnt >> /mnt/etc/fstab
+Check if it is generated: nano /mnt/etc/fstab
Example fstab(don't forget to change filesystem UUIDs (you can find them in 'cfdisk')):
+UUID=8d3f44f4-a017-4c76-9e66-dd5068dc5397 / ext4 rw,relatime,discard 0 1
+
+UUID=2f671175-0fe6-472a-a4b0-1da5345f03e1 /home ext4 rw,relatime,discard 0 2
+
+UUID=1892-CB1C /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2
+
+!!IMPORTANT!! If you have SSD, than this is extremely important to automatically activate TRIM each time it's needed. This will save lifetime of your SSD. So please, add 'discard' option to mount points in fstab (as you can see in the example)
+Now let's go in arch: arch-chroot /mnt
It is good idea to download an adequate text editor at the beggining: pacman -S vim
super short guide for vim:
+Adjust locals: vim /etc/locale.gen
and uncomment
en_US.UTF-8 UTF-8
+ru_RU.UTF-8 UTF-8
+uk_UA.UTF-8 UTF-8
+
+Don't forget to save and actually generate the locales:
+locale-gen
+
+Adjust time zone and time:
+ln -sf /usr/share/zoneinfo/Europe/Kiev /etc/localtime
+hwclock --systohc
+
+Adjust the name of the computer: vim /etc/hostname
and write there "YOUR_HOSTNAME"
Adjust hosts: vim /etc/hosts
and write there -"127.0.0.1 pavlik_giley.localdomain YOUR_USERNAME"-
+DONT FORGET TO SAVE EVERYTHING
Password for root: passwd
Add new user: useradd -G wheel -s /bin/bash -m YOUR_USERNAME
, and give him sudo permissions: vim /etc/sudoers
+and uncomment %wheel ALL=(ALL) ALL
user's password: passwd YOUR_USERNAME
Download some potentially useful stuff: pacman -S efibootmgr iw wpa_supplicant dialog netctl dhcpcd iwd
.
+And more: pacman -S ntfs-3g mtools fuse2
Install bootloader: bootctl install
Loader config: vim /boot/loader/loader.conf
Example loader:
+default arch
+timeout 2
+editor 0
+
+(It will wait 2 seconds before running into default choice - arch, editor 0 means you can't change loader parameters during boot(this is for security))
+Now it is vital to adjust kernel settings:
+pacman -S intel-ucode
+vim /boot/loader/entries/arch.conf
+
+Write here something like this (maybe you will need to change them in the future):
+title Arch Linux
+linux /vmlinuz-linux
+initrd /intel-ucode.img
+initrd /initramfs-linux.img
+options root="LABEL=arch" rw
+
+Now exit and umount all partition:
+exit
+umount -R /mnt
+reboot
+
+Install X: sudo pacman -S xorg-server xorg-xinit xorg-apps mesa-libgl xterm
Install graphic drivers:
+sudo pacman -S xf86-video-intel
+sudo pacman -S nvidia #if you have nvidia GPU
+
+Now install GNOME itself:
+sudo pacman -Syu
+sudo pacman -S gnome
+systemctl enable NetworkManager
+systemctl enable gdm
+
+Lenovo y530 (my laptop) can't render HDMI output with intel GPU, so if you want to use second monitor, read here
+Also download prime-run (for running application with nvidia GPU(if you have nvidia): sudo pacman -S prime-run
You should be all set! Proceed to programs list, resources and useful links docs.
+First of all set normal wallpalers, change touchpad sensitivity and other settings in GNOME
+Python:
+sudo pacman -S python-pip
+sudo pacman -S ipython
+
+Battery optimization:
+sudo pacman -S tlp
+sudo tlp start
+sudo systemctl enable tlp.service
+
+It's a good idea to create new mirrorlist file for Pacman, if you from Ukraine, you can use this: (replace it in /etc/pacman.d/mirrorlist)
+## Ukraine
+Server = http://archlinux.ip-connect.vn.ua/$repo/os/$arch
+Server = https://archlinux.ip-connect.vn.ua/$repo/os/$arch
+Server = http://mirror.mirohost.net/archlinux/$repo/os/$arch
+Server = https://mirror.mirohost.net/archlinux/$repo/os/$arch
+Server = http://mirrors.nix.org.ua/linux/archlinux/$repo/os/$arch
+Server = https://mirrors.nix.org.ua/linux/archlinux/$repo/os/$arch
+
+Or use automated tool rankmirrors
for ranking mirrors:
rankmirrors -n 0 /etc/pacman.d/mirrorlist
+
+Terminal: sudo pacman -S terminology
git: sudo pacman -S git
yay: git clone https://aur.archlinux.org/yay.git; cd yay; makepkg -si
zsh installation and customization with oh my zsh:
+cd ~
+sudo pacman -S zsh
+sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
+git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
+echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc
+
+Browser + telegram:
+yay telegram-desktop
+yay firefox
+
+Don't forget to sign in gmail, youtube, CMS, etc.
+CUSTOMIZATION
+sps gnome-tweaks
+
+Download all extension and setup tweask as you like
+Install VScode: yay visual-studio-code-insiders
Cion yay clion #chose just clion
. Don't forget to activate licension and type path to compilers and debugger
Pycharm yay pycharm #choose community version
Don't forget to install material theme and set 18's font
STM32. Install eveything except eclipse from this tutorial +After this download STM32CubeMX itself from official site +Then unzip script, give permissions to run it (chmod +x scriptname.sh) and run it with sudo
+Then if you will have problems with debuggger run those commands:
+cd /usr/lib
+sudo ln -s libncursesw.so.6.1 libncurses.so.5
+sudo ln -s libncursesw.so.6.1 libtinfo.so.5
+
+Follow this tutorial to work with STM32 through CLion:
+List of other apps I use:
+Also it's quite useful to configurate your touchpad gestures with this application, if you're using xorg on gnome
+Looks like that's it. Happy archlinux experience!
+ ++ 20.9.2021 | 2 min. +
++ 24.4.2021 | 3 min. +
++ 27.11.2019 | 8 min. +
++ 27.11.2019 | 3 min. +
++ 27.11.2019 | 3 min. +
++ 27.11.2019 | 1 min. +
+You'll need an Internet connection, laptop with some spare disk space, and a USB flash drive.
+Download Manjaro .iso
file with desktop manager of your choosing (XFCE, KDE Plasma, GNOME)
Burn an .iso
file to a USB drive:
rufus
+dd
+lsblk
before inserting your USB and after, remember its name.sudo dd bs=4M if=<iso_file> of=<device_name> conv=fdatasync status="progress"
. dd is a utility that allows to copy and move files, with if
representing input file, and of
- output file. bs
represents the number of bytes to write at a time, and conv
allows for safe finished file transfer.etcher
+Free up some space (can skip this step if you have an empty drive)
+Create a new partition with all the free space (if you want to have a dual-boot)
+Install the operating system on the new partition
+Turn your laptop off and insert the USB drive, enter BIOS mode (by repeatedly tapping esc
or f1-f5
keys) and boot from the USB drive.
Press enter
and wait for the system to load, open the install manager, select all the settings you require.
On the partitioning stage, choose manual partitioning
and create a new GPT partition table, if needed. Afterwards, split the free space into:
boot/efi
partition. File system: FAT32, Mount point: /boot/efi, Flags: boot, Size: 512mibroot
partition, all your main programs are going to be located here. File system: ext4, Mount point: /, Flags: none, Size: 20-30gbswap
partition. File system: linuxswap, Flags: swap, Size: the same size as your RAMhome
partition. File system: ext4, Mount point: /home, Flags: none, Size: all the rest of the space, for a minimum of 20gbChoose next
and proceed with the installation. After it asks to restart, accept and pull the USB drive out once your laptop turns off.
Install necessary packages for AUR usage
+sudo pacman -Syy
+sudo pacman -S fakeroot binutils patch
+
+sudo pacman -Syu
+
+If you want to know why we require you to have an Arch Linux-based system installed, read below. You can also skip right to our pages on Manjaro installation and Arch installation.
+(Some of the terms below might be relatively new, we've emphasized them with italics, and we encourage you to read more about them! We will explain much more during the club itself, so don't fret)
+What's Linux?
+Linux is a popular operating system (Windows or MacOS are some of the other OSs you might have heard about).
+Why Linux?
+Linux is open-source: all of its code is not only freely available for you to use and compile, but everyone is allowed to modify the source code and submit their changes! Linux allows for easy extension and customization, and is irreplaceable for developers that need any reasonable level of control over their system.
+Windows and MacOS are not open-source, and are not at all easy to obtain and modify! They are mostly targeted at mass-market users and not experienced developers.
+Over the course of the year you will gain familiarity with your operating system and will, little by little, understand what's actually happening under the hood of your computer, and be able to set it up just the way you want (and fix it, too)!
+Why did we choose Arch Linux?
+Linux is the kernel of the operating system (the kernel includes the most important things that are required for your computer to be able to boot and function correctly), but most people use various Linux distributions that are targeted at actual users: they also include some pre-installed software, graphical interfaces, package managers etc.
+Arch Linux is one of the most popular Linux distributions that tries to Keep It Simple. It's extremely lightweight and flexible, and we believe that it allows for a great level of exposure to all the underlying operating system mechanisms and interfaces. It can be fairly difficult to install it the first time around though, so you might prefer Manjaro Linux - another distribution that is based on Arch.
+What's the difference between Manjaro and Arch?
+Manjaro comes with more pre-installed software and a graphical interface of your choosing (base Arch Linux is just a dark command line!), and will be easier to use if this is your first experience with Linux. Manjaro is based on Arch Linux, meaning it still has its package manager system, a minimal setup and easy configuration.
+There are downsides, of course, a minimal Manjaro installation will require about 30Gb of disk space (Arch takes up around 7Gb) and might include some software you do not actually need. You will also not be able to see the naked and real process of the installation, instead prompted with simple questions on a GUI.
+If this is your first time with Linux, we recommend you proceed to our Manjaro installation guide. If you already have some experience with it, or want to be challenged, see our Arch installation guide.
+ +Click here to be redirected.
diff --git a/articles/programs/index.html b/articles/programs/index.html new file mode 100644 index 0000000..78dc66e --- /dev/null +++ b/articles/programs/index.html @@ -0,0 +1,583 @@ + + + + +Almost every program you'll ever need is available in AUR (using yay
)
In the terminal emulator
+sudo pacman -S git
+cd ~/Downloads
+git clone https://aur.archlinux.org/yay-bin.git
+cd yay-bin
+makepkg -si
+
+Also, you need to add this to the end of pacman.conf
file
sudo nvim /etc/pacman.conf
+
+[archlinuxfr] </br>
+SigLevel = Never </br>
+Server = http://repo.archlinux.fr/$arch </br>
+
+yay 'program_name'
+
+yay zsh
+chsh -s $(which zsh)
+
+Basic Python interpreter, called Cython (python3
in the terminal),
+is good enough, but it is not very fast and does not have a lot of features
Git is an open-source version control system that +was started by Linus Torvalds — the same person who created Linux. +GitHub.com — allows developers to store their git projects and +network with like-minded people.
+If you have some issues during the first year of writing the +code in any language, the solution is probably here. If there is +no solution, you are doing something wrong.
+Arch wiki is a user portal for Arch-based systems with +a lot of manuals and documentation for every application.
+The most popular forum where you can find +a lot of helpful stuff and discuss topics with other geeks.
+Yes, you can find a lot of basic and intermediate tutorials +on Linux, Bash and other stuff on Youtube, it's not only for +casual stupid videos.
+The course that I passed to learn Vim.
+I don`t know, if it is good or bad resource, but it seems okay.
+Doesn't look great, but is useful anyway.
+ +Arch Linux itself is not very simple for beginners, but amazing +if you want to know the system better. Here are a few links where +you can read more about Arch Linux installation.
+The most difficult stuff for the beginner is Arch installation and graphics. +The best manual for that is located on +Arch Wiki.
+Graphincs installation and dual boot with Windows are covered in our Arch Installation tutorial
+We are just a bunch of students from Ukrainian Catholic University passionate about +computing! We like to know how our system works under the hood, both because we +want to use all the resources we have at our disposal - the computing power, +useful abstractions and tools; and because we like to tinker with stuff. +And what's even better than knowing how to do magical things with your computer? +Letting others know they can do it too, which is why we are organizing this club - +an informal course for Ukrainian computer science students taught by students!
+We are also huge supporters of the philosophy of open source and free software, +which is why we've chosen to call our club after the Linux operating system +(and why we're going to use it throughout our lectures), +and why we've decided to make this course public.
+Join us live on Wednesday 16:50 Kyiv time at UCU Lectorium (K-016)!
+(Previous semesters' resources are available in the archive)
+Week 0 - Intro and Club Presentation - Teodor Muzychuk
+Week 1.1 (20.09) - Intro to Open Source - Teodor Muzychuk
+Week 1.2 (20.09) - Package managers - Bohdan Ruban
+Week 1.3 (sat 23.09 14:00 at Lectorium|IT space) - С++ Crash Course (recommended for 2nd year students) - Ostap Trush and Mykhailo Sobko
+Week 2 (27.09) - CLI and Bash - Teodor Muzychuk
+Week 3 (04.10) - Git and Github Workshop - Dmytro Shumshkyi
+Week 4 (11.10) - Vim + tmux - Teodor Muzychuk
+Week 5 (25.10) - Partition Tables and Bootloaders - Roman Mutel
+Week 6.1 (18.10) - Linux Filesystem Hierarchy - Ostap Trush
+Week 6.2 (18.10) - Regular Expressions - Dmytro Shumshkyi
+Week 7 (01.11) - Filesystems - Oleksii Hoyev
+Week 8 (08.11) - SSH - Roman Mutel
+Week 9 (15.11) - Kernel, Systemd, Utilities - Ostap Seryvko
+Week 10 (22.11) - Graphics: DM, DE, WM, X.org, rice - Ostap Seryvko
+Week 11 (29.11) - Internet Utilities and Features - Oleksii Hoyev
+Yeah, we don't like homework either, but practicing something yourself +is the best way to learn a new topic! Most of our lectures will provide +some kind of a home task for you to complete - both to remind yourself +what the lecture was about and to learn on your own.
+You don't need to submit these homeworks, but if you want our feedback on +them to learn even more, here are a few simple steps for you to follow:
+./homework
Click here to be redirected.
diff --git a/readme/index.html b/readme/index.html new file mode 100644 index 0000000..b29fc89 --- /dev/null +++ b/readme/index.html @@ -0,0 +1,490 @@ + + + + +We are just a bunch of students from Ukrainian Catholic University passionate about +computing! We like to know how our system works under the hood, both because we +want to use all the resources we have at our disposal - the computing power, +useful abstractions and tools; and because we like to tinker with stuff. +And what's even better than knowing how to do magical things with your computer? +Letting others know they can do it too, which is why we are organizing this club - +an informal course for Ukrainian computer science students taught by students!
+We are also huge supporters of the philosophy of open source and free software, +which is why we've chosen to call our club after the Linux operating system +(and why we're going to use it throughout our lectures), +and why we've decided to make this course public.
+Join us live on Wednesday 16:50 Kyiv time at UCU Lectorium (K-016)!
+(Previous semesters' resources are available in the archive)
+Week 0 - Intro and Club Presentation - Teodor Muzychuk
+Week 1.1 (20.09) - Intro to Open Source - Teodor Muzychuk
+Week 1.2 (20.09) - Package managers - Bohdan Ruban
+Week 1.3 (sat 23.09 14:00 at Lectorium|IT space) - С++ Crash Course (recommended for 2nd year students) - Ostap Trush and Mykhailo Sobko
+Week 2 (27.09) - CLI and Bash - Teodor Muzychuk
+Week 3 (04.10) - Git and Github Workshop - Dmytro Shumshkyi
+Week 4 (11.10) - Vim + tmux - Teodor Muzychuk
+Week 5 (25.10) - Partition Tables and Bootloaders - Roman Mutel
+Week 6.1 (18.10) - Linux Filesystem Hierarchy - Ostap Trush
+Week 6.2 (18.10) - Regular Expressions - Dmytro Shumshkyi
+Week 7 (01.11) - Filesystems - Oleksii Hoyev
+Week 8 (08.11) - SSH - Roman Mutel
+Week 9 (15.11) - Kernel, Systemd, Utilities - Ostap Seryvko
+Week 10 (22.11) - Graphics: DM, DE, WM, X.org, rice - Ostap Seryvko
+Week 11 (29.11) - Internet Utilities and Features - Oleksii Hoyev
+Yeah, we don't like homework either, but practicing something yourself +is the best way to learn a new topic! Most of our lectures will provide +some kind of a home task for you to complete - both to remind yourself +what the lecture was about and to learn on your own.
+You don't need to submit these homeworks, but if you want our feedback on +them to learn even more, here are a few simple steps for you to follow:
+./homework