added M305

This commit is contained in:
Arian Furrer 2024-02-09 17:53:52 +01:00
parent 53fdfff8c7
commit be1b7c1d54
1 changed files with 173 additions and 0 deletions

173
content/M305/Linux.md Normal file
View File

@ -0,0 +1,173 @@
+++
title = 'Linux'
date = 2024-02-08T21:38:20+01:00
draft = true
+++
{{< toc >}}
# Notes and source
Notes based on: <https://geek-university.com/course/free-linux-course/> (as of 2020)
**This page is the only English one, as it's the only learning resource we used that is not in German!**
# Important directories
- `/boot` -> boot files
- `/bin` -> pre-installed executables
- `/dev` -> devices (i.e. hard drive, etc.)
- `/sbin` -> pre-installed executables that require root
- `/etc` -> configuration
- `/home` -> user data
- `/lib` -> shared libraries
- `/media` -> removable media
- `/usr` -> shared data (i.e. wallpapers, fonts, applications, etc.)
- `/var` -> variable data (i.e. logs, etc.)
- `/tmp` -> temporary data (gets wiped at boot)
# How to install Linux
- Go to official website
- Download ISO
- Flash USB-Drive
- Boot into ISO (boot order or one-time boot menu)
- Install
# Shell
- Interprets commands
- Run via terminal emulator
- Examples:
- bash
- zsh
- korn shell (ksh)
# Bash
- Standard shell on most systems
- "Bourne Again SHell"
# Links
- Soft / hard links
- Soft link = symlink
- Symlink = points to file or directory
- Hard link = points to inode (place on hd/ssd)
- `ln`
# Wildcards
- `?` -> any single character
- `*` -> any string of any length
- `[ ]` -> any single character mentioned in the brackets
# Streams
- 3 streams
- Standard input (STDIN)
- Standard output (STDOUT)
- Standard error (STDERR)
# Redirection
| Symbol | Redirects to / from |
|--------|-------------------------------------------------------|
| > | redirect stdout to file (create/overwrite) |
| >> | redirect stdout to file (create/append) |
| 2> | redirect stderr to file (create/overwrite) |
| &> | redirect stdout and stderr to file (create/overwrite) |
| < | redirect file to stdin (create/overwrite) |
| << | redirect file to stdin (create/append) |
# Piping
`command1 | command2`
- output of command1 used as stdin for command2
# Some noteworthy commands
## Sort
`sort file.txt`
Sorts files alphabetically. See `man sort` for more info
## Find
`find [path] [expression]`
Searches directories and sub-directories for files. See `man find` for more info
## Locate
`locate [pattern]`
Searches for files (less complicated than find). See `man locate` for more info
## Word count
`cat file | wc`
Counts words, lines, etc in files. See `man wc` for more info
## File
`file file.extension`
Takes an "educated guess", what type of file `file.extension` is
## Head / Tail
`cat file | head` and `cat file / tail`
Show only a select number of lines, starting at the top (head) or at the bottom (tail)
See `man head` and `man tail` for more info
## Tar
Is used to compress/extract folders and files. See `man tar` for more info
# Processes
## Interfacing with processes
- ps
- htop
- kill
- killall
## Signals
Signals are sent to processes to "tell" them what to do. Most important signals:
| Signal | Description |
|---------|---------------------------------------|
| SIGKILL | forcefully stop process |
| SIGTERM | stop process and associated processes |
| SIGSTOP | pause process |
| SIGCONT | continue process |
# Installing applications
- Depends on distro
| Distro | Package command |
|--------|-----------------|
| Debian | apt |
| RedHat | yum |
| Arch | pacman |
| Gentoo | emerge |
# User management
Commands: `usermod`, `groupmod`
## /etc/passwd
`username:password:UID:GID:comment:homedir:login shell`
# Permissions
- 3 permissions
- `r` -> read
- `w` -> write
- `x` -> execute
- 3 classes
- Owner
- Group
- Rest
Arranged like this:
```
| owner | group | other |
| r | w | x | r | w | x | r | w | x |
```
# File systems
Handles the way that data is stored. Linux is compatible with a lot of them:
- ext4 (deprecated: ext3 / ext2 / ext)
- BtrFS
- ReiserFS
- XFS
- ZFS
- FAT