Linux basics Flashcards
Czym jest linux?
Linux jest systemem operacyjnym podobnym do systemów z rodziny UNIX. Składa się z kilku elementów, które są niezbędne do jego funkcjonowania.
Linux jest otwartym systemem operacyjnym na komputery osobiste. Został wydany po raz pierwszy we wrześniu 1991 roku.
Po prawie 30 latach od zaprezentowania Linux jest szeroko wykorzystywany w motoryzacji, sprzęcie sieciowym oraz telefonach komórkowych. Od kwietnia 2017 roku Android (oparty na systemie Linux) jest najpopularniejszym systemem operacyjnym na świecie. System operacyjny Linux rozwijany jest przez społeczność. Znany jest z trwałości i bezpieczeństwa, jaki jest w stanie zaoferować, dzięki czemu używany jest w komercyjnych urządzeniach sieciowych i centrach danych. Klienci indywidualnie doceniają dużą możliwość personalizacji systemu do własnych potrzeb.
Linux was inspired by MINIX, which in turn was inspired by Unix.
Linux is based on a philosophy that software and operating systems should be free. Both free of cost and freely changeable.
Czym jest jądro systemu?
Jądro (ang. kernel) to rdzeń całego systemu operacyjnego. Wysyła instrukcje bezpośrednio do procesora, pamięci RAM oraz urządzeń peryferyjnych.
Co to znaczy, że system jest unixowy /juniksowy/ ?
UNIX to system operacyjny, który jjest systemem wielozadaniowym – to znaczy, że w tym samym czasie może być wykonywane więcej niż jedno zadanie. Jest też wielodostępy – jednocześnie może być zalogowanych wielu użytkowników.
System UNIX jest systemem przystosowanym do pracy w sieci – pozwala na zdalne
wykonywanie poleceń. Ma strukturę hierarchiczną – jest zbudowany z katalogów o strukturze drzewiastej.
U podstaw systemu znajduje się katalog główny (ang. root) oznaczony przez /.
Ze względu na bezpieczeństwo w systemie mogą pracować tylko zarejestrowani użytkownicy.
Każdy użytkownik posiada swoje konto – obszar, w którym zgromadzane są dane
pojedynczego użytkownika – do którego dostęp chroniony jest hasłem.
Jak mniej więcej zbudowany jest każdy system unixowy?
UNIX zbudowany jest z:
- jądra,
- powłoki oraz
- innych podsystemów i programów realizujących określone usługi np.: wydruk, czy obsługę plików
.
Jądro (ang. kernel) systemu zawiera zbiór programów odpowiedzialnych za zarządzanie
zasobami, np.: to właśnie jądro systemu decyduje o podziale czasu CPU pomiędzy aktualnie wykonywane zadania. Po uruchomieniu komputera jądro przejmuje nad nim kontrolę. Komunikacja użytkownika z jądrem odbywa się poprzez powłokę.
Powłoka (ang. shell) systemu UNIX zapewnia kontakt użytkownika z jądrem systemu. Po
rozpoczęciu pracy przez użytkownika system przydziela mu jako obszar pracy katalog
domowy i uruchamia program powłoki.
Co to jest CPU?
A central processing unit, czyli procesor
Name popular desktop Linux environments.
Popular desktop Linux environments are the GNOME Shell, KDE Plasma Desktop, LXQt, Cinnamon, MATE and XfcE.
What is primary way of interacting with a Linux system?
Primary method of interacting with the Linux system, the console. The console is a text-based interface where an interactive shell runs. Here we typed commands for the shell to run and the shell displays any returned information to us also in text form.
What is shell?
The shell is the software we interact with using text commands and text outputs. There are a number of different shells out there with Bash being the most common. Other shells like Zshell, Cshell, fish, Kornshell and more can be found in different distros and they can all be installed on your system if you’d like to explore them
What is the console?
The console is a text-based interface where an interactive shell runs. Here we typed commands for the shell to run and the shell displays any returned information to us also in text form.
f the system is not running a graphical user interface and only has the text interface available, that’s considered a console.
there are terminal emulators which run on windows and Mac iOS that you can use to connect to a remote Linux computer. If it’s running software like _________ provides remote access.
SSH or secure shell
What are GNU coreutils?
Software package called the GNU coreutils, short for core utilities. Many of these coreutils are commands that we’ll commonly use when working in a shell. Including commands to copy and move files, to change permissions and security contexts, to view some status information and so on. Humans use these, the command line, and scripts and other programs can use them as well, to perform basic tasks.
GNU Coreutils lub coreutils – zbiór podstawowych narzędzi do obsługi plików, powłoki i tekstu w systemach uniksopodobnych.
Przykładowe GNU:
cat, which we use to display file contents,
CP, which is for copying files,
DF and DU, which show information about how much space is used up on the file system
Do you know any alternative for GNU coreutils?
Well, most distros* use the GNU coreutils, some use a different set of tools called BusyBox. It’s an alternative to GNU coreutils and it’s often found in small, or embedded systems. What makes BusyBox interesting is that it’s a single program, which offers many of the functions of common coreutils tools. It also offers a wide array of other tools as well.
*distro (pl. dystrybucje) - a distributor or distributed version, especially of Linux software or of webzines.
What is FHS?
To store data on a Linux system, we use files, and files are organized into directories or folders as they are on other operating systems. These files and directories make up the file system. In order to organize files consistently on Linux systems, most distributions follow the Filesystem Hierarchy Standard, or FHS.
How files are organized in the Linux file system?
In the Linux file system, everything starts with the file system root, which is represented by a single slash. On a Linux system, there’s only one file system root.
You can think of the file system root kind of like the my computer level on a Windows system rather than the C drive.
How to find our plug in devices in the Linux system?
Using a desktop based file browser, we’ll see other disks listed as we might expect on other operating systems. Even though they’re mounted or made available within the root file system, usually under the mnt directory or inside of a directory called media.
mnt or media are directories used for mounting or attaching other file systems, like you’d find on network shares and other disks
Where each user’s personal files are stored in the Linux system?
In the home directory
What is bin, sbin and usr are in FHS?
bin, sbin, and usr are directories where programs of different types are kept
Where system wide configuration files are stored?
In the etc directory
What is var in FHS?
And var is where changeable or variable system information is kept.
This is where we’ll find system logs and logs for other software
What are dev, proc, and sys directories? Are they really a directories?
These aren’t real directories at all. The dev, proc, and sys directories are created by the kernel to represent hardware available on the system, including all the systems hardware, processes that run programs, settings in the kernel, and so on.
“File system” has two meanings?
Yes. While the layout of the files and directories is called the file system, the term file system is also used to refer to different strategies or data structures for storing and representing file data and file metadata. Those are things like ext4, btrfs, ZFS, XFS, and so on.
Multi-user operating systems are normal these days. Linux, Windows, and macOS are all multi-user. Who is Superuser?
On Linux systems, there’s also a superuser or administrator account called root, which has the ability, or the privilege as it’s known in the security model, to access any file on the system and to change settings on a system wide basis.
We can use the root account directly, or we can borrow its privileges if the account we’re using is empowered to do so using the su command for substitute user or sudo, which we can use to run a particular command using superuser privileges to do a particular task while substituting the root user for our own. However, we’ll rarely if ever actively use the computer under the root account. Not only is it a bad idea, it can cause problems that are tricky to resolve. Root can be thought of as a powerful and special tool
What are file permissions on the Linux system? How they are represented?
Permissions let us indicate whether a user, members of a particular group, or anyone at all can read from a given file, write data to it, or execute or run it. Permissions are often represented either as numbers or as letters, and in each case, they’re made up of three sections, one for the user, one for the group, and one representing all others. Each section represents the restrictions applied to the file for that audience.
A desktop environment can make working with permissions a little bit easier, and to make changes at the command line, we’ll use the chmod command and sometimes chown and chgrp.
What security packages like SELinux and AppArmor provide?
SELinux and AppArmor can provide very detailed security constraints and controls that applied to programs and users alike.
What makes a distro?
-Preinstalled tools
-Decision about how the system operates and how it will br configured
-What software is available through repositories
-How and how long a bistro is supported\
-Which variation of the Linux kernel is used
What is upstream kernel?
Very few distros come with what’s called the upstream kernel. The official kernel maintained by the Linux foundation.
Some distributions use a very updated version of the kernel and provide lots of additional software to develop the kernel and drivers. And those distributions are favored by developers and enthusiasts. Fedora is an example of this.
What is Fedora?
Fedora Linux is a Linux distribution developed by the Fedora Project. Fedora contains software distributed under various free and open-source licenses and aims to be on the leading edge of open-source technologies. Fedora is the upstream source for Red Hat Enterprise Linux.
Some distros ship with older kernels which can provide stability for systems that need to run for a long time without changes. Like servers and other production infrastructure. In these scenarios, we don’t want to have new features added when we run software updates or risk features we use being removed or deprecated. What is an example of such distribution?
An example of this is CentOs
Some distributions are intended to run in embedded devices where they don’t need to support any hardware other than the specific gear they’re running on.What are examples of such distributions?
The operating systems available for the Raspberry Pi like Pandora and Raspbian are examples of this.
What are examples of distros with a fairly recent kernel version and a larger amount of drivers for common hardware? They are widely used on the desktop or are intended to be quite user-friendly.
Ubuntu Desktop, Linux Mint, OpenSUSE and other distros targeted at general desktop use are examples of this.
What network managers do you know?
The Ubuntu distribution for example, uses a system called Netplan to configure the network while Fedora and Red Hat used network manager instead.
What package managers do you know?
Debian, Ubuntu, and a variety of other distros, use the apt package manager. While Fedora and Red Hat used DNF. Alpine Linux uses APK and openSUSE uses zypper.
What software packages do you know?
Software package can have different names and configurations across distros. The Apache HTTP server for example is called Apache2 on Ubuntu and httpd on Fedora. And these differences between distros can be distracting and frustrating for new Linux users especially when you find a tutorial that you want to follow or an answer to a question you have.
How to check what distro I am running?
you can usually find out in your desktops about screen or from the command line with the command cat/etc/*/release.
What are popular distros for servers?
In many cases, servers will run Red Hat Enterprise Linux, Debian server, or Ubuntu server and might run Fedora, Ubuntu Desktop, Linux Mint, or Arch Linux.
Project boards like Raspberry PI might run Raspbian and Pandora. In many containers and embedded systems run Alpine Linux. These distros are all just different sets of tools including core utilities running on top of the Linux kerne
Which Linux distros are similar?
Many distros share a relationship to other distros. For example, Red Hat Enterprise Linux is related to Fedora. So most of the tools and configurations you’d use to work in one would be the same in the other. Ubuntu, Mint and many other distros are based on Debian. So again, using one of those will feel quite similar to using another. Along with Slackware, which is the predecessor to SUSE Linux, Red Hat and Debian round out the largest families of distros.
If I need a desktop environment, which distro should I try?
Ubuntu Desktop Linux. Other good choices for distribution to try first are Debian Desktop, Fedora Desktop, and Linux Mint
For example, if I’m learning how to use the shell or I’m administering a system that isn’t going to be used with the GUI what, distros should I try?
I might consider a lighter weight distribution, which comes with a more minimal set of tools as we often find in the server versions of various distros, like Ubuntu Server and Debian Server and in their minimal versions as well.
I’m feeling adventurous xD What distros should I try?
If you’re feeling adventurous you could explore starting out with other distros like Arch or Alpine
What is virtual machine?
Virtual machines provide the ability to run an operating system in a protected space on your computer, separate from your primary operating system. In a VM, we can install Linux and use it like it’s a real computer but without affecting anything on the host system. The whole Linux system lives as a series of files on the host computer and can be copied to other systems too, should that become necessary.
What products provide VM (virtual machine) capability?
There are a few software tools that let us run virtual machines.
VirtualBox is a free option for Windows and macOS systems, and Hyper-V is a free option on most versions of Windows.
There are also commercial products that offer other features, including VMware Workstation for Windows, VMware Fusion for macOS, and Parallels Desktop for macOS.
If you plan to use a virtual machine I recommend you take a look at VirtualBox because it’s free and works on all major operating systems.
What is native install?
It is the situation when you install e.g. Linux operating system directly on you computer
What is Raspberry Pi?
Raspberry Pi is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in association with Broadcom.The Raspberry Pi project originally leaned towards the promotion of teaching basic computer science in schools and in developing countries.
You could use a hobby board like Raspberry Pi to run Linux as a native install that’s reasonably portable.
Where Linux system can run?
Linux system should run:
- on virtual machine, VM in short (accessible from anywhere)
- as native install on your PC
- on live boot environment
- on cloud server
- we can also create a Linux VM on a Windows 10 system
What is a live boot?
metoda uruchamiania systemu operacyjnego bez potrzeby instalowania go na dysku twardym. Można go uruchomić z pamięci USB lub przez kartę SD. Jest to dość powolny sposób, ale nie wpływa na Twój komputer. Nie zapisuje też zmodyfikowanych plików, więc trzeba użyć jakiegoś innego miejsca aby je zapisać
What does it mean that we install Linux on a Cloud Server?
We can use a cloud service to host a machine we can connect to remotely.
This method of running Linux is not recommended if we need a desktop, but great for remorte access through SSH to a text interface
What are hosting services for running Linux on a Cloud Server?
We can do this with a hosting service like Microsoft Azure, Amazon Web Services, Google Cloud, Linode, DigitalOcean or other provide
What are manpages?
Manual pages or manpages are the way of consult the manual. Wpisujemy ‘man’ oraz nazwę komendy o której chcemy się coś dowiedzieć. man to skrót od manual.
Aby wyjść klikamy ‘q’
So if you come across an unfamiliar command the manpages are a good first step in finding out what the command does and how to use it. You can navigate with the arrow keys, with F or B to move forward and backward and you can press Q to quit. The manpages are installed on most Linux distros, but not all of them.
There are also a number of places online where you can view manpages, including man.he.net, manpages.net, and many others
How to find out what kernel version you’re using?
you can find out what kernel version you’re using by typing:
uname -a
What is the software license for Linux?
The software license for Linux is called the GNU General Public License
Linux co to
darmowy system operacyjny z rodziny *nix. Tworzony przez społeczność i dystrybuowany na licencji GNU GPL
Jaka jest różnica między GNU a Linux?
Linux jest zwykle używany w połączeniu systemu operacyjnego GNU: cały system to w zasadzie GNU z dodatkiem Linuksa lub GNU/Linux. Wszystkie dystrybucje nazywane “Linuksem” są tak naprawdę dystrybucjami GNU/Linuksa.
Co to jest GNU
GNU (rekurencyjny akronim od ang. GNU’s not Unix) – uniksopodobny system operacyjny złożony wyłącznie z wolnego oprogramowania. GNU zapoczątkowany został przez Richarda Stallmana i był pierwszym projektem Free Software Foundation
GNU/Linux
Pierwsza wersja jądra Linux została udostępniona publicznie 17 września 1991 dla architektury komputera PC, wykorzystującego mikroprocesor o architekturze IA-32. Do jądra dołączono narzędzia systemowe zwane też „Development Kit” oraz biblioteki z projektu GNU, aby otrzymać nadający się do użytku system operacyjny. Z tego powodu powstała też alternatywna nazwa kompletnego systemu: GNU/Linux
Na czym oparty jest Ubuntu?
Na Debianie (fork)
Wydanie lts
Long term support
Najbardziej stabilne wydanie danego systemu operacyjnego np. Ubuntu
Jakie mamy menadżery paczek na Ubuntu?
APT oraz
DPKG
Jak nazywa się przykładowy desktop environment dla Ubuntu? Jakie są jego cechy?
Gnome
- bardzo popularny
- dużo zużywa profesora (CPU) oraz RAM
bin
Pliki wykonywalne (binarne) dla podstawowych narzędzi systemowych
Kod wykonywalny od programów w systemie np. Kalkulator, notatnjn
/
ang. root
Folder główny
Boot
Pliki jądra systemu oraz bootloader
Jak znaleźć zwykle pliki w systemie Ubuntu?
Służą do tego metody find i locate
find
Wyszukuje zwykle pliki w systemie Ubuntu, przeszukując folder w którym się aktualnie znajdujemy
locate
Przeszukuje nie drzewo plików jak find, a swoją własną bazę danych.
Nie powoduje spowolnienia systemu jak find
Jak zlokalizować pliki wykonywalne (binarne) dla konkretnych programów?
Należy użyć komend: which lub where is
Ubuntu przewiduje 4 metody wyszukiwania w systemie. Są to…
- find
- locate
- whereis
- which
Przełącznik find -name thisfile.txt pozwala na…
wyszukanie pliku o podanej nazwie. Wielkość liter ma znaczenie. find wyszukuje po drzewie plików.
Przełącznik find -iname thisfile.txt …
pozwala na wyszukanie pliku o danej nazwie w drzewie plików bez uwzględnienia wielkości liter
Przełącznik find -type typ …
pozwala na wyszukanie plików określonego typu (pliki, katalogi, linki symboliczne)
updatedb to komenda, która po wpisaniu do terminala powoduje …
odświeżenie bazy danych o nowo dodane pliki (somoczynnie baza robi to co 24h)
Przełącznik locate -c plik
zlicza liczbę wystąpienia nazwy w bazie danych
which plik1
wskazuje ścieżkę do pliku wykonywalnego dla wyszukiwanego programu
whereis plik1
wyszukuje plik wykonywalny (binarny) dla określonego programu, ale dodatkowo zwraca również man i help
Co to jest kompresja danych?
Kompresja danych to zmiana sposobu, w którym zapisujmy dane tak, aby zwiększyć ich gęstość przy zachowaniu oryginalnego przekazu
Istnieją dwa główne rodzaje kompresji danych. Jakie?
- Stratna
- Bezstratna
Na czym polega kompresja stratna?
kompresja stratna ogranicza wielkość pliku poprzez odrzucenie części bitów. Zmniejsza jakość pliku.
np. jpeg, mp3
Na czym polega kompresja bezstratna?
kompresja bezstratna stosuje zaawansowane algorytmy transformacji danych. Nie ucina żadnych bitów oryginału (odtworzenie oryginału bez żadnej straty)
np. flac, odd
tar, co to?
tar to narzędzie do archiwizacji danych (kiedyś na taśmach gdyż ulegają zniszczeniu później niż dyski twarde, 100 vs 20 lat). Jest używane do tworzenia hierarchicznego i jednolitego archiwum danych w postaci jednego pliku.
gzip, co to?
gzip to narzędzie do kompresji archiwów utworzonych przez narzędzie tar. gzip nie występuje samodzielnie i ,,wtrąca” się do archiwum tar kompresując strumień danych nim zostanie zarchiwizowany.
Przełącznik tar -c służy do:
utworzenia archiwum (create)
Przełącznik tar -x służy do:
rozpakowania archiwum (extract)
Przełącznik tar -z służy do:
zainicjowania kompresji lub dekompresji (zip)