"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Nützliche Shell-Einzeiler

COLOSSUS 08.07.2010 - 19:11 33558 39 Thread rating
Posts

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12082
Rules: "No Post without Einzeiler", max. eine Zeile, max 160 Zeichen pro Zeile ;), keine Zeile ohne Funktionalitaetsbeschreibung

Ich mache mal den Anfang:
Code:
sudo apt-get purge $(dpkg --get-selections | awk '/^linux-image-2.*[[:blank:]]*install$/{print $1}' | sort -V | head -n-1)
Raeumt alte, (vermutlich) mittlerweile ungenutzte Kernel-Images aus Debian- und Ubuntu-Systemen aus. Ein manuelles Ueberpruefen der zur Deinstallation erwaehlten Pakete ist ratsam (das gerade laufende Kernel-Image will man i. a. nicht deinstallieren).

Funktioniert leider nicht unter Debian 5 "Lenny", da Unterstuetzung fuer sort -V (version sort) erst in relativ neuen Versionen der GNU coreutils zu finden ist.

Nico

former person of interest
Registered: Sep 2006
Location: -
Posts: 4082
sollte man das entfernen nicht mehr notwendiger pakete nicht autoremove überlassen?

einzeiler und erklärung hier
http://en.wikipedia.org/wiki/Dd_%28Unix%29
Code: PHP
dd if=/dev/cdrom of=/home/sam/myCD.iso bs=2048 conv=sync
Bearbeitet von Nico am 08.07.2010, 19:27

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12082
Kernel Images sind in den apt-Settings fuer gewoehnlich so konfiguriert, dass sie niemals automatisch deinstalliert werden. Deswegen tendieren diese auch dazu, ueberproportional viel Speicherplatz zu belegen, den man sich so wiederholen kann.

Bash Array Reversal:
Code:
n_id=0; for o_id in ${!old_arr[*]}; do new_arr["$((${#old_arr[*]} - (${n_id} +1)))"]="${old_arr[${o_id}]}"; let n_id++; done
Ja, das habe ich tatsaechlich schon einmal in der Praxis gebraucht :D

deftenski

mit barockfelgen
Avatar
Registered: May 2002
Location: back home
Posts: 1241
falls man mal auf die schnelle eine vorlage fuer ein passwort braucht:
Code:
dd if=/dev/urandom count=1 2>/dev/null | uuencode -m -| sed -ne 2p | cut -c-12

@bash array reversal:
wenn ich mal an den punkt komme, das monster zu brauchen, hab ich definitiv was falsch gemacht :D

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
@deftenski: Dafür gibts pwgen
Code:
# Packages: pwgen (debian)
pwgen -v 12 1
Gibt dir ein (1) Passwort der Länge 12 (Leider geht deine Shell-Zeile bei mir nicht - uuencode fehlt und ich weiß im Moment nicht in welchem Package das is, aber schätze es sollen 12 Zeichen werden)


Mehr Einzeiler:
Code:
program 2>&1 1>/dev/null
Bash (Nicht sicher ob redirection im Standard steht). Ignoriert den stdout von program und gibt stattdessen stderr in stdout aus (man beachte die Reihenfolge, hier wird offensichtlich von Rechts nach Links evaluiert)

Code:
# Packages: subversion, grep, gawk (debian)
svn info | grep ^URL | gawk '{gsub("URL:[ \t]+","");print($0)}'
Gibt nur die URL eines svn repos aus (ist Teil eines Scripts von mir, verwende es aber auch einzeln hin und wieder bzw. in anderen Scripts ;))

@Colo: Wärs nicht sinnvoll die benötigten Packages dazu zu schreiben? Ca. wie bei mir jetzt, btw. dein letzter "Einzeiler" ... naja ... ist hart an der Grenze :D

Nico

former person of interest
Registered: Sep 2006
Location: -
Posts: 4082
sharutils hat uuencode afaik.

edit: :p

nützliche befehle
http://nafoku.de/t/unix.htm
;)
Bearbeitet von Nico am 21.07.2010, 16:10

deftenski

mit barockfelgen
Avatar
Registered: May 2002
Location: back home
Posts: 1241
@watchout
wie immer gibt es mehrere wege ans ziel

@nico
ganz klare regeluebertretung :p

@einzeiler
noch was mit svn
Code:
svn -q log | sed -n '/^r[0-9]* | \([0-9A-Za-z]*\)\( |.*\)/s//\1/p' | sort | uniq -c | sort -nr 
listet alle committer und die anzahl ihrer committs (in absteigender reihenfolge)

Polyfire

