Tips and Tricks: Difference between revisions

From Q
Jump to navigation Jump to search
Tgurr (talk | contribs)
No edit summary
 
Tgurr (talk | contribs)
No edit summary
 
(68 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Tips & Tricks ==
== Useful commands ==
=== Recursively set directory permissions to 755 ===


=== Zu welchem Paket gehört Datei X ===
{{Root|<nowiki>find /var/www/path -type d -print0 | xargs -0 chmod -c 755</nowiki>}}
{{Codeline|# equery belongs -f <dateiname>}}


=== Welche Pakete haben USE-Flag X ===
=== Recursively rename directory and files from ISO-8859-15 to UTF-8 ===
{{Codeline|# equery hasuse <useflag>}}


== SCP Dateitransfer ==
{{Command|<nowiki>convmv -f iso-8859-15 -t utf8 -r /var/www/path --preserve-mtimes --notest</nowiki>}}
Datenaustausch zwischen zwei Rechnern über Kommandozeile.


Datei hochladen:<br />
=== Recursively search for files of a specitic type, e.g. documents and list them ===
{{Codeline|# scp /root/htdocsbackup.tar.bz2 root@entfernter-server.de:/root/}}<br />
Datei runterladen:<br />
{{Codeline|# scp root@entfernter-server.de:/root/htdocsbackup.tar.bz2 /root/htdocsbackup.tar.bz2}}


[[Kategorie:Software]]
{{Command|<nowiki>find . -regex '.*\(pdf\|doc\)'</nowiki>}}
 
=== User: Change a users home directory ===
 
{{Root|usermod -d /home/newhome user}}
 
=== Strip comments from config file ===
 
{{Command|<nowiki>grep -v "#" file.conf</nowiki>}}
 
=== rsync file transfer ===
Synchronise a directory or whole partition:
{{Root|<nowiki>rsync -av --delete-before /run/media/user/4TB-WD/ /run/media/user/4TB-WD-BCK/ --exclude="/lost+found/" --dry-run</nowiki>}}
 
Upload a file to a remote server via rsync over ssh:
{{Root|rsync --partial --progress movie.mkv root@example.com:/var/www/subdomain.example.com/htdocs/movies/movie.mkv}}
 
=== SCP file transfer ===
File transfer via commandline.
 
Upload file:
 
{{Root|scp /root/htdocsbackup.tar.bz2 root@remote-host.de:/root/}}
Download file:
 
{{Root|scp root@remote-host.de:/root/htdocsbackup.tar.bz2 /root/htdocsbackup.tar.bz2}}
 
Upload directory:
 
{{Root|scp -p -r /root/directory root@remote-host.de:/root}}
Download directory:
 
{{Root|scp -p -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.
 
{{Root|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.
 
=== Generate SSH Host Keys ===
 
{{Root|ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''}}
{{Root|ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''}}
{{Root|ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''}}
 
=== SSL: Remove passphrase from a SSL key ===
 
{{Command|openssl rsa -in ssl_with_passphrase.key -out ssl_without_passphrase.key}}
 
=== SSL: Add/change passphrase to/from a SSL key ===
 
{{Command|openssl rsa -in ssl_without_passphrase.key -out ssl_with_passphrase.key -des3}}
 
=== Perl: List included perl core modules with their versions ===
 
{{Command|corelist -v 5.22.1}}
 
=== Postfix: Show mailqueue ===
 
{{Root|mailq}}
 
=== Postfix: Attempt to deliver all queued mail ===
 
{{Root|postqueue -f}}
 
=== Postfix: Delete a single mail from queue ===
 
{{Root|postsuper -d id_of_mail}}
 
=== Postfix: Delete all mails with a specific sender from queue ===
 
{{Root|<nowiki>mailq | tail -n +2 | awk 'BEGIN { RS = "" } / apache@example\.com$/ { print $1 } ' | tr -d '*!' | postsuper -d -</nowiki>}}
 
=== ImageMagick: Combine images side by side ===
 
{{Command|convert image{1,2,3}.png +append output.png}}
 
=== Safely spin down external USB drive AFTER unmounting using sg3_utils ===
 
{{Root|sg_start --readonly --stop /dev/sdX}}
 
=== Delete content in the underlying directory of a mounted filesystem without having to unmount first ===
Bind mount root to a temporary mount point, e.g. /mnt/temp. Useful to fix. e.g. following systemd informational notice:
 
tmp.mount: Directory /tmp to mount over is not empty, mounting anyway.
 
{{Root|mount --bind / /mnt/temp}}
 
Browse to /mnt/temp/yourmountpoint and be able to delete the files, afterwards unmount /mnt/temp again.
 
=== eyeD3: Remove a specific ID3 tag frame ===
 
{{Command|<nowiki>eyeD3 file.mp3 --remove-frame=TPE2</nowiki>}}
 
=== Ghostscript: Split a PDF file in single files per page using a python script ===
<pre>
#!/usr/bin/python3
 
import os
 
number_of_pages = 10
input_pdf = "file.pdf"
 
for i in range(1, number_of_pages +1):
    os.system("gs -q -dBATCH -dNOPAUSE -sOutputFile=page{page:04d}.pdf -dFirstPage={page} -dLastPage={page} -sDEVICE=pdfwrite {input_pdf}".format(page=i, input_pdf=input_pdf) )
</pre>
 
=== Ghostscript: Merge multiple PDF files ===
 
{{Command|<nowiki>gs -dBATCH -dNOPAUSE -dQUIET -sDEVICE=pdfwrite -sOutputFile=merged.pdf file1.pdf file2.pdf file3.pdf</nowiki>}}
 
Alternativly use poppler (which removes metadata)
 
{{Command|pdfunite file1.pdf file2.pdf file3.pdf merged.pdf}}
 
=== 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
 
=== Disable IPv6 until the next reboot ===
{{Root|echo 1 > /proc/sys/net/ipv6/conf/<iface>/disable_ipv6}}
 
=== Stream a video via VLC to Chromecast ===
{{Command|<nowiki>vlc --sout="#chromecast{ip=xxx.xxx.xxx.xxx}" ~/video.mkv</nowiki>}}
 
=== Summary of the top 15 directories occupying the most hard disc space ===
{{Command|<nowiki>du -cksh * | sort -hr | head -n 15</nowiki>}}
 
== Package management (Portage) ==
 
=== To which package belongs file X ===
{{Root|equery belongs -f <dateiname>}}
 
=== Which installed packages have USE-Flag X ===
{{Root|equery hasuse <useflag>}}
 
=== Backup an installed package ===
{{Root|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 {{Path|/usr/portage/packages/All}} and in this example a symlink to the apache file in {{Path|/usr/portage/packages/net-www}}. To install the now precompiled binary use:
 
{{Root|emerge --usepkgonly "<net-www/apache-2.2.4"}}
 
=== Detect and get rid of leftover packages ===
{{Root|emerge depclean --pretend}}
 
=== Change your current profile ===
{{Root|emerge eselect}}
 
{{Root|eselect profile list}}
 
{{Root|eselect profile set <nummer>}}
 
[[Category:Software]]

Latest revision as of 16:53, 22 February 2017

Useful commands

Recursively set directory permissions to 755

# find /var/www/path -type d -print0 | xargs -0 chmod -c 755

Recursively rename directory and files from ISO-8859-15 to UTF-8

$ convmv -f iso-8859-15 -t utf8 -r /var/www/path --preserve-mtimes --notest

Recursively search for files of a specitic type, e.g. documents and list them

$ find . -regex '.*\(pdf\|doc\)'

User: Change a users home directory

# usermod -d /home/newhome user

Strip comments from config file

$ grep -v "#" file.conf

rsync file transfer

Synchronise a directory or whole partition:

# rsync -av --delete-before /run/media/user/4TB-WD/ /run/media/user/4TB-WD-BCK/ --exclude="/lost+found/" --dry-run

Upload a file to a remote server via rsync over ssh:

# rsync --partial --progress movie.mkv root@example.com:/var/www/subdomain.example.com/htdocs/movies/movie.mkv

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 -p -r /root/directory root@remote-host.de:/root

Download directory:

# scp -p -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.

Generate SSH Host Keys

# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N
# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N
# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N

SSL: Remove passphrase from a SSL key

$ openssl rsa -in ssl_with_passphrase.key -out ssl_without_passphrase.key

SSL: Add/change passphrase to/from a SSL key

$ openssl rsa -in ssl_without_passphrase.key -out ssl_with_passphrase.key -des3

Perl: List included perl core modules with their versions

$ corelist -v 5.22.1

Postfix: Show mailqueue

# mailq

Postfix: Attempt to deliver all queued mail

# postqueue -f

Postfix: Delete a single mail from queue

# postsuper -d id_of_mail

Postfix: Delete all mails with a specific sender from queue

# mailq | tail -n +2 | awk 'BEGIN { RS = "" } / apache@example\.com$/ { print $1 } ' | tr -d '*!' | postsuper -d -

ImageMagick: Combine images side by side

$ convert image{1,2,3}.png +append output.png

Safely spin down external USB drive AFTER unmounting using sg3_utils

# sg_start --readonly --stop /dev/sdX

Delete content in the underlying directory of a mounted filesystem without having to unmount first

Bind mount root to a temporary mount point, e.g. /mnt/temp. Useful to fix. e.g. following systemd informational notice:

tmp.mount: Directory /tmp to mount over is not empty, mounting anyway.

# mount --bind / /mnt/temp

Browse to /mnt/temp/yourmountpoint and be able to delete the files, afterwards unmount /mnt/temp again.

eyeD3: Remove a specific ID3 tag frame

$ eyeD3 file.mp3 --remove-frame=TPE2

Ghostscript: Split a PDF file in single files per page using a python script

#!/usr/bin/python3

import os

number_of_pages = 10
input_pdf = "file.pdf"

for i in range(1, number_of_pages +1):
    os.system("gs -q -dBATCH -dNOPAUSE -sOutputFile=page{page:04d}.pdf -dFirstPage={page} -dLastPage={page} -sDEVICE=pdfwrite {input_pdf}".format(page=i, input_pdf=input_pdf) )

Ghostscript: Merge multiple PDF files

$ gs -dBATCH -dNOPAUSE -dQUIET -sDEVICE=pdfwrite -sOutputFile=merged.pdf file1.pdf file2.pdf file3.pdf

Alternativly use poppler (which removes metadata)

$ pdfunite file1.pdf file2.pdf file3.pdf merged.pdf

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

Disable IPv6 until the next reboot

# echo 1 > /proc/sys/net/ipv6/conf/<iface>/disable_ipv6

Stream a video via VLC to Chromecast

$ vlc --sout="#chromecast{ip=xxx.xxx.xxx.xxx}" ~/video.mkv

Summary of the top 15 directories occupying the most hard disc space

$ du -cksh * | sort -hr | head -n 15

Package management (Portage)

To which package belongs file X

# equery belongs -f <dateiname>

Which installed packages have 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 /usr/portage/packages/All and in this example a symlink to the apache file in /usr/portage/packages/net-www. 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>