Linux stuffs
echo "Hello world"
We are going to learn: [–more–]
- User / group
- grep, awk, find.
- File permission
- ssh/scp
- systemctl
-
Groups: collection of users⌗
sudo groupadd devops
use the
/etc/group
file to get groupsWhenever you create a user it creates groups also with the same name.
-
Add user to group
whenever you add a user to a group you modify the user.
sudo usermod -aG devops user1
-
To add multiple users, we can also use gpasswd to add user
sudo gpasswd -M user1,user2,user3 testers
-
Delete user form group
sudo gpasswd -d user2 testers
-
Delete group
sudo groupdel testers
-
Use chgrp to change group of file
sudo chgrp tester file.txt
-
-
File permissions:⌗
Numeric Permissions:
- r - read = 4
- w - write = 2
- x - execute = 1
-
There are three set of permissions for:
- U - User/Owner
- G - Group
- O - Others
-
Combinations
_ U _ . _ G _ . _ O _ => rwx rwx rwx
Example:⌗
U - read+write = 4+2 => 6
G - read+executable = 4+1 => 5
O - read = 4 => 4
Final permission numeric == 654
-
User
chmod
command to modify permissionschmod 700 file.txt
⌗
-
Find files⌗
-
Grep: To find anything inside file or name of files.
- Find some keyword or filename in directory.
grep -r keyword /home/ubuntu/
-r
is for searching recursively inside directotries- grep something inside file
grep keyword file.txt
- Search case insensitive
grep -i keyword file.txt
-i
stands for case insensitive, by default grep is case sensitive.
-
AWK:
- Find
TRACE
from log and print column 1,2,5
awk '/TRACE/ {print $1,$2,$5}' errors.log
- Get the exact line number
awk '/TRACE/ {print NR,$1,$2,$5}' errors.log
- User condition using
NR
=> row number
awk 'NR>=1 && NR<=20 && /TRACE/ {print NR,$1,$2,$5}' errors.log
- Find
-
Find:
-
Find files with specific extension
find *.txt
-
Find files in some directory with specific ending
find dir/ *.log
-
Find files by a particular owner
find dir/ -user ubuntu
-
Find files by a particular group
find dir/ -group devops
-
-
-
SSH:⌗
-
Keys:
-
Public key (id_rsa.pub)
-
private key (id_rsa)
Public key must be known by the server where you want to connect, and you must also have private key to connect.
-
-
Create keys:
ssh-keygen
Keys are stored in
~/.ssh/
directory. -
Connect using keys:
-
Permission must be 400
chmod 400 key.pem
-
connect
ssh -i /path/to/key.pem user@ipaddress
-
Types
yes
when asked.
-
-
scp from host system to server
scp -i "key.pem" file.txt user@ipadd:/home/user/file.txt
-
scp from server to our host system
scp -i "key.pem" user@ipadd:/home/user/file .
-
-
Systemctl⌗
It is a Service controller, services like
docker
,apache2
,sshd
,nginx
, etc.-
Start any service
sudo systemctl start <service>
-
Stop any service
sudo systemctl stop <service>
-
Check status of any service
sudo systemctl status <service>
-