or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
Shell Code
Lektion 1: Chat
Lektion 2: What the shell
zB Bash, Fish, Dash
Vorteil: Man kann mehrere Befehle verbinden -> ist sehr mächtig
Kommandos nehmen Argumente, Argumente sind durch Leerzeichen getrennt.
Lektion 3: Running programs
Deklarative Programmierung: Beschreiben, was man will, und der Computer macht das dann für einen
Basisprogramme
Parameter:
sind einem Command zugeordnet, beginnen häufig mit "–" oder "-" und sind erkennbare Befehle (gegenüber Parametern, bei denen ein einziger Buchstabe einen gesamten Befehl abbildet)
Reihenfolge der Parameter hängt vom Command ab
also z. B. sort -r (Command: sortiere, mit dem Parameter reverse, also: umgekehrt sortieren)
man Befehl -> ruft die Beschreibung auf
Navigation
Pfade: Der Ort, an dem sich die Datei befindet.
z.B. Dokumente/ProjektFordPrefect/hello_world.txt
Absolute Pfade: / am Anfang (absolut = Pfad vom root-Verzeichnis aus)
relative Pfade: kein / am Anfang (relativ = Pfad vom aktuellen Verzeichnis aus; man könnte auch schreiben ./ und dann den relativen Pfad)
(we don't talk about Windows)
UNIX setzt die Normen
Orte:
Aktuelles Directory, home Directory, root Directory (wo alles beginnt, äußerst mögliches Directory, angezeigt durch /)
Files:
. - aktuelles Directory
.. - übergeordnete Verzeichnis
Befehle
($ definiert: hier beginnt ein Shell-Befehl)
$ pwd (print working directory) – Zeigt aktuelle s directory an (Default: persönlicher Home-Space)
$ cd – Change Directory -> ohne Parameter geht es ins home directory
$ cd Dokumente/MyProject
$ cd /media/MyUsbStick
$ cd .. - geht ein Verzeichnis "höher"
Commands
$ ls – List files and directories
$ ls -al – list ALL files
$ man ls - Manual des Parameters ls (Bedienungsanleitung) (ruft ein eigenes Programm auf)
auch $ –h oder –help
Nebenbei: Das
Command $ find ist dafür berüchtigt, immer was anderes zu machen als es soll
Hausaufgabe: Recherchiert mit man und Internet folgende Commands
ls, cp, mv, rm, vi, vim, dmesg, ping, wget, curl, apt-get, brew, pacman, find, cat, grep, mplayer, gpg, ssh, scp, tar, gzip, youtube-dl, mount, umount, awk, sed, htop, kill, ps, lsof, fuser, sudo, su, du, df, shutdown, halt, reboot, sl, lsblk, lsusb, lshw, emacs, sed, pv, ssh, rsync, sort, traceroute, du, xargs, tail, head, man, tac
Lektion 4: Shell Programmierung
Stärke von Shell ist die Verbindung von Kommandos zu einem Programm
(Bash hat keine gute Reputation weil undurchsichtig, ist aber auch sehr mächtig)
3 Standard-Streams:
Standart in
Standard out
Standard error
ls ist zum Beispiel eine Datenabfrage, die dann auf dem Standard out Stream ausgelesen wird
Stream-Processing-Bezeichnungen:
source: z.B. ls,
filter: z.B. grep
sync: z. B. rm oder mv
Der Trick besteht darin, die Kombination von Befehlen zu finden, die du brauchst.
Pipe:
source | filter | sink -> leitet output vom ersten Befehl in den zweiten Befehl
z.B. ls | sort | head -n 5 -> listet die obersten 5 aus
http://overthewire.org/wargames/bandit/
Stream Redirection
Standard Output wird in neues File geschrieben: >
z. B. ls > listoffiles.txt, Bedeutet: schreibe den Output dieses Commands in folgendes File
Standard Input wird gelesen: <
z. B. "<meinfile.txt grep FindeDiesenString", Bedeutet: lies aus diesem File aus und führe das folgende Command "grep" mit dem parameter "FindeDiesenString"
xargs liest zeilen/wortweise aus meinem Input ein und übergibt jedes Wort in das Command ein als argument.
Gegenteil: Konvertiere Argumente in Output
echo -e "arg1\narg2\narg3\n"