Jump to content

Search the Community

Showing results for tags 'linux'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • FiveM
    • Pomoc
    • Resources
    • Návody
    • Ostatní
  • Hlavní informace
    • Oznámení
    • Soutěže

Categories

  • Scripty
  • Mapy
  • Ostatní
  • Abandoned

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me

Found 4 results

  1. Jednotlivé příkazy které spustíme v BASH a jsou spuštěny tak, že čekají na ukončení. (Tzn: že běží stále) běží vždy dokud nejsou násilně ukončeny nebo není uzavřeno spojení s BASH. Příklad: Když spustíme FiveM server, tak daný script běží do doby než nastanou tyto tři možnosti: Server není ukončen chybou scriptu Server není ukončen ze strany uživatele Server není ukončen dokud není ukončeno spojení s BASH Cílem je tedy potřeba spustit script tak aby běžel i po ukončení BASH spojení. Pro tuto potřebu se nejčastěji používá příkaz SCREEN Příkaz "screen" je nástroj pro práci s více okny nebo terminály v jednom sezení. Screen umožňuje uživatelům vytvářet, spouštět a přepínat mezi více pracovními plochami (tzv. "screens"), což umožňuje uživatelům spustit více úkolů nezávisle na sobě v jednom sezení terminálu. Ukázkové použití pro FiveM server Zapnutí serveru pomocí screen screen -L -d -m -S NazevServeru bash /cesta/k/nasemu/serveru/fivem_server/run.sh +set serverProfile dev_server +set txAdminPort 40120 Parametry: -L Tento parametr umožňuje zapnout záznam výstupu ze screenu do souboru. Po zapnutí této funkce bude každý výstup z screenového sezení zapsán do souboru "screenlog.n", kde "n" je číslo screenu. -d session_name: Tento parametr umožňuje uživateli odpojit se od aktivního screenu s daným názvem, aniž by zastavil běžící procesy v tomto screenovém sezení. -m: Tento parametr umožňuje uživateli spustit nový proces v novém screenovém sezení, aniž by bylo třeba se připojovat k němu. Tento režim je užitečný pro spuštění skriptů nebo programů na pozadí, aniž by uživatel musel být aktivně připojen k screenu. -S session_name: Tento parametr umožňuje uživateli specifikovat název screenu pro vytvoření nového sezení. Vypnutí serveru pomocí screen screen -X -S NazevServeru kill -S session_name: Tento parametr umožňuje uživateli specifikovat název screenu pro vytvoření nového sezení. -X: Tento parametr umožňuje uživateli posílat příkazy do běžícího screenového sezení. + použijeme příkaz kill screen -X -S NazevServeru [command] Pozor! Příkaz screen nemusí být v základní instalaci vaší distribuce nainstalován. V případě že nelze přípak použít, musíte si program screen nainstalovat pomocí vašeho balíčkovacího systému. Například: apt-get install screen #nebo yum install screen
  2. shell není jen příkazový řádek pro jednotlivé příkazy je to programovací jazyk pro psaní skriptů skript je soubor obsahující posloupnost příkazů Nezáleží na koncovce, nemusí být, je zvykem .sh Na prvním řádku označení interpretu (jaký program má tento skript zpracovat) BASH (shell): #!/bin/bash Např PHP #!/bin/php -f Existují dva druhy příkazů interní příkazy BASHe externí programy Základy SHELLu Obvykle 1 příkaz na řádek více příkazů na řádek cd /; echo “Text“; mkdir samnick Jeden příkaz na více řádků (pro přehlednost) prikaz --parametr1 --parametr2 \ --parametr3 Komentář: # Parametry Parametry jsou odděleny mezerou ./skript.sh parametr1 parametr2 Parametr uzavřeme do uvozovek ./skript.sh “toto je parametr 1“ parametr2 Pozor na víceslovné adresáře a soubory cat Program Files\soubor.txt Ve skript se k hodnotám parametrů dostaneme přes $N $1 – první parametr $2 – druhý parametr atd. $0 – název skriptu (skript.sh) $$ - PID aktuálního procesu $# - počet parametrů Proměnné Vytvoření proměnné zadáním hodnoty Nepsaným standardem je psát proměnné velkými písmeny CESTA=/files/server SOUBOR=“$1“ ZDROJ=“$CESTA/$SOUBOR“ CIL=/fivem cp “$ZDROJ“ “$CIL“ Pozor na víceslovné hodnoty Je vždy lepší používat uvozovky Tento příkaz nefunguje a výsledkem je něco jiného SOUBOR=nazev souboru Složitější situace s názvem proměnné a následujícího textu echo $PREFIX_nasledujici_text # špatně echo ${PREFIX}_nasledujici_text Pro získání výstupu příkazu se používá opačný apostrof ` ADRESAR=`pwd` POCET=`ls $ADRESAR | wc -l` echo “v adresari $ADRESAR je $POCET souboru“ Přečtení jedné hodnoty = čte řádek ze vstupu, tj. čeká na ENTER echo -n “Zadej sve jmeno: “ read JMENO echo “Tve jmeno je $JMENO“ Příkaz test = [] Příkaz test vyhodnocuje logickou podmínku Podle toho vrátí návratovou hodnotu (0 = true) Zkrácený zápis pomocí závorek [] Pozor na mezery kolem závorek a operátorů!!! test “$1“ == “fivem“ [ “$1“ == “fivem“ ] # stejný zápis Příklad [ -n “$1“ ] || ( echo “První parametr je prazdny“; exit 1 ) if if podminka; then command elif podminka; then command fi Zavolá se příkaz podmínka, rozhoduje se dle návratové hodnoty if [ -f “$1“ ]; then echo “Vypis souboru $1“; cat “$1“ else echo “Soubor neexistuje“ exit 1 fi for for PROM in VSTUP; do echo $PROM done Postupně bere slova za in (odděleno mezerami) a dosazuje to do proměnné PROM for ROK in 2001 2002 2003 2004; do mkdir rok_$ROK done Použití většího interval for ROK in `seq 2001 2020`; do ... cyklus se soubory v adresáři for folder in *.txt; do # komentar if [ ! -f “$folder“ ]; then continue; fi # pauza if [ “$folder“ = “end.txt“ ]; then break; fi echo “je tu soubor $folder“ done while Opakuje cyklus dokud je splněna podmínka, takže volaný příkaz v podmínce má návratovou hodnotu 0 Upřesnění příkazu read Uvedením názvů více proměnný se vstup rozdělí dle mezer Do poslední proměnné se dá zbytek z řádku na vstupu Read vrací 0, když je ještě něco na vstupu, 1 znamená konec while read JMENO PRIJMENI; do echo “jmeno: $JMENO, prijmeni: $PRIJMENI“ done Pozn: musíme ale počítat že jsou na vstupu dodány dva parametry subshell Pomocí kulatých závorek lze spustit subshell a pracovat s jeho vstupem a výstupem. Např. chceme číst řádky ze souboru a s nimi postupně provádět další operace cat /etc/passwd | ( while read -d “:“ UZIV FOO; do echo “uzivatel: $UZIV“ done ) > vystup.txt Parametrem -d změníme oddělování funkce - podprogramy V případě používání funkcí jsou parametry $1, $2 atd. parametry funkce a nikoliv skriptu. Ve funkci se nelze dostat k parametrům scriptu. Ostatní proměnné jsou globální. FIVEM=/fivem start() { tar jcf $FIVEM/$1.tar.bz $2 } start scipts /fivem_scipts start data /fivem_data V příloze jsou uloženy dvě PDF kde jsou podrobnosti bash_script.pdf bash_ocima_bohdana_milara.pdf
  3. Pro práci se základními příkazy budeme potřebovat BASH - interpret příkazového řádku. Nejčastějším nástrojem pro vzdálené připojení k OS s BASH z OS Windows je např: SSH, Putty, mRemoteNG. Mnoho začínajících uživatelů již při připojování zaskočí že nevidí zda-li píšou heslo, nebo alespon zástupné *** znaky. Bash nepoužívá při zadávání hesla ani jiných citlivých údajů standardní výstup na obrazovce, aby se zabránilo jejich zobrazení nebo zaznamenání. Místo toho Bash používá speciální techniku nazývanou "přímý výstup" (angl. "direct output"), když uživatel zadává heslo, kód se automaticky skryje a na obrazovce se nezobrazuje. MAN Téměř každý příkaz v Linuxu má své parametry, dle kterých defingujeme způsob výstupu daného příkazu. Aby nebylo potřeba si všechny parametry pamatovat, můžeme nejčastěji použít příkaz -help Ale pro náročnější uživatele a celkové pochopení parametrů jsou nám k většině příkazů dostupné manuálové stránky. Parametry uvedené v hranatých závorkách nejsou povinné. Je-li v závorkách uvedeno několik možností oddělených svislou čárou (znak | „ pajpa “), znamená to, že si můžeme vybrat jen jednu z nabízených možností parametru Pozor! Linux je case sensitive!! "a" není "A" Adresářová struktura Aktuální adresář - ten existuje vždy, neexistuje možnost nebýt v aktuálním adresáře můžeme používat: relativní cesty cd ../../.. cat mujpodadresar/fivem.txt absolutní cesty cat /home/mujpodadresar/fivem.txt Spustitelný soubor se nehledá v aktuálním adresáři ale hledá se v cestách z proměnné PATH (= proměnná daného prostředí) # prikaz.sh i když existuje prikaz.sh, nespustí se musí se explicitně říct, že chcete pustit soubor v aktuálním adresáři ./prikaz.sh „.“ je aktuální adresář Soubory a složky v Linuxu je všechno soubor, neexistuje složka, skutečné soubory jsou data na disku Adresář - je jen soubor se seznamem souborů a informací Sokety - jsou soubory, které reprezentují síťové spojení Zařízení - disky, partition , klávesnice, periferie Protože je vše reprezentováno jako soubor, lze se vším pracovat způsobem: open, close, read, write, delete Linux nelpí na koncovkách, jsou mu zcela jedno. Spustitelný soubor nemá žádnou koncovku "exe". Spustitelný je, pokud má nastavený příznak (x) v oprávnění souboru. Zástupné znaky Zástupné znaky lze používat i na úrovni bash Shell vždy rozloží příkaz, která až následně vyvolá a zpracuje. * - cokoliv, i nic ? - jeden znak [a-f], [0-9] – jen určitý znak z dané množiny cat *.txt je ve skutečnosti: # cat a.txt b.txt c.txt ..atd Vstupy a výstupy Každý proces v Linux má 2 vstupy a 3 výstupy Vstupy (do procesu vstupuje) parametry na příkazovém řádku standardní vstup (stdin) Výstupy standardní výstup (stdout) chybový výstup (stderr) návratová hodnoty ● stdin, stdout a strerr lze různě propojovat a přesměrovávat a ukládat Ve výchozím stavu je v Linuxu stdin napojen vždy na klávesnici program < vstup.txt roura (pipe) | (pajpa) propojí stdout procesu nalevo se stdin procesu vpravo cat vstup.txt | grep ‚pepa‘ Pajp může být více a slouží k různému „filtrování“ a hledání v obsahu (např logu) Několik primitivních prográmků se spojí v silný nástroj cat soubor.txt | grep “Jiri“ | sort | head -n 10 Vezme jen řádky obsahující „Jiri“, setřídí, vypíše prvních 10 Např cat soubor.txt | bzip2 > soubor.txt.bz2 Ve výchozím stavu je vždy v Linuxu stdout nasměrován na obrazovku (terminál) program > vysledky.txt přesměrování do souboru (soubor se vytvoří či přepíše) program >> vysledky.txt přidání na konec souboru Např yes >> yes Přesměrování na vstup jiného programu (roura) program | tee vysledek.txt tee čte vstup, zapisuje jej do souboru a posílá na výstup STDERR - Proč má Linux dvě výstupové hodnoty? Proč nestačí mít jen jednu? Standardně nechceme aby se nám míchal obsah výstupu. Cílem je oddělit standardní výstup a chybový výstup program > vystup.txt výstup končí v souboru, chyby se vypisují na obrazovku program 2> chyby.txt výstup končí na obrazovce, chyby se zapisují do souboru program 2>&1 > vystup.txt obojí dostanu do souboru, nejprve přesměruji stderr do stdout, stdout pak do souboru Ukázka základních příkazů: man, cd, pwd, mkdir, rmdir, ls, cat, chmod/chown, reboot, date, free, uptime, top/htop, kill, nice, ps, time, useradd, su, passwd, host, ping man: zobrazí nápovědu k danému příkazu man ls cd: změní aktuální pracovní adresář cd /home/user/directory pwd: zobrazí aktuální pracovní adresář pwd mkdir: vytvoří nový adresář mkdir new_directory rmdir: odstraní prázdný adresář rmdir empty_directory ls: vypíše obsah aktuálního adresáře ls cat: vypíše obsah souboru cat file.txt chmod/chown: změní oprávnění přístupu nebo vlastníka souboru/adresáře chmod 755 file.txt chown user:group file.txt reboot: restartuje systém reboot date: zobrazí aktuální datum a čas date free: zobrazí informace o paměti free uptime: zobrazí čas běhu systému uptime top/htop: zobrazí informace o běžících procesech a jejich využití systémových zdrojů top htop kill: ukončí běžící proces kill 1234 nice: nastavuje prioritu běžícího procesu nice -n 10 command ps: zobrazí seznam běžících procesů ps aux time: měří časovou náročnost běžícího procesu time command useradd: vytvoří nového uživatele useradd newuser su: přepíná uživatele su username passwd: změní heslo uživatele passwd username host: zobrazí informace o doméně host example.com ping: testuje konektivitu sítě ping google.com
  4. Na začátek si musíme říct že Linux není jen ta černá console/terminál kde bliká kurzor kam se cosi píše a Linux to udělá. Linux je operační systém založený na jádře Linux, který byl původně vytvořen Linusem Torvaldsem v roce 1991. Je to svobodný a otevřený software, což znamená, že uživatelé mají svobodu spouštět, kopírovat, distribuovat, studovat, změnit a vylepšovat software. Pro práci s Linuxem je důležité mít určité znalosti a dovednosti, jako je práce s příkazovým řádkem, správa balíčků a souborového systému. Nicméně existují také grafická uživatelská rozhraní pro Linux, která umožňují práci s operačním systémem bez nutnosti znalostí příkazové řádky, ale tyto grafické nadstavby jsou určeny spíše pro osobní počítače, než-li pro serverové využití. Linux tedy můžeme dál upravovat i prodávat, ale tento scénář se neděje. Protože licenční model je postaven tak, že pokud chcete upravit Linux a distribuovat ho dále, musíte zajistit, že vaše verze Linuxu bude stále svobodná a otevřená. To znamená, že musíte poskytnout zdrojový kód vaší verze Linuxu a zaručit, že každý, kdo dostane vaši verzi Linuxu, má stejné práva jako vy, včetně práva upravovat a distribuovat software dále. Standardně se pak používá model na bázi supportu, OS je free, ale support je paid. Linux se dodává v mnoha různých distribucích, což jsou různé verze operačního systému, které se liší v závislosti na způsobu instalace, balíčkovacím systému a správě softwaru. Mezi nejznámější distribuce patří Ubuntu, Debian, Red Hat, Fedora a CentOS. Linux je možné používat na velké sféře zařízení a účelem použití. Může být osobním počítači, serveru, mobilním zařízení, superpočítače či různé BYOD zařízení. Linux můžeme používat i na Desktop počítačích, tedy jako standardní OS pro práci s počítačem. Pro tyto účely bylo vytvořeno velké množství grafických nadstaveb pro Linux. Nejznámější jsou: GNOME, KDE, Xfce, LXDE, Unity(Pozor, neplést si s game engine). Občas můžeme vidět několik dalších zkratek jako je UNIX, GNU, BASH, Kernel, KDE a nebo Xfce. Níže se popíšeme co znamenají. UNIX Unix je starší operační systém, který byl původně vyvinut v AT&T Bell Labs v roce 1969. Unix je uzavřený operační systém a jeho zdrojový kód není volně dostupný. Unix byl původně určen pro minipočítače a vysokovýkonné počítače. Unix byl původně navržen pro architekturu procesorů typu minipočítačů a vysokovýkonných počítačů (Nikoliv tedy pro x86). Závěrem lze říci, že Linux a Unix jsou oba operační systémy s podobnými funkcemi, ale liší se v mnoha klíčových oblastech, jako je licence, zdrojový kód, architektura, rozšiřitelnost a dostupnost. GNU GNU je projekt svobodného software, který byl založen Richardem Stallmanem v roce 1983. GNU je zkratka pro "GNU's Not Unix" (GNU není Unix). Cílem projektu GNU bylo vytvořit kompletní operační systém s otevřeným zdrojovým kódem, který by byl kompatibilní s Unixem, ale bez závislosti na Unixových licenčních podmínkách. GNU je také spojeno s konceptem copyleft, což je právní mechanismus pro ochranu svobodného softwaru. Copyleft zajišťuje, že jakýkoli software vytvořený na základě GNU projektu musí zůstat svobodný a otevřený pro další uživatele. Projekt GNU je dnes velmi rozšířený a mnoho moderních operačních systémů, jako je právě Linux, používá mnoho komponentů z projektu GNU. V současné době je projekt GNU stále aktivní a pokračuje ve vývoji a šíření svobodného softwaru. Proto je často používáno spojení GNU/Linux BASH Bash (Bourne-Again SHell) je příkazový interpret a skriptovací jazyk pro Unixové a Unixově podobné operační systémy, včetně Linuxu. Bash je standardním příkazovým interpretem pro většinu distribucí Linuxu a je také součástí macOS. Bash umožňuje uživatelům spouštět příkazy v příkazové řádce nebo vytvářet skripty, což jsou soubory obsahující seznam příkazů, které mohou být spuštěny jako celek. Bash podporuje mnoho příkazů a funkcí, které umožňují uživatelům automatizovat různé úkoly nebo interagovat s operačním systémem a souborovým systémem. Více o BASH je v dalším díle Linux - Základní příkazy Kernel Kernel (česky jádro) je základní část operačního systému, která představuje prostředníka mezi hardwarem počítače a softwarovými aplikacemi běžícími na tomto počítači. Jádro operačního systému řídí všechny aspekty systému, včetně správy paměti, správy procesů, vstupů a výstupů, sítě, správy souborů a zařízení a dalších funkcí. Poskytuje také rozhraní pro komunikaci mezi aplikacemi a hardwarem. Linux jádro (kernel) existuje pouze jedno. Na společném vývoji pracují desítky/stovky firem a vývojářů. KDE a Xfce: jsou další populární grafické uživatelské rozhraní pro Linux. KDE je to velmi konfigurovatelné rozhraní, které umožňuje uživatelům přizpůsobit vzhled a chování systému podle svých potřeb. KDE používá mnoho widgetů a efektů, což umožňuje uživatelům pracovat s více aplikacemi najednou. Xfce je lehké grafické uživatelské rozhraní pro Linux, které je ideální pro starší počítače a zařízení s omezenými prostředky. Xfce má jednoduchý a elegantní vzhled a nabízí uživatelům snadný přístup k aplikacím a funkcím. Trocha čísel: Podle statistik je poměr mezi Linuxem a Windows na osobních PC stále poměrně výrazný. Podle odhadů používá Linux na osobních počítačích méně než 2% uživatelů, zatímco Windows používá přes 75% uživatelů. Zbylých 23% je macOS, Chrome OS. Mnohem lepší situace pro Linux je pak ale ve využití jako serverový OS. Podle statistik je poměr použití Linuxu a Windows na serverech relativně vyrovnaný, přičemž Linux má v této oblasti podstatně větší podíl na trhu než na osobních počítačích. Podle statistik, které byly publikovány v srpnu 2021 společností W3Techs, Linux je operačním systémem používaným na více než 96% webových serverů, zatímco Windows je používán na méně než 1% webových serverů. To znamená, že Linux je prakticky dominantní operační systém na webových serverech. Na druhé straně jsou Windows serverové operační systémy stále populární pro určité účely, jako je například běh aplikací vyvinutých pro platformu Windows. Windows také nabízí některé funkce a vlastnosti, které jsou pro určité účely vhodnější než Linux. Případně aplikace přímo vyvíjené od Microsoft. Co je distribuce? Distribuce se skládá z: základních programů shell interpretu - terminál/příkazová řádka GUI KDE, GNOME - Grafické rozhraní ovládacích scriptů instalační, aktualizační nástroje a balíčkovací systém vlastní aplikace
×
×
  • Create New...