Addicted
Avatar
Registered: Feb 2007
Location: .
Posts: 415
Code:
find .|wc --lines
Liefert die Anzahl der Files+Directories.

Code:
grep -R "do want" . | grep -v "do not want"
Durchsucht im angegebenen Ordner alle Files nach Zeilen die "do want" enthalten, das zweite grep filtert aus dem Suchergebnis Zeilen mit "do not want" raus.
Bearbeitet von Polyfire am 22.07.2010, 13:46

Maekloev

linux addicted
Avatar
Registered: Oct 2002
Location: Innsbronx
Posts: 920
Code:
df -h .; echo; du -m --max-depth=1 . | sort -nr | head -10

zeigt zuerst den freien speicher der aktuellen partition an, gefolgt von einer leerzeile. anschließend werden die zehn größten direkten unterverzeichnisse, absteigend nach größe (in MB) sortiert ausgegeben. die zeile als alias in die .bashrc oder .bash_aliases eingetragen hilft einem, schnell große, möglicherweise nicht mehr benötigte files zu finden. besonders viel spaß macht dieses skript natürlich unter einsatz einer ssd, da die ergebnisse dadurch praktisch instant angezeigt werden. beispiel:

Code:
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5              15G   13G  1.5G  90% /

8805 .
4812 ./Downloads
1405 ./Videos
1139 ./Music
619  ./uni
290  ./Pictures
249  ./Programs
135  ./.mozilla
37  ./.local
35  ./.cache

an sich nix besonderes. ist für mich aber sehr praktisch, da vor allem auf der uni quota-bedingt öfters mal ein speicher-engpass bei mir auftritt. es gibt meines wissens auf grafische varianten für sowas. aber bash-basiert ists mir persönlich lieber. vielleicht kanns ja sonst noch wer gebrauchen.

btw: der thread ist echt top! hoffe, da gesellt sich noch so mancher einzeiler hinzu.
Bearbeitet von Maekloev am 06.08.2010, 01:02

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Code:
find -type f -print0 |xargs -0 ls -l --time-style=long-iso |sort -k6

Zeigt alle Files geordnet nach Datum an (jüngste ganz unten).

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12082
Nicht ganz das selbe wie direkt ueber mir, aber dafuer einfacher von der Hand gehend und oft genau das, was man haben will:
Code:
ls -l --sort=time

Voraussetzung: ls aus den GNU coreutils. Moechte man die Sortierreihenfolge umkehren (so geht's mir zumindest), sollte man noch ein ` | tac` dranhaengen.

DAO

Si vis pacem, para bellum
Avatar
Registered: Mar 2001
Location: Austria
Posts: 4967
mein liebling -> suche in spezifierten verzeichnis recursiv nach dateien welche mindestens einen folgender begriffe enthält:
Code:
find /domains -type f -exec egrep -q "strange|komsich" {} ";" -print 

sucht nach files älter als x Tage und moved sie in definiertes verzeichnis:
Code:
find . -ctime +30 -exec mv {} /opt/chroot/old_tomcat_logs \; 

auch recht praktiv wenn man den ganzen krempl in ein tar moven will und die original files nach erfolgten einfügen ins tar kübeln will:
Code:
tar --remove-files -cvf 06_08_2007_config_save.tar.gz 06_08_2007_config_save

nicht zu vergessen wenn auch sehr simpel -> zeigt brav nach file/verzeichnissen den speicherverbrauch (so wie geschrieben im aktuellen verzeich.) an:

Code:
 du -sh *
Bearbeitet von DAO am 07.08.2010, 04:20

Neo-=IuE=-

Here to stay
Registered: Jun 2002
Location: Berndorf, NÖ
Posts: 3232
Zitat von COLOSSUS
Nicht ganz das selbe wie direkt ueber mir, aber dafuer einfacher von der Hand gehend und oft genau das, was man haben will:
Code:
ls -l --sort=time

Voraussetzung: ls aus den GNU coreutils. Moechte man die Sortierreihenfolge umkehren (so geht's mir zumindest), sollte man noch ein ` | tac` dranhaengen.

sollte nicht
Code:
ls -lt
bzw. revers
Code:
ls -ltr
das selbe machen?
oder verwechsel ich da jetzt was?

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Das zeigt nur Files im aktuellen Verzeichnis an, aber ich will alles inkl. Unterverzeichnisse.

Neo-=IuE=-

Here to stay
Registered: Jun 2002
Location: Berndorf, NÖ
Posts: 3232
schon klar, ich meinte aber colos variante und das macht ja auch keine rekursion in die unterverzeichnisse ;)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz