# Tipps und Tricks tauschen

## sven-tek

Hi Gentoo'ers

wollte mal ein paar Tipps mit euch austauschen, dabei ist natürlich klar das es für manche ein Tipp ist - und für viele andere ein alter Hut oder selbstverständlich, also vielleicht nicht zuviel drüber diskutieren hier.

Netzwerkinfos holen, ifconfig als user starten

ifconfig liegt im Ordner /sbin welcher für user nicht im Suchpfad $PATH liegt, um trotzdem einfach ifconfig starten zu können legt einen alias in

der ~/.bashrc an. z.B. indem ihr diesen Befehl ausführt:

 *Quote:*   

> echo 'alias ifconfig="/sbin/ifconfig"' >> ~/.bashrc

  (by Dr_Pepper)

Rechner Herunterfahren als User

User soll den Rechner Herunterfahren können? Besonders bei gnome passiert ja erstmal beim klick auf Herunterfahren nur ein logout. so gehts: 

[edit]  :Arrow:  wer das will sollte weiter unten das  hier  lesen, scheint mir doch mehr Sinn zu machen ,aber so gehts auch:

```

su

your password

chmod +s /sbin/halt

cd /var/run

mkdir console

cd console

touch username
```

(von: http://wiki2.archlinux.org/index.php/User%20can%20shutdown%20or%20reboot )

nun werfe ich den Ball ma in die Runde   :Wink: Last edited by sven-tek on Fri May 27, 2005 9:53 pm; edited 6 times in total

----------

## cryptosteve

 *sven-tek wrote:*   

>    ifconfig ist nicht nur für den root da, als user ne konsole aufmachen und eingeben:
> 
> ```
> echo 'PATH=$PATH:/sbin:.' >> ~/.bash_profile
> ```
> ...

 

Beide Tips sind schlecht.

1) Es hat seinen Grund, warum ein User standardmäßig kein /sbin im Pfad hat. Sollte er dennoch mal ifconfig (oder ähnliches) brauchen, reicht es aus, das Programm direkt via /sbin/ifconfig zu starten. Dazu braucht man keinen dauerhaften Pfad in seiner Umgebung.

2) chmod +s ist so ziemlich das ungünstigste, super und sudo existieren.

----------

## Deever

Man sollte für seine Skripte auch eher ein festes Verzeichnis (~/bin) erstellen und in PATH aufnehmen. "." im Pfad kann zu Sicherheitslücken führen.

Gruß,

/dev

----------

## rukka

Schönen guten Tag zusammen  :Wink: 

Ja, stimme Steve` und Deever zu, das derzeitige Verzeichnis in die $PATH Variable aufzunehmen kann böse sein, man stelle sich nur mal vor jemand schreibt ein kleines Script, nennt es "su" und versteckt es z.B. mit "hidefile" vor einem ls-Listing. Wenn der (ahnungslose) User dann im selben Verzeichnis ist, SuperUser werden möchte und ein simples "su -" eingibt wird nun das Script ausgeführt und kann so eine falsche Passwortabfrage inizieren und die Antwort per eMail in die weite Welt verschicken. Das ist nicht so toll wie man sicher vorstellen kann (war nur ein beispielhaftes von vielen schlechten Szenarien).

Nun aber zurück zu den Tipps und Tricks  :Wink:  Mein Tipp:

In die ~/.inputrc folgendes eintragen:

```
"\e[[A":"\C-Aman \C-M"

"\e[[D":"logout\C-M"
```

Das bewerkstelligt das man beim drücken der Tasten F1 und F4 je ein Programm ausführt, in meinem Falle "man" und logout". Man schreibt also z.B. "screen" drückt dann F1 und die man-page zu screen erscheint.

Anzumerken ist das das Ganze wohl nur unter der bash und nicht unter X funtioniert, für einen kleinen Server aber eventuell brauchbar.

So, das war's dann meinerseits, einen schönen Tag noch!  :Smile: 

-rukka

----------

## DeathAngel

Hi zusammen,

hier ein kleiner Tip für ATI User, die sich schon über die mangelnde Unterstützung von TV-Out in Bezug auf Beschleuinigung geärgert haben   :Confused: 

Ich benutzte XFree, da hiermit die Treiber wenigstens einigermaßen funktionieren (jaja ich weiß - bitte keine flames ...).

Um nun den TV-Out Ausgang zu "beschleunigen" habe ich mir 2 XServer Konfig´s angelegt. Eine für den regulären Betrieb mit Monitor und eine nur für den TV-Out sprich Fernseher.

(schnipsel) XF86Config-4  -> Monitor

```
 # === Screen Management ===

    Option "DesktopSetup"               "0x00000000" 

    Option "MonitorLayout"              "AUTO, AUTO"

# === TV-out Management ===

    Option "NoTV"                       "yes"     

```

(schnipsel) XF86Config-TVout  -> TV

```
# === Screen Management ===

    Option "DesktopSetup"               "0x00000100" 

    Option "MonitorLayout"              "TV, NONE" #"AUTO, AUTO"

