4.9 KiB
title | visible |
---|---|
Useful Commands | true |
[toc]
Imagemagick
Splitting PDF files
convert -density 600 {INPUT.PDF} -crop 50x100% +repage {OUT.PDF}
-density: adjusts the quality of the resulting pdf. Higher values look better, but take longer to process
-crop 50x100%: this splits the pdf into "left" and "right". 100x50% would split into "top" and "bottom"
Ghostscript
Merge multiple PDF files
Ghostscript is preinstalled on a lot of Linux systems and can quite easily be used to merge and optimize multiple PDF files into one.
[shuser]
gs -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -o merged.pdf <first>.pdf <second>.pdf
[/shuser]
Find
Change filtered permissions
Using find with its exec
switch one can set different permissions based on the usual find filters.
One example would be only changing file or directory permissions.
find (directory) -type f -exec chmod 744 {} +
Replacing -type f
with -type d
would execute the chmod
for directories instead.
Arch Linux
Detect AUR package rebuilds
Install the package extra/rebuild-detector
It will create a pacman
hook to check which packages need to be rebuild, but can also be executed with the following command.
[shuser]
checkrebuild
[/shuser]
The packages might be rebuilt automatically a lot of the time, but sometimes it is necessary to for a rebuild using the AUR helper.
This is an example using paru
[shuser]
paru -S --rebuild=yes <package>
[/shuser]
Various
Unlock user after too many failed sudo attempts
Use faillock
to check for failed sudo attempts
[shroot]
faillock --user <user>
[/shroot]
Unlock a locked account
[shroot]
faillock --user <user> --reset
[/shroot]
Unlock user after too many failed sudo attempts by Josh Sherman
Overwrite disk with pseudorandom data
Using openssl on CPUs with AES acceleration one can create pseudorandom data with high speeds.
Much faster than /dev/urandom
at least
openssl enc -aes-128-ctr -md sha512 -pbkdf2 -nosalt -pass file:/dev/urandom < /dev/zero | pv > {TARGET DISK}
Around 2GiB/s on my Ryzen 7 1700x if output to /dev/null
Formatted csv in terminal
column -t -s, < {FILE.CSV}
Download directory from webdav
Using wget
, it's possible to download directories recursively from WebDAV.
wget -r -nH -np --cut-dirs=1 --user={USERNAME} --password={PASSWORD} https://WEBDAVHOST/DIR/DIR
Find USB speed in use
First, the USB device you want to check has to be selected
[shuser]
lsusb
(out)Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
(out)Bus 003 Device 003: ID 0c45:652f Microdia Backlit Gaming Keyboard
(out)Bus 003 Device 002: ID 046d:c084 Logitech, Inc. G203 Gaming Mouse
(out)Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
(out)Bus 002 Device 002: ID 0781:55a3 SanDisk Corp. SanDisk 3.2Gen1
(out)Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
(out)Bus 001 Device 002: ID 2972:0047 FiiO Electronics Technology FiiO BTR5
(out)Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[/shuser]
Now, using the ID, the USB class used can be determined
[shuser]
lsusb -d 0781:55a3 -v | grep bcdUSB
(out)bcdUSB 3.20
[/shuser]
Change file modify time
Using touch
it is possible to change the timestamps on a file.
Note: The file has to be owned by the user executing the command
Example changing the access and modify timestamps:
[shuser]
touch -a -m -t 202307291506.07 <file>
[/shuser]
-a: accessed time
-m: modified time
-t: timestamp - [[CC]YY]MMDDhhmm[.ss] time format
Alternatively to -t
it is also possible to use -d
for a looser format.
ISO8061 obviously works as well.
[shuser]
touch -a -m -d "2 hours ago" <file>
touch -a -m -d "2023-07-29T00:23" <file>
[/shuser]
Linux - modify file modify/access/change time
How can I change the date modified/created of a file?
Create a random temporary directory / file
Using mktemp
, a randomly named file or directory will be created in /tmp
Create a file:
[shuser]
mktemp
[/shuser]
Create a directory:
[shuser]
mktemp -d
[/shuser]
Save the output into an environment variable for future referencing
sh / Bash:
[shuser]
export TMPDIR=$(mktemp -d)
[/shuser]
Fish:
[shuser]
set TMPDIR (mktemp -d)
[/shuser]