Inhaltsverzeichnis: |
- bash_notes
- Shortcuts
- sudo !!
- Dateien mit Secure Copy (scp) von Linux z.B. ins Windows kopieren
- Füllgrad der Festplatte ermitteln
- Größe von Verzeichnissen ermitteln
- Verzeichnis durchsuchen
- Symbolische, Soft-, Hard-Links
- TAR-Sack
- nano [Filename]
- offene Ports anzeigen
- Command History
- Prozesse anzeigen
- Befehl in den Hintergrund legen
- Befehler weiter laufen lassen wenn Session schließt
- Eigene Befehle definieren
- 7z
- To recursively give directories read&execute privileges
- To recursively give files read privileges
- Brechtigungen
- IP Adresse anzeigen
- tee
- cp
- head / tail
- sed
- stat
- pwd
- neofetch
- image dd
- Hostname ändern
- pipe >> file
bash_notes
2021-05-11 / 2024-08-19 | ||
Notizen und Snippets die in der bash ganz nützlich sind.
Diese Notizen sind historisch gewachsen und enthalten auch meine Anfänge. Vieles von diesem Wissen ist bereits in die .bash_aliases gewandert.
Shortcuts
Strg+L | Clear |
Strg+A | an den Zeilenanfang springen |
Strg+E | an das Zeilenende springen |
ESC+. | Letztes Argument wieder aufrufen |
Strg+R | History durchsuchen (Enter=Ausführen, ESC=Bearbeiten) |
sudo !!
Wiederholt den letzten Befehl(!) + seine Argumente(!) als sudo.
Dateien mit Secure Copy (scp) von Linux z.B. ins Windows kopieren
pscp [user]@[hostname]:[path2file] [lokaldestationpath]
pscp [lokaldestationpath] [user]@[hostname]:[path2file]
# [path2file] relativ zum home-directory des Users und mit / statt \ !
#pscp c:\users\mheister\Desktop\.user.ini pi@r4g9:/home/pi/
#pscp pi@192.168.4.3:/home/pi/apache* c:\users\mheister\Desktop\
Füllgrad der Festplatte ermitteln
df -h
Größe von Verzeichnissen ermitteln
commandline
du -sh *
# -s = Rekursiv die Summe des Verzeichnisses (Fehlt der Parameter wird jeder Unterordner einzeln gelistet)
# -h = Dynamische Göße in K/M/G
# * jedes Verzeichnis einzeln in diesem Ordner
interaktiv
install ncdu
ncdu -x -r /
Verzeichnis durchsuchen
sudo grep -R "192.168.7." /
Symbolische, Soft-, Hard-Links
# Erstellen (Hardlink)
ln
# Erstellen (Softlink)
ln -s
# Entfernen (Softlink)
rm -r
TAR-Sack
Entpacken von Dateien
tar -xvf ARCHIV.tar
tar -xvjf ARCHIV.tar.bz2
tar -xvzf ARCHIV.tar.gz
tar -xvJf ARCHIV.tar.xz
Packen von Dateien
tar -cvzf [name].tar.gz [verzeichnis] ... [datei]
#c = create
#v = verbose (Zeigt Informationen zum Packvorgang)
#f = file (Das eine Datei als Ziel angegeben ist) Letzter Parameter!!! Nächster Parameter wird als Dateiname interpretiert.
#z = gzip-Komprimiert
#J = xz-Komprimiert (kleiner)
#r = Dateien an ein bestehendes Archiv anhängen
#u = Nur Dateien anhängen, die jünger sind als ihre Archiv-Version
#p = Zugriffsrechte beim Extrahieren erhalten.
Komprimiert den TAR-Sack nachträglich
gzip [name].tar
nano [Filename]
"Strg+W" - Suche
"Strg+W -> Strg+V" - Dateiende
"Strg+W -> Strg+R" - Suchen + Ersetzen
"Strg+K" - Zeile ausschneiden
"Strg+U" - Zeile einfügen
offene Ports anzeigen
sudo netstat -tulpen
Command History
history
hostory | grep "wasmansucht"
Prozesse anzeigen
~$ ps -AF
-A alle Prozesse
-f mehr Details
-F noch mehr Details
Befehl in den Hintergrund legen
Strg + Z
bg
#Wiederholen
fg %1
#Direkt im Hintergrund (& anhängen)
Befehl &
#Prüfen was im Hintergrund läuft
jobs
Befehler weiter laufen lassen wenn Session schließt
nohub
Eigene Befehle definieren
nano .bash_aliases
7z
#Der Linux-Port von 7z heißt p7zip. Es finden sich mehrere Varianten in den Paketquellen [1]:
# p7zip (universe, unterstützt nur 7z und LZMA)
# p7zip-full (universe, unterstützt noch weitere Formate und Algorithmen)
# p7zip-rar (multiverse, unfreies Modul für p7zip-full, um auch RAR-Archive entpacken zu können)
sudo apt-get install p7zip p7zip-full
#
# -m{Parameters} : set compression Method
# -r[-|0] : Recurse subdirectories
# -p{Password} : set Password
# -ssw : compress shared files
# -y : assume Yes on all queries
#
#Verzeichnis Zippen
7z -mx7 -ssw -y a /var/www/html/m~eta/data/202102.7z /var/www/html/m~eta/data/202102/*
#Zipp Entzippen
7z x /var/www/html/m~eta/data/202102.7z -o/var/www/html/m~eta/data/202102/
To recursively give directories read&execute privileges
find /media/nas -type d -exec chmod g+s {} +
To recursively give files read privileges
find /path/to/base/dir -type f -exec chmod 644 {} +
Brechtigungen
# user:group
sudo chown -R www-data:users /var/www/html/
sudo chmod -R 770 /var/www/html/
IP Adresse anzeigen
ip addr show
tee
Erzeugt std-Ausgabe und eine Ausgabe in eine Datei!
tee [option] [file]
# -a append
# -i ignore error
cp
cp source destination
# -i fragt ob überschrieben werden soll falls die Datei bereits existiert
# --backup=numbered legt ein nummeriertes Backup an falls die Datei existiert
head / tail
head [file] #gibt die ersten 10 Zeilen einer Datei aus
tail [file] #gibt die letzten 10 Zeilen einer Datei aus
sed
Muss noch!
stat
Detailierte Dateistatistik, kann über Parameter noch gekürzt und gezielter ausgeben.
pwd
Vollständigen aktueller Pfad
neofetch
image dd
"image erstellen"
sudo dd bs=1M if=/dev/mmcblk0 of=l0la53.img
"image zurücksichern"
sudo dd bs=1M if=l0la53.img of=/dev/mmcblk0
Hostname ändern
sudo hostnamectl set-hostname <NEWNAME>
pipe >> file
# Erweitert das Logfile um den Inhalt...
echo "test" >> expand.log
echo "2test" >> expand.log
# Löscht das Logfile vor dem befüllen...
echo "test" > drop.log
echo "2test" > drop.log
#2>> Fehler in das Logfile... (stderr)
#1> Normale Ausgabe in das Log... (stdout)
2>>${BACKUPLOGFILE} 1>/tmp/2Arc.lst
# Ausgabe von Fehlern (stderr) erfolgt in der normalen Ausgabe (stdout) und das kann weiter in eine Datei gepiped werden...
echo "test" 2>&1
echo "test" 2>&1 >> merge.log