# === TV-out Management ===

    Option "NoTV"                       "no"     

    Option "TVStandard"                 "PAL-B"     

```

Ich starte mein X mittels startx für den "normalen" Betrieb. Hiermit wird dann ganz regulär die XF86Config-4 aufgerufen (Schnipsel - 1). Wenn ich nun am TV einen Film schauen möchte (DVD zB.) wechsel ich auf eine Textkonsole (Strg-Alt F2) und führe mein kleines Script aus :

```
#!/bin/bash

startx -- :1 -xf86config XF86Config-TVout

```

Somit wird ein zweiter Xserver gestartet unabhängig vom ersten und dort habe ich dann auch das Problem mit den ATI Treibern gelöst, welche nur einen Ausgang "beschleuingen".

Nun kann man mit Alt-F7 oder Alt-F8 bequem zwischen den beiden XServern hin und her zappen. Auf dem TV-Out Server dann einfach xine -n aufrufen. Durch die -n Funktion läßt sich xine nun auch remote steuern mittels einer telnet - Session. Ist aber super in den man Seiten beschrieben.

Gruß & guten Rutsch ins neue Jahr

DA

----------

## Dr_Pepper

 *sven-tek wrote:*   

>   ifconfig ist nicht nur für den root da, als user ne konsole aufmachen und eingeben:
> 
> ```
> echo 'PATH=$PATH:/sbin:.' >> ~/.bash_profile
> ```
> ...

 

Ich würde das eher über einen Alias machen:

```
echo 'alias ifconfig="/sbin/ifconfig"' >> ~/.bash_profile
```

----------

## Dirk_G

Hi

Ein großes Problem bei gentoo sind die Distfiles! Es gibt einfach kein Tool und diese zu pflegen.

Entweder man löscht alles und saugt ständig alles neu oder man macht nichts und wartet bis die Platte überläuft. 

Mit 

```
emerge sync && emerge -ef world

find /usr/portage/distfiles -type f -atime +1 -exec rm {} \:
```

lassen sich die Distfiles auf ein vernüftiges Maß reduzieren! Vorausgesetzt man mountet mit 'atime' anstelle von 'noatime'

Dirk

----------

## DeathAngel

Hi ich nochmal,

ich weiß jetzt zwar nicht ob es so richtig hier rein gehört, aber hier mein kleines Template-Script für alle die gerne mit der Bash arbeiten. Ich denke mal das Template ist selbsterklärend ...

```
#!/bin/bash

#

# Menuschablone : Schablone für Farb-Konsolenmenue

#

# Script by Proggic@yahoo.de / GPL

#

#Farbvariablen

GRUEN='\E[32;40m'

BLAU='\E[34;40m'

ROT='\E[31;40m'

WEISS='\E[37;40m'

GELB='\E[33;40m'

# Menuvariablen

selection=

function option1

{

   # Option 1 Funktion

   echo -e "$WEISS"

   clear

   echo -n "          "

   echo -e '\E[37;44m'"\033[1m Menueschablone \033[0m"   # White on blue background

   echo; echo

   echo -e "$BLAU\033[1m Option 1\033[0m"         # Bold

   echo

   echo -en "$GRUEN Willkommen in der Option 1 :"

   sleep 3

}

function option2

{

   # Option 1 Funktion

   echo -e "$WEISS"

   clear

   echo -n "          "

   echo -e '\E[37;44m'"\033[1m Menueschablone \033[0m"   # White on blue background

   echo; echo

   echo -e "$BLAU\033[1m Option 2\033[0m"         # Bold

   echo

   sleep 3

}

function option3

{

   # Option 1 Funktion

   echo -e "$WEISS"

   clear

   echo -n "          "

   echo -e '\E[37;44m'"\033[1m Menueschablone \033[0m"   # White on blue background

   echo; echo

   echo -e "$BLAU\033[1m Option 3\033[0m"         # Bold

   echo

   sleep 3

}

function option4

{

   # Option 1 Funktion

   echo -e "$WEISS"

   clear

   echo -n "          "

   echo -e '\E[37;44m'"\033[1m Menueschablone \033[0m"   # White on blue background

   echo; echo

   echo -e "$BLAU\033[1m Option 4\033[0m"         # Bold

   echo

   sleep 3

}

until [ "$selection" = "0" ]; do

echo -e "$WEISS"

clear

echo -n "          "

echo -e '\E[37;44m'"\033[1m Menueschablone \033[0m"   # White on blue background

echo; echo

echo -e "$BLAU\033[1m Hauptmenue:\033[0m"      # Bold

tput sgr0

echo

echo -e "$GRUEN 1) Option 1"

echo -e "$GRUEN 2) Option 2"  

echo -e "$GRUEN 3) Option 3"

echo -e "$GRUEN 4) Option 4"

echo

echo -e "$GRUEN 0) Abbruch des Scripts"

echo

echo -en "$WEISS Welche Option moechten sie [0-4]:"

read selection

case $selection in

 1) option1 ;;

 2) option2 ;;

 3) option3 ;;

 4) option4 ;;

 0) exit ;;

 *) ;;

