Linux_ACELI.html 128 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677
  1. <!DOCTYPE html><html lang="en-US"><head><title>An introduction to Linux</title><meta property="og:title" content="An introduction to Linux"><meta name="author" content="P.Y. Barriat"><meta property="article:author" content="P.Y. Barriat"><meta name="description" content="https://dev.to/nikolab/complete-list-of-github-markdown-emoji-markup-5aia"><meta property="og:description" content="https://dev.to/nikolab/complete-list-of-github-markdown-emoji-markup-5aia"><meta charset="UTF-8"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1.0"><meta name="apple-mobile-web-app-capable" content="yes"><meta http-equiv="X-UA-Compatible" content="ie=edge"><meta property="og:type" content="website"><meta name="twitter:card" content="summary"><style>@media screen{body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font-size:inherit;opacity:.8;outline:none;padding:0;transition:opacity .2s linear}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:disabled,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button:disabled{cursor:not-allowed;opacity:.15!important}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button:hover{opacity:1}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:active,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button:hover:active{opacity:.6}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:not(:disabled),body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button:hover:not(:disabled){transition:none}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-prev{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNNjggOTAgMjggNTBsNDAtNDAiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-next{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJtMzIgOTAgNDAtNDAtNDAtNDAiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen]{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTQwIDcwSDIwVjUwbTIwIDBMMjAgNzBtNDAtNDBoMjB2MjBtLTIwIDAgMjAtMjAiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen]{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTIwIDUwaDIwdjIwbS0yMCAwIDIwLTIwbTQwIDBINjBWMzBtMjAgMEw2MCA1MCIvPjwvc3ZnPg==")}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter]{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBkPSJNODcuOCA0Ny41Qzg5IDUwIDg3LjcgNTIgODUgNTJIMzVhOC43IDguNyAwIDAgMS03LjItNC41bC0xNS42LTMxQzExIDE0IDEyLjIgMTIgMTUgMTJoNTBhOC44IDguOCAwIDAgMSA3LjIgNC41ek02MCA1MnYzNm0tMTAgMGgyME00NSA0MmgyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iNSIvPjwvc3ZnPg==") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button.bespoke-marp-presenter-note-bigger{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBkPSJNMTIgNTBoODBNNTIgOTBWMTAiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjUiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button.bespoke-marp-presenter-note-smaller{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBkPSJNMTIgNTBoODAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjUiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}}.bespoke-marp-note,.bespoke-marp-osc,.bespoke-progress-parent{display:none;transition:none}@media screen{body,html{height:100%;margin:0}body{background:#000;overflow:hidden}svg.bespoke-marp-slide{content-visibility:hidden;opacity:0;pointer-events:none;z-index:-1}svg.bespoke-marp-slide.bespoke-marp-active{content-visibility:visible;opacity:1;pointer-events:auto;z-index:0}svg.bespoke-marp-slide.bespoke-marp-active.bespoke-marp-active-ready *{-webkit-animation-name:__bespoke_marp__!important;animation-name:__bespoke_marp__!important}@supports not (content-visibility:hidden){svg.bespoke-marp-slide[data-bespoke-marp-load=hideable]{display:none}svg.bespoke-marp-slide[data-bespoke-marp-load=hideable].bespoke-marp-active{display:block}}[data-bespoke-marp-fragment=inactive]{visibility:hidden}body[data-bespoke-view=""] .bespoke-marp-parent,body[data-bespoke-view=next] .bespoke-marp-parent{bottom:0;left:0;position:absolute;right:0;top:0}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc{background:rgba(0,0,0,.65);border-radius:7px;bottom:50px;color:#fff;contain:paint;display:block;font-family:Helvetica,Arial,sans-serif;font-size:16px;left:50%;line-height:0;opacity:1;padding:12px;position:absolute;touch-action:manipulation;transform:translateX(-50%);transition:opacity .2s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;will-change:transform;z-index:1}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>*,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>*{margin-left:6px}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>:first-child,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>:first-child{margin-left:0}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>span,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span{opacity:.8}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page]{display:inline-block;min-width:140px;text-align:center}body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=""] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev]{height:32px;line-height:32px;width:32px}body[data-bespoke-view=""] .bespoke-marp-parent.bespoke-marp-inactive,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive{cursor:none}body[data-bespoke-view=""] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc{opacity:0;pointer-events:none}body[data-bespoke-view=""] svg.bespoke-marp-slide,body[data-bespoke-view=next] svg.bespoke-marp-slide{height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=""] .bespoke-progress-parent{background:#222;display:flex;height:5px;width:100%}body[data-bespoke-view=""] .bespoke-progress-parent+.bespoke-marp-parent{top:5px}body[data-bespoke-view=""] .bespoke-progress-parent .bespoke-progress-bar{background:#0288d1;flex:0 0 0;transition:flex-basis .2s cubic-bezier(0,1,1,1)}body[data-bespoke-view=next]{background:transparent}body[data-bespoke-view=presenter]{background:#161616}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container{display:grid;font-family:Helvetica,Arial,sans-serif;grid-template:"current dragbar next" minmax(140px,1fr) "current dragbar note" 2fr "info dragbar note" 3em;grid-template-columns:minmax(3px,var(--bespoke-marp-presenter-split-ratio,66%)) 0 minmax(3px,1fr);height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent{grid-area:current;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide{height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide.bespoke-marp-active{filter:drop-shadow(0 3px 10px rgba(0,0,0,.5))}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-dragbar-container{background:#0288d1;cursor:col-resize;grid-area:dragbar;margin-left:-3px;opacity:0;position:relative;transition:opacity .4s linear .1s;width:6px;z-index:10}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-dragbar-container:hover{opacity:1}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-dragbar-container.active{opacity:1;transition-delay:0s}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container{background:#222;cursor:pointer;display:none;grid-area:next;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container iframe.bespoke-marp-presenter-next{background:transparent;border:0;display:block;filter:drop-shadow(0 3px 10px rgba(0,0,0,.5));height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container{background:#222;color:#eee;grid-area:note;position:relative;z-index:1}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container button{height:1.5em;line-height:1.5em;width:1.5em}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-presenter-note-wrapper{bottom:0;display:block;left:0;position:absolute;right:0;top:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-presenter-note-buttons{background:rgba(0,0,0,.65);border-radius:4px;bottom:0;display:flex;gap:4px;margin:12px;opacity:0;padding:6px;pointer-events:none;position:absolute;right:0;transition:opacity .2s linear}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-presenter-note-buttons:focus-within,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-presenter-note-wrapper:focus-within+.bespoke-marp-presenter-note-buttons,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container:hover .bespoke-marp-presenter-note-buttons{opacity:1;pointer-events:auto}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note{word-wrap:break-word;box-sizing:border-box;font-size:calc(1.1em*var(--bespoke-marp-note-font-scale, 1));height:calc(100% - 40px);margin:20px;overflow:auto;padding-right:3px;scrollbar-color:hsla(0,0%,93%,.5) transparent;scrollbar-width:thin;white-space:pre-wrap;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar{width:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-track{background:transparent}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-thumb{background:hsla(0,0%,93%,.5);border-radius:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note:empty{pointer-events:none}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:first-child{margin-top:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:last-child{margin-bottom:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container{align-items:center;box-sizing:border-box;color:#eee;display:flex;flex-wrap:nowrap;grid-area:info;justify-content:center;overflow:hidden;padding:0 10px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{box-sizing:border-box;display:block;padding:0 10px;white-space:nowrap;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{height:1.5em;line-height:1.5em;width:1.5em}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page{order:2;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page .bespoke-marp-presenter-info-page-text{display:inline-block;min-width:120px;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time{color:#999;order:1;text-align:left}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{color:#999;order:3;text-align:right}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer:hover{cursor:pointer}}@media print{.bespoke-marp-presenter-info-container,.bespoke-marp-presenter-next-container,.bespoke-marp-presenter-note-container{display:none}}</style><style>div#p>svg>foreignObject>section{width:1280px;height:720px;box-sizing:border-box;overflow:hidden;position:relative;scroll-snap-align:center center}div#p>svg>foreignObject>section:after{bottom:0;content:attr(data-marpit-pagination);padding:inherit;pointer-events:none;position:absolute;right:0}div#p>svg>foreignObject>section:not([data-marpit-pagination]):after{display:none}/* Normalization */div#p>svg>foreignObject>section h1{font-size:2em;margin:0.67em 0}div#p>svg>foreignObject>section video::-webkit-media-controls{will-change:transform}@page{size:1280px 720px;margin:0}@media print{body,html{background-color:#fff;margin:0;page-break-inside:avoid;break-inside:avoid-page}div#p>svg>foreignObject>section{page-break-before:always;break-before:page}div#p>svg>foreignObject>section,div#p>svg>foreignObject>section *{-webkit-print-color-adjust:exact!important;animation-delay:0s!important;animation-duration:0s!important;color-adjust:exact!important;transition:none!important}div#p>svg[data-marpit-svg]{display:block;height:100vh;width:100vw}}
  2. /*!
  3. * Marp default theme.
  4. *
  5. * @theme default
  6. * @author Yuki Hattori
  7. *
  8. * @auto-scaling true
  9. * @size 16:9 1280px 720px
  10. * @size 4:3 960px 720px
  11. */div#p>svg>foreignObject>section{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;word-wrap:break-word;background-color:#fff;color:#24292f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5;margin:0}div#p>svg>foreignObject>section{--marpit-root-font-size:16px}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link:before{background-color:currentColor;content:" ";display:inline-block;height:16px;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0z"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0z"/></svg>');width:16px}div#p>svg>foreignObject>section details,div#p>svg>foreignObject>section figcaption,div#p>svg>foreignObject>section figure{display:block}div#p>svg>foreignObject>section summary{display:list-item}div#p>svg>foreignObject>section [hidden]{display:none!important}div#p>svg>foreignObject>section a{background-color:transparent;color:#0969da;text-decoration:none}div#p>svg>foreignObject>section a:active,div#p>svg>foreignObject>section a:hover{outline-width:0}div#p>svg>foreignObject>section abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}div#p>svg>foreignObject>section b,div#p>svg>foreignObject>section strong{font-weight:600}div#p>svg>foreignObject>section dfn{font-style:italic}div#p>svg>foreignObject>section h1{border-bottom:1px solid #d8dee4;font-size:2em;font-weight:600;margin:.67em 0;padding-bottom:.3em}div#p>svg>foreignObject>section mark{background-color:#fff8c5;color:#24292f}div#p>svg>foreignObject>section small{font-size:90%}div#p>svg>foreignObject>section sub,div#p>svg>foreignObject>section sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}div#p>svg>foreignObject>section sub{bottom:-.25em}div#p>svg>foreignObject>section sup{top:-.5em}div#p>svg>foreignObject>section img{background-color:#fff;border-style:none;box-sizing:content-box;max-width:100%}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section kbd,div#p>svg>foreignObject>section pre,div#p>svg>foreignObject>section samp{font-family:monospace,monospace;font-size:1em}div#p>svg>foreignObject>section figure{margin:1em 40px}div#p>svg>foreignObject>section hr{background:transparent;background-color:#d0d7de;border:0;box-sizing:content-box;height:.25em;margin:24px 0;overflow:hidden;padding:0}div#p>svg>foreignObject>section input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}div#p>svg>foreignObject>section [type=button],div#p>svg>foreignObject>section [type=reset],div#p>svg>foreignObject>section [type=submit]{-webkit-appearance:button}div#p>svg>foreignObject>section [type=button]::-moz-focus-inner,div#p>svg>foreignObject>section [type=reset]::-moz-focus-inner,div#p>svg>foreignObject>section [type=submit]::-moz-focus-inner{border-style:none;padding:0}div#p>svg>foreignObject>section [type=button]:-moz-focusring,div#p>svg>foreignObject>section [type=reset]:-moz-focusring,div#p>svg>foreignObject>section [type=submit]:-moz-focusring{outline:1px dotted ButtonText}div#p>svg>foreignObject>section [type=checkbox],div#p>svg>foreignObject>section [type=radio]{box-sizing:border-box;padding:0}div#p>svg>foreignObject>section [type=number]::-webkit-inner-spin-button,div#p>svg>foreignObject>section [type=number]::-webkit-outer-spin-button{height:auto}div#p>svg>foreignObject>section [type=search]{-webkit-appearance:textfield;outline-offset:-2px}div#p>svg>foreignObject>section [type=search]::-webkit-search-cancel-button,div#p>svg>foreignObject>section [type=search]::-webkit-search-decoration{-webkit-appearance:none}div#p>svg>foreignObject>section ::-webkit-input-placeholder{color:inherit;opacity:.54}div#p>svg>foreignObject>section ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}div#p>svg>foreignObject>section a:hover{text-decoration:underline}div#p>svg>foreignObject>section hr:after,div#p>svg>foreignObject>section hr:before{content:"";display:table}div#p>svg>foreignObject>section hr:after{clear:both}div#p>svg>foreignObject>section table{border-collapse:collapse;border-spacing:0;display:block;max-width:100%;overflow:auto;width:-webkit-max-content;width:-moz-max-content;width:max-content}div#p>svg>foreignObject>section td,div#p>svg>foreignObject>section th{padding:0}div#p>svg>foreignObject>section details summary{cursor:pointer}div#p>svg>foreignObject>section details:not([open])>:not(summary){display:none!important}div#p>svg>foreignObject>section kbd{background-color:#f6f8fa;border:1px solid rgba(175,184,193,.2);border-radius:6px;box-shadow:inset 0 -1px 0 rgba(175,184,193,.2);color:#24292f;display:inline-block;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:24px}div#p>svg>foreignObject>section h2{border-bottom:1px solid #d8dee4;font-size:1.5em;font-weight:600;padding-bottom:.3em}div#p>svg>foreignObject>section h3{font-size:1.25em;font-weight:600}div#p>svg>foreignObject>section h4{font-size:1em;font-weight:600}div#p>svg>foreignObject>section h5{font-size:.875em;font-weight:600}div#p>svg>foreignObject>section h6{color:#57606a;font-size:.85em;font-weight:600}div#p>svg>foreignObject>section p{margin-bottom:10px;margin-top:0}div#p>svg>foreignObject>section blockquote{border-left:.25em solid #d0d7de;color:#57606a;margin:0;padding:0 1em}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{margin-bottom:0;margin-top:0;padding-left:2em}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ul ol{list-style-type:lower-roman}div#p>svg>foreignObject>section ol ol ol,div#p>svg>foreignObject>section ol ul ol,div#p>svg>foreignObject>section ul ol ol,div#p>svg>foreignObject>section ul ul ol{list-style-type:lower-alpha}div#p>svg>foreignObject>section dd{margin-left:0}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section pre,div#p>svg>foreignObject>section tt{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}div#p>svg>foreignObject>section pre{word-wrap:normal;margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section .octicon{fill:currentColor;display:inline-block;overflow:visible!important;vertical-align:text-bottom}div#p>svg>foreignObject>section ::-moz-placeholder{color:#6e7781;opacity:1}div#p>svg>foreignObject>section :-ms-input-placeholder{color:#6e7781;opacity:1}div#p>svg>foreignObject>section ::placeholder{color:#6e7781;opacity:1}div#p>svg>foreignObject>section input::-webkit-inner-spin-button,div#p>svg>foreignObject>section input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}div#p>svg>foreignObject>section .pl-c{color:#6e7781}div#p>svg>foreignObject>section .pl-c1,div#p>svg>foreignObject>section .pl-s .pl-v{color:#0550ae}div#p>svg>foreignObject>section .pl-e,div#p>svg>foreignObject>section .pl-en{color:#8250df}div#p>svg>foreignObject>section .pl-s .pl-s1,div#p>svg>foreignObject>section .pl-smi{color:#24292f}div#p>svg>foreignObject>section .pl-ent{color:#116329}div#p>svg>foreignObject>section .pl-k{color:#cf222e}div#p>svg>foreignObject>section .pl-pds,div#p>svg>foreignObject>section .pl-s,div#p>svg>foreignObject>section .pl-s .pl-pse .pl-s1,div#p>svg>foreignObject>section .pl-sr,div#p>svg>foreignObject>section .pl-sr .pl-cce,div#p>svg>foreignObject>section .pl-sr .pl-sra,div#p>svg>foreignObject>section .pl-sr .pl-sre{color:#0a3069}div#p>svg>foreignObject>section .pl-smw,div#p>svg>foreignObject>section .pl-v{color:#953800}div#p>svg>foreignObject>section .pl-bu{color:#82071e}div#p>svg>foreignObject>section .pl-ii{background-color:#82071e;color:#f6f8fa}div#p>svg>foreignObject>section .pl-c2{background-color:#cf222e;color:#f6f8fa}div#p>svg>foreignObject>section .pl-sr .pl-cce{color:#116329;font-weight:700}div#p>svg>foreignObject>section .pl-ml{color:#3b2300}div#p>svg>foreignObject>section .pl-mh,div#p>svg>foreignObject>section .pl-mh .pl-en,div#p>svg>foreignObject>section .pl-ms{color:#0550ae;font-weight:700}div#p>svg>foreignObject>section .pl-mi{color:#24292f;font-style:italic}div#p>svg>foreignObject>section .pl-mb{color:#24292f;font-weight:700}div#p>svg>foreignObject>section .pl-md{background-color:#ffebe9;color:#82071e}div#p>svg>foreignObject>section .pl-mi1{background-color:#dafbe1;color:#116329}div#p>svg>foreignObject>section .pl-mc{background-color:#ffd8b5;color:#953800}div#p>svg>foreignObject>section .pl-mi2{background-color:#0550ae;color:#eaeef2}div#p>svg>foreignObject>section .pl-mdr{color:#8250df;font-weight:700}div#p>svg>foreignObject>section .pl-ba{color:#57606a}div#p>svg>foreignObject>section .pl-sg{color:#8c959f}div#p>svg>foreignObject>section .pl-corl{color:#0a3069;text-decoration:underline}div#p>svg>foreignObject>section [data-catalyst]{display:block}div#p>svg>foreignObject>section g-emoji{font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:400;line-height:1;vertical-align:-.075em}div#p>svg>foreignObject>section g-emoji img{height:1em;width:1em}div#p>svg>foreignObject>section:after,div#p>svg>foreignObject>section:before{
  12. /* content:""; */display:table}div#p>svg>foreignObject>section:after{clear:both}div#p>svg>foreignObject>section>:first-child{margin-top:0!important}div#p>svg>foreignObject>section>:last-child{margin-bottom:0!important}div#p>svg>foreignObject>section a:not([href]){color:inherit;text-decoration:none}div#p>svg>foreignObject>section .absent{color:#cf222e}div#p>svg>foreignObject>section .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}div#p>svg>foreignObject>section .anchor:focus{outline:none}div#p>svg>foreignObject>section blockquote,div#p>svg>foreignObject>section details,div#p>svg>foreignObject>section dl,div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section p,div#p>svg>foreignObject>section pre,div#p>svg>foreignObject>section table,div#p>svg>foreignObject>section ul{margin-bottom:16px;margin-top:0}div#p>svg>foreignObject>section blockquote>:first-child{margin-top:0}div#p>svg>foreignObject>section blockquote>:last-child{margin-bottom:0}div#p>svg>foreignObject>section sup>a:before{content:"["}div#p>svg>foreignObject>section sup>a:after{content:"]"}div#p>svg>foreignObject>section h1 .octicon-link,div#p>svg>foreignObject>section h2 .octicon-link,div#p>svg>foreignObject>section h3 .octicon-link,div#p>svg>foreignObject>section h4 .octicon-link,div#p>svg>foreignObject>section h5 .octicon-link,div#p>svg>foreignObject>section h6 .octicon-link{color:#24292f;vertical-align:middle;visibility:hidden}div#p>svg>foreignObject>section h1:hover .anchor,div#p>svg>foreignObject>section h2:hover .anchor,div#p>svg>foreignObject>section h3:hover .anchor,div#p>svg>foreignObject>section h4:hover .anchor,div#p>svg>foreignObject>section h5:hover .anchor,div#p>svg>foreignObject>section h6:hover .anchor{text-decoration:none}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link{visibility:visible}div#p>svg>foreignObject>section h1 code,div#p>svg>foreignObject>section h1 tt,div#p>svg>foreignObject>section h2 code,div#p>svg>foreignObject>section h2 tt,div#p>svg>foreignObject>section h3 code,div#p>svg>foreignObject>section h3 tt,div#p>svg>foreignObject>section h4 code,div#p>svg>foreignObject>section h4 tt,div#p>svg>foreignObject>section h5 code,div#p>svg>foreignObject>section h5 tt,div#p>svg>foreignObject>section h6 code,div#p>svg>foreignObject>section h6 tt{font-size:inherit;padding:0 .2em}div#p>svg>foreignObject>section ol.no-list,div#p>svg>foreignObject>section ul.no-list{list-style-type:none;padding:0}div#p>svg>foreignObject>section ol[type="1"]{list-style-type:decimal}div#p>svg>foreignObject>section ol[type=a]{list-style-type:lower-alpha}div#p>svg>foreignObject>section ol[type=i]{list-style-type:lower-roman}div#p>svg>foreignObject>section div>ol:not([type]){list-style-type:decimal}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ol ul,div#p>svg>foreignObject>section ul ol,div#p>svg>foreignObject>section ul ul{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section li>p{margin-top:16px}div#p>svg>foreignObject>section li+li{margin-top:.25em}div#p>svg>foreignObject>section dl{padding:0}div#p>svg>foreignObject>section dl dt{font-size:1em;font-style:italic;font-weight:600;margin-top:16px;padding:0}div#p>svg>foreignObject>section dl dd{margin-bottom:16px;padding:0 16px}div#p>svg>foreignObject>section table th{font-weight:600}div#p>svg>foreignObject>section table td,div#p>svg>foreignObject>section table th{border:1px solid #d0d7de;padding:6px 13px}div#p>svg>foreignObject>section table tr{background-color:#fff;border-top:1px solid #d8dee4}div#p>svg>foreignObject>section table tr:nth-child(2n){background-color:#f6f8fa}div#p>svg>foreignObject>section table img{background-color:transparent}div#p>svg>foreignObject>section img[align=right]{padding-left:20px}div#p>svg>foreignObject>section img[align=left]{padding-right:20px}div#p>svg>foreignObject>section .emoji{background-color:transparent;max-width:none;vertical-align:text-top}div#p>svg>foreignObject>section span.frame,div#p>svg>foreignObject>section span.frame>span{display:block;overflow:hidden}div#p>svg>foreignObject>section span.frame>span{border:1px solid #d0d7de;float:left;margin:13px 0 0;padding:7px;width:auto}div#p>svg>foreignObject>section span.frame span img{display:block;float:left}div#p>svg>foreignObject>section span.frame span span{clear:both;color:#24292f;display:block;padding:5px 0 0}div#p>svg>foreignObject>section span.align-center{clear:both;display:block;overflow:hidden}div#p>svg>foreignObject>section span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}div#p>svg>foreignObject>section span.align-center span img{margin:0 auto;text-align:center}div#p>svg>foreignObject>section span.align-right{clear:both;display:block;overflow:hidden}div#p>svg>foreignObject>section span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}div#p>svg>foreignObject>section span.align-right span img{margin:0;text-align:right}div#p>svg>foreignObject>section span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}div#p>svg>foreignObject>section span.float-left span{margin:13px 0 0}div#p>svg>foreignObject>section span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}div#p>svg>foreignObject>section span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section tt{background-color:rgba(175,184,193,.2);border-radius:6px;font-size:85%;margin:0;padding:.2em .4em}div#p>svg>foreignObject>section code br,div#p>svg>foreignObject>section tt br{display:none}div#p>svg>foreignObject>section del code{text-decoration:inherit}div#p>svg>foreignObject>section pre code{font-size:100%}div#p>svg>foreignObject>section pre>code{background:transparent;border:0;margin:0;padding:0;white-space:pre;word-break:normal}div#p>svg>foreignObject>section .highlight{margin-bottom:16px}div#p>svg>foreignObject>section .highlight pre{margin-bottom:0;word-break:normal}div#p>svg>foreignObject>section pre{background-color:#f6f8fa;border-radius:6px;font-size:85%;line-height:1.45;overflow:auto;padding:16px}div#p>svg>foreignObject>section pre code,div#p>svg>foreignObject>section pre tt{word-wrap:normal;background-color:transparent;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0}div#p>svg>foreignObject>section .csv-data td,div#p>svg>foreignObject>section .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}div#p>svg>foreignObject>section .csv-data .blob-num{background:#fff;border:0;padding:10px 8px 9px;text-align:right}div#p>svg>foreignObject>section .csv-data tr{border-top:0}div#p>svg>foreignObject>section .csv-data th{background:#f6f8fa;border-top:0;font-weight:600}div#p>svg>foreignObject>section .footnotes{border-top:1px solid #d0d7de;color:#57606a;font-size:12px}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.footnotes{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .footnotes ol{padding-left:16px}div#p>svg>foreignObject>section .footnotes li{position:relative}div#p>svg>foreignObject>section .footnotes li:target:before{border:2px solid #0969da;border-radius:6px;bottom:-8px;content:"";left:-24px;pointer-events:none;position:absolute;right:-8px;top:-8px}div#p>svg>foreignObject>section .footnotes li:target{color:#24292f}div#p>svg>foreignObject>section .footnotes .data-footnote-backref g-emoji{font-family:monospace}div#p>svg>foreignObject>section .task-list-item{list-style-type:none}div#p>svg>foreignObject>section .task-list-item label{font-weight:400}div#p>svg>foreignObject>section .task-list-item.enabled label{cursor:pointer}div#p>svg>foreignObject>section .task-list-item+.task-list-item{margin-top:3px}div#p>svg>foreignObject>section .task-list-item .handle{display:none}div#p>svg>foreignObject>section .task-list-item-checkbox{margin:0 .2em .25em -1.6em;vertical-align:middle}div#p>svg>foreignObject>section .contains-task-list:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}div#p>svg>foreignObject>section ::-webkit-calendar-picker-indicator{filter:invert(50%)}div#p>svg>foreignObject>section .hljs{background:#fff;color:#333;display:block;overflow-x:auto;padding:.5em}div#p>svg>foreignObject>section .hljs-comment,div#p>svg>foreignObject>section .hljs-meta{color:#969896}div#p>svg>foreignObject>section .hljs-emphasis,div#p>svg>foreignObject>section .hljs-quote,div#p>svg>foreignObject>section .hljs-strong,div#p>svg>foreignObject>section .hljs-template-variable,div#p>svg>foreignObject>section .hljs-variable{color:#df5000}div#p>svg>foreignObject>section .hljs-keyword,div#p>svg>foreignObject>section .hljs-selector-tag,div#p>svg>foreignObject>section .hljs-type{color:#d73a49}div#p>svg>foreignObject>section .hljs-attribute,div#p>svg>foreignObject>section .hljs-bullet,div#p>svg>foreignObject>section .hljs-literal,div#p>svg>foreignObject>section .hljs-symbol{color:#0086b3}div#p>svg>foreignObject>section .hljs-name,div#p>svg>foreignObject>section .hljs-section{color:#63a35c}div#p>svg>foreignObject>section .hljs-tag{color:#333}div#p>svg>foreignObject>section .hljs-attr,div#p>svg>foreignObject>section .hljs-selector-attr,div#p>svg>foreignObject>section .hljs-selector-class,div#p>svg>foreignObject>section .hljs-selector-id,div#p>svg>foreignObject>section .hljs-selector-pseudo,div#p>svg>foreignObject>section .hljs-title{color:#6f42c1}div#p>svg>foreignObject>section .hljs-addition{background-color:#eaffea;color:#55a532}div#p>svg>foreignObject>section .hljs-deletion{background-color:#ffecec;color:#bd2c00}div#p>svg>foreignObject>section .hljs-link{text-decoration:underline}div#p>svg>foreignObject>section .hljs-number{color:#005cc5}div#p>svg>foreignObject>section .hljs-string{color:#032f62}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{max-height:563px}div#p>svg>foreignObject>section h1{color:#246;font-size:1.6em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:none}div#p>svg>foreignObject>section h2{font-size:1.3em}div#p>svg>foreignObject>section h3{font-size:1.1em}div#p>svg>foreignObject>section h4{font-size:1.05em}div#p>svg>foreignObject>section h5{font-size:1em}div#p>svg>foreignObject>section h6{font-size:.9em}div#p>svg>foreignObject>section h1 strong,div#p>svg>foreignObject>section h2 strong,div#p>svg>foreignObject>section h3 strong,div#p>svg>foreignObject>section h4 strong,div#p>svg>foreignObject>section h5 strong,div#p>svg>foreignObject>section h6 strong{color:#48c;font-weight:inherit}div#p>svg>foreignObject>section hr{height:0;padding-top:.25em}div#p>svg>foreignObject>section pre{border:1px solid #999;line-height:1.15;overflow:visible}div#p>svg>foreignObject>section pre code svg[data-marp-fitting=svg]{max-height:529px}div#p>svg>foreignObject>section footer,div#p>svg>foreignObject>section header{color:hsla(0,0%,40%,.75);font-size:18px;left:30px;margin:0;position:absolute}div#p>svg>foreignObject>section header{top:21px}div#p>svg>foreignObject>section footer{bottom:21px}div#p>svg>foreignObject>section{align-items:stretch;background:#fff;display:flex;flex-flow:column nowrap;font-size:29px;height:720px;justify-content:center;padding:78.5px;width:1280px}div#p>svg>foreignObject>section{--marpit-root-font-size:29px}div#p>svg>foreignObject>section>:last-child,div#p>svg>foreignObject>section[data-footer]>:nth-last-child(2){margin-bottom:0}div#p>svg>foreignObject>section>:first-child,div#p>svg>foreignObject>section>header:first-child+*{margin-top:0}div#p>svg>foreignObject>section:after{bottom:21px;color:#777;font-size:24px;padding:0;position:absolute;right:30px}div#p>svg>foreignObject>section:after{--marpit-root-font-size:24px}div#p>svg>foreignObject>section.invert{background-color:#222;color:#e6eaf0}div#p>svg>foreignObject>section.invert:after{color:#999}div#p>svg>foreignObject>section.invert img{background-color:transparent}div#p>svg>foreignObject>section.invert a{color:#50b3ff}div#p>svg>foreignObject>section.invert h1{color:#a3c5e7}div#p>svg>foreignObject>section.invert h2,div#p>svg>foreignObject>section.invert h3,div#p>svg>foreignObject>section.invert h4,div#p>svg>foreignObject>section.invert h5{color:#ebeff5}div#p>svg>foreignObject>section.invert blockquote,div#p>svg>foreignObject>section.invert h6{border-color:#3d3f43;color:#939699}div#p>svg>foreignObject>section.invert h1 strong,div#p>svg>foreignObject>section.invert h2 strong,div#p>svg>foreignObject>section.invert h3 strong,div#p>svg>foreignObject>section.invert h4 strong,div#p>svg>foreignObject>section.invert h5 strong,div#p>svg>foreignObject>section.invert h6 strong{color:#7bf}div#p>svg>foreignObject>section.invert hr{background-color:#3d3f43}div#p>svg>foreignObject>section.invert footer,div#p>svg>foreignObject>section.invert header{color:hsla(0,0%,60%,.75)}div#p>svg>foreignObject>section.invert code,div#p>svg>foreignObject>section.invert kbd{background-color:#111}div#p>svg>foreignObject>section.invert kbd{border-color:#666;box-shadow:inset 0 -1px 0 #555;color:#e6eaf0}div#p>svg>foreignObject>section.invert table tr{background-color:#12181d;border-color:#60657b}div#p>svg>foreignObject>section.invert table tr:nth-child(2n){background-color:#1b2024}div#p>svg>foreignObject>section.invert table td,div#p>svg>foreignObject>section.invert table th{border-color:#5b5e61}div#p>svg>foreignObject>section.invert pre{background-color:#0a0e12;border-color:#777}div#p>svg>foreignObject>section.invert pre code{background-color:transparent}div#p>svg>foreignObject>section[data-color] h1,div#p>svg>foreignObject>section[data-color] h2,div#p>svg>foreignObject>section[data-color] h3,div#p>svg>foreignObject>section[data-color] h4,div#p>svg>foreignObject>section[data-color] h5,div#p>svg>foreignObject>section[data-color] h6{color:currentcolor}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{display:block;height:auto;width:100%}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{position:static}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{content:""}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{position:relative}}div#p>svg>foreignObject>section [data-marp-fitting-svg-content]{display:table;white-space:nowrap;width:-webkit-max-content;width:-moz-max-content;width:max-content}div#p>svg>foreignObject>section [data-marp-fitting-svg-content-wrap]{white-space:pre}div#p>svg>foreignObject>section img[data-marp-twemoji]{background:transparent;height:1em;margin:0 .05em 0 .1em;vertical-align:-.1em;width:1em}
  13. /* @theme tum */div#p>svg>foreignObject>section{
  14. /*background-color: #fff;
  15. color: #000;
  16. background-image: url('images/TUM_Logo_blau_rgb_s.svg');
  17. background-repeat: no-repeat;
  18. background-position: right 40px top 40px;
  19. background-size: 8%;*/}div#p>svg>foreignObject>section.lead{
  20. /*background-image: url('images/TUM_Uhrenturm.png');
  21. background-position: right;
  22. background-size: 45%;*/}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{color:#1f315c}div#p>svg>foreignObject>section a{color:#5fb2e6}div#p>svg>foreignObject>section footer,div#p>svg>foreignObject>section:after{color:#9cb7d4}div#p>svg>foreignObject>section.invert{background-color:#003359;color:#fff
  23. /*background-image: url('images/TUM_Logo_weiss_rgb_s.svg');*/}div#p>svg>foreignObject>section.lead.invert{
  24. /*background-image: url('images/TUM_Uhrenturm_w.png');*/}div#p>svg>foreignObject>section.invert footer,div#p>svg>foreignObject>section.invert h1,div#p>svg>foreignObject>section.invert:after{color:#fff}div#p>svg>foreignObject>section.invert a{color:#e37222}
  25. /* Add "Page" prefix and total page number */div#p>svg>foreignObject>section:after{content:attr(data-marpit-pagination) ' / ' attr(data-marpit-pagination-total)}
  26. /* @theme ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd */div#p>svg>foreignObject>section[data-marpit-advanced-background=background]{columns:initial!important;display:block!important;padding:0!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:before,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:before{display:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction=vertical]{flex-direction:column}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split]>div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split,50%)}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split=right]>div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#p>svg>foreignObject>section[data-marpit-advanced-background=content],div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo]{background:transparent!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo],div#p>svg[data-marpit-svg]>foreignObject[data-marpit-advanced-background=pseudo]{pointer-events:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background-split]{width:100%;height:100%}</style></head><body><div class="bespoke-progress-parent"><div class="bespoke-progress-bar"></div></div><div class="bespoke-marp-osc"><button data-bespoke-marp-osc="prev" tabindex="-1" title="Previous slide">Previous slide</button><span data-bespoke-marp-osc="page"></span><button data-bespoke-marp-osc="next" tabindex="-1" title="Next slide">Next slide</button><button data-bespoke-marp-osc="fullscreen" tabindex="-1" title="Toggle fullscreen (f)">Toggle fullscreen</button><button data-bespoke-marp-osc="presenter" tabindex="-1" title="Open presenter view (p)">Open presenter view</button></div><div id="p"><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="1" data-background-image="url('assets/garde.png')" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" style="--background-image:url('assets/garde.png');--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/garde.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  27. <h1><svg data-marp-fitting="svg"><foreignObject><span data-marp-fitting-svg-content>An introduction to Linux</span></foreignObject></svg></h1>
  28. <p><a href="https://gogs.elic.ucl.ac.be/pbarriat/learning-linux">https://gogs.elic.ucl.ac.be/pbarriat/learning-linux</a></p>
  29. <p><img src="assets/www.makeuseof.com.png" alt="" style="height:280px;" /></p>
  30. <p><strong>Pierre-Yves Barriat</strong><br />
  31. ACELI Training Sessions <code>April 13th, 2023</code></p>
  32. </section>
  33. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="2" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="2" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  34. <h1>What is UNIX ?</h1>
  35. <ul>
  36. <li>Operating System
  37. <blockquote>
  38. <p>Windows 10 (Microsoft), MacOSX (Apple), Android (Google), etc</p>
  39. </blockquote>
  40. </li>
  41. <li>UNIX is a (family of) Operating System</li>
  42. <li>Invented by AT&amp;T Bell Labs in late 60's</li>
  43. <li>Currently there are different versions and variants of UNIX
  44. <blockquote>
  45. <p>Solaris, AIX, HP-UX, etc.</p>
  46. </blockquote>
  47. </li>
  48. <li>UNIX is <strong>not</strong> free or Open Source: &quot;GNU is Not UNIX&quot;</li>
  49. </ul>
  50. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  51. </section>
  52. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="3" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="3" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  53. <h1>What is Linux ?</h1>
  54. <ul>
  55. <li>GNU (80's) is a free, open source version of the UNIX OS, but without the most important element: the <strong>kernel</strong></li>
  56. <li>Linux kernel was developed in 1991 by Linus Torvalds, a Finnish graduate student</li>
  57. <li>The association GNU/Linux is an operating system (say just &quot;Linux&quot;) and provides an alternative to commercial operating systems</li>
  58. <li>Linux exists without GNU (eg Android) : used to power a multitude of systems... from your phone to your smart fridge</li>
  59. </ul>
  60. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  61. </section>
  62. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="4" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="4" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  63. <h1>What is a Linux distribution ?</h1>
  64. <ul>
  65. <li>
  66. <p>Many versions of Linux</p>
  67. <blockquote>
  68. <p>Red Hat, Debian, Suse, etc</p>
  69. </blockquote>
  70. </li>
  71. <li>
  72. <p>But one common linux kernel: <strong>kernel</strong> is like an <strong>engine</strong>. A distribution is an actual car that hosts the engine</p>
  73. </li>
  74. <li>
  75. <p>Distributions differ from</p>
  76. <ul>
  77. <li>the application/management layer</li>
  78. <li>GUI (Graphical User Interface = desktop environment)</li>
  79. <li>software packages</li>
  80. <li>help-desk, support, language</li>
  81. </ul>
  82. </li>
  83. </ul>
  84. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  85. </section>
  86. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="5" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="5" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  87. <h1>Why Linux ?</h1>
  88. <ul>
  89. <li><strong>Linux is free</strong></li>
  90. <li>Linux is supported on older computers (perf &amp; updates)</li>
  91. <li>Linux has many more free applications</li>
  92. </ul>
  93. <p><code>Security</code>: there are very few viruses for Linux<br />
  94. <code>Privacy</code>: most Linux distributions don't collect your data at all<br />
  95. <code>Reliability</code>: if you want to stop something, you really can<br />
  96. <code>Updates</code>: package manager<br />
  97. <code>Customisation</code>: you can make Linux look, feel and behave as you want it to<br />
  98. <code>Command Line Interface:</code> faster &amp; efficient</p>
  99. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  100. </section>
  101. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="6" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;--marpit-advanced-background-split:50%;" data-marpit-advanced-background="background" data-marpit-advanced-background-split="left"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;assets/win_mac.png&quot;);background-size:100%;"></figure></div></section></foreignObject><foreignObject width="50%" height="720" x="50%"><section id="6" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="6" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;--marpit-advanced-background-split:50%;" data-marpit-advanced-background="content" data-marpit-advanced-background-split="left">
  102. <p><img src="assets/linuxvs.png" alt="" style="height:280px;" /><br />
  103. <img src="assets/logolinux.png" alt="" style="height:150px;" /></p>
  104. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  105. </section>
  106. </foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="6" data-marpit-pagination-total="40" style="" data-marpit-advanced-background="pseudo" data-marpit-advanced-background-split="left"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-background-image="url('assets/back.png')" data-footer="https://truelist.co/blog/linux-statistics/" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="7" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:https://truelist.co/blog/linux-statistics/;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;--marpit-advanced-background-split:50%;" data-marpit-advanced-background="background" data-marpit-advanced-background-split="right"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;assets/OS_developers.png&quot;);background-size:100%;"></figure></div></section></foreignObject><foreignObject width="50%" height="720"><section id="7" data-background-image="url('assets/back.png')" data-footer="https://truelist.co/blog/linux-statistics/" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="7" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:https://truelist.co/blog/linux-statistics/;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;--marpit-advanced-background-split:50%;" data-marpit-advanced-background="content" data-marpit-advanced-background-split="right">
  107. <h1>Linux Statistics</h1>
  108. <ul>
  109. <li>47% of professional <strong>developers</strong> use Linux-based operating systems (Statista)</li>
  110. <li>Linux powers 39.2% of <strong>websites</strong> whose operating system is known (W3Techs)</li>
  111. <li>Linux powers 85% of <strong>smartphones</strong> (Hayden James)</li>
  112. </ul>
  113. <footer><a href="https://truelist.co/blog/linux-statistics/">https://truelist.co/blog/linux-statistics/</a></footer>
  114. </section>
  115. </foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section data-background-image="url('assets/back.png')" data-footer="https://truelist.co/blog/linux-statistics/" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="7" data-marpit-pagination-total="40" style="" data-marpit-advanced-background="pseudo" data-marpit-advanced-background-split="right"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-background-image="url('assets/back.png')" data-footer="https://truelist.co/blog/linux-statistics/" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="8" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:https://truelist.co/blog/linux-statistics/;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;--marpit-advanced-background-split:50%;" data-marpit-advanced-background="background" data-marpit-advanced-background-split="right"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;assets/Distrib.png&quot;);background-size:95%;"></figure></div></section></foreignObject><foreignObject width="50%" height="720"><section id="8" data-background-image="url('assets/back.png')" data-footer="https://truelist.co/blog/linux-statistics/" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="8" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:https://truelist.co/blog/linux-statistics/;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;--marpit-advanced-background-split:50%;" data-marpit-advanced-background="content" data-marpit-advanced-background-split="right">
  116. <p><img src="assets/Desktop_Market.png" alt="" style="height:260px;" /><br />
  117. <img src="assets/Server_Market.png" alt="" style="height:260px;" /></p>
  118. <footer><a href="https://truelist.co/blog/linux-statistics/">https://truelist.co/blog/linux-statistics/</a></footer>
  119. </section>
  120. </foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section data-background-image="url('assets/back.png')" data-footer="https://truelist.co/blog/linux-statistics/" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="8" data-marpit-pagination-total="40" style="" data-marpit-advanced-background="pseudo" data-marpit-advanced-background-split="right"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="9" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="9" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  121. <h1>Why not Linux ?</h1>
  122. <ol>
  123. <li>Hardware compatibility (printers, etc)</li>
  124. <li>Missing famous software (MS Office, Adobe, CAO, etc)</li>
  125. <li>Gaming</li>
  126. </ol>
  127. <h3>Workarounds</h3>
  128. <ol>
  129. <li>Many devices &quot;Linux compatible&quot;</li>
  130. <li>Emulation (eg virtualbox), online usage, alternatives (GIMP)</li>
  131. <li>Difficult, but it exists emulation and Steam</li>
  132. </ol>
  133. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  134. </section>
  135. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="10" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="10" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  136. <h1>Distribution: why Ubuntu ?</h1>
  137. <ul>
  138. <li>easy to install and easy to use</li>
  139. <li>easy to maintain and update</li>
  140. <li>useful applications</li>
  141. <li>looks nice</li>
  142. <li>wide variety of supported applications</li>
  143. <li>strong community support</li>
  144. <li>better driver support</li>
  145. <li>LTS and staging releases available as per user needs</li>
  146. </ul>
  147. <blockquote>
  148. <p>get the latest Ubuntu LTS : <a href="https://releases.ubuntu.com/jammy/ubuntu-22.04.2-desktop-amd64.iso">ubuntu-22.04.2-desktop-amd64.iso</a></p>
  149. </blockquote>
  150. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  151. </section>
  152. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="11" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="11" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  153. <h1>Test Linux inside Windows: how ?</h1>
  154. <p>Using a virtual machine: test Linux without changing anything to your computer</p>
  155. <p>You need to install a VM and then install the Linux inside</p>
  156. <ul>
  157. <li>
  158. <p>Get a Virtual Machine: <a href="https://www.virtualbox.org/wiki/Downloads">https://www.virtualbox.org/wiki/Downloads</a></p>
  159. <blockquote>
  160. <p>VirtualBox + Extension Pack</p>
  161. </blockquote>
  162. </li>
  163. <li>
  164. <p>Install Linux in a VM: <a href="https://itsfoss.com/install-linux-in-virtualbox/">Install Linux Inside Windows Using VirtualBox</a></p>
  165. <blockquote>
  166. <p>Step by Step Guide</p>
  167. </blockquote>
  168. </li>
  169. </ul>
  170. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  171. </section>
  172. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="12" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;--marpit-advanced-background-split:50%;" data-marpit-advanced-background="background" data-marpit-advanced-background-split="right"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;assets/GUI.png&quot;);background-size:95%;"></figure></div></section></foreignObject><foreignObject width="50%" height="720"><section id="12" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="12" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;--marpit-advanced-background-split:50%;" data-marpit-advanced-background="content" data-marpit-advanced-background-split="right">
  173. <h1>Linux GUI</h1>
  174. <p>A Linux distribution contains a <a href="https://www.google.com/search?tbm=isch&amp;q=display+manager">display server</a>, a <a href="https://www.google.com/search?tbm=isch&amp;q=windows+manager">window manager</a> (manage windows, panel, menus, dash interfaces and core applications), and a <a href="https://www.google.com/search?tbm=isch&amp;q=graphical+interface">desktop environment</a> (eg status bars, drag-and-drop capabilities, etc)</p>
  175. <p>These 3 items are <strong>bundled together</strong> to make what is known as a <code>GUI environment</code></p>
  176. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  177. </section>
  178. </foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="12" data-marpit-pagination-total="40" style="" data-marpit-advanced-background="pseudo" data-marpit-advanced-background-split="right"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="13" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="13" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  179. <h1>Using Linux</h1>
  180. <p><strong>Using Linux through a GUI environment is similar to Windows or MacOSX</strong></p>
  181. <p>Linux users do not install software the same way that Windows users do: Linux has a tool known as a <code>package manager</code></p>
  182. <p>A package manager provides a way to search for software, install software, keep the software up to date and remove the software</p>
  183. <blockquote>
  184. <p>Similar to Google or Apple store</p>
  185. </blockquote>
  186. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  187. </section>
  188. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="14" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="14" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  189. <h1>Linux CLUI</h1>
  190. <p>Using Linux with GUI, it's already great !<br />
  191. <strong>Using CLUI = unlock the power of Linux !</strong></p>
  192. <p>Each Linux system contains a terminal</p>
  193. <p>A terminal is where you enter Linux commands</p>
  194. <p>It's called the <strong>C</strong>ommand <strong>L</strong>ine <strong>U</strong>ser <strong>I</strong>nterface</p>
  195. <p>CLUI is one of the many strengths of Linux and can be more efficient than using the GUI</p>
  196. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  197. </section>
  198. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="15" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="15" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  199. <h1>Linux CLUI</h1>
  200. <ul>
  201. <li>CLUI allows users to be independent of distros (or UNIX systems like OSX)</li>
  202. <li>CLUI saves system resources which are consumed by GUIs</li>
  203. <li>CLUI allows users to easily work at distance (SSH)</li>
  204. <li>CLUI allows developers to join together simple (and less simple) commands to do complex things and automate... whatever you want to</li>
  205. </ul>
  206. <blockquote>
  207. <p>People tend to think command line is difficult. It's not.</p>
  208. </blockquote>
  209. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  210. </section>
  211. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="16" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="16" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  212. <h1>Linux Shell</h1>
  213. <p>A <strong>shell</strong> is a program that takes commands from the keyboard and gives them to the operating system to perform</p>
  214. <p>The main function is to interpret your commands <strong>= language</strong></p>
  215. <p>The <strong>bash</strong> shell is one of several shells available for Linux</p>
  216. <p>Learning the shell:</p>
  217. <blockquote>
  218. <p><em>&quot;When you are a child you use a computer by looking at the pictures. When you grow up, you learn to read and write&quot;</em></p>
  219. </blockquote>
  220. <p>It's more or less like SMSing to your PC, telling it what to do</p>
  221. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  222. </section>
  223. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="17" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="17" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  224. <h1>Linux Shell</h1>
  225. <p>Shells have some built-in commands</p>
  226. <p>A shell also supports programming constructs, allowing complex commands to be built from smaller parts <strong>= scripts</strong></p>
  227. <p>Scripts can be saved as files to become new commands</p>
  228. <blockquote>
  229. <p>many commands on a typical Linux system are scripts</p>
  230. </blockquote>
  231. <p>An open terminal show you a <strong>PROMPT</strong> waiting for your commands</p>
  232. <p>Commands can have <strong>options</strong> and parameters</p>
  233. <p>All your commands are saved in a <strong>history</strong></p>
  234. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  235. </section>
  236. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="18" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="18" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  237. <h1>Linux Shell Demo</h1>
  238. <p>Rename many files at once ?</p>
  239. <pre><code class="language-bash"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>mmv <span class="hljs-string">&#x27;*.JPG&#x27;</span> <span class="hljs-string">&#x27;#1.jpg&#x27;</span>
  240. </span></span></foreignObject></svg></code></pre>
  241. <p>Download a youtube video ?</p>
  242. <pre><code class="language-bash"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>youtube-dl https://www.youtube.com/watch?v=G7KNmW9a75Y&amp;ab_channel=MileyCyrusVEVO
  243. </span></span></foreignObject></svg></code></pre>
  244. <p>Convert color pictures in BW at once ?</p>
  245. <pre><code class="language-bash"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-meta">#!/bin/bash</span>
  246. <span class="hljs-keyword">for</span> file <span class="hljs-keyword">in</span> *.jpg
  247. <span class="hljs-keyword">do</span>
  248. convert <span class="hljs-variable">${file}</span> -colorspace Gray <span class="hljs-string">&quot;<span class="hljs-variable">${file%.*}</span>_bw.jpg&quot;</span>
  249. <span class="hljs-built_in">echo</span> <span class="hljs-string">&quot;<span class="hljs-variable">${file}</span>... converted&quot;</span>
  250. <span class="hljs-keyword">done</span>
  251. </span></span></foreignObject></svg></code></pre>
  252. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  253. </section>
  254. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="19" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="19" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  255. <h1>Online Linux Demo</h1>
  256. <ul>
  257. <li>
  258. <p><a href="https://bellard.org/jslinux/">Run Linux or other Operating Systems in your browser</a></p>
  259. </li>
  260. <li>
  261. <p><a href="https://rextester.com/l/bash_online_compiler">Run bash (and others) scripts online </a></p>
  262. </li>
  263. <li>
  264. <p><a href="https://linuxcontainers.org/">Free online containers and virtual machines that run full Linux systems</a></p>
  265. </li>
  266. <li>
  267. <p><a href="https://www.webminal.org/">Free GNU/Linux Online Terminal learning platform </a></p>
  268. </li>
  269. <li>
  270. <p><a href="https://jupyter.cism.ucl.ac.be">CISM/ELIC Jupyter portal</a></p>
  271. <blockquote>
  272. <p>you need a UCLouvain/CISM account: see <a href="https://www.cism.ucl.ac.be/doc/_contents/About/cilog.html">here</a></p>
  273. </blockquote>
  274. </li>
  275. </ul>
  276. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  277. </section>
  278. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="20" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="20" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  279. <h1>What you'll learn</h1>
  280. <ul>
  281. <li>
  282. <p>Navigating the File System</p>
  283. <blockquote>
  284. <p>Get up and running with the CLUI by navigating directories and files</p>
  285. </blockquote>
  286. </li>
  287. <li>
  288. <p>Viewing and Changing Files and Directories</p>
  289. <blockquote>
  290. <p>Learn to manipulate directories and files from the CLUI</p>
  291. </blockquote>
  292. </li>
  293. <li>
  294. <p>Configuring the Environment</p>
  295. <blockquote>
  296. <p>Learn to configure the environment using the CLUI</p>
  297. </blockquote>
  298. </li>
  299. <li>
  300. <p>Accessing Linux remotely</p>
  301. <blockquote>
  302. <p>Learn to use SSH (basics)</p>
  303. </blockquote>
  304. </li>
  305. </ul>
  306. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  307. </section>
  308. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="21" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="21" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  309. <h1>Navigating the File System</h1>
  310. <p>A file system is a section of hard disk that has been allocated to contain files</p>
  311. <blockquote>
  312. <p>it's arranged like hierarchical tree structure</p>
  313. </blockquote>
  314. <p>Files are grouped in the directory structure</p>
  315. <p>The top of the tree is called <code>root</code> and <code>/</code> is used to present the <code>root</code></p>
  316. <p><img src="assets/arbo.png" alt="" style="height:280px;" /></p>
  317. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  318. </section>
  319. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="22" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="22" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  320. <h3>Absolute paths</h3>
  321. <p>In the tree <code>/users/usern/file1</code> is an absolute pathname</p>
  322. <h3>Relative paths</h3>
  323. <p>If you are already in the <code>users</code> directory, the relative pathname for <code>file1</code> is <code>usern/file1</code></p>
  324. <ul>
  325. <li>
  326. <p><code>~</code> (tilda) points to the user's <strong>home directory</strong>. Useful if you are logging into a workstation with many users. It's the <strong>default working directory</strong> when you log in. If you are user <code>usern</code>, then <code>/users/usern/file1</code> is the same as <code>~/file1</code></p>
  327. </li>
  328. <li>
  329. <p><code>.</code> refers to the current directory</p>
  330. </li>
  331. <li>
  332. <p><code>..</code> refers to the parent directory</p>
  333. </li>
  334. </ul>
  335. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  336. </section>
  337. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="23" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="23" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  338. <h1>Basic commands</h1>
  339. <ul>
  340. <li><code>ls</code> : lists folders/files in a directory</li>
  341. <li><code>cd</code> : change directory
  342. <blockquote>
  343. <p>use <code>cd name</code> to navigate to directory name</p>
  344. </blockquote>
  345. </li>
  346. <li><code>pwd</code> : print working directory. Prints the path of the current directory</li>
  347. <li><code>du</code> : disk usage. Shows the disk usage of the current directory</li>
  348. <li><code>man</code> : manual
  349. <blockquote>
  350. <p>use <code>man name</code> to bring up a manual entry for command or program called <code>name</code></p>
  351. </blockquote>
  352. </li>
  353. </ul>
  354. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  355. </section>
  356. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="24" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="24" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  357. <h3>Creation</h3>
  358. <ul>
  359. <li><code>mkdir</code> : use <code>mkdir name</code> to create a new directory named <code>name</code> in the current directory</li>
  360. <li><code>cp</code> : use <code>cp file1 file2</code> to create <code>file2</code> which is a copy of <code>file1</code>
  361. <blockquote>
  362. <p>can also use <code>cp -r</code> to copy whole directories</p>
  363. </blockquote>
  364. </li>
  365. <li><code>mv</code> : move = same as copy, but deletes the original file</li>
  366. </ul>
  367. <h3>Deletion</h3>
  368. <ul>
  369. <li><code>rm</code> : delete files ( cannot recover your files after removed them ! )
  370. <blockquote>
  371. <p>can also use <code>rm -rf</code> to remove whole directories</p>
  372. </blockquote>
  373. </li>
  374. </ul>
  375. <p><strong>Be careful : there is no trash in CLUI</strong></p>
  376. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  377. </section>
  378. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="25" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="25" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  379. <ul>
  380. <li>
  381. <p><code>tab</code> is used for auto-complete <img src="assets/tab.png" alt="" style="height:80px;" /></p>
  382. <blockquote>
  383. <p>If a file/directory name was partly typed in, <strong>tab will auto-complete</strong> it</p>
  384. </blockquote>
  385. <blockquote>
  386. <p>If there are multiple options, tab will auto-complete up to the point where the options branch and show you a list of possible options</p>
  387. </blockquote>
  388. </li>
  389. <li>
  390. <p><code>*</code> is used as a wild card</p>
  391. <blockquote>
  392. <p><code>rm blah*</code> removes all files which start with <code>blah</code>: eg <code>blah1</code>, <code>blah2</code>, and <code>blahblah</code> would all be removed</p>
  393. </blockquote>
  394. <blockquote>
  395. <p>using <code>cp public/* private/</code> copies all files in a <code>public</code> directory into a <code>private</code> directory, and keeps all file names intact</p>
  396. </blockquote>
  397. </li>
  398. </ul>
  399. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  400. </section>
  401. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="26" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="26" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  402. <h1>File permissions</h1>
  403. <h3>Groups</h3>
  404. <p>Each file and directory has three user based permission groups</p>
  405. <ul>
  406. <li><strong>owner</strong> :the <code>owner</code> permissions apply only the owner of the file or directory, they will not impact the actions of other users</li>
  407. <li><strong>group</strong> : the <code>group</code> permissions apply only to the group that has been assigned to the file or directory, they will not effect the actions of other users</li>
  408. <li><strong>all users</strong> : the <code>all users</code> permissions apply to all other users on the system, this is the permission group that you want to watch the most</li>
  409. </ul>
  410. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  411. </section>
  412. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="27" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="27" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  413. <h3>Types</h3>
  414. <p>Each file or directory has three basic permission types</p>
  415. <ul>
  416. <li><strong>read</strong> : the <code>read</code> permission refers to a user's capability to read the contents of the file</li>
  417. <li><strong>write</strong> : the <code>write</code> permission refer to a user's capability to write or modify a file or directory</li>
  418. <li><strong>execute</strong> : the <code>execute</code> permission affects a user's capability to execute a file or view the contents of a directory</li>
  419. </ul>
  420. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  421. </section>
  422. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="28" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="28" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  423. <p>The following command :</p>
  424. <pre><code class="language-bash"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>ls -l
  425. </span></span></foreignObject></svg></code></pre>
  426. <p>gives :</p>
  427. <table>
  428. <thead>
  429. <tr>
  430. <th>1</th>
  431. <th>2</th>
  432. <th>3</th>
  433. <th>4</th>
  434. <th>5</th>
  435. <th>6</th>
  436. <th>7</th>
  437. </tr>
  438. </thead>
  439. <tbody>
  440. <tr>
  441. <td><code>-rwxr-xr-x</code></td>
  442. <td><code>1</code></td>
  443. <td><code>dupont</code></td>
  444. <td><code>grpelic</code></td>
  445. <td><code>3528</code></td>
  446. <td><code>2022-08-04</code></td>
  447. <td><code>file_1</code></td>
  448. </tr>
  449. <tr>
  450. <td><code>drwxr-xr-x</code></td>
  451. <td><code>3</code></td>
  452. <td><code>dupont</code></td>
  453. <td><code>grpelic</code></td>
  454. <td><code>512</code></td>
  455. <td><code>2022-01-02</code></td>
  456. <td><code>dir_1</code></td>
  457. </tr>
  458. <tr>
  459. <td><code>lrwxr-xr-x</code></td>
  460. <td><code>2</code></td>
  461. <td><code>dupont</code></td>
  462. <td><code>grpelic</code></td>
  463. <td><code>210</code></td>
  464. <td><code>2020-12-16</code></td>
  465. <td><code>short -&gt; /data</code></td>
  466. </tr>
  467. <tr>
  468. <td><code>-rw-------</code></td>
  469. <td><code>1</code></td>
  470. <td><code>dupont</code></td>
  471. <td><code>grpelic</code></td>
  472. <td><code>4587</code></td>
  473. <td><code>2022-12-04</code></td>
  474. <td><code>file_2</code></td>
  475. </tr>
  476. </tbody>
  477. </table>
  478. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  479. </section>
  480. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="29" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;--marpit-advanced-background-split:50%;" data-marpit-advanced-background="background" data-marpit-advanced-background-split="right"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;assets/sandwich.png&quot;);background-size:70%;"></figure></div></section></foreignObject><foreignObject width="50%" height="720"><section id="29" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="29" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;--marpit-advanced-background-split:50%;" data-marpit-advanced-background="content" data-marpit-advanced-background-split="right">
  481. <h1>Linux privileges</h1>
  482. <p>Linux has a robust permissions system: this is a very good thing, as it enables a <strong>clear separation</strong> of roles among users</p>
  483. <p>Especially between the <code>root</code> user and your <code>standard</code> user</p>
  484. <p>Sometimes, though, you might want your standard user to have <strong>some</strong> or <strong>all</strong> of root's privileges : this is accomplished with <code>sudo</code></p>
  485. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  486. </section>
  487. </foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="29" data-marpit-pagination-total="40" style="" data-marpit-advanced-background="pseudo" data-marpit-advanced-background-split="right"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="30" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="30" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  488. <h1>Shell syntax rules</h1>
  489. <p>Shells use three <strong>&quot;standard I/O streams&quot;</strong></p>
  490. <ul>
  491. <li><code>stdin</code> is the standard input stream, which provides input to commands.</li>
  492. <li><code>stdout</code> is the standard output stream, which displays output from commands.</li>
  493. <li><code>stderr</code> is the standard error stream, which displays error output from commands.</li>
  494. </ul>
  495. <p>Shell has several <strong>meta-characters</strong> and <strong>control operators</strong></p>
  496. <blockquote>
  497. <p><code>|</code>, <code>&amp;</code>, <code>&gt;</code>, <code>;</code> , etc.</p>
  498. </blockquote>
  499. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  500. </section>
  501. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="31" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="31" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  502. <h1>Environment</h1>
  503. <p>In a bash shell many things constitute your environment</p>
  504. <ul>
  505. <li>the form of your prompt</li>
  506. <li>your home directory and your working directory</li>
  507. <li>the name of your shell</li>
  508. <li>functions that you have defined</li>
  509. <li>etc.</li>
  510. </ul>
  511. <p>Environment includes many variables that may have been set <strong>by bash</strong> or <strong>by you</strong></p>
  512. <blockquote>
  513. <p>Access the value of a variable by prefixing its name with <code>$</code></p>
  514. </blockquote>
  515. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  516. </section>
  517. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="32" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="32" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  518. <h1>Environment variables</h1>
  519. <ul>
  520. <li><code>USER</code> : the name of the logged-in user</li>
  521. <li><code>UID</code> : the numeric user id of the logged-in user</li>
  522. <li><code>HOME</code> : the user's home directory (similar to <code>~</code> )</li>
  523. <li><code>PWD</code> : the current working directory</li>
  524. <li><code>SHELL</code> : the name of the shell</li>
  525. </ul>
  526. <p>Set a shell variable : typing a name followed immediately by an equal sign ( <code>=</code> )</p>
  527. <blockquote>
  528. <p>if the variable exists, you will modify it to assign the new value</p>
  529. </blockquote>
  530. <p>You can use special files to control bash variables : <code>$HOME/.bashrc</code></p>
  531. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  532. </section>
  533. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="33" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="33" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  534. <h1>Remote Linux Access</h1>
  535. <p><code>SSH</code> (or <strong>S</strong>ecure <strong>SH</strong>ell) is a <strong>protocol</strong> used to securely log onto remote systems</p>
  536. <blockquote>
  537. <p>the most common way to access remote Linux and Unix-like servers</p>
  538. </blockquote>
  539. <p><code>VNC</code> (or <strong>V</strong>irtual <strong>N</strong>etwork <strong>C</strong>omputing) is a <strong>software</strong> that allows a personal computer's desktop environment to be run</p>
  540. <p>Aside from bandwidth, latency and security issues (which can vary a bit), the big differences are the functionality</p>
  541. <ul>
  542. <li>VNC exports a whole session, desktop and all (GUI)</li>
  543. <li>SSH runs a single program (CLUI) and show its windows on your machine</li>
  544. </ul>
  545. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  546. </section>
  547. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="34" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="34" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  548. <h1>Remote Linux using SSH</h1>
  549. <p>You need:</p>
  550. <ul>
  551. <li>an access to the distant machine : login/password
  552. <blockquote>
  553. <p>or a login with SSH keys (with passphrase)</p>
  554. </blockquote>
  555. </li>
  556. <li>the hostname or the IP address of the distant machine</li>
  557. <li>and (of course) a UNIX terminal</li>
  558. </ul>
  559. <pre><code class="language-bash"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>ssh -X pbarriat@coriolis.elic.ucl.ac.be
  560. ssh -X -i ~/.ssh/id_rsa.ceci pbarriat@gwcism.cism.ucl.ac.be
  561. </span></span></foreignObject></svg></code></pre>
  562. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  563. </section>
  564. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="35" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="35" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  565. <h1>Remote Linux from Windows</h1>
  566. <p>Using a SSH client to reach a distant Linux Workstation</p>
  567. <p><strong>mobaXTerm</strong> is free and easy to use</p>
  568. <blockquote>
  569. <p>allow you to test a Linux environmment but in CLUI only</p>
  570. </blockquote>
  571. <p>Get a SSH client<br />
  572. <a href="https://mobaxterm.mobatek.net/download-home-edition.html">https://mobaxterm.mobatek.net/download-home-edition.html</a></p>
  573. <p>How to use a SSH client<br />
  574. <a href="https://support.ceci-hpc.be/doc/_contents/QuickStart/ConnectingToTheClusters/MobaXTerm.html">https://support.ceci-hpc.be/doc/_contents/QuickStart/ConnectingToTheClusters/MobaXTerm.html</a></p>
  575. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  576. </section>
  577. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="36" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="36" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  578. <h1>Linux text editors</h1>
  579. <h3>GUI</h3>
  580. <ul>
  581. <li>nedit (simple text editor available in most distributions)</li>
  582. <li>Kate, Gedit (KDE, Gnome)</li>
  583. </ul>
  584. <h3>CLUI</h3>
  585. <ul>
  586. <li>vi (available in all Unix systems) and <strong>vim</strong> (vi improved)
  587. <blockquote>
  588. <p>Difficult to learn for beginners used to graphical text editors<br />
  589. Very productive for power users<br />
  590. <a href="assets/vim-cheatsheet.pdf">Vim Cheatsheet</a></p>
  591. </blockquote>
  592. </li>
  593. <li>nano (friendly and easier to learn)</li>
  594. </ul>
  595. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  596. </section>
  597. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="37" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="37" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  598. <h1>Scripting</h1>
  599. <p>How to do a backup ?</p>
  600. <ul>
  601. <li>with Dropbox or Google Drive ?</li>
  602. <li>with a private cloud such as Nextcloud ?</li>
  603. <li>with an other drive and/or an external drive ?</li>
  604. </ul>
  605. <p>Backup on external drive ?</p>
  606. <ul>
  607. <li>manually ?</li>
  608. <li>with Windows tools ?</li>
  609. <li>with external softwares ?</li>
  610. </ul>
  611. <p><strong>Why don't do that with a simple linux script ?</strong></p>
  612. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  613. </section>
  614. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="38" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="38" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  615. <p><img src="assets/scripting.png" alt="" style="height:600px;" /></p>
  616. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  617. </section>
  618. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="39" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="39" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  619. <h1>Conclusions</h1>
  620. <table>
  621. <thead>
  622. <tr>
  623. <th>Advantages of Linux</th>
  624. <th>Disadvantages of Linux</th>
  625. </tr>
  626. </thead>
  627. <tbody>
  628. <tr>
  629. <td>Cost</td>
  630. <td>Not easy to master ( <strong>CLUI only</strong> )</td>
  631. </tr>
  632. <tr>
  633. <td>Security and robustness</td>
  634. <td>Hardware compatibility issues ( sometimes )</td>
  635. </tr>
  636. <tr>
  637. <td>Freedom</td>
  638. <td>Not compatible with some Windows software</td>
  639. </tr>
  640. <tr>
  641. <td>Software</td>
  642. <td></td>
  643. </tr>
  644. <tr>
  645. <td>Development</td>
  646. <td></td>
  647. </tr>
  648. </tbody>
  649. </table>
  650. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  651. </section>
  652. </foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="40" data-background-image="url('assets/back.png')" data-footer="13/04/2023 | An introduction to Linux | PY Barriat" data-paginate="true" data-theme="ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd" data-marpit-pagination="40" data-marpit-pagination-total="40" style="--background-image:url('assets/back.png');--footer:13/04/2023 | An introduction to Linux | PY Barriat;--paginate:true;--theme:ewqekbpiylil3tizg9ajhpziej4f3znhuwjx14j3xd;background-image:url('assets/back.png');background-position:center;background-repeat:no-repeat;background-size:cover;">
  653. <h3>Need to know more about available Linux applications ?</h3>
  654. <p><a href="https://www.makeuseof.com/tag/best-linux-software/">Check out the list of the best Linux software</a></p>
  655. <h3>Need help with bash scripting ?</h3>
  656. <ul>
  657. <li><a href="https://linuxconfig.org/bash-scripting-tutorial-for-beginners">Bash Scripting Tutorial for Beginners</a></li>
  658. <li><a href="assets/Linux_CLI_Cheat_Sheet.pdf">My favorite CLUI cheatsheet</a></li>
  659. <li><a href="https://devhints.io/bash">Bash scripting cheatsheet</a></li>
  660. </ul>
  661. <h3>Need help with Ubuntu ?</h3>
  662. <p>The massive community is one of Ubuntu's biggest strengths</p>
  663. <blockquote>
  664. <p>Visit <a href="https://askubuntu.com/">https://askubuntu.com/</a> or <a href="https://answers.launchpad.net/">https://answers.launchpad.net/</a></p>
  665. </blockquote>
  666. <footer>13/04/2023 | An introduction to Linux | PY Barriat</footer>
  667. </section>
  668. <script>!function(){"use strict";const t="marpitSVGPolyfill:setZoomFactor,",e=Symbol();let r,o;function n(n){const i="object"==typeof n&&n.target||document,a="object"==typeof n?n.zoom:n;window[e]||(Object.defineProperty(window,e,{configurable:!0,value:!0}),window.addEventListener("message",(({data:e,origin:r})=>{if(r===window.origin)try{if(e&&"string"==typeof e&&e.startsWith(t)){const[,t]=e.split(","),r=Number.parseFloat(t);Number.isNaN(r)||(o=r)}}catch(t){console.error(t)}})));let l=!1;Array.from(i.querySelectorAll("svg[data-marpit-svg]"),(t=>{var e,n,i,s;t.style.transform||(t.style.transform="translateZ(0)");const c=a||o||t.currentScale||1;r!==c&&(r=c,l=c);const d=t.getBoundingClientRect(),{length:f}=t.children;for(let r=0;r<f;r+=1){const o=t.children[r];if(o.getScreenCTM){const t=o.getScreenCTM();if(t){const r=null!==(n=null===(e=o.x)||void 0===e?void 0:e.baseVal.value)&&void 0!==n?n:0,a=null!==(s=null===(i=o.y)||void 0===i?void 0:i.baseVal.value)&&void 0!==s?s:0,l=o.children.length;for(let e=0;e<l;e+=1){const n=o.children[e];if("SECTION"===n.tagName){const{style:e}=n;e.transformOrigin||(e.transformOrigin=`${-r}px ${-a}px`),e.transform=`scale(${c}) matrix(${t.a}, ${t.b}, ${t.c}, ${t.d}, ${t.e-d.left}, ${t.f-d.top}) translateZ(0.0001px)`;break}}}}}})),!1!==l&&Array.from(i.querySelectorAll("iframe"),(({contentWindow:e})=>{null==e||e.postMessage(`${t}${l}`,"null"===window.origin?"*":window.origin)}))}r=1,o=void 0;const i=(t,e,r)=>{if(t.getAttribute(e)!==r)return t.setAttribute(e,r),!0};function a({once:t=!1,target:e=document}={}){const r="Apple Computer, Inc."===navigator.vendor?[n]:[];let o=!t;const a=()=>{for(const t of r)t({target:e});!function(t=document){Array.from(t.querySelectorAll('svg[data-marp-fitting="svg"]'),(t=>{var e;const r=t.firstChild,o=r.firstChild,{scrollWidth:n,scrollHeight:a}=o;let l,s=1;if(t.hasAttribute("data-marp-fitting-code")&&(l=null===(e=t.parentElement)||void 0===e?void 0:e.parentElement),t.hasAttribute("data-marp-fitting-math")&&(l=t.parentElement),l){const t=getComputedStyle(l),e=Math.ceil(l.clientWidth-parseFloat(t.paddingLeft||"0")-parseFloat(t.paddingRight||"0"));e&&(s=e)}const c=Math.max(n,s),d=Math.max(a,1),f=`0 0 ${c} ${d}`;i(r,"width",`${c}`),i(r,"height",`${d}`),i(t,"preserveAspectRatio",getComputedStyle(t).getPropertyValue("--preserve-aspect-ratio")||"xMinYMin meet"),i(t,"viewBox",f)&&t.classList.toggle("__reflow__")}))}(e),o&&window.requestAnimationFrame(a)};return a(),()=>{o=!1}}const l=Symbol(),s=document.currentScript;((t=document)=>{if("undefined"==typeof window)throw new Error("Marp Core's browser script is valid only in browser context.");if(t[l])return t[l];const e=a({target:t}),r=()=>{e(),delete t[l]};Object.defineProperty(t,l,{configurable:!0,value:r})})(s?s.getRootNode():document)}();
  669. </script></foreignObject></svg></div><script>/*!! License: https://unpkg.com/@marp-team/marp-cli@1.7.2/lib/bespoke.js.LICENSE.txt */
  670. !function(){"use strict";const e=document.body,t=(...e)=>history.replaceState(...e),n="presenter",r="next",o=["",n,r],a="data-bespoke-marp-",i=(e,{protocol:t,host:n,pathname:r,hash:o}=location)=>{const a=e.toString();return`${t}//${n}${r}${a?"?":""}${a}${o}`},s=()=>e.dataset.bespokeView,l=e=>new URLSearchParams(location.search).get(e),d=(e,n={})=>{var r;const o={location,setter:t,...n},a=new URLSearchParams(o.location.search);for(const t of Object.keys(e)){const n=e[t];"string"==typeof n?a.set(t,n):a.delete(t)}try{o.setter({...null!==(r=window.history.state)&&void 0!==r?r:{}},"",i(a,o.location))}catch(e){console.error(e)}},c=(()=>{const e="bespoke-marp";try{return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch(e){return!1}})(),u=e=>{try{return localStorage.getItem(e)}catch(e){return null}},f=(e,t)=>{try{return localStorage.setItem(e,t),!0}catch(e){return!1}},m=e=>{try{return localStorage.removeItem(e),!0}catch(e){return!1}},g=(e,t)=>{const n="aria-hidden";t?e.setAttribute(n,"true"):e.removeAttribute(n)},p=e=>{e.parent.classList.add("bespoke-marp-parent"),e.slides.forEach((e=>e.classList.add("bespoke-marp-slide"))),e.on("activate",(t=>{const n="bespoke-marp-active",r=t.slide,o=r.classList,a=!o.contains(n);if(e.slides.forEach((e=>{e.classList.remove(n),g(e,!0)})),o.add(n),g(r,!1),a){const e=`${n}-ready`;o.add(e),document.body.clientHeight,o.remove(e)}}))},v=e=>{let t=0,n=0;Object.defineProperty(e,"fragments",{enumerable:!0,value:e.slides.map((e=>[null,...e.querySelectorAll("[data-marpit-fragment]")]))});const r=r=>void 0!==e.fragments[t][n+r],o=(r,o)=>{t=r,n=o,e.fragments.forEach(((e,t)=>{e.forEach(((e,n)=>{if(null==e)return;const i=t<r||t===r&&n<=o;e.setAttribute(`${a}fragment`,(i?"":"in")+"active");const s=`${a}current-fragment`;t===r&&n===o?e.setAttribute(s,"current"):e.removeAttribute(s)}))})),e.fragmentIndex=o;const i={slide:e.slides[r],index:r,fragments:e.fragments[r],fragmentIndex:o};e.fire("fragment",i)};e.on("next",(({fragment:a=!0})=>{if(a){if(r(1))return o(t,n+1),!1;const a=t+1;e.fragments[a]&&o(a,0)}else{const r=e.fragments[t].length;if(n+1<r)return o(t,r-1),!1;const a=e.fragments[t+1];a&&o(t+1,a.length-1)}})),e.on("prev",(({fragment:a=!0})=>{if(r(-1)&&a)return o(t,n-1),!1;const i=t-1;e.fragments[i]&&o(i,e.fragments[i].length-1)})),e.on("slide",(({index:t,fragment:n})=>{let r=0;if(void 0!==n){const o=e.fragments[t];if(o){const{length:e}=o;r=-1===n?e-1:Math.min(Math.max(n,0),e-1)}}o(t,r)})),o(0,0)},h=document,y=()=>!(!h.fullscreenEnabled&&!h.webkitFullscreenEnabled),b=()=>!(!h.fullscreenElement&&!h.webkitFullscreenElement),x=e=>{e.fullscreen=()=>{y()&&(async()=>{return b()?null===(e=h.exitFullscreen||h.webkitExitFullscreen)||void 0===e?void 0:e.call(h):((e=h.body)=>{var t;return null===(t=e.requestFullscreen||e.webkitRequestFullscreen)||void 0===t?void 0:t.call(e)})();var e})()},document.addEventListener("keydown",(t=>{"f"!==t.key&&"F11"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!y()||(e.fullscreen(),t.preventDefault())}))},w="bespoke-marp-inactive",k=(e=2e3)=>({parent:t,fire:n})=>{const r=t.classList,o=e=>n(`marp-${e?"":"in"}active`);let a;const i=()=>{a&&clearTimeout(a),a=setTimeout((()=>{r.add(w),o()}),e),r.contains(w)&&(r.remove(w),o(!0))};for(const e of["mousedown","mousemove","touchend"])document.addEventListener(e,i);setTimeout(i,0)},E=["AUDIO","BUTTON","INPUT","SELECT","TEXTAREA","VIDEO"],L=e=>{e.parent.addEventListener("keydown",(e=>{if(!e.target)return;const t=e.target;(E.includes(t.nodeName)||"true"===t.contentEditable)&&e.stopPropagation()}))},$=e=>{window.addEventListener("load",(()=>{for(const t of e.slides){const e=t.querySelector("[data-marp-fitting]")?"":"hideable";t.setAttribute(`${a}load`,e)}}))},S=({interval:e=250}={})=>t=>{document.addEventListener("keydown",(e=>{if(" "===e.key&&e.shiftKey)t.prev();else if("ArrowLeft"===e.key||"ArrowUp"===e.key||"PageUp"===e.key)t.prev({fragment:!e.shiftKey});else if(" "!==e.key||e.shiftKey)if("ArrowRight"===e.key||"ArrowDown"===e.key||"PageDown"===e.key)t.next({fragment:!e.shiftKey});else if("End"===e.key)t.slide(t.slides.length-1,{fragment:-1});else{if("Home"!==e.key)return;t.slide(0)}else t.next();e.preventDefault()}));let n,r,o=0;t.parent.addEventListener("wheel",(a=>{let i=!1;const s=(e,t)=>{e&&(i=i||((e,t)=>((e,t)=>{const n="X"===t?"Width":"Height";return e[`client${n}`]<e[`scroll${n}`]})(e,t)&&((e,t)=>{const{overflow:n}=e,r=e[`overflow${t}`];return"auto"===n||"scroll"===n||"auto"===r||"scroll"===r})(getComputedStyle(e),t))(e,t)),(null==e?void 0:e.parentElement)&&s(e.parentElement,t)};if(0!==a.deltaX&&s(a.target,"X"),0!==a.deltaY&&s(a.target,"Y"),i)return;a.preventDefault();const l=Math.sqrt(a.deltaX**2+a.deltaY**2);if(void 0!==a.wheelDelta){if(void 0===a.webkitForce&&Math.abs(a.wheelDelta)<40)return;if(a.deltaMode===a.DOM_DELTA_PIXEL&&l<4)return}else if(a.deltaMode===a.DOM_DELTA_PIXEL&&l<12)return;r&&clearTimeout(r),r=setTimeout((()=>{n=0}),e);const d=Date.now()-o<e,c=l<=n;if(n=l,d||c)return;let u;(a.deltaX>0||a.deltaY>0)&&(u="next"),(a.deltaX<0||a.deltaY<0)&&(u="prev"),u&&(t[u](),o=Date.now())}))},P=(e=".bespoke-marp-osc")=>{const t=document.querySelector(e);if(!t)return()=>{};const n=(e,n)=>{t.querySelectorAll(`[${a}osc=${JSON.stringify(e)}]`).forEach(n)};return y()||n("fullscreen",(e=>e.style.display="none")),c||n("presenter",(e=>{e.disabled=!0,e.title="Presenter view is disabled due to restricted localStorage."})),e=>{t.addEventListener("click",(t=>{if(t.target instanceof HTMLElement){const{bespokeMarpOsc:n}=t.target.dataset;n&&t.target.blur();const r={fragment:!t.shiftKey};"next"===n?e.next(r):"prev"===n?e.prev(r):"fullscreen"===n?null==e||e.fullscreen():"presenter"===n&&e.openPresenterView()}})),e.parent.appendChild(t),e.on("activate",(({index:t})=>{n("page",(n=>n.textContent=`Page ${t+1} of ${e.slides.length}`))})),e.on("fragment",(({index:t,fragments:r,fragmentIndex:o})=>{n("prev",(e=>e.disabled=0===t&&0===o)),n("next",(n=>n.disabled=t===e.slides.length-1&&o===r.length-1))})),e.on("marp-active",(()=>g(t,!1))),e.on("marp-inactive",(()=>g(t,!0))),y()&&(e=>{for(const t of["","webkit"])h.addEventListener(t+"fullscreenchange",e)})((()=>n("fullscreen",(e=>e.classList.toggle("exit",y()&&b())))))}},T=e=>{window.addEventListener("message",(t=>{if(t.origin!==window.origin)return;const[n,r]=t.data.split(":");if("navigate"===n){const[t,n]=r.split(",");let o=Number.parseInt(t,10),a=Number.parseInt(n,10)+1;a>=e.fragments[o].length&&(o+=1,a=0),e.slide(o,{fragment:a})}}))};var I=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];let N=e=>String(e).replace(/[&<>"']/g,(e=>`&${C[e]};`)),C={"&":"amp","<":"lt",">":"gt",'"':"quot","'":"apos"},A="dangerouslySetInnerHTML",D={className:"class",htmlFor:"for"},M={};function B(e,t){let n=[],r="";t=t||{};for(let e=arguments.length;e-- >2;)n.push(arguments[e]);if("function"==typeof e)return t.children=n.reverse(),e(t);if(e){if(r+="<"+e,t)for(let e in t)!1!==t[e]&&null!=t[e]&&e!==A&&(r+=` ${D[e]?D[e]:N(e)}="${N(t[e])}"`);r+=">"}if(-1===I.indexOf(e)){if(t[A])r+=t[A].__html;else for(;n.length;){let e=n.pop();if(e)if(e.pop)for(let t=e.length;t--;)n.push(e[t]);else r+=!0===M[e]?e:N(e)}r+=e?`</${e}>`:""}return M[r]=!0,r}const K=({children:e})=>B(null,null,...e),O="bespoke-marp-presenter-",q={container:`${O}container`,dragbar:`${O}dragbar-container`,next:`${O}next`,nextContainer:`${O}next-container`,noteContainer:`${O}note-container`,noteWrapper:`${O}note-wrapper`,noteButtons:`${O}note-buttons`,infoContainer:`${O}info-container`,infoPage:`${O}info-page`,infoPageText:`${O}info-page-text`,infoPagePrev:`${O}info-page-prev`,infoPageNext:`${O}info-page-next`,noteButtonsBigger:`${O}note-bigger`,noteButtonsSmaller:`${O}note-smaller`,infoTime:`${O}info-time`,infoTimer:`${O}info-timer`},_=e=>{const{title:t}=document;document.title="[Presenter view]"+(t?` - ${t}`:"");const n={},r=e=>(n[e]=n[e]||document.querySelector(`.${e}`),n[e]);document.body.appendChild((e=>{const t=document.createElement("div");return t.className=q.container,t.appendChild(e),t.insertAdjacentHTML("beforeend",B(K,null,B("div",{class:q.nextContainer},B("iframe",{class:q.next,src:"?view=next"})),B("div",{class:q.dragbar}),B("div",{class:q.noteContainer},B("div",{class:q.noteWrapper}),B("div",{class:q.noteButtons},B("button",{class:q.noteButtonsSmaller,tabindex:"-1",title:"Smaller notes font size"},"Smaller notes font size"),B("button",{class:q.noteButtonsBigger,tabindex:"-1",title:"Bigger notes font size"},"Bigger notes font size"))),B("div",{class:q.infoContainer},B("div",{class:q.infoPage},B("button",{class:q.infoPagePrev,tabindex:"-1",title:"Previous"},"Previous"),B("span",{class:q.infoPageText}),B("button",{class:q.infoPageNext,tabindex:"-1",title:"Next"},"Next")),B("time",{class:q.infoTime,title:"Current time"}),B("time",{class:q.infoTimer,title:"Timer"})))),t})(e.parent)),(e=>{let t=!1;r(q.dragbar).addEventListener("mousedown",(()=>{t=!0,r(q.dragbar).classList.add("active")})),window.addEventListener("mouseup",(()=>{t=!1,r(q.dragbar).classList.remove("active")})),window.addEventListener("mousemove",(e=>{if(!t)return;const n=e.clientX/document.documentElement.clientWidth*100;r(q.container).style.setProperty("--bespoke-marp-presenter-split-ratio",`${Math.max(0,Math.min(100,n))}%`)})),r(q.nextContainer).addEventListener("click",(()=>e.next()));const n=r(q.next),o=(a=n,(e,t)=>{var n;return null===(n=a.contentWindow)||void 0===n?void 0:n.postMessage(`navigate:${e},${t}`,"null"===window.origin?"*":window.origin)});var a;n.addEventListener("load",(()=>{r(q.nextContainer).classList.add("active"),o(e.slide(),e.fragmentIndex),e.on("fragment",(({index:e,fragmentIndex:t})=>o(e,t)))}));const i=document.querySelectorAll(".bespoke-marp-note");i.forEach((e=>{e.addEventListener("keydown",(e=>e.stopPropagation())),r(q.noteWrapper).appendChild(e)})),e.on("activate",(()=>i.forEach((t=>t.classList.toggle("active",t.dataset.index==e.slide())))));let s=0;const l=e=>{s=Math.max(-5,s+e),r(q.noteContainer).style.setProperty("--bespoke-marp-note-font-scale",(1.2**s).toFixed(4))},d=()=>l(1),c=()=>l(-1),u=r(q.noteButtonsBigger),f=r(q.noteButtonsSmaller);u.addEventListener("click",(()=>{u.blur(),d()})),f.addEventListener("click",(()=>{f.blur(),c()})),document.addEventListener("keydown",(e=>{"+"===e.key&&d(),"-"===e.key&&c()}),!0),e.on("activate",(({index:t})=>{r(q.infoPageText).textContent=`${t+1} / ${e.slides.length}`}));const m=r(q.infoPagePrev),g=r(q.infoPageNext);m.addEventListener("click",(t=>{m.blur(),e.prev({fragment:!t.shiftKey})})),g.addEventListener("click",(t=>{g.blur(),e.next({fragment:!t.shiftKey})})),e.on("fragment",(({index:t,fragments:n,fragmentIndex:r})=>{m.disabled=0===t&&0===r,g.disabled=t===e.slides.length-1&&r===n.length-1}));let p=new Date;const v=()=>{const e=new Date,t=e=>`${Math.floor(e)}`.padStart(2,"0"),n=e.getTime()-p.getTime(),o=t(n/1e3%60),a=t(n/1e3/60%60),i=t(n/36e5%24);r(q.infoTime).textContent=e.toLocaleTimeString(),r(q.infoTimer).textContent=`${i}:${a}:${o}`};v(),setInterval(v,250),r(q.infoTimer).addEventListener("click",(()=>{p=new Date}))})(e)},X=e=>{if(!(e=>e.syncKey&&"string"==typeof e.syncKey)(e))throw new Error("The current instance of Bespoke.js is invalid for Marp bespoke presenter plugin.");Object.defineProperties(e,{openPresenterView:{enumerable:!0,value:F},presenterUrl:{enumerable:!0,get:U}}),c&&document.addEventListener("keydown",(t=>{"p"!==t.key||t.altKey||t.ctrlKey||t.metaKey||(t.preventDefault(),e.openPresenterView())}))};function F(){const{max:e,floor:t}=Math,n=e(t(.85*window.innerWidth),640),r=e(t(.85*window.innerHeight),360);return window.open(this.presenterUrl,O+this.syncKey,`width=${n},height=${r},menubar=no,toolbar=no`)}function U(){const e=new URLSearchParams(location.search);return e.set("view","presenter"),e.set("sync",this.syncKey),i(e)}const V=e=>{const t=s();return t===r&&e.appendChild(document.createElement("span")),{"":X,[n]:_,[r]:T}[t]},R=e=>{e.on("activate",(t=>{document.querySelectorAll(".bespoke-progress-parent > .bespoke-progress-bar").forEach((n=>{n.style.flexBasis=100*t.index/(e.slides.length-1)+"%"}))}))},j=e=>{const t=Number.parseInt(e,10);return Number.isNaN(t)?null:t},H=(e={})=>{const t={history:!0,...e};return e=>{let n=!0;const r=e=>{const t=n;try{return n=!0,e()}finally{n=t}},o=(t={fragment:!0})=>{((t,n)=>{const{min:r,max:o}=Math,{fragments:a,slides:i}=e,s=o(0,r(t,i.length-1)),l=o(0,r(n||0,a[s].length-1));s===e.slide()&&l===e.fragmentIndex||e.slide(s,{fragment:l})})((j(location.hash.slice(1))||1)-1,t.fragment?j(l("f")||""):null)};e.on("fragment",(({index:e,fragmentIndex:r})=>{n||d({f:0===r||r.toString()},{location:{...location,hash:`#${e+1}`},setter:(...e)=>t.history?history.pushState(...e):history.replaceState(...e)})})),setTimeout((()=>{o(),window.addEventListener("hashchange",(()=>r((()=>{o({fragment:!1}),d({f:void 0})})))),window.addEventListener("popstate",(()=>{n||r((()=>o()))})),n=!1}),0)}},W=(e={})=>{var n;const r=e.key||(null===(n=window.history.state)||void 0===n?void 0:n.marpBespokeSyncKey)||Math.random().toString(36).slice(2),o=`bespoke-marp-sync-${r}`;var a;a={marpBespokeSyncKey:r},d({},{setter:(e,...n)=>t({...e,...a},...n)});const i=()=>{const e=u(o);return e?JSON.parse(e):Object.create(null)},s=e=>{const t=i(),n={...t,...e(t)};return f(o,JSON.stringify(n)),n},l=()=>{window.removeEventListener("pageshow",l),s((e=>({reference:(e.reference||0)+1})))};return e=>{l(),Object.defineProperty(e,"syncKey",{value:r,enumerable:!0});let t=!0;setTimeout((()=>{e.on("fragment",(e=>{t&&s((()=>({index:e.index,fragmentIndex:e.fragmentIndex})))}))}),0),window.addEventListener("storage",(n=>{if(n.key===o&&n.oldValue&&n.newValue){const r=JSON.parse(n.oldValue),o=JSON.parse(n.newValue);if(r.index!==o.index||r.fragmentIndex!==o.fragmentIndex)try{t=!1,e.slide(o.index,{fragment:o.fragmentIndex})}finally{t=!0}}}));const n=()=>{const{reference:e}=i();void 0===e||e<=1?m(o):s((()=>({reference:e-1})))};window.addEventListener("pagehide",(e=>{e.persisted&&window.addEventListener("pageshow",l),n()})),e.on("destroy",n)}},{PI:Y,abs:J,sqrt:z,atan2:G}=Math,Q={passive:!0},Z=({slope:e=-.7,swipeThreshold:t=30}={})=>n=>{let r;const o=n.parent,a=e=>{const t=o.getBoundingClientRect();return{x:e.pageX-(t.left+t.right)/2,y:e.pageY-(t.top+t.bottom)/2}};o.addEventListener("touchstart",(({touches:e})=>{r=1===e.length?a(e[0]):void 0}),Q),o.addEventListener("touchmove",(e=>{if(r)if(1===e.touches.length){e.preventDefault();const t=a(e.touches[0]),n=t.x-r.x,o=t.y-r.y;r.delta=z(J(n)**2+J(o)**2),r.radian=G(n,o)}else r=void 0})),o.addEventListener("touchend",(o=>{if(r){if(r.delta&&r.delta>=t&&r.radian){const t=(r.radian-e+Y)%(2*Y)-Y;n[t<0?"next":"prev"](),o.stopPropagation()}r=void 0}}),Q)},ee="_tA",te=e=>{const t=document.documentTransition;if(!t)return;let n;e._tP=!1;const r=(n,{back:r,cond:o})=>a=>{var i,s;const l=e.slides[e.slide()].querySelector("section[data-transition]");if(!l)return!0;const d=document.querySelector(".bespoke-marp-osc"),c=d?[d]:void 0;if(e._tP){if(a._tA){e._tP=!1;try{t.start({sharedElements:c}).catch((()=>{}))}catch(e){}return!0}}else{if(!o(a))return!0;const d="transition"+(a.back||r?"Back":""),u=Number.parseInt(null!==(i=l.dataset[`${d}Duration`])&&void 0!==i?i:"",10),f=Number.parseInt(null!==(s=l.dataset[`${d}Delay`])&&void 0!==s?s:"",10),m={};Number.isNaN(u)||(m.duration=u.toString()),Number.isNaN(f)||(m.delay=f.toString()),e._tP=t.prepare({rootTransition:l.dataset[d],rootConfig:m,sharedElements:c}).then((()=>n(a))).catch((()=>n(a)))}return!1};e.on("prev",r((t=>e.prev({...t,[ee]:!0})),{back:!0,cond:e=>{var t;return e.index>0&&!((null===(t=e.fragment)||void 0===t||t)&&n.fragmentIndex>0)}})),e.on("next",r((t=>e.next({...t,[ee]:!0})),{cond:t=>t.index+1<e.slides.length&&!(n.fragmentIndex+1<n.fragments.length)})),setTimeout((()=>{e.on("slide",r((t=>e.slide(t.index,{...t,[ee]:!0})),{cond:t=>{const n=e.slide();return t.index!==n&&(t.back=t.index<n,!0)}}))}),0),e.on("fragment",(e=>{n=e}))};let ne;const re=()=>(void 0===ne&&(ne="wakeLock"in navigator&&navigator.wakeLock),ne),oe=async()=>{const e=re();if(e)try{return await e.request("screen")}catch(e){console.warn(e)}return null},ae=async()=>{if(!re())return;let e;const t=()=>{e&&"visible"===document.visibilityState&&oe()};for(const e of["visibilitychange","fullscreenchange"])document.addEventListener(e,t);return e=await oe(),e};((t=document.getElementById("p"))=>{(()=>{const t=l("view");e.dataset.bespokeView=t===r||t===n?t:""})();const a=(e=>{const t=l(e);return d({[e]:void 0}),t})("sync")||void 0;var i,c,u,f,m,g,h,y,b,w,E,T;i=t,c=((...e)=>{const t=o.findIndex((e=>s()===e));return e.map((([e,n])=>e[t]&&n)).filter((e=>e))})([[1,1,0],W({key:a})],[[1,1,1],V(t)],[[1,1,0],L],[[1,1,1],p],[[1,0,0],k()],[[1,1,1],$],[[1,1,1],H({history:!1})],[[1,1,0],S()],[[1,1,0],x],[[1,0,0],R],[[1,1,0],Z()],[[1,0,0],P()],[[1,0,0],te],[[1,1,1],v],[[1,1,0],ae]),f=1===(i.parent||i).nodeType?i.parent||i:document.querySelector(i.parent||i),m=[].filter.call("string"==typeof i.slides?f.querySelectorAll(i.slides):i.slides||f.children,(function(e){return"SCRIPT"!==e.nodeName})),g={},h=function(e,t){return(t=t||{}).index=m.indexOf(e),t.slide=e,t},w=function(e,t){m[e]&&(u&&b("deactivate",h(u,t)),u=m[e],b("activate",h(u,t)))},E=function(e,t){var n=m.indexOf(u)+e;b(e>0?"next":"prev",h(u,t))&&w(n,t)},T={off:y=function(e,t){g[e]=(g[e]||[]).filter((function(e){return e!==t}))},on:function(e,t){return(g[e]||(g[e]=[])).push(t),y.bind(null,e,t)},fire:b=function(e,t){return(g[e]||[]).reduce((function(e,n){return e&&!1!==n(t)}),!0)},slide:function(e,t){if(!arguments.length)return m.indexOf(u);b("slide",h(m[e],t))&&w(e,t)},next:E.bind(null,1),prev:E.bind(null,-1),parent:f,slides:m,destroy:function(e){b("destroy",h(u,e)),g={}}},(c||[]).forEach((function(e){e(T)})),u||w(0)})()}();</script></body></html>