Το κάθε μάθημα έχει διαφορετικό σετ ασκήσεων τις οποίες θα βρείτε κάτω από τον αντίστοιχο τίτλο. Το κάθε σετ έχει περισσότερες από 10 ασκήσεις οι οποίες εμφανίζονται με σειρά δυσκολίας από την πιο εύκολη στην πιο δύσκολη. Αν γίνουν περισσότερες τότε θα κρατήσουμε τους 4 καλύτερους βαθμούς, αρκεί να έχουν έχουν γίνει commit τα λινκ μέσα στην αναφορά σας στις παρακάτω προθεσμίες. Για να βαθμολογηθεί μια άσκηση θα πρέπει το command prompt να είναι ο ΑΜ σας. Για περισσότερες οδηγίες δείτε την ενότητα της βαθμολόγησης παρακάτω.
Άσκηση | Προθεσμία |
---|---|
1 | 20 Οκτ. |
2 | 3 Νοε. |
3 | 17 Νοε. |
4 | 1 Δεκ. |
5 | 14 Δεκ. |
6 | 12 Ιαν. |
Οι παραπάνω προθεσμίες είναι για τα commit στην αναφορά σας, η οποία αποστέλεται σε διαφορετικές ημερομηνίες στο κεντρικό.
real men do it with the keyboard -old unix admin saying
- unix-based system (e.g., macos, linux, bsd, etc), might work on recent versions of windows with add-ons or with older windows and a virtualbox unix installation
- terminal emulator
- command line
- python
- asciinema to record and share your sessions as described in the deliverables
- hci: user land
- cscw: work online
- multimedia: rich content
- software: dev ops
assignments | deliverables | references |
---|---|---|
set-up the main dependencies and demonstrate your base system | change your command prompt with your student ID, list your dot files, display your shell configuration file and display system information (hardware+software) | cheat tldr ls less nano source PS1 neofetch |
get familiar with basic commands, reading documentation and editing files | browse and view files on your system | man vim ranger bash guide error correction |
become productive with a todo list | create a list of todos, edit, delete, and check some of them | todo.txt todo.txt-cli task |
plan your time with a calendar | add, edit, search for an appointment | calcurse |
text editor and plug-ins for code highlighting and autocompletion | edit the vim or the shell configuration file | vim |
organize your notes with emacs | use org mode | emacs |
organize your notes with a wiki | use vi or emacs org-mode to add (edit and delete) and link several pages | org-wiki viki |
track your expenses | add a source of income and some expenses | ledger |
track your time with a simple journal | jrnl | |
add a status bar to your shell/editor and configure a color-theme | edit the configuration files for your status line and for your color theme | status bar solarized redshift pywall |
build a custom desktop enviroment | customize the wallpaper, menu, bar, notifications, windows, screensaver and demonstrate them with a GIF | polybar rofi dunst awesome pipes |
convert between different text formats | use vim (or emacs) to write your cv in markdown, track multiple versions with git and convert it to docx, html with pandoc | pandoc git |
search the local file system | search for your shell configuration file and open it for editing and search for the contents of a text file | fzf percol |
organise the terminal window into multiple areas | use one window to search-edit local files or browse the web and another window for performance monitoring | tmux, glances |
try a different shell | change your default shell to zsh and configure it with auto-completions-suggestions and repeat some of the above | chsh oh-my-zsh zsh-completions zsh-syntax-highlighting |
assignments | deliverables | references |
---|---|---|
connect to wireless network | list available networks and connect to one that requires web login | nmcli curl wpa_supplicant http-prompt |
check the weather | fetch the weather forecast for your home city and one more city that you want to travel to | wttr |
fetch information | read the business news | awesome-console-services |
manage and share your dot files | configure git, edit and push your dot files | rcm dotfiles stow |
share your files online and along devices | share your calendar | gcalcli |
try different text-based web browsers and get used to the keyboard shortcuts for one | use your favorite text-based browser to retrieve information from the web | lynx w3m links |
manage your bookmarks | add, search, and visit a bookmark to your favorite site | buku |
search the web from the terminal | create aliases for common searches such as dictionary definition | googler ddgr |
display your personal stream and that of your favorite person | ||
browse popular web sites through the terminal | configure the browser environment to you terminal browser | hacker news reddit BROWSER awesome-finder |
upload and share files | transfer firefox send | |
read the news with an RSS reader | newsboat | |
use irc to chat with your friends | create a room, invite friends, and chat | weechat |
back-up your home online | rsync rclone |
|
read, write, and send email | configure mail server, display greek characters, display rich content, open links in text-based browser, store attachments, compose email with vim | mutt EDITOR URLVIEW |
connect to a remote machine with ssh | configure a remote machine to do all the previous tasks and connect to it through a simple local machine | ssh mosh |
send rich email with emacs | filter and send emails with links | emacs reading-and-writing-email-with-emacs |
assignments | deliverables | references |
---|---|---|
download mp3 | search, download and play (with the terminal) your favorite song of the month from youtube | youtube-dl mpv |
visualize an mp3 | demonstrate album art and visualizations with an mp3 player and various songs | mpd kunst |
manage your music library | import your music library, add tags and delete/add songs | beets |
read an ebook | read, search, bookmark, and annotate your favorite ebook | |
watch video | youtube video streaming | |
download a torrent | torque transmission-cli | |
edit a spreadsheet | edit values and formulas | sc-im |
visualize your data | demo with your git commits history and percipation data per day for the last month from your city | spark |
create a simple website with a static generator | single page with name-AM-github and links to your asciinema deliverables | jekyll hakyll nikola |
manage your academic bibliography | import your bibtex formated bibliography, add, edit, delete an entry | pubs papis |
visualize a large text file with a word cloud | use a book from project gutenberg or from the daily news and mask the word cloud with an image that fits the theme of the book | word_cloud newspaper gutenberg |
visualize progress or status | improve your favorite python cli app with a progress bar | tqdm |
create your final presentation | three slides with your name-AM-github, checkbox list of deliverables done, and highlights of significant contributions and/or roadblocks | mdp patat |
assignments | deliverables | references |
---|---|---|
try different terminals and shells | repeat some of the above steps with a different terminal-shell and pick the combination that fits your workflow | st mosh |
use the terminal as an IDE | edit your cv in vim and compile it in a different panel or use a plug-in | latex vimtex |
set-up a system for python development | install and configure in a user folder a python project that is not available through the package manager | python virtual environments |
set-up cloud services | ssh to a remote machine and demonstrate your cli user land | OpenSSH Cloud Stack |
choose your stack | howdoi | |
set-up continuous integration | ||
create a docker image for your stack | dry dockly alpine | |
configure headless services |
the above references are only indicative and you are strongly encouraged to search for and evaluate alternatives. There are several resources that provide information about terminal and command-line applications, such as:
awesome command-line applications
graphical user interfaces are good for 2 years old
Passing grade is awarded as soon as you include in your project report a link to a post to asciinema (idle-time<0.5sec) that demonstrates basic usage with default options. The grade improves for each extra configuration added and becomes excellent as soon as you find a similar tool or for significantly novel uses.