esac

done
```

Gruß

DA

----------

## Arudil

 *Dirk_G wrote:*   

> Hi
> 
> Ein großes Problem bei gentoo sind die Distfiles! Es gibt einfach kein Tool und diese zu pflegen.
> 
> Entweder man löscht alles und saugt ständig alles neu oder man macht nichts und wartet bis die Platte überläuft. 
> ...

 

Für das 'problem' empfehle ich immer gerne getdelta.sh

----------

## c07

 *rukka wrote:*   

> Ja, stimme Steve` und Deever zu, das derzeitige Verzeichnis in die $PATH Variable aufzunehmen kann böse sein, man stelle sich nur mal vor jemand schreibt ein kleines Script, nennt es "su" und versteckt es z.B. mit "hidefile" vor einem ls-Listing. Wenn der (ahnungslose) User dann im selben Verzeichnis ist, SuperUser werden möchte und ein simples "su -" eingibt wird nun das Script ausgeführt und kann so eine falsche Passwortabfrage inizieren und die Antwort per eMail in die weite Welt verschicken.

 

Das stimmt aber nur dann, wenn das echte su nicht existiert, weil das . erst am Ende von PATH steht. Ich hab das auch in meiner .bash_profile stehn (zuzüglich /usr/sbin ) und bin mir bewusst, dass es die Sicherheit nicht gerade erhöht. Der zusätzliche Komfort ist mir aber diesen minimalen Verlust an Sicherheit wert, ähnlich wie ich meine Festplatte bei Abwesenheit nicht in einen Tresor steck, obwohl das mindestens genauso angebracht wär.

----------

## Fauli

 *Dirk_G wrote:*   

> Ein großes Problem bei gentoo sind die Distfiles! Es gibt einfach kein Tool und diese zu pflegen.

 

Doch, z. B. dieses Skript: http://www.stacken.kth.se/~foo/gentoo/files/distclean-0.1.py

----------

## sven-tek

Gnome-Tipp, aus Nautilus Scripte starten

eigene Scripte die öfter gebraucht werden kann man in das Verzeichniss ~/.gnome2/nautilus-scripts legen. Sie müssen auch als ausführbar gekennzeichnet werden ( chmod 755 <foo-datei> z.b.) .

Nun tauchen diese Scripte im Kontextmenü, in einem Untermenü, mit auf !

als Beispiel mal ein script um firefox zu starten:

```
#! /bin/sh

FILES="`echo ${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}`"

for FILE in "${FILES}" ; do

    firefox "${FILE}"

done
```

wenn die Scripts dann noch nicht auftauchen probiert es ohne die erste Zeile "#! /bin/sh"Last edited by sven-tek on Thu May 26, 2005 4:12 pm; edited 4 times in total

----------

## Tazok

Wenn du als user herunterfahren willst, schreib deinen Namen in die /etc/shutdown.allow. Dann kannst du shutdown mit Hilfe der Option -a auch als User shutdown verwenden.

----------

## sven-tek

 schnell Tabs umschalten im Firefox

ich hatte vorhin einen Aha-Effekt mit dem Firefox.  :Laughing: 

Wenn mehrere Tabs offen sind kann man mit "alt+1" , "alt+2" , "alt+3", ...

zwischen ihnen umschalten.  :Razz: Last edited by sven-tek on Thu May 26, 2005 4:13 pm; edited 2 times in total

----------

## _hephaistos_

hi!

eine frage: wie verwaltet ihr eure /etc/portage/package.* files.

es kann ja sein, dass ein paket, welches in zB die package.keywords eingetragen wurde irgendwann mal nicht mehr masked ist...

gibts dazu irgendein vernünftiges script?

ich denke, sonst schreib ich eins. bin eh auf der suche nach sowas  :Smile: 

thx,

ciao

----------

## sven-tek

Ich denke da sollten sich mal einige Gentoo-DEV's hinterklemmen und ein paar gescheite Tools schreiben um /etc/portage/package.* zu verwalten.

Schon alleine das man emerge -up world nicht machen kann wenn ein installiertes paket gemasked wurde aus irgendwelchen Gründen... er kann dann den dep-graph nicht aufstellen - dabei könnte es doch an der Stelle fragen obs die Pakete in /etc/portage/package.* unmasken soll für mich. Und eine Option wie --forceunmask wäre da auch wünschenswert.

Habe schon ein paar Scripte gesehen, aber das ist nichts halbes und nichts ganzes weil die immer nur emerge benutzen und darauf warten wo es abbricht. Das ist wohl unschönes try and error arbeiten.  :Embarassed:  sowas sollte in gentoo nicht einfließen.

Ein Script das ähnlich wie etc-update arbeitet um die /etc/portage/package.* aufzuräumen wäre allerdings schon gut.

Nennen wir es doch "mask-update".

Wunschliste also

 :Arrow:  Interaktion von emerge währrend der Depgraph aufgebaut wird und Fehler auftreten. (vielleicht nur wenn -a gegeben wurde)

 :Arrow:  Option für emerge: "--forceunmask"  - schreibt die notwendigen deps in die passende Datei hinein.

 :Arrow:  Script "mask-update" (gtk GUI möglich?)

