HowTo – aktualisiere die Ubuntu-ISO

zsync ist ein File-Transfer-Programm, ähnlich wie rsync. Es ist für die Verteilung von Dateien über Internet optimiert, so soll eine Datei auf einem Server, zu Tausenden Client verteilt werden können.

Install:

sudo aptitude install zsync

Wir können dies nun nutzen, um unsere Ubuntu-ISO auf die neueste Stand zu aktualisieren. Zum Beispiel, wenn du zuvor Ubuntu 9.10 (Karmica Koala) als “Alpha 6” heruntergeladen hast, kannst du mit dem folgendem Befehl auf die aktuelle Beta-Version upgraden.

Beispiel:

zsync -i karmic-desktop-i386.iso http://releases.ubuntu.com/karmic/ubuntu-9.10-beta-desktop-i386.iso.zsync

[gefunden auf Unix-lab]

aptitude & dpkg

Das dpkg-Programm war Anfangs dafür gedacht, dass man seine installierten Pakete verwalten kann. Doch man brauchte auch noch ein Programm welches schnell, praktisch und effizient im Umgang mit Pakete ist, so sollte es Pakete installieren, dessen Abhängigkeiten automatisch behandeln und ihre Konfigurationsdateien während des Aktualisierens berücksichtigen, genau für diesen Zweck wurde dann APT (Advanced Packaging Tool) entwickelt.

dpkg:

dpkg -l

z.B.:

dpkg -l | awk '{print $2}'

-> zeigt alle installierten Pakete an
(zeigt nur die installierten Paket-Namen an)

dpkg -l "*"

-> zeigt aller verfügbaren Pakete an

dpkg -l irgendwas

-> zeigt alle Pakete an in dessen Namen “irgendwas” vorkommt

dpkg -p paket

-> anzeigen von Informationen (z.B. Beschreibung, Größe, Version…) von installierten Paketen an

dpkg -i programm.deb

-> lokales Paket installieren

dpkg -r paket

-> (–remove) Paket deinstallieren (Konfiguration wird beibehalten)

dpkg -p paket

-> (–purge) Paket deinstallieren (auch die Konfiguration)

dpkg -S irgendwas

z.B.:

dpkg -S `which ls`

-> zeigt alle installierten Dateien und dazugehörige Pakete zu dem Suchbegriff “irgendwas” an
(zeigt das Paket an, zu dem das Programm “ls” gehört)

dpkg -L paket

-> zeigt die zugehörigen Dateien zu einem installierten Paket an

dpkg-reconfigure paket

-> konfiguriert ein Paket neu

dpkg-statoverride --update --add

-> überschreibt die Rechte für die eine Datei, auch nach einem Update

z.B.:

dpkg-statoverride --update --add nagios www-data 660 /var/lib/icinga/rw/icinga.cmd

-> chown nagios:www-data && chmod 660 – wird nach Updates auf die angegebene Datei durchgeführt

dpkg-statoverride --remove

-> setzt die Rechte einer Datei wieder auf den Standard zurück

dpkg-statoverride --list

-> zeigt die veränderten Dateien an

 

aptitude:

aptitude update

-> Update von allen Einträgen in /etc/apt/sources.list

aptitude upgrade

-> Upgrade, wenn ein Paket veraltet ist

aptitude install paket

-> Installiert das Paket “paket” und ggf. dessen Abhängigkeiten

aptitude remove paket

-> Paket deinstallieren (Konfiguration wird beibehalten)

aptitude purge paket

-> Paket deinstallieren (auch die Konfiguration)

aptitude search irgendwas

-> Sucht in allen Beschreibungen und Paket-Namen nach “irgendwas”

aptitude show paket

-> anzeigen von Informationen (z.B. Beschreibung, Größe, Version…)

aptitude -t

-> führt aptitude mit einem bestimmten Repository aus (Repository -> /etc/apt/sources.list)
z.B.:

aptitude -t etch-backports -V install clamav clamav-daemon clamav-freshclam

Grafischer-Modus in der Konsole:

aptitude

F10 : Zeigt das Menü an

(Info: Wenn du die Konsole auf deinem Desktop öffnest, kannst du auch mit der Maus auf das Menü klicken)

q : Ende oder Zurück (quit)

u : Update die Paket Liste (sourcres.list)

/ : Suche nach einem Paket

n : Noch mal nach dem selben suchen (next)

f : “new packages” verwerfen

