User Tools

Site Tools


notes:misc_linux

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

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

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

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'
gio open ~/'.local/share/xorg/'

Verify DRI3

LIBGL_DEBUG='verbose' glxinfo | grep 'libgl'

GpuTest

Execute

HDTV

  • 1280×720
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

  • 1920×1080
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

  • 3840×2160
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.5 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

RAID

Controller Details

  • This can be used to get the OpROM version for Intel RST
sudo mdadm --detail-platform

Create Software RAID

Fedora Anaconda

  • 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 1), 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 2)
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

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

sudo dnf install 'monitor-edid'
monitor-edid

Custom Resolutions

Generate Modeline

  • Use --reduced only for LCD/Non-CRT displays, and only as-needed 3)
  • 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

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
1)
Dell Latitude 5591
2)
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
3)
useful for reducing amount of bandwidth over cables, particularly in-case of unstable 4k@60Hz set-ups
/var/www/wiki/data/pages/notes/misc_linux.txt · Last modified: 2024/05/17 22:28 by Sean Rhone