====== Information ====== * Miscellaneous commands, paths, info, and syntax for Linux * Most of this was previously under the "Notable Folders and Commands" section at the bottom of distro notes ====== Extract ISO ====== * ''D'' is the destination you want the extracted files to go * ''x'' is the ISO you want to extract files from * No space after the ''-o'' flag is intentional * This is primarily useful for copying Windows ISO images to a FAT32 flash drive 7z x -o'D' -y x 7z x -o'/run/media/espionage724/LTSC 2019' -y '/home/espionage724/Downloads/en_windows_10_enterprise_ltsc_2019_x64_dvd_be3c8ffb.iso' && sync && sync ====== yt-dlp ====== * https://github.com/yt-dlp/yt-dlp ===== Download ===== **** rm -f '/tmp/yt-dlp' && wget -O '/tmp/yt-dlp' 'https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp' && chmod +x '/tmp/yt-dlp' ===== Show Formats ===== * Change ''x'' to a URL '/tmp/yt-dlp' --list-formats x ===== Download Media ===== * Change ''x'' to a URL * ''bestaudio'' can be changed to ''bestvideo'' for just video, or ''best'' for best video with audio '/tmp/yt-dlp' --extract-audio --format 'bestaudio' x ==== M4A Audio ==== * Ideally for if iOS devices will be involved '/tmp/yt-dlp' --extract-audio --format 'bestaudio' --audio-format 'm4a' x ==== MP3 Audio ==== **** '/tmp/yt-dlp' --extract-audio --format 'bestaudio' --audio-format 'mp3' x ====== Shortcuts ====== /usr/share/applications ~/.local/share/applications ====== Icons ====== /usr/share/icons/hicolor ~/.local/share/icons/hicolor ====== Fedora ====== ===== Anaconda Module Blacklists ===== **** sudo -e '/etc/modprobe.d/anaconda-blacklist.conf' ===== YUM/DNF Repos ===== **** gio open '/etc/yum.repos.d' ===== DNF History ===== ==== Transaction IDs ==== **** sudo dnf history ==== Undo ==== * Change ''x'' to a transaction ID found above sudo dnf history undo x ===== DNF Autoremove Fix ===== * Removes the initially-installed kernel in order to fix ''dnf autoremove'' if it's broken * :!: This will vary depending on the Fedora image version used sudo dnf list --installed 'kernel'* sudo dnf remove *5.3.7* && sync ====== openSUSE ====== ===== Zypper ===== ==== Find Orphans ==== **** zypper packages --orphaned ==== Remove Package and Deps ==== **** sudo zypper remove --clean-deps 'x' ==== Show Installed Patterns ==== **** sudo zypper patterns --installed-only ==== Folder ==== **** ls '/etc/zypp/repos.d' ==== List ==== **** zypper repos --priority ====== Firewalld ====== ===== List Active Rules ===== **** sudo firewall-cmd --list-all ===== List Available Services ===== **** sudo firewall-cmd --get-services ===== Show Service Info ===== * Change ''x'' to name of a service from above * This shows what ports and protocols a service covers sudo firewall-cmd --info-service=x ===== Reload ===== **** sudo firewall-cmd --reload ===== Add/Remove Service ===== * Add ''--permanent'' as-needed to allow the rule to persist sudo firewall-cmd --add-service=x sudo firewall-cmd --remove-service=x ===== Add/Remove Port ===== * Add ''--permanent'' as-needed to allow the rule to persist * Change ''tcp'' to ''udp'' as-needed sudo firewall-cmd --add-port=x/tcp sudo firewall-cmd --remove-port=x/tcp ====== PipeWire ====== ===== Set Default Rate ===== mkdir -p ~/'.config/pipewire/pipewire.conf.d' && nano ~/'.config/pipewire/pipewire.conf.d/99-custom.conf' context.properties = { default.clock.rate = 192000 default.clock.allowed-rates = [ 44100 48000 88200 96000 192000 ] } ===== User Config ===== * Copy main config to user folder mkdir -p ~/'.config/pipewire/pipewire.conf.d' && cp '/usr/share/pipewire/pipewire.conf' ~/'.config/pipewire/pipewire.conf.d/99-custom.conf' nano ~/'.config/pipewire/pipewire.conf.d/99-custom.conf' ===== Read Main Config ===== * [[https://github.com/PipeWire/pipewire/blob/master/src/daemon/pipewire.conf.in|pipewire.conf.in]] gio open '/usr/share/pipewire/pipewire.conf' nano '/usr/share/pipewire/pipewire.conf' ===== WirePlumber Settings Reset ===== sudo rm -Rf ~gdm/'.local/state/wireplumber' ~/'.local/state/wireplumber' rm -Rf ~/'.local/state/wireplumber' ====== GPG Keys ====== ===== Check Keys ===== **** rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n' ===== Remove Keys ===== **** sudo rpm -e x ====== Re-generate Thumbnails ====== **** rm -Rf ~/'.cache/thumbnails' ====== List GNOME gsettings ====== * Change ''x'' to schema or omit it to show all settings gsettings list-recursively 'x' ====== GNOME App Grid Reset ====== * [[https://www.omgubuntu.co.uk/2020/11/reset-gnome-shell-applications-grid|OMG! Ubuntu!]] gsettings reset 'org.gnome.shell' 'app-picker-layout' ====== GNOME Software Maintenance ====== **** pkcon -c '1' refresh && pkcon update ====== fstrim ====== **** sudo fstrim --verbose --all ====== SELinux Re-label ====== **** sudo touch '/.autorelabel' ====== tracker3 Reset ====== **** tracker3 reset --filesystem --rss ====== GNOME Monitors Reset ====== **** rm -f ~/'.config/monitors.xml' ~/'.config/monitors.xml~' ====== PulseAudio Reset ====== **** rm -f ~/'.config/pulse/'* ====== Xorg Debug ====== journalctl -e _COMM='gdm-x-session' gio open ~/'.local/share/xorg/Xorg.0.log' mousepad '/var/log/Xorg.0.log' ====== Verify DRI3 ====== **** LIBGL_DEBUG='verbose' glxinfo | grep 'libgl' ====== GpuTest ====== * https://www.geeks3d.com/gputest/ ===== Execute ===== ==== HDTV ==== * 1280x720 wget -O '/tmp/GpuTest_Linux_x64.zip' 'http://www.ozone3d.net/gputest/dl/GpuTest_Linux_x64_0.7.0.zip' && unzip '/tmp/GpuTest_Linux_x64.zip' -d '/tmp' && cd '/tmp/GpuTest_Linux_x64_'* && ./GpuTest /test='fur' /width='1280' /height='720' cd '/tmp/GpuTest_Linux_x64_'* && ./GpuTest /test='fur' /width='1280' /height='720' /fullscreen /benchmark /benchmark_duration_ms='15000' === NVIDIA Optimus === **** wget -O '/tmp/GpuTest_Linux_x64.zip' 'http://www.ozone3d.net/gputest/dl/GpuTest_Linux_x64_0.7.0.zip' && unzip '/tmp/GpuTest_Linux_x64.zip' -d '/tmp' && cd '/tmp/GpuTest_Linux_x64_'* && __NV_PRIME_RENDER_OFFLOAD='1' __GLX_VENDOR_LIBRARY_NAME='nvidia' ./GpuTest /test='fur' /width='1280' /height='720' ==== FHD ==== * 1920x1080 wget -O '/tmp/GpuTest_Linux_x64.zip' 'http://www.ozone3d.net/gputest/dl/GpuTest_Linux_x64_0.7.0.zip' && unzip '/tmp/GpuTest_Linux_x64.zip' -d '/tmp' && cd '/tmp/GpuTest_Linux_x64_'* && ./GpuTest /test='fur' /width='1920' /height='1080' cd '/tmp/GpuTest_Linux_x64_'* && ./GpuTest /test='fur' /width='1920' /height='1080' /fullscreen /benchmark /benchmark_duration_ms='15000' ==== UHDTV1 ==== * 3840x2160 wget -O '/tmp/GpuTest_Linux_x64.zip' 'http://www.ozone3d.net/gputest/dl/GpuTest_Linux_x64_0.7.0.zip' && unzip '/tmp/GpuTest_Linux_x64.zip' -d '/tmp' && cd '/tmp/GpuTest_Linux_x64_'* && ./GpuTest /test='fur' /width='3840' /height='2160' cd '/tmp/GpuTest_Linux_x64_'* && ./GpuTest /test='fur' /width='3840' /height='2160' /fullscreen /benchmark /benchmark_duration_ms='15000' ==== Cleanup ==== **** rm -Rf '/tmp/GpuTest_Linux_'* && cd ~ && sync ====== Show Sensors ====== **** sudo dnf install 'lm_sensors' -y && sudo sensors-detect --auto && sudo watch -n0.1 sensors ====== Show CPU Frequency ====== grep 'MHz' '/proc/cpuinfo' watch --interval '0.5' grep \'cpu MHz\' '/proc/cpuinfo' ====== OpenSSL Supported Ciphers ====== **** openssl ciphers -v | awk '{print $2}' | sort | uniq ====== Partition Information ====== * Both commands present the same information df -hT df --human-readable --print-type ====== Encryption Information ====== **** sudo cryptsetup -v status '/dev/dm-0' ====== ATA Secure Erase ====== * See [[notes:drive_wipe]] ====== RAID ====== ===== Controller Details ===== * This can be used to get the OpROM version for Intel RST sudo mdadm --detail-platform ===== Create Software RAID ===== ==== Fedora Anaconda ==== * :!: https://bugzilla.redhat.com/show_bug.cgi?id=1897350 * Compared to old notes, the RAID device needs to be under ''/dev/md/'' instead of just ''/dev/'' to appear on Anaconda * 2024/01: On the computer this was tested on ((Dell Latitude 5591)), it doesn't support CSM/Legacy/BIOS boot and this takes over the entire block devices, requiring the ''/boot'' partition and boot partition flag to be on a SD Card ((only tested with Legacy External Boot; UEFI untested but theoretically also requires ''/boot'' on a SD Card since BIOS/firmware can't directly-read software RAID)) sudo mdadm --create '/dev/md/raid0' --name='RAID' --level='0' --raid-devices='2' '/dev/nvme0n1' '/dev/sda' --verbose ==== Old ==== * :?: Came from old notes; this used to work for an Acer Predator laptop that had 3 SSDs sudo mdadm --create '/dev/md0' --name='RAID' --level='0' --raid-devices='3' '/dev/sda' '/dev/sdb' '/dev/sdc' --verbose ====== Fix MacBook Battery CPU Throttling ====== * 2023/07/17: This solves a MacBook Pro Mid-2010 with Intel C2D from being stuck at 1.5GHz CPU due to a missing internal battery, by unlocking full-performance sudo dnf install 'msr-tools' sudo wrmsr --all '0x1A0' '0x4000850089' ===== Verify ===== * ''0x4000850089'' is the expected value sudo rdmsr --all '0x1A0' ====== VGA Switcheroo Power States ====== * https://nouveau.freedesktop.org/wiki/Optimus sudo cat '/sys/kernel/debug/vgaswitcheroo/switch' ====== ACPI Tables ====== **** sudo strings '/sys/firmware/acpi/tables/DSDT' | grep -i 'windows ' | sort ===== Old Method ===== * Provides more information as to what certain ''_OSI'' values do and how they compare * In ''dsdt.dsl'', look for ''_OSI'' values, along with ''Windows'' and ''Linux'' sudo dnf install 'acpica-tools' sudo cp --force '/sys/firmware/acpi/tables/DSDT' ~/'dsdt.dat' cd ~ && iasl -d ~/'dsdt.dat' gio open ~/'dsdt.dsl' sudo dnf remove 'acpica-tools' && sync ====== Display EDID Info ====== * https://unix.stackexchange.com/a/114398 sudo dnf install 'monitor-edid' monitor-edid ====== Custom Resolutions ====== ===== Generate Modeline ===== * Use ''--reduced'' only for LCD/Non-CRT displays, and only as-needed ((useful for reducing amount of bandwidth over cables, particularly in-case of unstable 4k@60Hz set-ups)) * Syntax is ''horizontal'' (width), ''vertical'' (height) and ''refresh rate'' cvt '3840' '2160' '60' cvt --reduced '3840' '2160' '60' --reduced ===== Temporarily Apply ===== * Changes are lost after reboot * Values after ''--newmode'' are from the above generate command, and is everything after ''Modeline'' xrandr --newmode "3840x2160R" 533.00 3840 3888 3920 4000 2160 2163 2168 2222 +hsync -vsync xrandr --addmode 'HDMI-A-0' '3840x2160R' xrandr --output 'HDMI-A-0' --mode '3840x2160R' ===== Verify ===== **** xrandr --verbose | grep *current ===== Permanently Apply ===== * ''Identifier'' is the name of the port on the GPU the display is connected to * ''Modeline'' is from the above generate command, including the text ''Modeline'' * ''PreferredMode'' is the custom resolution name generated Section "Monitor" Identifier "HDMI-A-0" Modeline x Option "PreferredMode" "3840x2160R" EndSection ====== Backlight ====== * See [[notes:backlight]] ====== HT/SMT Information ====== **** grep -e "processor" -e "core id" -e "^$" /proc/cpuinfo ====== Optimal GCC compiler flags ====== **** gcc -v -E -x c -march=native -mtune=native - < /dev/null 2>&1 | grep cc1 | perl -pe 's/ -mno-\S+//g; s/^.* - //g;' ====== Privacy ====== ===== Clear Terminal History ===== **** history -cw ===== Create 7z Password Archive ===== * Change ''7ZIPNAME'' in ''7ZIPNAME.7z'' to the desired archive name * Change ''PASS'' in ''-pPASS'' to the desired password * Change ''x'' to the file or folder to add to the archive 7za a '7ZIPNAME.7z' -p'PASS' 'x' 7za a 'x.7z' -p'x' 'x' ===== oathtool ===== * ''x'' is a secret without ''&digits=6'' sudo apt install 'oathtool' sudo dnf install 'oathtool' oathtool --totp -b 'x' ===== Remove EXIF data ===== sudo apt install 'libimage-exiftool-perl' sudo dnf install 'perl-Image-ExifTool' exiftool -all= *.* -overwrite_original