----------

## Dr_Pepper

 *sven-tek wrote:*   

> Ich denke da sollten sich mal einige Gentoo-DEV's hinterklemmen und ein paar gescheite Tools schreiben um /etc/portage/package.* zu verwalten.

 

Arbeite Dich doch in das Thema ein und trage etwas bei...  :Exclamation:   :Question: 

 *Quote:*   

> Wunschliste also
> 
>  Interaktion von emerge währrend der Depgraph aufgebaut wird und Fehler auftreten. (vielleicht nur wenn -a gegeben wurde)
> 
>  Option für emerge: "--forceunmask"  - schreibt die notwendigen deps in die passende Datei hinein.
> ...

 

Wunschlisten gehören hier hin:   :Arrow:  https://bugs.gentoo.org

----------

## Jinidog

 *Quote:*   

> 
> 
> Ein großes Problem bei gentoo sind die Distfiles! Es gibt einfach kein Tool und diese zu pflegen.
> 
> Entweder man löscht alles und saugt ständig alles neu oder man macht nichts und wartet bis die Platte überläuft. 

 

Na, na, das stimmt aber nicht.

Distcleaner ist die Antwort, das löscht auf Wunsch alle nicht installierten Packete.

Ist ein kleines Pythonscript, mal danach suchen oder an mich wenden.

----------

## sven-tek

ein kleines script mit dem man feststellen welche Unterschiede die Dateien machen:

/etc/portage/package.keywords

/etc/portage/package.mask

/etc/portage/package.unmask

war bei mir zum Beispiel so das ich irgendwann gemerkt habe das die 30 gnome abhängigkeiten inzwischen stable waren und somit eigentlich raus könnten aus der keywords Datei.

```
#!/bin/bash

# blank screen

clear

# write a file showing the packages system use right now

echo looking for packages on the system "(emerge -evp world > /tmp/world_with_own_files)"

emerge -evp world > /tmp/world_with_own_files

# backup files that we touch

tar -cf /tmp/etcportage_usersfilesbackup.tar /etc/portage/portage.* 2>/dev/null

# remove own portage adjustment files

mv /etc/portage/package.keywords /etc/portage/package.keywords.backup

mv /etc/portage/package.mask /etc/portage/package.mask.backup

mv /etc/portage/package.unmask /etc/portage/package.unmask.backup

# write a worldfile again with gentoo defaults

echo looking for packages on the system without your settings "(emerge -evp world > /tmp/world_without_own_files)"

emerge -evp world > /tmp/world_without_own_files

# move back own config files, just as if nothing has happend

mv /etc/portage/package.keywords.backup /etc/portage/package.keywords

mv /etc/portage/package.mask.backup /etc/portage/package.mask

mv /etc/portage/package.unmask.backup /etc/portage/package.unmask

# create diff

echo differences between your own packageset and gentoos default is estaminated in /tmp/portage_world.diff

diff /tmp/world_with_own_files /tmp/world_without_own_files > /tmp/portage_world.diff

cat /tmp/portage_world.diff

```

@hephaistos6 meintest du sowas?

----------

## mani74

 *Fauli wrote:*   

>  *Dirk_G wrote:*   Ein großes Problem bei gentoo sind die Distfiles! Es gibt einfach kein Tool und diese zu pflegen. 
> 
> Doch, z. B. dieses Skript: http://www.stacken.kth.se/~foo/gentoo/files/distclean-0.1.py

 

Jetzt auch in Version 0.2 vorhanden: http://www.stacken.kth.se/~foo/gentoo/files/distclean-0.2.py

----------

## oscarwild

Hallo zusammen,

im Prinzip finde ich es ja super, dass nicht immer nur offene Fragen und Probleme, sondern auch mal Lösungen ins Forum eingestellt werden. Zuviel buntes allerlei in einem einzigen Thread führt aber glaube ich eher in den Wald; die einzelnen Tipps wären doch eher für das gentoo-wiki geeignet, oder?

Gruß

OscarWild

----------

## Earthwings

 *oscarwild wrote:*   

> im Prinzip finde ich es ja super, dass nicht immer nur offene Fragen und Probleme, sondern auch mal Lösungen ins Forum eingestellt werden. Zuviel buntes allerlei in einem einzigen Thread führt aber glaube ich eher in den Wald; die einzelnen Tipps wären doch eher für das gentoo-wiki geeignet, oder?

 

Ist letztlich alles Geschmackssache. Auf gentoo.de gibts auch Tipps und Tricks (veraltet, das ist bekannt). Siehe https://forums.gentoo.org/viewtopic.php?t=200311

----------

## slick

Ungeachtet der Kritik möchte ich auch zwei meiner kleinen Tricks darlegen:

Alle (normalen) Links einer HTML-Seite holen

```
lynx --dump http://www.example.com | grep -e " .[0-9+]\.\ " | cut -d "." -f 2-
```

Einen Wert aus der mysql in Bash auslesen