Wenn du dein gesuchtes Paket nun gefunden hast:

+ : Markiert das Paket zum installieren oder updaten
: Markiert das Paket zum deinstallieren
_ : Markiert ein Paket zum purging (siehe oben)
: : Bricht alle Aktionen für ein Paket ab
b : Zeigt Abhängigkeitsprobleme an
! : Versucht Abhängigkeitsprobleme zu lösen
. : um zu versuchen die Abhängigkeiten anders aufzulösen
U : Markiert alle vorhanden Upgrades zum installieren

Wenn du nun mit deiner Auswahl zufrieden bist:

g : Zum zustimmen und zur Übersicht gehen (an dieser Stelle löst aptitude die Abhängigkeiten automatisch auf), dort musst du mit wiederholten “g” diese Übersicht bestätigen. Fertig.

Tipp: RegEx für aptitude

Man kann auch via RegEx suchen (sowohl in der “GUI” aus auch auf der Kommandozeile) z.B.: ^ack-grep$

Erlaubte RegEx: “.” – “+”, “”, “(“, “)”, “|”, “[“, “]”, “^”, “$”, “?”

 

Quellen:
https://www.debian.org/doc/manuals/debian-reference/ch02.de.html
http://wiki.ubuntuusers.de/dpkg
http://wiki.ubuntuusers.de/apt/apt-get
http://wiki.ubuntuusers.de/aptitude

Linux / Kernel Version anzeigen lassen

Ubuntu:

lsb_release -a

z.B.:

Distributor ID: Ubuntu
Description: Ubuntu karmic (development branch)
Release: 9.10
Codename: karmic

cat /etc/lsb-release

z.B.:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.10
DISTRIB_CODENAME=karmic
DISTRIB_DESCRIPTION=”Ubuntu karmic (development branch)”

Allgemein:

cat /etc/issue

z.B.:

Debian GNU/Linux 5.0 n l

cat /proc/version

z.B.:

Linux version 2.6.26-2-686 (Debian 2.6.26-19) (dannf@debian.org)
(gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)) #1 SMP Wed Aug 19 06:06:52 UTC 2009

uname -a

z.B.:

Linux test-server 2.6.26-2-686 #1 SMP Wed Aug 19 06:06:52 UTC 2009 i686 GNU/Linux

Web Proxy Auto Detection (WPAD)

Wer seinen Browser so einstellt, dass dieser den Proxy (z.B. Squid) im Netzwerk selber finden soll, muss man folgendes zuvor in seiner Konfiguration des Servers anpassen.

1.) Webserver Konfigurieren

ggf. den Webserver installieren, wenn es keinen im Netzwerk gibt

aptitude install apache2

folgende Datei anpassen

vim /etc/apache2/httpd.conf

AddType application/x-ns-proxy-autoconfig.dat

in der zuvor angegebenen Datei angeben und danach den Webserver neu-starten

/etc/init.d/apache2 reload

Datei im Web-Verzeichnis erstellen, so dass alle im Netzwerk darauf zugreifen können.

vim /var/www/wpad.dat

function FindProxyForURL(url, host)
{
if (isInNet(host, "x.x.x.0", "255.255.255.0"))
return "DIRECT";
else
return "PROXY x.x.x.x:8080";
}

folgende Dinge müssen noch angegeben werden

x.x.x.0 -> Netzwerk

x.x.x.x:8080 -> Proxy-IP:Port

2.) DHCP-Server Konfigurieren

Einen DHCP-Server installieren, dabei muss beachtet werden, dass der DHCP-Server der CPE (Router) welcher Standardmäßig aktiv ist, zuvor deaktiviert werden muss.

aptitude install dhcp3-server

vim /etc/dhcp3/dhcpd.conf

als Beispiel gebe ich hier meine Konfigurations-Datei an

server-identifier 192.168.0.254;
subnet 192.168.0.0 netmask 255.255.255.0 {
        pool {
            deny dynamic bootp clients;
            range 192.168.0.1 192.168.0.100;
            default-lease-time 360000;
            max-lease-time 600000;
        }
option subnet-mask 255.255.255.0;
option domain-name "test.dyndns.ws";
option routers 192.168.0.254;
option wpad "http://192.168.0.254/proxy.pac";
option domain-name-servers 192.168.0.254, 192.168.1.2;
option ntp-servers 192.168.0.254, 212.20.160.4;
option custom-proxy-server "http://192.168.0.232/wpad.dat"
}

