# cheat-sheet + [Convert Emails](https://git.laurelcountycorrections.org/jpickard/cheat-sheet#converting-emails) + [File Management](https://git.laurelcountycorrections.org/jpickard/cheat-sheet#file-management) + [Network, Firewall, UFW](https://git.laurelcountycorrections.org/jpickard/cheat-sheet#ufw) + [NFS](https://git.laurelcountycorrections.org/jpickard/cheat-sheet#mount-nfs-share-nfs-common-or-nfs-utils) + [Videos](https://git.laurelcountycorrections.org/jpickard/cheat-sheet/src/branch/master/README.md#merge-video-files-with-ffmpeg) + [Hylafax](https://git.laurelcountycorrections.org/jpickard/cheat-sheet/src/branch/master/README.md#hylafax) + [Linux Users](https://git.laurelcountycorrections.org/jpickard/cheat-sheet/src/branch/master/README.md#linux-users) + [Windows](https://git.laurelcountycorrections.org/jpickard/cheat-sheet/src/branch/master/README.md#windows) + [Data Recovery](https://git.laurelcountycorrections.org/jpickard/cheat-sheet/src/branch/master/README.md#data-recovery) + [QEMU](https://git.laurelcountycorrections.org/jpickard/cheat-sheet/src/branch/master/README.md#qemu) My cheat sheet for commands I have trouble remembering. ## Converting Emails ### EML to MBOX using eml2mbox (email2mbox-git on AUR) ``` cd /path/to/eml/files eml2mbox ``` This creates `.archive.mbox`. ### MBOX to HTML Threads using Mhonarc (mhonarc on AUR) ``` cd /path/to/.archive.mbox/file mhonarc .archive.mbox ``` This creates `threads.html` and extracts all information into the directory. ## File Management ### List number of files (for instance, # of .mp4) ```ls *.mp4 | cat -n``` ### Recursively Zip subdirectories into their own .zip files ```for i in */; do zip -r "${i%/}.zip" "$i"; done``` ```for i in */; do echo zip -r "${i%/}.zip" "$i"; done``` to see the commands ran ### Rsync ```rsync -avh --progress /sourcefile /destinationfolder/``` Add ```--dry-run``` to test ### LuksEncryption | cryptsetup ``` sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume sudo mkdir /media/my_device sudo mount /dev/mapper/my_encrypted_volume /media/my_device sudo umount /media/my_device sudo cryptsetup luksClose my_encrypted_volume ``` ### Find and copy files by extension recursively ```find . -name '*.pdf' -exec cp -r {} /home/jpickard/pdffiles \;``` ## 7-Zip compression (p7zip) ```7z a archivename.7z thingtobearchived``` ## Compress and split files (6GB chunks in below example) ```7z -v6g a ARCHIVE.7z DIRECTORY.OF.FILES``` ## Recursively unzip ```while [ "`find . -type f -name '*.zip' | wc -l`" -gt 0 ]; do find -type f -name "*.zip" -exec unzip -- '{}' \; -exec rm -- '{}' \;; done``` ## Merge PDF files #### Ghostscript ```gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=mergedfile.pdf -dBATCH file1.pdf file2.pdf``` #### ImageMagick ```convert file1.pdf[0-1] file2.pdf mergedfile.pdf``` ## Convert webp to JPG/PNG ```dwebp mycat.webp -o mycat.png``` ### ExifTool #### List metadata of image `exiftool image.jpg` #### Remove metadata of image `exiftool -all= image.jpg` /or/ `exiftool -all= *.jpg` #### Recursively, overwriting the files `exiftool -overwrite_original -recurse -all= *.jpg` ## UFW ### Examples ``` ufw status numbered ufw delete 2 ufw allow from 192.168.1.10 to any port 22 proto tcp ufw allow in on tailscal0 to interfaceip port 22 from otherdeviceip ufw reset ``` ## List ports Linux is listening on `sudo ss -tunlp` `sudo lsof -nP -iTCP -sTCP:LISTEN` ## List alive IPs on Network (nmap) `sudo nmap -n -sn 192.168.56.0/24 -oG - | awk '/Up$/{print $2}' | sort -V` ## Mount NFS Share (nfs-common or nfs-utils) `sudo mount -t nfs 10.10.0.10:/backups /var/backups` ### /etc/fstab ``` # 10.10.0.10:/backups /var/backups nfs defaults 0 0 ``` ## Merge video files with ffmpeg ``` $ cat files.txt file 'file 1.mkv' file 'file 2.mkv' file 'file 3.mkv' file 'file 4.mkv' ``` `ffmpeg -f concat -safe 0 -i files.txt -c copy output.mkv` ## Split Video into 300 Second Chunks `ffmpeg -i fff.avi -acodec copy -f segment -segment_time 300 -vcodec copy -reset_timestamps 1 -map 0 fff%d.avi` ## Rotate Videos `ffmpeg -i in.mov -vf "transpose=1" out.mov` ``` 0 = 90CounterCLockwise and Vertical Flip (default) 1 = 90Clockwise 2 = 90CounterClockwise 3 = 90Clockwise and Vertical Flip ``` # Hylafax ## Add Users `faxadduser -p password -u 1001 username` (where 1001 is UID from `/etc/group`) ## Send a Fax `sendfax -n -d 8643605 test` // where test is a text document with content ## Remove a fax from queue `faxrm jobid` ## Watch fax status `watch -n 2 faxstat -s` # Linux Users ## Delete User `sudo deluser username` ## Add User with Specific UID `sudo adduser -u UIDNUMBER username` ## Add user to specific Group `sudo usermod -aG GROUP USERNAME` # Windows ## Get Interface MAC Easy `getmac /v` ## List usernames on machine `net user` ## Change user password `net user username newpassword` ## Disconnect from network drives/directories `net use * /del` (Then restart service `Workstation` and check `Credential Manager`) ## Create Directory and hide it ``` mkdir Pickard attrib +s +h Pickard ``` ## Manage Processes ### List Running Tasks `tasklist` ### Force Kill a Task `taskkill /IM JailTracker.exe /F` ## List Printers from CMD `wmic printer list brief` ## Clear Temporary files `rd %temp% /s /q` ## Add Persistent Static Route `route -p add 192.168.56.0 mask 255.255.255.0 192.168.30.1 metric 1` `route -p add NETWORK mask NETMASK GATEWAY metric 1` ## DISM `DISM /Online /Cleanup /CheckHealth` `DISM /Online /Cleanup /ScanHealth` `DISM /Online /Cleanup /RestoreHealth` ## Restart to BIOS (in C:\Windows\System32) `shutdown /r /fw /f /t 0` # Data Recovery ## ddrescue Take an image of a drive and log: `sudo ddrescue /dev/sdb path/to/image.dd path/to/log.txt` Clone Disk A to Disk B: `sudo ddrescue --force --no-scrape /dev/sdA /dev/sdB path/to/log.txt` # QEMU ## Get disk information `qemu-img info disk.qcow2` ## Shrink .qcow2 `qemu-img resize disk.qcow2 --shrink -10G` ## Import qcow2 `sudo qm importdisk 101 disk.qcow2 localstorageplace` ## Convert VHDX to qcow2 `qemu-img convert -O qcow2 /data/source.vhdx /data/output.qcow2 -p`