Linux / Bash Cheatsheet

Find Kernel version

uname -r

More detailed information

uname -a

Device / driver info

lsmod
lspci -k
dmesg

search path

.bashrc holds path variables.

GUI

ctrl-h hides and shows “dot” files in nautilus like .config or .ssh/

Password

sudo passwd <username>

Networking

ifconfig
ifconfig up [deviceid]
ip link
ip addr

APT / dpkg

sudo apt list --installed <package-name-start*>
sudo apt --reinstall install <package>
dpkg --list | grep <package-name-fragment>

Devices

sudo libinput --list-devices

Find/Replace

To change the file in place:

sed -i "s/regex/replace/" file

or

sed -i "s|regex|replace|" file

To copy output to a new file

sed "s/regex/replace/" filein > fileout

List all kernel images installed:

$ dpkg --list | grep linux-image

Login, Logout, Restart

sudo reboot now
sudo shutdown now
gnome-session-quit

Ubuntu Specific

From https://fostips.com/lid-close-action-ubuntu-21-04-laptop/

edit /etc/systemd/logind.conf to configure power options such as lid closing opening,

HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
  1. Restart Service
systemctl restart systemd-logind.service

Users, groups

From:

  1. Create a new user

    sudo adduser username
    
  2. Find groups associated with current user:

    groups $USER
    
  3. Add new user to new groups

    sudo usermod -aG adm username
    sudo usermod -aG sudo username
    #...
    

Remove User

sudo deluser --remove-home username

Force new password

passwd --expire <username_here>

Expire / unexpire

from here

Expire Account

Let the account expire to disallowing a user from logging in from any source including ssh:

# disallow peter from logging in
sudo usermod --expiredate 1 peter

This is how you can reenable that account:

# set expiration date of peter to Never
sudo usermod --expiredate "" peter

List all users / groups

users:

cut -d: -f1 /etc/passwd
getent passwd

groups:

cut -d: -f1 /etc/group
getent group

find out who is logged on

users
who

Update Distro

Based on this link

  1. Might as well be fully updated first

    sudo apt update
    sudo apt upgrade
    sudo shutdown -r now
    
  2. edit which upgrade you want to do (lts or normal)

    sudo nano /etc/update-manager/release-upgrades
    

    change prompt=lts to prompt=normal

  3. run updater

    do-release-upgrade
    

    you may need to indicate what to do with specific config files that get updated.

  4. Restart

    sudo shutdown -r now
    

get ip info

from here

ifconfig
host myip.opendns.com resolver1.opendns.com
dig @resolver4.opendns.com myip.opendns.com +short

get mac

https://www.lifewire.com/find-a-mac-address-using-an-ip-address-818132

arp -a <ip address>

Wifi Scanning

nmcli d wifi

sudo

to run something as root

sudo <command> [command options]

to run interactively as root

sudo -i

to run something as someone else

sudo -i -u <username>

run exit to leave that session

Show all manually-installed packages

apt-mark showmanual

close bash without saving history

unset HISTFILE && exit

Package Management

List repositories

apt policy

Remove a repository

sudo add-apt-repository --remove ppa:PPA_Name/ppa

Misc

Count files in bash

source: https://devconnected.com/how-to-count-files-in-directory-on-linux/

ls | wc -l

How to find .desktop file location for a particular application

For example, if “Image Viewer” is in the name of the icon:

find / -name '*.desktop' -exec grep -H 'Image Viewer' {} \; 2>/dev/null

derived from here:

Some default locations listed here:

/usr/share/applications/gnome-terminal.desktop
~/.local/share/applications/gnome-terminal.desktop
~/.config/gnome-panel/launchers/gnome-terminal.desktop
~/.gnome/apps/gnome-terminal.desktop

Learn about your hardware

Get DMI/BIOS information

sudo dmidecode 
sudo dmidecode -t0 # BIOS
sudo dmidecode -t1 # System
sudo dmidecode -t2 # Board
sudo dmidecode -t3 # Enclosure or Chassis
sudo dmidecode -t4 # Processor
sudo dmidecode -t1 # System

Hard drive information

list disks with lsblk

lsblk -f
sudo lshw -class disk
sudo fdisk -l
sudo hwinfo --disk
ls -l /dev/disk/by-path
ls -l /dev/disk/by-id

get drive information:

sudo hdparm -I /dev/sda

if you have an NVMe device…

sudo apt install nvme-cli
nvme list
#sudo nvme smart-log <node_name> 
sudo nvme smart-log /dev/nvme0n1 
sudo nvme id-ctrl /dev/nvme0n1

Trash

59

Files can be stuck in ~/.local/share/Trash/expunged when you delete from Nautilus a folder that belongs to you, but contains files which are belong to another user, and it is tricky for Nautilus to handle this situation correctly. To delete them try to use:

sudo -i
rm -rv /home/<desired_user_name>/.local/share/Trash/expunged/*
exit

octal file permissions

stat /path/to/filename
stat -c '%A %a %n' /path/to/filename

Drives

From here

##list disks
sudo fdisk -l
#if you know the disk you want info about:
sudo fdisk -l /dev/sdd 
sudo mount /dev/sdd1 /mount/danaukes/backup
# unmount
sudo umount /mount/danaukes/backup
# unmount all
sudo umount -a
# force unmount
sudo umount -f /mount/danaukes/backup

Recursively find storage space of a directory

from here

du -sh /path/to/my/dir

Recursively list files

from here

tree /path/to/dir