User Tools

Site Tools


notes:misc_linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
notes:misc_linux [2023/08/27 13:33] Sean Rhonenotes:misc_linux [2024/03/29 18:49] (current) Sean Rhone
Line 1: Line 1:
 +====== 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'
 +
 +<code>
 +context.properties = {
 +    default.clock.rate          = 192000
 +    default.clock.allowed-rates = [ 44100 48000 88200 96000 192000 ]
 +}</code>
 +
 +===== 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 ======
 +
 +****
 +
 +<code>tracker3 reset --filesystem --rss</code>
 +
 +====== 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'
 +
 +<code>--reduced</code>
 +
 +===== 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
 +
 +<code>
 +Section "Monitor"
 +    Identifier  "HDMI-A-0"
 +    Modeline x
 +    Option      "PreferredMode" "3840x2160R"
 +EndSection</code>
 +
 +====== 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