Diese Konfigurations-Datei ist nur ein Beispiel und kann so nicht übernommen werden!!!

die Zeile um die es in diesem HowTo geht ist:

option custom-proxy-server "http://192.168.0.232/wpad.dat"

nach der Anpassung der Konfiguration muss auch der DHCP-Server neu-gestartet werden

/etc/init.d/dhcp3 restart

Video Cache – mit Squid im lokalen Netz

Heute stelle ich ein Programm für Squid vor, welches jedoch nicht mehr in der Form als freies Programm weiterentwickelt wird,

Unterstützte Webseiten:

1. Youtube Videos – youtube.com
2. Metacafe Videos – metacafe.com
3. DailyMotion Videos – dailymotion.com
4. Google Videos – video.google.com
5. Vimeo HD Videos – vimeo.com
6. Wrzuta Audio – wrzuta.pl
7. MSN Soapbox Videos – soapbox.msn.com
8. Blip TV Videos – blip.tv
9. Break Videos – break.com
10. TV UOL – tvuol.uol.com.br
11. Red Tube Videos
12. X Tube Videos
13. You Pron Videos
14. Tube 8 Videos

Was wird vorausgesetzt?

1.) Squid >= 2.6

2.) Python = 2.4 oder 2.5

3.) Python-urlgrabber

4.) Python-iniparse

5.) Apache ( bzw. Web Server)

Installation:

1.) python-urlgrabber installieren

aptitude install python-urlgrabber

2.) python-iniparse installieren

cd /usr/src/
wget http://iniparse.googlecode.com/files/python-iniparse_0.3.1-1_all.deb
dpkg -i python-iniparse_0.3.1-1_all.deb

3.) VideoCache installieren

cd /usr/src/
wget http://voku-online.de/videocache-1.9.2.tar.gz
tar -xzf videocache-1.9.2.tar.gz
cd videocache-1.9.2/
./setup-deb.py  install
cp videocache-httpd.conf /etc/apache2/conf.d/videocache.conf
cp videocache-sysconfig.conf /etc/videocache.conf
vim /etc/videocache.conf

cachevideos.com/configure

# Wo lauscht dein Squid-Proxy?
proxy = http://127.0.0.1:8080/
# nicht localhost oder 127.0.0.1 als cache_host verwenden, da man dort später nicht per Webserver-Cache zugreifen kann
cache_host = proxy.domain.tld
cp update-vc /usr/sbin/update-vc
chmod 744 /usr/sbin/update-vc
cp scripts/vccleaner /usr/sbin/vccleaner
chmod 744 /usr/sbin/vccleaner
cp -r videocache /usr/share/
cd /var/spool/
mkdir videocache
mkdir videocache/tmp videocache/youtube videocache/metacafe videocache/dailymotion videocache/google videocache/redtube videocache/xtube videocache/vimeo videocache/wrzuta videocache/youporn videocache/soapbox videocache/tube8 videocache/tvuol videocache/bliptv videocache/break
chown -R proxy:proxy videocache
chmod -R 755 videocache
mkdir -p /var/log/videocache
chmod -R 755 /var/log/videocache/
chown -R proxy:proxy /var/log/videocache/
/etc/init.d/apache2 restart

vim /etc/squid3/squid.conf

