name: inverse layout: true class: center, middle, inverse --- # Modern Unix Tools An empirical proof that Unix did not get stuck in the 80s. .footnote[Marek Šuppa
Ondrej Jariabka
Adrián Matejov] --- layout: false class: center # Why Linux for Data Science? ![:scale 50%](images/Data_Science_VD.png) [The Data Science Venn Diagram](http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram) --- # Why *nix for Data Science? - It can become your ultimate IDE ![:scale 100%](images/workflow_layout.png) .font-small[.center[Image from http://jacobzelko.com/workflow/]] --- # ![:scale 20%](images/tmux-logo-medium.png) `tmux` is a *terminal multiplexer*, meaning that it allows multiple terminals (sessions) to run in the same window. .center[![:scale 60%](images/Tmux-Manage-Multiple-Linux-Terminals.png)] .center[.font-small[Image from https://www.tecmint.com/tmux-to-access-multiple-linux-terminals-inside-a-single-console/]] -- This is especially useful on a server, where you can use it to persist the state of your work enviornment. -- It's "brand signature" is the green bar at the bottom you may recall from `davos`. --- # ![:scale 20%](images/tmux-logo-medium.png) ![:scale 100%](images/tmux-centos.png) .font-small.center[A `tmux` window with `htop` on the top, directory listing on bottom left and JavaScript file opened in `vim` on bottom right. Image from https://www.futurehosting.com/blog/tmux-is-a-server-administration-essential/] --- # Modern Unix Tools: shells 1. `fish` (friendly interactive shell) - https://fishshell.com/ -- 2. `xonsh` (Pythonic Shell) - https://xon.sh/ -- 3. `nushell` (A new type of shell) - https://www.nushell.sh/ --- # Modern Unix Tools: `grep` alternatives - `grep` is cool and everywhere - but in certain circumstances, there are better options out there: - https://beyondgrep.com/feature-comparison/ - https://github.com/BurntSushi/ripgrep#quick-examples-comparing-tools -- - our bet is on `ripgrep` -- it currently seems to be the best thing out there --- # Modern Unix Tools: misc - `exa` - https://the.exa.website/ - `lsd` - https://github.com/Peltoche/lsd -- - `bat` - https://github.com/sharkdp/bat -- - `procs` - https://github.com/dalance/procs - `dust` - https://github.com/bootandy/dust --- # Modern Unix Tools: misc II Some other tools that might end up being useful one day: - `grex` - Generate regural expressions from provided examples - https://github.com/pemistahl/grex - `git-delta`` - A nicer looking, syntax-highlighting pager for `git diff` - https://github.com/dandavison/delta --- # Closing Thoughts Unix seems like a good investment -- We hope so was this class -- If you would like to learn more, there are followups at Matfyz: - Unix Administration - Linux "principles and means" - Advanced Unix Administration - (Embedded) Linux Programming -- If you liked the experience and would like to share it with the next year's batch, please do **talk to us**. _That is how we became TAs, too._