In this lab session, you're supposed to learn the basics of bash and git.
Bash is the standard shell in many Linux distributions. Despite the ancient feeling, some tasks which are very tedious to do on a GUI can be solved pretty quickly on the command line. Especially if a task is very repetitive, there is a high chance that there exists a command line tool which can solve it faster.
Git is a version control system. Version control systems are primarily used in software development to keep track of all changes made by the software developers to any file within the software project. It keeps a version history and allows you to revert changes made to a file and to restore deleted files. Therefore, git is also useful if you work on a set of files on your own, but you want to keep track of every change you make and you want to be able to go back to a previous version if you make a mistake.
man
(note the space), followed by the name of a command, to the command line.man rm
q
key.In this exercise, you will use the most basic commands of git and bash. Make yourself familiar with these tools before we start with the more interesting part in Exercise 2.
ssh://git@10.0.0.1/opt/git/ti2fp
into a folder called ti2fp
. The username is git
and the password is ti2lab
. (You will have to install git first.)ti2fp
folder into this folder.empty.txt
.empty.txt
called still-empty.txt
.empty.txt
in the text editor called nano
, add some text and save the file.text.txt
.still-empty.txt
.In this exercise, you will see some basic commands to read data from files. You can save the output of a program to a file by using redirects.
csv-files
folder. There, you will find a number of .csv
files which contain stock prices of different stocks.msft.csv
on the terminal. allTheData.csv
that contains every line from every *.csv
file in the main folder. .csv
files and write them into the file numberOfLines.txt
..csv
files. Write the first 10 lines of every .csv
file into the file firstLines.txt
..csv
file into the file latestData.txt
.msft.csv
into msft2.csv
.
In the previous exercise, all tasks could be solved with just one command by passing some parameters to this command. In this exercise, we will learn how to search for files by their name and their content. Moreover, you are supposed to use Pipes and (sometimes) the xargs
command to pass on the output of one command to another command.
Go to the sourcecode
folder. There, you will find hundreds of Java files in different subfolders. It would be tedious to open them all in a text editor if you were looking for something, wouldn't it?
.java
file (including the path to the files starting from the folder sourcecode
) into a file called javaFilesList.txt
.author
or Author
. java
in its filename. Write the output into the file otherFilesList.txt
.// Author: University of Zurich
. sourcecode/utils
. Print every file in this folder that does not contain DO NOT DELETE
. allSrc.txt
(in the folder sourcecode
) contains a list of files. Write every line of these files that contain the word static
into the file static.txt
. sed is a very powerful tool to edit text files on the command line. It is often used for search-and-replace operations. As you will see shortly, you can do a simple search-and-replace operation or delete a couple of lines - all of this can be done in many files at once.
You will also see Git Branches in this exercise.
experimental
.core
.// Author: University of Zurich
with // Author: ETH Zurich
in all files in this directory.csv-files
directory. Remove every odd line from every csv file in this folder.master
branch.In this exercise we advise you to write bash scripts, i.e., *.sh files. They will make life a bit easier. You can find some basic information here and here.
files with dots
contain a :
). Replace all the :
with _
. is running
if looper
is running and is not running
otherwise. Note that this process is currently not running.looper
if it is not running.looper
../yourScript.sh looper backGround
should work.