url_rewrite_program /usr/bin/python /usr/share/videocache/videocache.py
url_rewrite_children 7
acl videocache_allow_url url_regex -i .youtube.com/get_video?
acl videocache_allow_url url_regex -i .youtube.com/videoplayback .youtube.com/videoplay .youtube.com/get_video?
acl videocache_allow_url url_regex -i .youtube.[a-z][a-z]/videoplayback .youtube.[a-z][a-z]/videoplay .youtube.[a-z][a-z]/get_video?
acl videocache_allow_url url_regex -i .googlevideo.com/videoplayback .googlevideo.com/videoplay .googlevideo.com/get_video?
acl videocache_allow_url url_regex -i .google.com/videoplayback .google.com/videoplay .google.com/get_video?
acl videocache_allow_url url_regex -i .google.[a-z][a-z]/videoplayback .google.[a-z][a-z]/videoplay .google.[a-z][a-z]/get_video?
acl videocache_allow_url url_regex -i (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/videoplayback?
acl videocache_allow_url url_regex -i (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/videoplay?
acl videocache_allow_url url_regex -i (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/get_video?
acl videocache_allow_url url_regex -i proxy[a-z0-9-][a-z0-9][a-z0-9][a-z0-9]?.dailymotion.com/
acl videocache_allow_url url_regex -i vid.akm.dailymotion.com/
acl videocache_allow_url url_regex -i [a-z0-9][0-9a-z][0-9a-z]?[0-9a-z]?[0-9a-z]?.xtube.com/(.*)flv
acl videocache_allow_url url_regex -i bitcast.vimeo.com/vimeo/videos/
acl videocache_allow_url url_regex -i va.wrzuta.pl/wa[0-9][0-9][0-9][0-9]?
acl videocache_allow_url url_regex -i .files.youporn.com/(.*)/flv/
acl videocache_allow_url url_regex -i .msn.com.edgesuite.net/(.*).flv
acl videocache_allow_url url_regex -i media[a-z0-9]?[a-z0-9]?[a-z0-9]?.tube8.com/ mobile[a-z0-9]?[a-z0-9]?[a-z0-9]?.tube8.com/
acl videocache_allow_url url_regex -i .mais.uol.com.br/(.*).flv
acl videocache_allow_url url_regex -i .video[a-z0-9]?[a-z0-9]?.blip.tv/(.*).(flv|avi|mov|mp3|m4v|mp4|wmv|rm|ram)
acl videocache_allow_url url_regex -i video.break.com/(.*).(flv|mp4)
acl videocache_allow_dom dstdomain .mccont.com .metacafe.com .redtube.com .cdn.dailymotion.com
acl videocache_deny_url url_regex -i http://[a-z][a-z].youtube.com http://www.youtube.com
url_rewrite_access deny videocache_deny_url
url_rewrite_access allow videocache_allow_url
url_rewrite_access allow videocache_allow_dom
redirector_bypass on

# videocache (127.0.0.1/32) benätigt Zugriff auf Squid
acl our_networks src 127.0.0.1/32 192.168.XXX.0/24 192.168.YYY.0/24
/etc/init.d/squid3 restart

-> im Browser testen

tail -f /var/log/videocache/videocache.log
cd /var/spool/videocache
du -hs

Falls jemand bereits ein “url_rewrite_program” mit seinem Squid nutzt, z.B. zapper und squidclamav dann kann man diese auch gemeinsam mit videocache bereiben. ->

vim /usr/local/bin/wrapzap

#!/bin/sh
squidclamav=/usr/local/bin/squidclamav
zapper=/usr/local/bin/squid_redirect
# NOTICE THE CHANGE -- CHANGE No. 1
videocache=/usr/share/videocache/videocache.py

[...]

# Exec the real zapper (chained with SquidClamav)
#exec /usr/local/bin/zapchain "$zapper" "$squidclamav"
# NOTICE THE CHANGE -- CHANGE NO. 2
exec /usr/local/bin/zapchain "$zapper" "$squidclamav" "$videocache"

ESXi mit SSH in 4 Schritten

in der Standart Installation von VMware ESXi ist ein Remotezugriff via SSH auf die Konsole des Hosts leider deaktiviert. Damit ist es auch nicht möglich Dateien von oder zum Host zu übertragen. Das aktivieren dieser Funktion ist jedoch recht einfach möglich (allerdings nicht supportet!)

1.) An der Konsole des ESXi hosts ALT-F1 drücken um in die reguläre Konsole zu kommen.

2.) Nun muss man blind das Wort unsupported eingeben und danach Enter drücken.

3.) Mit dem folgendem Befehl passen wir die Konfiguration ein wenig an

sed -e "s/#ssh/ssh/g" -i /etc/inetd.conf

4.) Um die Änderungen zu aktivieren, muss noch folgender Befehl ausgeführt werden

kill  -HUP `ps | grep inetd | cut -c1-5`


ESXi + SSH
ESXi + SSH

Swiftfox – optimierter Mozilla Firefox Browser



Swiftfox
Swiftfox



Was ist Swiftfox?

Swiftfox ist wie die Überschrift schon vermuten lässt, ein optimierter Mozilla Firefox, welcher jeweils für bestimmte Prozessor Typen optimiert/kompiliert wurde, so dass dieser wesentlich schneller ist als der normale Firefox. Ich habe Swiftfox zwar schon einmal in einem Beitag erwähnt, jedoch nicht so ausführlich wie es sein sollte ;-)

