Giai đoạn 3 - Linux và DevOps
Xin chào mọi người, đây là chặng thứ ba của hành trình 90 ngày. Như vậy là hành trình của chúng ta đã đi qua được hai điểm đến đầu tiên, và chào mừng mọi người đến với điểm đến thứ ba - Linux, nơi chúng ta sẽ có rất nhiều những câu chuyện thú vị liên quan đến hệ điều hành này và cách chúng ta tương tác với nó.
Nếu mọi người đã sẵn sàng, hãy khám phá điểm đến thôi! 🚎
Nguồn: Business & Branding Tips
Ngày 14 - Bức tranh lớn của Linux
Khởi động
Linux và DevOps có những thứ khiến chúng ta liên tưởng đến những sự liên quan mật thiết lẫn nhau: đó là khả năng tùy biến và khả năng mở rộng. Rất nhiều công cụ liên quan đến DevOps đã và đang được phát triển trên các máy chủ vận hành bằng Linux. Và do vậy, cho dù bài viết này đang được biên soạn bằng một máy tính dùng Windows, thế nhưng Linux vẫn sẽ là trọng tâm phát triển của chúng ta trong ít nhất là 1 tuần tới, vì đơn giản, chúng là mã nguồn mở và hoàn toàn miễn phí.
Bắt đầu với máy ảo
Cái gì cũng cần phải có môi trường, và tất nhiên là phải phục dựng được môi trường sao cho hợp lý nhất. Ở đây chúng ta sẽ sử dụng một máy ảo Linux cho việc thao tác. Nhưng nếu bạn thích sử dụng máy tính thật, hãy kích hoạt chế độ Dual Boot - cài thêm một distro (phiên bản) Linux phù hợp lên máy này, và nhớ: Chia lại dung lượng ổ đĩa trước khi cài.
Để cài hệ điều hành trên một máy ảo hay thậm chí là một máy thật, ta sẽ phải có bộ cài (image) của hệ điều hành đó. Mọi người có thể tự mình tải xuống một bộ mong muốn, tuy nhiên chúng ta muốn có một cách làm tự động hóa nhanh chóng, hiệu quả hơn, đúng không? Thế thì hãy gặp người bạn mới của chúng ta: Hashicorp Vagrant.
Thao tác với Hashicorp Vagrant
Với Vagrant, chúng ta có một công cụ có thể dùng để tương tác với tất tần tật tất cả các loại máy ảo trên nhiều nền tảng khác nhau.
Ở trong bài viết này, chúng ta sẽ sử dụng Vagrant để tương tác với Ubuntu - một Linux distro được nhiều người quen dùng, cũng như sử dụng Oracle VirtualBox cho việc quản lý các máy ảo. Mọi người có thể chọn vào hai đường dẫn để tải cả hai xuống máy của mình.
Vagrantfile
Đây là một tập tin định hình cấu trúc máy ảo mà chúng ta sẽ cài đặt. Mỗi Vagrantfile sẽ nằm trong một thư mục duy nhất, giúp dễ dàng quản lý cấu hình hơn. Cây thư mục chủ đạo của một máy ảo sẽ như thế này.
Thư mụcubuntu/
Thư mục.vagrant/
- …
- Vagrantfile
Còn dưới đây là cấu hình Vagrantfile mà chúng ta sẽ sử dụng.
Đây là một tập tin đơn giản, và dựa trên cấu hình này, ta có thể thấy được những thứ sau đây:
box
: Phiên bản máy ảo mà chúng ta sử dụng. Có một danh sách để mọi người lựa chọn tại đây.provider
: Nền tảng quản lý máy ảo, ở đây là Oracle VirtualBox.- Cấu hình RAM và CPU ảo: RAM 8GB, 4 vCPU (CPU ảo).
- Để ngăn ngừa các sự cố liên quan đến đồ họa, cấu hình tùy chỉnh vRAM (RAM ảo) được sử dụng là 128MB.
Khởi động máy ảo
Sau khi viết xong cấu hình, chạy lệnh sau tại thư mục chứa Vagrantfile để khởi tạo máy ảo.
Về cấu hình mạng, máy ảo này sẽ sử dụng kiểu mạng NAT - tuy nhiên, chúng ta có thể tùy biến kiểu mạng mà máy ảo sẽ sử dụng. Tham khảo thêm tại đây.
Đăng nhập máy ảo
Sau khi hoàn thành, kết nối đến máy ảo bằng SSH với một câu lệnh cũng được Vagrant hỗ trợ.
Mở máy ảo trong VirtualBox, mọi người sẽ thấy màn hình đăng nhập của máy.
Hãy nghĩ thử xem: Cặp thông tin đăng nhập của máy này là gì?
Nếu đã đăng nhập được rồi thì hẹn gặp mọi người vào ngày mai, khi chúng ta sẽ bắt đầu vào cửa sổ lệnh của Linux để tương tác và biến mọi thứ thành hiện thực.
Ngày 15 - Linux101
Xin chào, đã đến lúc Linux lên sóng rồi. Bây giờ sẽ là lúc mà chúng ta sẽ học các câu lệnh Linux một cách chỉnh chu nhất. Đây là ngày thứ 15 của hành trình, và mời mọi người đi cùng mình nào! 🚓
Dạo quanh làng “Command”
Làng này có rất nhiều “command” - nhưng để tiện di chuyển hơn, chúng ta sẽ chỉ đi qua một số “command” chính thôi.
Lệnh man
Lệnh xem hướng dẫn sử dụng. Cách dùng đơn giản như sau.
Từ khóa sudo
sudo
là một từ khóa đặc biệt - nó cấp cho người dùng quyền root
tạm thời để thực hiện các yêu cầu khác
nhau, khá giống Run as Administator - Chạy với quyền Quản trị viên trên Windows.
Trong trường hợp nếu cần vào thẳng root
để thực hiện các công việc, sử dụng câu lệnh sau và nhập mật khẩu.
Thoát khỏi quyền root
bằng lệnh exit
Xóa màn hình
Với Linux, người ta có câu: Sạch gàu như Clear… à nhầm, sạch command như clear
.
Windows thì dùng cls
.
Xử lý với thư mục và tập tin
Chùm câu lệnh xử lý bao gồm tạo thư mục, tạo tập tin, xóa thư mục, thay đổi thư mục, kiểm tra thư mục hiện thời và thao tác với các tập tin chứa trong thư mục.
Thư mục
Tập tin
Câu lệnh sau giúp chúng ta xác định vị trí của tập tin. Trong trường hợp không có kết quả,
chạy đồng thời hai câu lệnh sudo apt install mlocate
và sudo updatedb
trước khi
chạy lại lệnh locate
.
Di chuyển tập tin sang vị trí khác, sử dụng câu lệnh sau. Câu lệnh này cũng có thể dùng để đổi tên tập tin.
Nếu bạn muốn sao chép một tập tin sang nơi khác, sử dụng câu lệnh sau.
Hãy thêm chút gia vị vào món ăn của mình và xem nó có gì nào…
Tìm lại bản đồ
Thất lạc trong làng và không biết mình đã đi đâu? Dùng các câu lệnh sau để tìm lại.
Trên các hệ thống Linux, biến sau giúp quản trị được thời gian câu lệnh được thực thi, ta
có thể ghi nó vào trong bash_profile
để xuất ra màn hình.
Ta cũng có thể tăng kích thước lịch sử.
Thao tác với người dùng
Các thao tác bao gồm thêm và điều chỉnh người dùng, nhóm cũng như đổi mật khẩu.
Đổi mật khẩu
Thêm người dùng và nhóm
Quyền hạn của người dùng
Đây là cách mà chúng ta hiểu về quyền hạn trên Linux.
- 4 = Read (Đọc, R)
- 2 = Write (Ghi, W)
- 1 = Execute (Thực thi, X)
Lúc này, chúng ta sẽ ghi nhớ theo thứ tự quyền hạn được phân như sau: Người dùng - Nhóm người dùng - Người khác.
Đi vào nội dung, hãy xem tấm hình này sau khi chạy ls -la
, tức xuất
dưới dạng danh sách toàn bộ thông tin của tập tin đó.
Ta thấy được thứ này: -rw-rw-r--
. Phân giải ta có thông tin sau.
- Loại chỉ mục: Tập tin (-). Nếu là thư mục, phần này phải bắt đầu bằng chữ
d
. - Quyền cho người dùng
vagrant
:rw-
= 6 (4+2), quyền đọc ghi - Quyền cho nhóm người dùng
vagrant
:rw-
= 6 (4+2), quyền đọc ghi - Quyền cho người khác:
r
= 4, quyền chỉ đọc.
Ta sẽ thay đổi quyền hạn sao cho hợp lý bằng cách dùng lệnh sau.
Ta cũng có thể thay đổi luôn chủ nhân của tập tin/thư mục.
Thao tác trên luồng dữ liệu
Chúng ta khởi động bằng câu lệnh awk
này. Đây là câu lệnh chỉ lấy một phần thông tin
từ câu lệnh khác.
Trong trường hợp chúng ta muốn lấy kết quả câu lệnh thành đầu vào của câu lệnh khác, ta sử
dụng xargs
. Đây là cách chúng ta thao tác với nó.
Câu lệnh cuối cùng là cut
- Câu lệnh giúp chúng ta cắt dữ liệu và chỉ lấy một phần dữ
liệu trên mỗi dòng của tập tin. Ví dụ như phần dưới.
Nếu bấm nhầm, nhấn Ctrl + C
để ngừng lệnh.
Chúng ta kết thúc ngày 15 của hành trình tại đây.
Ngày 16 - Hệ thống & Lưu trữ Tập tin
Đây là ngày thứ 16 của hành trình rồi, và chắc hẳn mọi người cũng đã có cái nhìn tổng quan về các câu lệnh trong Linux rồi. Ngày hôm nay, chúng ta sẽ khám phá bên trong Linux xem ở đó sẽ có những điều gì thú vị đang chờ đón. Nào, lên đường thôi! 🚌
Ubuntu và Phần mềm 📲
Đối với các hệ điều hành dòng Linux, việc thao tác với kho lưu trữ phần mềm là cực kỳ cần thiết để có được các bản dựng mới của các ứng dụng trên máy. Để thực hiện thì ta sẽ sử dụng các lệnh sau.
Hệ thống tập tin 📁
Dưới đây là một số thông tin về các thư mục trong Linux mà bạn có thế sẽ gặp qua. Để biết nội dung bên trong các thư mục này, việc đơn giản là chạy câu lệnh sau.
Thư mục/
Thư mụcbin/
- …
Thư mụcboot/
- …
Thư mụcdev/
- …
Thư mụcetc/
- …
Thư mụchome/
- …
Thư mụclib/
- …
Thư mụcmedia/
- …
Thư mụcmnt/
- …
Thư mụcopt/
- …
Thư mụcproc/
- …
Thư mụcroot/
- …
Thư mụcrun/
- …
Thư mụcsbin/
- …
Thư mụctmp/
- …
Thư mụcusr/
- …
Thư mụcvar/
- …
/
: Chứa toàn bộ thư mục Linux (tương tự ổ C trên Windows).bin/
: Chứa các tập tin nhị phân cần thiết cho hệ thống.boot/
: Chứa các tập tin khởi động hệ thống.dev/
: Chứa thông tin về các thiết bị như ổ cứng.etc/
: Chứa toàn bộ tập tin cấu hình.home/
: Đây là thư mục chứa các thư mục con và tập tin của tất cả người dùng. Ở đây có cả Documents và Desktop, là hai thư mục đã từng làm việc trước đó.lib/
: Chứa thư viện dùng chung cho các tập tin nhị phân ởbin/
.media/
: Chứa các thiết bị ngoại vi.mnt/
: Điểm mount tạm thời, sẽ hiểu thêm ở phần sau.opt/
: Gói phần mềm bổ trợ.proc/
: Chứa thông tin tiến trình và nhân.root/
: Thư mụchome
của quyềnroot
.run/
: Nơi chứa thông tin trạng thái ứng dụng.sbin/
: Sudo bin, tức là thư mụcbin
nhưng dành chosudo
.tmp/
: Chứa tập tin tạm thời.usr/
: Nếu cài ứng ụng thì thường ứng dụng sẽ được cài vào thư mục/usr/bin
.var/
: Nơi chứa tập tin nhật trình từ các ứng dụng ở thư mụcbin/
Giả sử, bạn muốn quay về lại nhà của mình khi đã lạc ở đâu đó? Chỉ cần chạy câu lệnh sau là được.
Lưu trữ trên ổ cứng 💾
Chúng ta thường hay có thói quen cài phần mềm vô tội vạ và quên xóa đi khi không dùng đến - nó dẫn đến câu chuyện hỏng ổ cứng khiến series này bị dừng một thời gian. Để biết chắc chắn bạn còn bao nhiêu dung lượng cho ổ cứng, hãy sử dụng câu lệnh sau.
Theo hình ảnh, sda
là ổ cứng của chúng ta, và sda1
, sda2
, sda5
là các
phân vùng trên ổ cứng.
Để biết thêm thông tin chi tiết, ví dụ về dung lượng còn trống, hãy sử dụng câu lệnh sau.
Câu chuyện mới đây: Giả sử bạn trúng xổ số Vietlott và bạn quyết định mua thêm ổ cứng, làm sao để đưa ổ cứng vào sử dụng? Sau khi cắm vào, bạn thực hiện các bước sau.
-
Định dạng ổ cứng theo câu lệnh Linux.
-
Mount ổ cứng tại thư mục
mnt/
. -
(Tùy chọn) Thêm ổ cứng vào trong tập tin
/etc/fstab
để lưu cấu hình mount, tránh tình trạng mất điểm mount sau khi khởi động lại. -
Kiểm tra bằng câu lệnh sau, ngay sau khi cài đặt automount.
-
Ngừng mount nếu không muốn sử dụng tiếp ổ đĩa, sử dụng câu lệnh sau.
Kết thúc ngày thứ 16 của hành trình. Xin chân thành cảm ơn.
Ngày 17 - Nano và VIM
Đã đến lúc chúng ta đi sâu một chút vào cái giao diện mà chúng ta chứng kiến trên các máy chủ Linux - một giao diện chỉ toàn màu đen trắng, với vài dòng lệnh mà chả có hình nền đẹp nào xuất hiện. Chúng ta sẽ làm quen về hai trình biên soạn thường được sử dụng trên Linux - Nano và VIM, để hiểu hơn hết về cách chúng hoạt động và cách chúng ta tương tác với chúng hiệu quả và nhanh gọn.
Đây là ngày thứ 17 của hành trình, và hãy đi cùng chúng tôi! 🚎
Nano
- Không khả dụng trên tất cả hệ thống
- Phù hợp cho việc bắt đầu làm quen, cũng như với các cấu hình thay đổi nhỏ
Khởi động nano bằng một câu lệnh cực kỳ đơn giản và thêm vài dòng dữ liệu vào tập tin bất kỳ.
Lưu dữ liệu và xem tập tin bằng các lệnh sau.
-
Lưu dữ liệu bằng tổ hợp
Ctrl+X
vàEnter
. -
Kiểm tra tồn tại tập tin bằng câu lệnh sau.
-
Xem nội dung tập tin.
Có thể dùng lại đúng lệnh nano để thay đổi nội dung trong tập tin.
VIM
Không phải nước tẩy bồn cầu (nghe có mùi ghê 🤣 ), đây là viết tắt của Vi Improved, anh em của Vi - một trình biên soạn nội dung UNIX nổi tiếng ra mắt từ năm 1976. VIM có mặt ở hầu hết các phiên bản của Linux, cũng như có thể tìm thêm các khóa học về VIM ở khắp nơi.
Để thao tác, hãy sử dụng câu lệnh sau.
Điều thú vị là VIM không có thanh điều hướng, do đó dưới đây sẽ là một số hướng dẫn sử dụng cho VIM.
-
Thoát chương trình: Bấm phím
Esc
sau đó gõ:q
khi không có gì thay đổi. -
Các chế độ: Mặc định VIM ở chế độ thường, tuy nhiên VIM có tới 4 chế độ khác nhau. Thường chúng ta sẽ sử dụng chế độ Thêm (Insert) bằng cách bấm nút
i
trên bàn phím, gõ vài dòng, sau đó bấm phímEsc
và gõ:wq
để báo hiệu là chúng ta có ghi dữ liệu và thoát chương trình. -
Thay thế các nội dung trong tập tin: Ở chế độ thường, bấm phím
Esc
và gõ:%s/<từ khóa cần thay>/<từ khóa thay thế>
. -
Sao chép/Cắt/Dán: Ở chế độ thường, sử dụng các tổ hợp
yy+pp
để sao chép rồi dán trên cùng một dòng vàyy+P
để sao chép trên một dòng và dán trên một dòng mới. -
Xóa dòng: Chọn dòng cần xóa, sau đó bấm
dd
. -
Tìm kiếm: Sử dụng lệnh
/word
và kết quả trả về vị trí trùng khớp đầu tiên, bấmn
để đi tới các vị trí trùng khớp tiếp theo. -
Tổ hợp điều hướng: Thay thế các phím mũi tên sẽ là các phím H, J, K, L.
Và đó là những câu chuyện của ngày 17. Xin trân trọng cảm ơn.
Ngày 18 - SSH và Máy chủ Web
Xin chào, như vậy là bây giờ chúng ta sẽ đến với ngày thứ 18 của hành trình. Để quản lý số lượng lớn máy chủ chạy Linux, chúng ta cần phải có một giải pháp an toàn và hiệu quả. SSH (Secure Shell) chính là lựa chọn đó - và đây là địa điểm tiếp theo của chúng ta.
Nếu bạn đã sẵn sàng thì lên đường thôi!!! 🚗
Giới thiệu điểm đến SSH
5 điểm nhấn của vị trí này bao gồm:
- Shell (Vỏ) bảo mật.
- Giao thức mạng (nói chính xác thì đây là một dịch vụ mạng).
- Cho phép giao tiếp an toàn.
- Có thể bảo mật cho bất kỳ dịch vụ mạng nào.
- Thường được sử dụng cho kết nối dòng lệnh từ xa.
Khi chúng ta khởi tạo môi trường bằng Vagrant, SSH đã được cấu hình sẵn, do đó chúng ta chỉ
việc chạy câu lệnh vagrant ssh
là đã kết nối được với máy ảo rồi. Tuy nhiên, trong
trường hợp máy ảo đó nằm trên các hạ tầng khác mà không cùng hệ thống mạng với chúng ta, SSH
cho phép tạo ra một đường hầm kết nối (tunnel) an toàn giữa máy khách và máy chủ để ngăn
các tác nhân xấu can thiệp vào đường truyền và gây ảnh hưởng đến chúng ta.
SSH trên mỗi máy chủ luôn được chạy ở giao thức TCP, cổng số 22. Chúng ta cần được cấp mã khóa hoặc thông tin truy nhập trước khi sử dụng SSH để giao tiếp với máy chủ.
Thêm chút điểm nhấn…
Chúng ta thêm một card mạng vào máy ảo để thử sức, bằng cách tắt máy ảo. Mở cài đặt của máy ảo trong VirtualBox rồi chọn Mạng (Networking).
Khởi động lại máy ảo. Chạy câu lệnh sau để kiểm tra sự tồn tại.
Kiểm tra SSH
Chạy câu lệnh sau để xem trạng thái SSH.
Trong trường hợp nếu SSH không tồn tại trên máy ảo, chạy liên tiếp các câu lệnh sau để thêm vào hệ thống (đối với Ubuntu).
Kết nối SSH
Đối với hệ điều hành Windows, để sử dụng SSH chúng ta có hai cách, một là kết nối qua dòng lệnh, cách còn lại là sử dụng Putty.
Putty
Cài đặt Putty vô cùng đơn giản bằng hướng dẫn này.
Sau đó, bấm Mở (Open). Chúng ta sẽ thấy một cảnh báo - Chọn Có (Yes) để tiếp tục, vì đây là hệ thống của chúng ta.
Nhập tên đăng nhập và mật khẩu vào để kết nối. Hoàn tất.
Kết nối qua dòng lệnh
Một cách kết nối an toàn hơn đó là sử dụng mã khóa, bởi lẽ trong trường hợp nếu lộ tên đăng nhập hoặc mật khẩu (hoặc cả hai) thì tin tặc có thể chiếm quyền kiểm soát máy chủ ngay lập tức.
Mã khóa được cấp qua dòng lệnh là một cặp khóa (khóa công - tư/public - private) để xác thực hai chiều. Việc tạo mã khóa vô cùng đơn giản bằng những bước sau đây.
-
Cài đặt SSH trên máy khách. Bạn có thể tra Google ở đây.
-
Chạy câu lệnh sau để tạo cặp khóa. Nếu bạn muốn tìm hiểu thêm về mã hóa, truy cập vào đây. Cặp khóa sẽ lưu trong một thư mục nào đó có đuôi
.ssh/
, ví dụ nhưC:\Users\admin\.ssh
. -
Sao chép mã khóa vào máy chủ, sử dụng câu lệnh sau.
-
Kết nối trở lại bằng câu lệnh sau.
-
(Tùy chọn) Tăng bảo mật cho SSH bằng cách chỉ sử dụng passphrase hoặc chặn sử dụng mật khẩu để đăng nhập. Trên máy ảo, chạy câu lệnh sau.
-
(Tùy chọn) Xóa chú thích (dấu
#
) ở dòngPasswordAuthentication yes
, rồi điều chỉnh vềno
và lưu cấu hình. Chạy lại dịch vụ SSH bằng câu lệnh sau.
Giới thiệu về máy chủ Web
Thực ra có rất nhiều cách để nói về máy chủ Web, nhưng trong phạm trù của bài viết này, ta sẽ đá sang máy chủ Web với các công nghệ thuộc dạng LAMP (Linux, Apache, MySQL, PHP).
Ở bản gốc, chúng ta học cách dựng máy chủ Web bằng các câu lệnh khác nhau. Nhưng với việc công nghệ phát triển, việc này xem chừng không còn trở nên phù hợp nữa. Để đẩy nhanh tốc độ vận hành, ta sẽ tiến hành cài đặt một hệ thống chạy WordPress, nhưng sử dụng Docker cho quá trình chạy. Bạn có thể tải Docker tại đây, sau đó cài đặt Docker Compose để chạy cụm container này. Chúng ta sẽ tìm hiểu Docker ở dịp khác.
Sau đó, bạn hãy truy cập vào đây để xem tất cả những tập tin sẽ được sử dụng cho việc dựng WordPress.
Ngay sau đó, chạy câu lệnh sau để bắt đầu.
Truy cập và kiểm tra hệ thống để xem có bất kỳ sự cố nào hay không, nếu không, truy cập vào hệ thống qua địa chỉ IP để tiến hành cài đặt WordPress.
Hoàn thành ngày thứ 18 của hành trình. Xin chân thành cảm ơn.
Ngày 19 - Tự động hóa với Bash Shell
Ngày thứ 19. Chúng ta tiếp tục với hành trình 90 ngày DevOps với câu chuyện mà chúng ta đã từng nhắc đến ở giai đoạn đầu: Tự động hóa. Để tự động hóa được tốt hơn, trong DevOps người ta thường sử dụng Bash (Bourne Again Shell). Tất nhiên chúng ta cũng có một lựa chọn khác là ZSH sẽ được nhắc đến trong những phần tiếp theo.
Khởi đầu
Chúng ta tạo một tập tin Bash Shell đơn giản bằng touch 90DaysOfDevOps.sh
. Sau đó, chỉnh
sửa bằng nano 90DaysOfDevOps.sh
. Dưới đây là nội dung tập tin Bash Shell.
Dòng đầu tiên định hình vị trí của Shell mà chúng ta sử dụng, tất nhiên nó có thể có những biến thể như thế này.
#!/usr/bin/env bash
#!/usr/bin/bash
Để biết chắc chắn Bash đang ở đâu, hãy sử dụng một trong hai câu lệnh: which bash
hoặc
whereis bash
.
Lưu tập tin. Kiểm tra quyền hạn của tập tin này bằng lệnh ls -la
. Sau đó thay đổi để cấp quyền
thực thi bằng câu lệnh quen thuộc: chmod +x 90DaysOfDevOps.sh
. Chạy tập tin này lên, và đây là
kết quả.
Thay đổi một chút…
Trên tập tin chúng ta có thể có những trường thông tin sau để chúng ta tìm hiểu.
Biến
Cách dùng có thể là khai báo trực tiếp rồi gọi bằng $[name]
. Hoặc có thể sử dụng cách sau để cho
người dùng nhập giá trị vào.
Điều kiện
Đây là cách xét điều kiện trong Bash. Cách so sánh cũng khá khác thường một chút.
eq
: A = B trả ra ĐÚNGne
: A != B (khác) trả ra ĐÚNGgt
: A > B trả ra ĐÚNGge
: A >= B trả ra ĐÚNGlt
: A < B trả ra ĐÚNGle
: A =< B trả ra ĐÚNG
Ngoài ra, việc xét điều kiện với một tập tin cũng được tính đến, cụ thể như sau.
-d file
: Tập tin đó là một thư mục-e file
: Tập tin tồn tại-f file
: Chuỗi cung cấp là một tập tin-g file
: Tập tin có cài đặt mã định danh nhóm (Group ID)-r file
: Tập tin đọc được-s file
: Tập tin có nội dung (Kích thước khác 0)
Nguyên mẫu
Ta sẽ thử tạo một tập tin mà trong đó, ta sẽ tạo người dùng một cách tự động và cho phép người dùng xóa người dùng nếu cần.
Tập tin này cho phép người dùng nhập thông tin tên đăng nhập và mật khẩu trước khi tạo người dùng. Đồng thời cũng cho phép xóa người dùng khi cần. Dưới đây là kết quả khi chạy chương trình.
Kết thúc ngày thứ 19. Nội dung đã được lược giản cho phù hợp với điều kiện thực tế.
Bạn có thể xem thêm những tài liệu về Bash ở đây hoặc phần Tham khảo phía dưới.
Ngày 20 - Xây dựng máy trạm cho riêng bạn
Thực ra đây sẽ là một ngày mà mình sẽ tập trung nhiều vào ZSH và những thứ liên quan. Đối với câu chuyện máy trạm thì ngay ở đây có một video để mọi người có thể theo dõi.
Hành trình của mình trong ngày thứ 20 sẽ đi qua các nội dung liên quan đến các chức năng của ZSH cũng như các dotfiles (là các tập tin có dấu chấm phía trước tên gọi).
Nào, chúng ta bắt đầu ngày thứ 20 của hành trình thôi! 🚕
.dotfiles
Các tập tin có dấu chấm phía trước tên thường là những tập tin cấu hình quan trọng đối với hệ điều hành Linux.
Ví dụ như cây thư mục sau.
Thư mục90DaysOfDevOps/
- …
- .bash_history
- .bash_logout
- .bashrc
- bash.sh
Thư mục.cache/
- …
Thư mục.config/
- …
- …
ZSH 🖥
Đây là một Shell tương tự như Bash nhưng có tính năng tốt hơn: Tự hoàn thành câu lệnh, tự động tìm kiếm tập tin, tích hợp biểu diễn thông dụng (regex), câu lệnh rút gọn và một số hỗ trợ về giao diện.
Cài đặt và sử dụng
Để cài đặt ZSH, sử dụng câu lệnh sau để cài đặt và sử dụng.
Khi màn hình này xuất hiện, chọn số 1, và sau đó tiếp tục có thể chọn số 0 để chỉ tạo một
tập tin .zshrc
duy nhất. Lúc này ta có thể dùng câu lệnh sau để tìm tập tin và đổi shell.
Trang trí với 0hMyZSH
Để có một số giao diện đẹp hơn, hãy sử dụng OhMyZSH, và mọi người có thể tìm hiểu tại đây.
Để tải OhMyZSH về máy và cấu hình các tính năng, lần lượt chạy các câu lệnh sau.
Ở tập tin .zshrc
, điều chỉnh như sau: plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
Tiện ích mở rộng
Mọi người có thể cài thêm một số tiện ích mở rộng kèm theo như trong đường dẫn này. Các tiện ích được lựa chọn bao gồm danh sách sau.
- Caffeine
- CPU Power Manager
- Dash to Dock
- Desktop Icons
- User Themes
Các phần mềm được cài đặt ⚙
Hãy sử dụng câu lệnh quen thuộc để cài đặt toàn bộ các tiện ích dưới đây.
- VSCode
- azure-cli
- containerd.io
- docker
- docker-ce
- google-cloud-sdk
- insomnia
- packer
- terminator
- terraform
- vagrant
Giao diện tối 🌃
Giao diện Dracula sẽ là một giao diện phù hợp cho việc
tiếp tục theo đuổi hành trình của chúng ta. Sau khi cài đặt xong, hãy cấu hình tập tin
.zshrc
như hình dưới.
Cuối cùng là cấu hình giao diện cho cửa sổ lệnh theo hướng dẫn tại đây.
Hoàn thành chặng đường một tuần tại làng Linux.
Tài liệu tham khảo 📚
Mời mọi người chuyển sang trang này để theo dõi tất cả tài liệu liên quan trong giai đoạn 3, để giúp bản thân có được những tài liệu hữu ích về Linux trong làm việc với DevOps.
Giai đoạn 3 - Tham khảoHẹn gặp mọi người ở những ngày tiếp theo, nơi mà chúng ta sẽ nói về Mạng máy tính và các vấn đề liên quan đến DevOps. 🚀