Useful shortcuts for vi editor

Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

Wednesday 13 July 2022

How to add a user into "wheel" group?

For example, you have only a root user for the super-user activities, but you wanted to use a custom user for some specific purposes. To make this, you might use "wheel" user group which is a special one for the "sudo" operations. 

Action
sudo usermod -aG wheel alperadm

Check and Determine the Option:
$ sudo cat /etc/sudoers

## Allows people in group wheel to run all commands
# %wheel  ALL=(ALL)       ALL

## Same thing without a password
%wheel        ALL=(ALL)       NOPASSWD: ALL

$ cat /etc/group | grep wheel
wheel:x:10:root,alperadm

Test
$ cat /etc/sudoers
cat: /etc/sudoers: Permission denied

$ sudo cat /etc/sudoers
Worked!

Monday 14 June 2021

el vs rhel

el (enterprise linux) e.g. centos, rocky linux, alma linux

rhel (red hat enterprise linux)

The main difference is that Red Hat provides technical support to the company/project if needs on RHEL. Also, there are various subscription options for being able to use RHEL for the companies at a cost.

Monday 16 December 2019

unzip vs gunzip

e.g. using unzip and gunzip tools for extracting the zip files

* example.txt file compressed into example.zip file

-> Listing contents of the zip file
$ unzip -l example.zip
gunzip -l example.zip

-> Extracting the zip file
$ unzip example.zip
gunzip -S .zip -c example.zip > example.txt

-> Extracting the zip file to specified directory
unzip example.zip -d /home/alper
gunzip -S .zip -c example.zip > /home/alper/example.txt

Friday 18 October 2019

e.g. preparing multiple virtual machines in local network

Hostnames: VM node-A, VM node-B, VM node-C

Adapter 1: Host-only Adapter (VirtualBox-Host-Only Ethernet Adapter)
Type -> Paravirtualized network adapter (virtio-net) - Deny Mode

Adapter 2: Bridged Adapter (Intel Ethernet Connection)
Type -> Paravirtualized network adapter (virtio-net) - Deny Mode

Test
Try to connect one of VMs such as "node-A" by SSH

Tuesday 27 August 2019

Ansible Commands Book

-> valid syntax of the playbook
$ ansible-playbook -i myhosts example.yml -v 
--syntax-check

-> show elapsed time of the playbook

$ time ansible-playbook -i myhosts example.yml -v

-> maintain output verbosity (-v, -vv, -vvv, -vvv)
$ time ansible-playbook -i myhosts example.yml -vvvv

-> list tags/tasks of the playbook
$ ansible-playbook -i myhosts example.yml --list-tags
$ ansible-playbook -i myhosts example.yml --list-tasks

-> run the playbook by getting vault password/sudo password from user
$ ansible-playbook -i myhosts example.yml --ask-vault-pass
$ ansible-playbook -i myhosts example.yml --ask-sudo-pass

-> run the playbook with sudo password 
$ ansible-playbook -i myhosts example.yml -e "ansible_sudo_pass=alper"
(-e, --extra-vars)

How to drop database/user on logical replicated database?

1st step
on 2nd node:
$ echo "DROP SUBSCRIPTION exampledb_node_2" | psql

on 1st node:
$ echo "DROP PUBLICATION exampledb_node_1" | psql

2nd step
on 1st node:
$ echo -e "DROP DATABASE exampledb \n" | psql
$ echo "DROP USER \"user-example\"" | psql

on 2nd node:
$ echo -e "DROP DATABASE exampledb \n" | psql
$ echo "DROP USER \"user-example\"" | psql

Saturday 29 June 2019

Kubernetes label usage

e.g. namespace; kube-system

-> List labels
# kubectl get pods --all-namespaces --show-labels
# kubectl get pods -n kube-system --show-labels

-> List pods via labels
# kubectl get pods -n kube-system -l tier=control-plane

-> Describe pod/pods via labels