Welche Swiftfox Version ist für mich gedacht?

Werfen Sie einen Blick auf diese Tabelle und sehen, welche Swiftfox Version die optimal zu deinem Computer bzw. Prozessor passt.

swiftfox-i686 (Older AMD & Intel)
swiftfox-athlon64 (AMD64 users on a 64bit OS)
swiftfox-athlon64-32bit (AMD64 users on a 32bit OS)
swiftfox-prescott (Intel Prescott and newer)

Wie installiere ich Swiftfox in Ubuntu / Debian?

Ubuntu (und alle auf Debian basierende Distribution) können ein Repository zu Ihrer sources.list hinzufügen, diese optimierte Firefox Version zu installieren:

sudo sh -c "echo 'deb http://getswiftfox.com/builds/debian unstable non-free'>> /etc/apt/sources.list"

und dann installierst du Swiftfox:

apt-get update && aptitude install

Wie installiere ich Swiftfox auf anderen Linux-Distributionen?

Wenn Sie nicht mit Ubuntu/Debian arbeiten, ist es am einfachsten, wenn du Swiftfox mit folgendem Installationsprogramm installierst.

swiftfox-i686 (Older AMD & Intel)

swiftfox-athlon64 (AMD64 users on a 64bit OS)

swiftfox-prescott (Intel Prescott and newer)

chmod +x install-swiftfox.sh
./install-swiftfox.sh

Wie installiere ich Swiftfox auf Windows?

Diese optimierte Firefox Version gibt es auch für Windows, mit allen Vorzügen, welche zuvor beschrieben wurden. Zudem gib es auch noch eine portable Version für den USB-Stick – Download – Link

– tweak Profile Patch
– integrierter Adobe Flash Player 10.0.32.18
– Windows Media Player Firefox Plugin 1.0.0.8
– reduzierter Speicherverbrauch durch jemalloc
– Speed Verbesserung durch Profile-Guided Optimierung
– P1/P2/P3 all build with VC9
– P1 build with -Ox -GLAs -fp:fast -GS-, for Generic CPU
– P2 build with -Ox -GLAs arch:SSE -fp:fast -GS-
– P3 build build with -Ox -GLAs arch:SSE2 -fp:fast -GS-

somit solltest du folgende Version verwenden:

P1
für Standart CPU’s

P2
für Athlon XP, Duron 1.1 GHz+, Pentium III ,Celeron 500+

P3
für AMD Athlon 64, Sempron, Opteron processor family, Intel Pentium 4/D/M, Intel Xeon, Intel Atom, Intel Core Prozessor Familie und andere moderne CPU’s.

Funktionieren mein Firefox-Erweiterungen und Themes mit Swiftfox?

Swiftox ist eine optimierte Firefox Version, daher werden alle Add-on oder auch Themes, welche mit Firefox funktionieren auch mit Swiftfox laufen. Darüber hinaus wird Swiftfox Ihr Firefox-Profil weiter verwenden, so dass alle Firefox-Einstellungen bleiben, während Sie Swiftfox werden.

Twitter automatisieren!

Auf folgender Webseite (www.catswhocode.com) habe ich ein paar sehr interessante PHP-Skript gefunden, eines davon stelle ich hier kurz vor.

Das Skript läuft “out of the box”, dass heißt es ist nicht notwendig, dass man irgendwas von dem folgenden PHP-Code versteht ^^ alles was du tun musst ist, die Variablen einzusetzen -> $user, $pass und $term.

$user = "Benutzernamen";
$pass = "Passwort";
$term = "Suchbegriff";

Hinter $term steht der Begriff für die Suche in der User-Timeline, wer diesen Begriff erwähnt, wird automatisch von dir verfolgt…

twitter_neu

< ?php
// Twitter Auto-follow Script by Dave Stevens - http://davestevens.co.uk

$user = "enter_your_twitter_username_here";
$pass = "enter_your_twitter_password_here";

$term = "enter_the_search_term_to_follow_here";

$userApiUrl = "http://twitter.com/statuses/friends.json";

$ch = curl_init($userApiUrl);
curl_setopt($ch, CURLOPT_USERPWD, $user.":".$pass);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$apiresponse = curl_exec($ch);
curl_close($ch);
$followed = array();

if ($apiresponse) {
 $json = json_decode($apiresponse);
 if ($json != null) {
  foreach ($json as $u) {
   $followed[] = $u->name;
  }
 }
}

