I say hi

Xin chào, lâu rồi mới ló mặt ra chả là vì bận rộn công việc, rời bời chuyện đời tư hay vất vả trong chuyện học hành là những cái trì hoãn tôi trong việc tiếp tục sản xuất những nội dung mới lạ như này. Mất công học 5 6 khóa linux thì đọng lại trong đầu tôi ko phải chỉ có các câu lệnh nó bao gồm cả lịch sử, sự hình thành, các đời của linux - một OS tôi cực kỳ yêu thích.

Kiểu gì mấy cái này mai sau tôi chả quên, nên blog này sẽ là nơi note cái kiến thức về linux - em bé cánh cụt cute.

Sau lỡ có ai hỏi thì tôi còn lôi cái này ra làm văn nói được. Hê hê

Lịch sử hình thành

Linux phát hành năm 1991 bởi Linus Torvalds (tôi follow ông này trên github và ngày nào ông đấy cũng commit nghị lực thật sự, nhưng mà nhiều cái hơi mỏ hỗn tí :> ) OpenSource ngay sau thời gian đó

Linux có bản trả phí

Các version phân phối: Red Hat (enterprize), Debian, Suse. Linux phổ biến, ổn định, phát triển mạnh mẽ trên các lĩnh vực web, cloud, server, IoT, Docker. Cực kỳ nhiều cái kết hợp rất tốt với linux

Có hàng trăm phiên bản linux và chúng được gọi chung là Distro

Tùy vào nhu cầu bạn sẽ tìm các distro phù hợp

Những cái mà thân thiện nhất là: ubunto, Pop, Mint. Còn vô vàn cái nữa mình sẽ ko nhắc đến ở đây

1
echo "Hello World" >> a.py

-> một dấu > là ghi đè, >> là append

Làm quen với trình editor, vim, và Nano

Vim, Nano là công cụ để xoạn thảo, dùng nó để edit ko dùng GUI. Bất kể gì đều dùng CMD

Vim

1
vi <file_name>

Trước tiên là Vim Operations
i: nhấn i để insert trong trình vim
Esc: exit mode insert
:w: write content
:q: quit (q! để ko lưu gì)
:wq: vừa write vừa quit luôn

Một số thao tác nhanh với hàng
dd: xóa 1 dòng
yy: copy current line
p: (after press p it will auto paste)
u: undo
Ctrl + r:
/search_term: / + key_search

Nano

Nano mình ít dùng nên cx ko tiện nhắc ở đây

Thao tác quyền với User và Group

Một số lệnh quản lý user trên Linux bao gồm:
• useradd: tạo tài khoản user mới.
• passwd: thay đổi mật khẩu của user.
• usermod: sửa đổi thông tin của user.
• userdel: xóa tài khoản user.

Một số lệnh quản lý group trên Linux bao gồm:
• groupadd: tạo group mới.
• groupmod: sửa đổi thông tin của group.
• groupdel: xóa group

Đại loại là khi login vào amazon linux thì chúng ta thường ssh vào luôn (ko thông qua user root do amazon linux ko cho phép)

Để tạo cho phép đăng nhập bằng tài khoản user chúng ta phải dùng lệnh sau

1
sudo vi /etc/ssh/sshd_config

Trong này ta sửa giá trị của passwordAuthentication: No -> Yes

Gõ lệnh sau để restart SSH

1
sudo service ssh restart

Cấp quyền cho user

Tạo một group

1
sudo groupadd deverloper_group

Thêm user vào group

1
sudo usermod -a -G deverlop_group deverloper01

Check group của user deverloper01:

1
group deverloper01

Cấp quyền sudoer cho group deverloper_group

1
sudo visudo 

-> Di chuyển xuống cuối và dán 1 dòng: %developer_group ALL=(ALL) ALL

Sau đó dùng các lệnh để tạo user (phải có lệnh sudo đằng trước ). Ví dụ tạo user là devloper01, thoát amazon linux bằng exit

Đăng nhập lại với tài khoản user đã tạo

1
ssh developer01@ec2.....

File and folder permissions

Hiểu một file có quyền như thế nào, chạy lệnh ls -l để xem

phân quyền file theo rwx

drwx-xr-x4 root root

  • rwx: owner của file có thể read/write/execute
  • r-x: group sở hữu có quyền execute/read
  • root: chủ sở hữu file

Phân quyền file theo 0457

Các bạn có thể nhìn ở bảng sau và ánh xạ sang:

VD có 1 file run.sh, ta muốn cấp quyền cho nó là rwx r-x —-, có thể chạy câu lệnh sau:
sudo chmod 750 run.sh

Để modify owner của một file/folder ta sử dụng câu lệnh sau:
sudo chown [:]
sudo chown -R [:]
*group name là thông số không bắt buộc

Process

Process là các tiến trình đang chạy, có ID riêng và được Assign bởi OS. Process có các trạng thái: running, Sleeping, Stopping, Zombie.

1 Process được cấp phát tài nguyên bởi os: bộ nhớ, file, môi trường, …

Một số câu lệnh liên quan process:
ps: list all process of current user
ps -ef: list all processes in detail format
ps aux: tương tự ps -ef nhưng có thêm thong tin thời gian start, cpu
time consume.
ps -e: list all process không quan tâm ai là owner.
ps -l: list process dưới dạng format dài.
kill hoặc kill -9 để force kill 1 process.

Sẽ có các process bắt buộc, luôn luôn running

Service

Tập các chương trình hoặc chương trình được thiết kế để chạy ngầm cung cấp cho hệ thống, có thể khởi động thủ công hoặc cùng với hệ thống

chỗ service này có vài cái khá hay, đó là chúng ta phải dùng lệnh để enable cái service đó lên để khi server restart lại thì nó tự động khởi động cái service hoặc cái web đó lên. Nếu ko khi server die và nó tự restart thì service sẽ không được bật

khi mount thêm volume thì nó sẽ ko tự cập nhập ngay mà phải chạy các lệnh sau:

1
2
3
4
#Grow part after extend EBS volume on AWS Console.
sudo growpart /dev/xvdf 1
#AND
sudo xfs_growfs /dev/xvdf1

Schedule Cron job

Cron job: công cụ để tự động lên lịch tự động run một chương trình nào đó vào một thời điểm cho trước. Được quản lý ở /etc/crontab
Một số câu lệnh:
crontab -l: list tất cả cronjob của user hiện tại.
sudo crontab -l: list tất cả cronjob của user root.
crontab -e hoặc sudo crontab -e: edit một cronjob.s

Lưu ý: đã chỉ định date of month thì không chỉ định date of week (và ngược lại).
VD1: cronjob với cú pháp: 30 1 6 /path/to/your/script.sh sẽ chạy script.sh vào
1:30 am mỗi sáng thứ 7
VD2: cronjob với cú pháp: /30 * /path/to/your/script.sh sẽ chạy script.sh sau mỗi 30
phút.