Tips and Tricks

From Q
Revision as of 23:16, 26 April 2008 by Tgurr (talk | contribs)
Jump to navigation Jump to search

Package management

To which package belongs file X

# equery belongs -f <dateiname>

Which packages has USE-Flag X

# equery hasuse <useflag>

Backup an installed package

# quickpkg net-www/apache

After this you can install the package on another machine or do a fast downgrade if something went bad after an update. You can find the file under Template:Filename and in this example a symlink to the apache file in Template:Filename. To install the now precompiled binary use:

# emerge --usepkgonly "<net-www/apache-2.2.4"

Detect and get rid of leftover packages

# emerge depclean --pretend

Change your current profile

# emerge eselect

# eselect profile list

# eselect profile set <nummer>

SCP file transfer

File transfer via commandline.

Upload file:
# scp /root/htdocsbackup.tar.bz2 root@remote-host.de:/root/
Download file:
# scp root@remote-host.de:/root/htdocsbackup.tar.bz2 /root/htdocsbackup.tar.bz2

Upload directory:
# scp -r /root/directory root@remote-host.de:/root
Download directory:
# scp -r root@remote-host.de:/root/directory /root

SSH tunnel

Very useful if the server you want to connect to has only the SSH port open and/or a firewall infront and you want to access for example a tomcat server running on port 8080.

# ssh -N -i /home/<user>/.ssh/id_dsa -L 7777:remote-host.de:8080 root@remote-host.de

After establishing the tunnel you can access the tomcat server of the remote machine port 8080 at your localhost port 7777.

Yakuake DCOP scripts

MultiSSH

Connect to multiple hosts via SSH and open/name a new Yakuake tab for each multissh.sh

#!/bin/bash

[[ -n "$1" && -n "$2" ]] || {
    echo "Usage: ./multissh.sh \"user\" \"server1 server2\""
    echo " z.B.: ./multissh.sh \"root\" \"server1 server2\""; exit 0 ; }

lastid=`dcop yakuake DCOPInterface sessionIdList | awk -F, '{print $NF}'`

for i in $2 ; do
        dcop yakuake DCOPInterface slotAddSession
        let "lastid += 1"
        dcop yakuake DCOPInterface slotRenameSession $lastid $i
        dcop yakuake DCOPInterface slotRunCommandInSession $lastid "ssh $1@$i"
done

exit 0

MultiCommand

Run a command in multiple open Yakuake tabs multicommand.sh

#!/bin/bash

[[ -n "$1" && -n "$2" ]] || {
    echo "Usage: ./multicommand.sh \"tabname1 tabname2\" \"command\""
    echo " z.B.: ./multicommand.sh \"server1 server2\" \"emerge --sync\""; exit 0 ; }

ids=`dcop yakuake DCOPInterface sessionIdList | sed 's/,/ /g'`

for i in $ids ; do
        sessionname=`dcop yakuake DCOPInterface slotSessionName $i`

        for x in $* ; do
                if [ "$sessionname" = "$x" ] ; then
                        dcop yakuake DCOPInterface slotRunCommandInSession $i "$2"
                fi
        done
done

exit 0

KDE4 Fixes

.gtkrc isn't honoured by GTK Applications anymore

KDE overrides the GTK colours with global ones, if you want that. If not (since it also overrides the GTK theme with the ugly default one) you can disable that behaviour under System Settings -> Appearance -> Colors at the bottom. This does not always work, so copy over your .gtkrc-2.0 from your homedir or one of the themes that come with the theme pack.

# cp ~/.gtkrc-2.0 ~/.kde/share/config/gtkrc-2.0

# cp /usr/share/themes/Clearlooks/gtk-2.0/gtkrc ~/.gtkrc-2.0

For more information have a look at GTK Applications under KDE.

Reset to the default Plasma layout

Log out and deleting from tty:

# rm ~/.kde/share/config/plasma*

Change the Dolphin standard view to detailed view for ALL folders

Open Dolphin -> Settings > Configure Dolphin -> Views -> Common Tab -> and mark -> Use the same view for all folders