```
VAR=`mysql -u user --password=password -B --execute="select field from table limit 1;" --column-names=false database`
```

Last edited by slick on Mon Sep 26, 2005 7:25 am; edited 1 time in total

----------

## _hephaistos_

 *sven-tek wrote:*   

> @hephaistos6 meintest du sowas?

 

hi!

hab mittlerweile in c sowas gebastelt.

mom. gehts aber nur für packages.keywords mit =package-dir/package-version.ebuild....

wenn du lust hast, kann ichs dir gern mal schicken...

ciao

----------

## schachti

Mein kleiner Lieblingstipp: Wenn man den Rechner vor allem als Desktop-Rechner nutzt (oder als wichtigen Server unter hoher Last), kann das Kompilieren von Paketen dem System zu viele Ressourcen entziehen, so daß MP3s springen, der Webserver träge reagiert etc.

In dem Fall kann man den Nice Wert von Portage hochsetzen, so daß mit geringerer Priorität kompiliert wird.

Dazu in /etc/make.conf folgendes eintragen:

PORTAGE_NICENESS="5"

Den Wert kann man variieren (man nice), man sollte ihn aber nicht zu hoch setzen. Mit 5 habe ich sowohl auf meinem Desktop, als auch auf Servern gute Erfahrungen gemacht.

----------

## gsven

wenn man nur Paketname mit Versionsnummer sehen will bei emerge-Ausgaben kann man diese Zeile der .bash_profile hinzufügen:

```
alias grepname="grep "/" |sed -e 's/.* \([^ ]*\/[^ ]*\) .*/\1/g'"
```

Eine emerge ausgabe sieht dann z.B. so aus und kann besser für Skripte benutzt werden:

```
# emerge -p nvidia-kernel|grepname

media-video/nvidia-kernel-1.0.6629-r1
```

----------

## gsven

Super Bericht über GnuPG, jeder sollte sich überlegen emails zu verschlüsseln

http://www.pro-linux.de/berichte/gnupg.html

----------

## sven-tek

welche Computer sind im Netzwerk?

ein script, welches anzeigt welche Computer gerade erreichbar sind

Es benötigt das Programm nmap ( emerge -av nmap )und so sieht es dann aus:

 *Quote:*   

> connected to : C-net , my IP is 192.168.2.168
> 
> searching: 192.168.2.*
> 
> -----------------------------------------
> ...

 

```
#!/bin/bash

#

#### parse ifconfig nach erreichbaren netzen

# nmap -sP -PI -PT 192.168.0.1-254

#

IP="`/sbin/ifconfig |grep inet |sed -e 's/[^0-9]*\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\).*/\1.\2.\3.\4/g'`"

for eachIP in $IP; do

  echo -n connected to :

  # hope to stay flexibel with this expression:

  NETMASK="`ifconfig |grep $eachIP |sed -e 's/.*\([250]\{3\}\)\.\([250]\{1,3\}\)\.\([250]\{1,3\}\)\.\([250]\{1,3\}\).*/\1.\2.\3.\4/g'`"

  if [ "$NETMASK" == "255.255.255.0" ]

    then echo " C-net , my IP is $eachIP"

      NETPREF="`echo $eachIP |sed -e 's/[^0-9]*\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\).*/\1.\2.\3/g'`"

      echo searching: $NETPREF.*

      echo "-----------------------------------------"

      nmap -sP $NETPREF.* |grep Host

      echo "-----------------------------------------"

  fi

  if [ "$NETMASK" == "255.255.0.0" ]

    then echo " B-net , my IP is $eachIP"

      NETPREF="`echo $eachIP |sed -e 's/[^0-9]*\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\).*/\1.\2/g'`"

      echo searching: $NETPREF.*.*

      echo "-----------------------------------------"

      nmap -sP $NETPREF.*.* |grep Host

      echo "-----------------------------------------"

  fi

  if [ "$NETMASK" == "255.0.0.0" ]

    then echo " A-net , my IP is $eachIP"

      if [ "$eachIP" == "127.0.0.1" ]

        then echo is localhost

      else

        NETPREF="`echo $eachIP |sed -e 's/[^0-9]*\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\).*/\1/g'`"

        echo searching: $NETPREF.*.*.*

        echo "-----------------------------------------"

        nmap -sP $NETPREF.*.*.* |grep Host

      echo "-----------------------------------------"

      fi

  fi

done

```

Last edited by sven-tek on Mon Sep 26, 2005 7:32 am; edited 3 times in total

----------

## sven-tek

Pfad zum jdbc-mysql Treiber automatisch finden.

Tipp zu Java,  dev-java/jdbc-mysql, und cron-jobs die eine java software starten

damit man nicht jedesmal den Treiber hin und herkopieren muss wenn ein Java-update gemacht wird kann man die Datei

/etc/profile mit dem Code ergänzen. Man hat ja meistens eh ein Skript um ein java-Programm zu starten, dieses kann man natürlich auch mit dem Code ausstatten.

 *Quote:*   