$userApiUrl = "http://search.twitter.com/search.json?q=" . $term . "&rpp=100";
$ch = curl_init($userApiUrl);
curl_setopt($ch, CURLOPT_USERPWD, $user.":".$pass);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$apiresponse = curl_exec($ch);
curl_close($ch);

if ($apiresponse) {
 $results = json_decode($apiresponse);
 $count = 20;
 if ($results != null) {
  $resultsArr = $results->results;
  if (is_array($resultsArr)) {
   foreach ($resultsArr as $result) {
    $from_user = $result->from_user;
    if (!in_array($from_user,$followed)) {
     $ch = curl_init("http://twitter.com/friendships/create/" . $from_user . ".json");
     curl_setopt($ch, CURLOPT_USERPWD, $user.":".$pass);
     curl_setopt($ch, CURLOPT_POST, 1);
     curl_setopt($ch, CURLOPT_POSTFIELDS,"follow=true");
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     $apiresponse = curl_exec($ch);

     if ($apiresponse) {
      $response = json_decode($apiresponse);
      if ($response != null) {
       if (property_exists($response,"following")) {
        if ($response->following === true) {
         echo "Now following " . $response->screen_name . "n";
        } else {
         echo "Couldn't follow " . $response->screen_name . "n";
        }
       } else {
        echo "Follow limit exceeded, skipped " . $from_user . "n";
       }
      }
     }
     curl_close($ch);
    } else {
     echo "Already following " . $from_user . "n";
    }
   }
  }
 }
}
?>

ggf. kann man sich auch noch ein crontab einrichten, welcher dieses Skript ausführt

wildcards in der shell

Wildcards sind eine Shell-Funktion, mit der Kommandozeile viel mächtiger als alle GUI-Datei-Manager macht. – Wiki

Hier ist eine Liste der am häufigsten verwendeten Platzhalter in der bash:

* -> Kein oder mehr Zeichen
? -> genau ein Zeichen
[bcde] -> genau eines dieser Zeichen (“b” bis “e”)
[ae] -> genau ein Zeichen aus dem angegebenen Bereich (“a” bis “e”)
[!abcde] -> jedes Zeichen, das nicht aufgeführt ist
[!ae] -> alle Zeichen, die nicht im angegebenen Bereich sind
{debian,linux} -> genau ein ganzes Wort von den angegebenen Wörtern

Beispiele:

Löscht jede Datei in dem aktuellen Verzeichnis, außer die die mit einem “.” beginnen:

rm *

verschiebt alle HTML-Dateien, die das Wort “linux” in ihrem Dateinamen haben, in dem Unterverzeichnis “neues_verzeichnis”:

mv *linux*.html neues_verzeichnis/

zeigt alle Dateien an, im aktuellen Verzeichnis an, die mit “d” beginnen und auf “.txt” enden:

ls d*.txt

löscht alle Dateien, deren Namen “junk.” gefolgt von genau drei beliebigen Zeichen ist:

rm junk.???

zeigt eine Liste aller Dateien oder Verzeichnisse an, deren Namen “sda” oder “hda” mit genau einer darauf folgenden Ziffer ist:

ls [sh]da[0-9]

zeigt eine Liste aller Dateien oder Verzeichnisse an, deren Namen “hda” mit genau zwei darauf folgenden Ziffer ist:

ls hda[0-9][0-9]

alle Dateien oder Verzeichnisse werden angezeigt, deren Namen entweder mit “hd” oder “sd” gefolgt von einem einzelnen Zeichen zwischen “a” und “c”:

ls {hd,sd}[ac]

kopiert alle Dateien, die mit einem Großbuchstaben beginnen, in das Verzeichnis dir2

cp [AZ]* dir2

löscht alle Dateien, die nicht auf “c”, “e”, “h” oder “g” enden:

rm *[!cehg]

Nice Try!


Nice Tray
Nice Tray


bash – Version < 3.0:

for i in $(seq 1 500)
do
   echo "I will not throw paper airplanes in class."
done

bash – Version 3.0+:

for i in {1..500}
do
   echo "I will not throw paper airplanes in class."
done

bash – Alternative:

for (( c=1; c< =500; c++ ))
do
   echo "I will not throw paper airplanes in class."
done

bash – unendliche Schleife:

for (( ; ; ))
do
   echo "I will not throw paper airplanes in class."
done

[ CTRL+C ]

um diese Schleife wieder zu beenden