Linux: Difference between revisions

From Piszczynski
No edit summary
No edit summary
 
Line 232: Line 232:
sudo vgdisplay -v
sudo vgdisplay -v
sudo lvscan
sudo lvscan
</syntaxhighlight>
== Control groups ==
List control groups:<syntaxhighlight lang="bash">
sudo systemd-cgls --no-pager
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 15:16, 14 April 2024

Basic Commands

Useful everyday commands

List directory contents:

ls
in long format -l
list all -a

List block devices (all drives)

lsblk
in list: -l

Get info on system

uname -a

Change file mode bits (file permissions)

chmod <options> <filename>
chmod 777 script.sh (gives read write execute permission to owner, group, world)

Change ownership of file

chown <newowner>:<newgroup> <filename>
chown dave:users notes.txt

Compress file

tar -zxvf <filename>
tat -zxvf something.tar.gz
extract:
    tar -xvf something.tar.gz

Display file contents or join files

cat <filename>
join files:
    cat file1.txt file2.txt
combine files:
    cat file1.txt file2.txt >> file3.txt

Copy

Copy a file:

cp <file> <Destination>

copy multiple files:

cp <file1> <file2> <Destination>

Prevent overwriting: (will overwrite files by default)

cp -n <source> <dest> (can also use -i option to decide for each file)

Copy directory:

cp -r <source> <destination>

Copy contents of directory to another directory:

cp <source>/. <destination>

Sort

Pipe output to sort to sort it or display contents of file sorted:

<command> | sort
sort <options> <filename>

Sort on numerical value:

sort -n

sort in reverse order:

sort -r

Sort by specific column (useful with commands that return data in columns like du)

sort -k <column number>
sort -k 3nr (will sort by the 3rd column in reverse number order)

Sort and remove duplicates

sort -u

Ignore case when sorting

sort -f

sort by human numeric values:

sort -h

Redirect output to another file:

sort > <other file>

zip

Decompress tar.gz files:

tar –xvzf documents.tar.gz

Get Linux Info

Get current build and Linux OS data:

cat /etc/os-release

Get init system the server uses

ps --no-headers -o comm 1ps --no-headers -o comm 1ps --no-headers -o comm 1ps --no-headers -o comm 1

Remote Desktop Protocol App for linux

Remmina can be used for RDP connections to windows computers using RDP as well as VNC SSH and others


To user also need to install xrdp and tightvnc:

sudo apt install xrdp xorgxrdp -y
echo env -u SESSION_MANAGER -u DBUS_SESSION_BUS_ADDRESS cinnamon-session>~/.xsession

Other newer option is xserver-xorg-core


Change or Set IP address

With Newer Ubuntu versions netplan is used as the network management tool.

Get ip address and interfaces with:

ifconfig
ip -c a
ip link

Set the network interface settings on the configuration files located in the netplan directory. Netplan will parse all the files in this directory:

sudo nano /etc/netplan/<name of config file eg 00-installer-config.yaml>

Example of the .yaml file:

network:
  ethernets:
    ens160:
      dhcp4: no
      addresses:
        - 192.168.50.15/24
      gateway4: 192.168.50.1
      nameservers:
        addresses: [192.168.50.3, 1.1.1.1]
  version: 2

Apply the changes using netplan apply:

sudo netplan apply

The use of gateway4: option to set the default gateway has ben depreciated so you need to set a default route with the following option now:

routes:
  - to: default
    via: 192.168.50.1

Swap File

Check size of swap file:

swapon -s

increase swap file to 8GB:

sudo swapoff -a #turn off swap file
sudo dd if=/dev/zero of=/swapfile bs=1M count=8192 #set size of blocks for swap file and create
sudo chmod 0600 /swapfile #Assign it read/write permissions for root only
sudo mkswap /swapfile #Format the file as swap
sudo swapon -a #enable swap file - will also be activated on next reboot without this command


Alternate commands to make 8GB swap file

sudo swapoff /swapfile
sudo rm  /swapfile
sudo fallocate -l 8G /swapfile

App Image

Apps can be downloaded as an appimage which is the application with everythign it needs to run in one file.

You will need to make the appimage executable to be able to run it:

chmod u+x <appimage file>

SSH

Enable SSH

Install openssh server:

sudo apt-get install openssh-server

login.

Enable login using ssh Keys

Generate keys: Be careful if you have already generated a key as this will overwrite the current key

ssh-keygen

This gets stored in ~/.ssh

Copy key to server (must have ssh via password enabled)

ssh-copy-id name@server

This gets sored on remote server in ~/.ssh/authorized_keys file. you can append keys to this fille to add more logins:

cat ~/.ssh/id_rsa.pub | ssh name@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Copy over manually:


Check public key

cat ~/.ssh/id_rsa.pub

Make dir:

mkdir -p ~/.ssh

copy key over:

echo <public_key_string> >> ~/.ssh/authorized_keys

Disable Password Authentication

Edit config file:

sudo nano /etc/ssh/sshd_config

Change:

PasswordAuthentication no

Restart ssh service:

sudo systemctl restart ssh

Services

Show services:

sudo systemctl status #show all services info
sudo systemctl | grep service #get all services by name

Set service to start on boot (linux systemd init)

sudo systemctl start <service name>

Mount Network Share

Mount a network share using the mount command. You may need to install cifs:

sudo apt install cifs-utils

then mount with this command:

sudo mount -o user=<username> //<fqdn of network share>/<share folder> <directory to mount on server locally>

To automatically mount a share on reboot you need to add the details to the /etc/fstab file:

#add at the bottom of the /etc/fstab file:

//<fqdn of file share server>/<filesharefolder> <local mount point folder> cifs user=<user>,password=<password>,uid=<uid of user to mount(can be the default user 1000)> 0 0

Manage Disks with LVM

display all of the available block storage devices that LVM can potentially manage, use the lvmdiskscan command:

sudo lvmdiskscan

display all of the physical devices on your system by using lvmdiskscan with the -l option, which will only return physical volumes:

sudo lvmdiskscan -l

The pvscan command is similar in that it searches all available devices for LVM physical volumes. The output format includes a small amount of additional information:

sudo pvscan

can also use the pvs command to show useful info:

sudo pvs
sudo pvdisplay

get info on lvm groups:

sudo vgscan
sudo vgs -o +devices,lv_path
sudo vgdisplay -v
sudo lvscan

Control groups

List control groups:

sudo systemd-cgls --no-pager