> if [ -e "/usr/share/jdbc-mysql/package.env" ]
> 
> then
> 
>         CLASSPATH=`cat /usr/share/jdbc-mysql/package.env |grep CLASSPATH |sed -e 's/.*=\(.*\)/\1/g'`:$CLASSPATH
> ...

 

Nun enthält die Systemvariable CLASSPATH den Pfad zu der .jar Datei aus dem Paket dev-java/jdbc-mysql und man muss sich nicht bei jedem update über nicht funkionierende Java-programme ärgern.

 *Quote:*   

> 
> 
> echo $CLASSPATH
> 
> /usr/share/jdbc-mysql/lib/mysql-connector-java-3.0.11-stable-bin.jar:.
> ...

 

allerdings überschreibt die Option -cp von java die Variable CLASSPATH, so das über diesen Weg die Variable in -cp $CLASSPTAH:<undnunweiter> eingebunden werden müsste

---

Pfad zur java virtual maschine finden

Ich benutze vixie-cron und habe hier das Problem das scripte die vom cron aus gestartet werden die java VM bzw. Runtime nicht im PATH haben, auch das editieren der /etc/crontab brachte da nichts. Aus diesem Grunde habe ich diese Zeile in Cron-Scripte eingefügt welche  java benötigen:

 *Quote:*   

> 
> 
> # Pfad zur Java VM:
> 
> PATH=$PATH:"`cat /etc/env.d/*java* 2>/dev/null |grep -E "^PATH=.*" |sed -e 's/.*\"\(.*\)\".*/\1:/g'`"
> ...

 

Das bewirkt das auch wirklich eine Installierte java-vm gefunden wird, im Gegensatz dazu das eine feste Zuweisung in jedem script mit z.B. /opt/sun-jdk-1.4.2.08/bin/java <class> auch immer dazu führt das beim nächsten Java update alle Scripte versagen und editiert werden müssen.

Lieber hätte ich die Zuweisung der PATH Variable mit dem Pfad zur java-vm zwar schon auf Cron-als auf Script-Ebene gemacht, aber das hatt irgendwie nicht geklappt. Und so ist es ja auch nicht schlechter.Last edited by sven-tek on Thu May 26, 2005 10:25 pm; edited 5 times in total

----------

## primat

Hab gerade ne super funktion im Browser kennengelernt! Man kann in fast allen Browsern (firefox,konqueror) mit /Suchbegriff websites durchsuchen. Insbesondere für vim user sehr angenehm!

Gruss

Primat

----------

## sven-tek

danke, das coole ist das geht sogar in man-pages

----------

## return13

für die Jungs und Mädels die ihr root Passwort vergessen  :Wink: 

Jaja... ich weiss jetzt werden wieder töne kommen das linux nicht sicher sei... - aber linux war 1. nie als desktop system gedacht und 2. ist jeder selbst schuld der sein system nicht absichert...

Also in grub oder lilo den parameter init=/bin/bash hinzufügen, und nachm hochfahren...

```

mount / -o remount,rw

su -

passwd

mount / -o remount,ro

```

und root passwort geändert...

----------

## oscarwild

 *return13 wrote:*   

> Also in grub oder lilo den parameter init=/bin/bash hinzufügen, und nachm hochfahren...

 

Oder ganz einfach mit einer beliebigen Boot-CD hochfahren, Platte mounten, chrooten und dann das Passwort ändern...

Hat übrigens nichts mit einer spezifischen Unsicherheit von Linux oder dem ungeplanten Gebrauch als Desktop-System zu tun. Sobald jemand physikalischen Zugriff auf ein beliebiges System hat, ist es vorbei mit jeglicher Sicherheit.

----------

## mrsteven

Dafür gibt es ja auch Lilo/Grub-Passwörter.

----------

## think4urs11

 *mrsteven wrote:*   

> Dafür gibt es ja auch Lilo/Grub-Passwörter.

 

Die sich durch umstellen der Bootreihenfolge im BIOS umgehen lassen.

Was wieder durch ein Paßwort geschützt werden kann.

Was wieder durch BIOS-Reset/Batterie ziehen zu umgehen ist.

Was wieder durch Gehäusesensoren/schlösser verhindert werden kann.

Was wieder durch erhöhten physikalischen Kraftaufwand ...

... jede physisch greifbare Kiste ist zu knacken, genügend Motivation/Mittel/Zeit vorausgesetzt

damit es nicht OT wird ein kleiner Tip

Es empfiehlt sich Configs nur so im Forum zu posten um die Lesbarkeit zu erhöhen:

```
sed -e '/^#\|^$/d' <config die ich posten möchte>
```

^# entspricht Zeilen die mit # beginnen

^$ entspricht Leerzeilen

----------

## Qubit

 *Think4UrS11 wrote:*   

>  *mrsteven wrote:*   Dafür gibt es ja auch Lilo/Grub-Passwörter. 
> 
> Die sich durch umstellen der Bootreihenfolge im BIOS umgehen lassen.

 

Das bezog sich in dem Fall aber bestimmt auf die:

password=Geheim

restricted

function.

