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
 
(27 intermediate revisions by the same user not shown)
Line 11: Line 11:


{{Command|<nowiki>find . -regex '.*\(pdf\|doc\)'</nowiki>}}
{{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 ===
=== SCP file transfer ===
Line 36: Line 51:
After establishing the tunnel you can access the tomcat server of the remote machine port 8080 at your localhost port 7777.
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}}


== Generate SSH Host Keys ==
Browse to /mnt/temp/yourmountpoint and be able to delete the files, afterwards unmount /mnt/temp again.


{{Root|/usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''}}
=== eyeD3: Remove a specific ID3 tag frame ===
{{Root|/usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''}}
{{Root|/usr/bin/ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''}}


== KDE4 problems and workarounds ==
{{Command|<nowiki>eyeD3 file.mp3 --remove-frame=TPE2</nowiki>}}


=== Reset to the default Plasma layout ===
=== Ghostscript: Split a PDF file in single files per page using a python script ===
Log out of KDE/X and delete from tty:
<pre>
#!/usr/bin/python3


{{Command|rm ~/.kde/share/config/plasma*}}
import os


=== Change the Dolphin standard view to detailed view for ALL folders ===
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
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) ==
== Package management (Portage) ==

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>