# kubectl describe pod -n kube-system -l component=kube-scheduler
# kubectl describe pod -n kube-system -l tier=control-plane

-> Get logs via labels
# kubectl logs -n kube-system -l component=kube-scheduler
kubectl logs -n kube-system -l tier=control-plane

-> Delete pods via labels
kubectl delete pods -n kube-system -l component=example
kubectl delete pods -n kube-system -l 'component in (example,example2)'
# kubectl delete pods -n kube-system -l 'component notin (example3, example4)'

Sunday 19 May 2019

Examples of "escape sequences" usage on echo command

To use interpretation of backslash escapes, just need to put "-e" parameters afterward echo command.

Info: "-e" means enable escape sequences

Examples of backslash escapes:
New line;
$ echo -e "Hello World\n"
-> Hello World

Form feed;
$ echo -e "Hello World\fWhat a lovely day\fI like this\f"
-> Hello World
            What a lovely day
                              I like this

Carriage return;
$ echo -e "Hello World\rWorld"
-> World World

Horizontal tab;
$ echo -e "Hello World\tWhat a lovely day"
-> Hello World     What a lovely day

Vertical tab;
$ echo -e "Hello World\vWhat a lovely day"
-> Hello World
           What a lovely day

Null;
$ echo -e "Hello World\0 What a lovely day"
-> Hello World What a lovely day

Clear after all;
$ echo -e "Hello World\c What a lovely day"
-> Hello World

Escape character;
$ echo -e "Go to \\home directory"
-> Go to \home directory

$ echo -e "Go to \"home\" directory"
-> Go to "home" directory

Unicode usage;
$ echo -e "This is turkish lira symbol-> \u20ba"
-> This is turkish lira symbol-> ₺

Friday 22 February 2019

Linux Terminal Commands Book

chage (manage user password settings)
hostnamectl (show hostname settings)
date (manage system date and time)
* rpm (means RedHat Package Manager)
timedatectl (show timezone settings)
tcpdump (analyze network packages)
* tar (compress the files for archiving)
* tree (see the files as tree format)
* wc (means word count)
* yum (manage RPM packages on RedHat distro)

Thursday 3 January 2019

How to fix "connection refused" error?

Error
e.g.
The connection to the server 10.10.10.10:6443 was refused - did you specify the right host or port?

Solution
On kubernetes control nodes, try to "stop/start" docker service
# service docker restart
or
# systemctl restart docker

Wednesday 19 December 2018

What are the differences of su/ su -/ sudo / sudo su in linux system?

Info: 
su means, switch user or substitute user
sudo means, super user do
to use sudo command, related user must be defined in sudoers file

$ su -
(switch user to root then executes all /etc/profile, .profile and .bashrc files by root)

$ su
(switch user to root user then executes only .bashrc file by root)

$ sudo su -
(switch user to root then executes all /etc/profile, .profile and .bashrc files by root if current user defined in sudoers file)

$ sudo su
(switch user to root then executes only .bashrc file by root if current user defined in sudoers file)

Ref: https://ozsoyler.blogspot.com/2016/09/how-to-gain-root-access-without_15.html

Thursday 1 November 2018

How to change timezone?

-> Determine your timezone
# cd /usr/share/zoneinfo
# tzselect
e.g.
Europe/Istanbul

-> Remove current localtime soft link
# rm /etc/localtime 

-> Define your localtime soft link as new
# ln -s /usr/share/zoneinfo/Europe/Istanbul /etc/localtime

-> Check your latest timezone setting
# timedatectl

Wednesday 31 October 2018

How to connect into local VM via SSH?

* Set a new Port Forwarding Rule in Network Settings

Step 1: Settings -> Network -> Adapter 1 -> Advanced -> Adapter Type -> "Paravirtualized network adapter (virtio-net)" -> OK

Step 2: Settings -> Network -> Adapter 1 -> Advanced -> Keep it as "NAT" -> Click "Port Forwarding" -> Define a Rule -> OK
e.g.
Name Protocol Host Port Guest Port
SSH TCP      1022 22