Gruß Qubit.

----------

## sven-tek

Bei Gnome die Größe des Menüs ändern

Man kann in Gnome die Größe der Icons im Menü anpassen, weil das eine Eigenschaft ist die über gtk-themes angepasst wird, muss man erstmal die richtige Datei finden in der man das ändern sollte.

Die Themes die Systemweit benutzt werden könne liegen in /usr/share/themes/ .

Themes die man selbst nachinstalliert hat liegen im Homeverzeichnis ~/.themes/ .

Jedes Theme hat eine Datei */gtk-2.0/gtkrc  und in dieser Datei kann vieles angepasst werden, unter anderem die Größe der Menü-Icons.

Welches Theme Ihr benutzt müsstet ihr ja wissen, oder man schaut noch mal mit dem Programm "gnome-theme-manager" nach.

Dazu editiert man die gtkrc Datei und sucht nach einer Zeile mit "gtk-icon-sizes", wenn die noch nicht da ist legt sie an:

 *Quote:*   

> 
> 
> gtk-icon-sizes = "gtk-large-toolbar=24,24:panel-menu=27,27"
> 
> 

 

Ich habe z.B. wie man sehen kann die Größe von 32,32 auf 27,27 geändert.

Leider muss man das immer anpassen wenn man mal ein anderes Theme benutzen möchte.Last edited by sven-tek on Fri May 27, 2005 9:57 pm; edited 1 time in total

----------

## sven-tek

deutsche man pages

Unter http://www.infodrom.org/projects/manpages-de/ bekommt man ein Archiv mit

deutschen manpages.

Einfach den Inhalt des Archiv in /usr/share/man/de/ hineinkopieren, danach noch 

/etc/man.conf editieren:

```
MANPATH /usr/share/man/de
```

Und eventuell muss man noch eine Variable setzen damit es deutsch wird, LC_MESSAGES=de .

----------

## schrippe

https://forums.gentoo.org/viewtopic-t-347061.html

----------

## sven-tek

syntaxhighlighting für nano editor

ich habe heute mal Syntaxhighlighting des nano editors aktiviert und mir dann auch welches für .conf Dateien eingebaut, einfach dieses in an die /etc/nanorc anhängen und spass haben:

```
syntax "shellscript" "\.conf$"

color cyan "^ *#.*$"

color red "^\[.*\]"

color magenta "^#.*=.*"

color green "^#.*="

color cyan "^#"

```

Last edited by sven-tek on Mon Sep 26, 2005 7:08 am; edited 1 time in total

----------

## sven-tek

Script nach Login, aber vor Gnome-Start ausführen

es wurmte mich schon länger das bei mir Mausbuttons erst richtig funktionieren wenn ich jedem Benutzer des Systems in seine Start Sessions ein xmodmap Befehl eingebaut habe. Ebenso ärgerlich war es jedesmal den numlockx da einzubauen damit das numpad aktiviert wird. Nun habe ich die elegantere Lösung gefunden beim lesen der gdm.conf.

in dem Ordner /etc/X11/gdm/PostLogin/ kann man Scripte ablegen die nach dem Login gestartet werden sollen - danach erst wir dann der Windowmanager gestartet, also Gnome oder KDE. In meinem Fall habe ich diese Zeilen der Datei /etc/X11/gdm/PostLogin/Default hinzugefügt:

```
/usr/bin/xmodmap /etc/Xmodmap

numlockx

```

Last edited by sven-tek on Mon Dec 19, 2005 12:44 pm; edited 1 time in total

----------

## TheCurse

Dateien in /etc/portage aufräumen

Ich mal habe ein kleines tool in C++ geschrieben, das diese arbeiten übernehmen kann: gcac

----------

## COiN3D

https://forums.gentoo.org/viewtopic-p-2287792.html#2287792

Also das Script find ich genial für LAN-Parties oder "normale" LAN's wo es gelegentlich mal Probleme mit diversen Rechnern gibt  :Wink: 

----------

## sven-tek

dudir - bashscript, wie gross sind die Ordner?

Dieses Script zeigt den Speicherverbrauch der Ordner an die sich im aktuellen Verzeichniss befinden:

```
#!/bin/bash

if [ -z "$1" ]; then

  find -maxdepth 1 -type d -exec $0 '{}' ';' ;

else

  du $1 -h | tail -n1;

fi
```

Startet man das Script ohne ein Argument, werden alle Unterordner berechnet und angezeigt.

Startet man es mit einem Ordner als Argument, wird nur dieser eine Ordner berechnet.

Ich habe es unter dem Namen dudir im Ordner /usr/local/bin/ abgelegt und natürlich chmod +x nicht vergessen.

----------

## b3cks

 *sven-tek wrote:*   

