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
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 | #Grow part after extend EBS volume on AWS Console. |
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.