SSH Connection Host/Port Settings:
Host: 127.0.0.1
Port: 1022

Thursday 4 October 2018

How to setup/configure/use mailx for Office365 account?

-> Update the OS
# yum -y update
or (y -> yes)
# yum update

-> Install mailx
# yum install -y mailx

-> Define soft link to use "email" the command
# ln -s /bin/mailx /bin/email

-> Prepare config file
# vi /etc/mail.rc
set smtp=outlook.office365.com
set smtp-auth-user=alper@alper.com
set smtp-auth-password=alper123
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
set smtp-use-starttls
set from="alper@alper.com(Alper Ozsoyler)"

-> Try to send an email to yourself
# echo "Your message is my message!" | email -v -s "Message Subject is Bla Bla" alper@alper.com

Ref: https://gist.github.com/ilkereroglu/aa6c868153d1c5d57cd8

How to solve "restarting/pending pod repeatedly" problem?

-> Check the pods status
e.g.
# kubectl get pods --all-namespaces
NAMESPACE     NAME                            READY     STATUS
kube-system   coredns-78fcdf6894-6ggkk        0/1       Pending
kube-system   coredns-78fcdf6894-tm52r        0/1       Pending 

-> Check the deployments
# kubectl get deployment --all-namespaces
NAMESPACE     NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE
kube-system   coredns   2         2         2            0

-> Needs to remove the deployments related to pod and service
e.g.
# kubectl delete deployment coredns -n kube-system
deployment.extensions "coredns" deleted

Tuesday 18 September 2018

How to install/configure/enable NTP service?

-> Install ntp service
# yum install ntp

-> Once NTP server pool zones are taking
e.g. check from https://www.pool.ntp.org/zone/europe

-> Add specific pool zones into config file if they are not existed
# vi /etc/ntp.conf
server 0.europe.pool.ntp.org

-> Enable service
# systemctl enable ntpd

-> Run service
# systemctl start ntpd 

-> Lastly, check the service and the settings
# timedatectl 

Thursday 9 August 2018

How to check linux operating system info?

-> show kernel version and other info
# uname -a

-> show machine info
hostnamectl

-> show specific release version
# rpm --query centos-release 

How to check available yum packages?

e.g. install/update ansible by yum

-> Go to repo path

# cd /etc/yum.repos.d/

-> Add source paths into repo file to be able to install ansible

# vi epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]

name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]

name=Extra Packages for Enterprise Linux 7 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

-> Search yum package
yum search ansible

-> Check available yum package
# yum list available | grep ansible

-> Check available all yum packages with its duplicates
yum list available --showduplicates | grep ansible

-> Install ansible 
# yum install ansible

-> Download only yum package
yum install ansible --downloadonly --downloaddir=/root

-> Check available yum packages for upgrade
yum check-updates | grep ansible

-> Update ansible

yum update ansible

-> Check yum history
yum history list

Monday 30 July 2018

How to know last login info on the system?

-> show all records
$ last

-> show all records page by page
$ last | more

-> show first 10 records
$ last | head

-> show first 100 records
$ last | head -100

-> show last 10 records
$ last | tail -10

-> show last 100 records
$ last | tail -100

Wednesday 18 July 2018

How to change service name?

e.g.
current service name: postgresql.service
desired service name: postgresql-9.1.service

Run following commands to change service name;

Step 1: Stop current service
# systemctl stop postgresql.service
# systemctl daemon-reload

Step 2: Change service name
# cd /usr/lib/systemd/system
# mv postgresql.service postgresql-9.1.service

Step 3: Start and enable new service
# systemctl start postgresql-9.1.service
# systemctl enable postgresql-9.1.service

Step 4: Check service status:
# systemctl status postgresql-9.1.service

Step 5: Make sure that service runs properly
# journalctl -u postgresql-9.1.service