> dudir - bashscript, wie gross sind die Ordner?
> 
> Dieses Script zeigt den Speicherverbrauch der Ordner an die sich im aktuellen Verzeichniss befinden:
> 
> ```
> ...

 

Irgendwie dasselbe wie: 

```
du -h --max-depth=1
```

 *Quote:*   

> Startet man es mit einem Ordner als Argument, wird nur dieser eine Ordner berechnet.

 

Irgendwie dasselbe wie: 

```
du -sh <Ordner>
```

*meinjanur*

Gruß

----------

## hoschi

 *Think4UrS11 wrote:*   

> 
> 
> Was wieder durch BIOS-Reset/Batterie ziehen zu umgehen ist.
> 
> 

 

Außer man hat was von der großen blauen Truppen  :Very Happy: 

Allerdings ist dann das gute Stück Hardware sprichwörtlich im Arsch, wenn man das Passwort vergisst.

Am besten sich selber an den Computer ketten, das Netzwerkkabel ziehen und alle Programme selber schreiben...

----------

## sven-tek

 *b3cks wrote:*   

> Irgendwie dasselbe wie: 
> 
> ```
> du -h --max-depth=1
> ```
> ...

 

Du hast recht, ich hatte --max-depth=1 bei du nicht gefunden weil nicht vermutet das es das auch kann.

----------

## sven-tek

Für Paranoide:

mit dieser Crontab-Zeile wird überprüft ob der Rechner mit der verschlüsselten Daten-Platte noch korrekt am Netzwerk angeschlossen ist. Wenn die Verbindung zum lokalen Router unterbrochen wird während die verschlüsselte Platte offen ist, wird der Rechner herunter gefahren.

```
*/2 * * * * if ping -c 1 172.16.1.1 >/dev/null; then /bin/false; else if test -e /dev/mapper/truecrypt0 ;then /sbin/halt; fi; fi
```

----------

## Sourcecode

Nochmal zum Thema Distfiles klein und aktuell halten:

Im Paket app-portage/gentoolkit, gibt es ein Schönes Programm namens "eclean".

Das Programm erklärt sich eigentlich von selbst "man eclean".

Es checkt ob die Programmversionen noch im Portage Tree sind, wenn nicht löscht es die distfiles dazu.

Mit der option "-d" prüft er nur ob die Programme mit Version X Installiert sind und löscht es ansonsten aus dem Distfiles Ordner.

Lässt sich bequem über Portage automatisch erledigen:

```
30 12 * * 1 eclean -d distfiles >> /var/log/masterconsole
```

EDIT:

Habs grad nochmal laufen lassen damit ich euch mal zeigen kann wie gut die Ausgabe von dem Programm ist, die [] Klammern sind in der Ausgabe Blau und die Angabe in den Klammern in Gelber Farbe, also so wie man es z.b beim Gentoo booten kennt wenn die Services gestartet werden. :

```
 * Building file list for distfiles cleaning...

 * Cleaning distfiles...

 [   6.2 M ] NVIDIA-Linux-x86-1.0-8776-pkg0.run

 [ 230.8 K ] alsa-oss-1.0.12.tar.bz2

 [   6.6 M ] evolution-data-server-1.8.2.tar.bz2

 [   1.2 M ] gnome-desktop-2.16.2.tar.bz2

 [   2.6 M ] gnome-panel-2.16.2.tar.bz2

 [  14.2 M ] gtk+-2.10.9.tar.bz2

 [ 530.8 K ] libgsf-1.14.2.tar.bz2

 [ 456.3 K ] libwnck-2.16.2.tar.bz2

 [   1.9 M ] pygtk-2.10.3.tar.bz2

 [  10.0 M ] vlc-0.8.6.tar.bz2

 [  11.1 K ] vlc-patches-38.tar.bz2

 [ 985.4 K ] vte-0.14.1.tar.bz2

 [   1.8 M ] x11vnc-0.9.tar.gz

 * Total space that has been freed in distfiles directory: 46.6 M
```

----------

## tost

Viel einfacher bezüglich der Distfiles wäre aber folgendes

http://de.gentoo-wiki.com/Traffic_sparen

Dort kann man nämlich auch einstellen, dass veraltete Dateien autom. gelöscht werden.

Ohne cronjob ohne manuellen Aufruf ganz autom.

tost

----------

## Inte

 *Sourcecode wrote:*   

> Im Paket app-portage/gentoolkit, gibt es ein Schönes Programm namens "eclean".

 

Cool! Danke. Man lernt doch immer wieder etwas Neues. Ich hab mich schon ein paar Mal gefragt, wie ich die Distfiles am besten aufräume, wenn ich vergessen hatte Deltup einzurichten.  :Very Happy: 

----------

## mv

 *Inte wrote:*   

>  *Sourcecode wrote:*   Im Paket app-portage/gentoolkit, gibt es ein Schönes Programm namens "eclean". 
> 
> Ich hab mich schon ein paar Mal gefragt, wie ich die Distfiles am besten aufräume

 

eclean ist nicht wirklich sauber, weil es die impliziten Abhängigkeiten mit Useflags nicht berücksichtigt: Manchmal löscht es zu viel, manchmal zu wenig.

Die einzige mir bekannte "saubere" Methode ist, es portage selber machen zu lassen: Siehe trickyfetch von http://www.mathematik.uni-wuerzburg.de/~vaeth/gentoo/index.html

----------

