Lab004: CentOS - Cài đặt và cấu hình ban đầu
Trong các bài Lab trước đây, chúng ta đã làm quen với các HDH mã nguồn mở thuộc họ Debian trên các nền tảng WSL và VMware. Hôm nay, chúng ta sẽ đến với một hệ điều hành thuộc họ Redhat chuyên dùng cho Server - đó là CentOS. Quá trình cài đặt đối với CentOS sẽ có một chút phức tạp hơn so với các HDH họ Debian và để đa dạng nền tảng ảo hóa, chúng ta sẽ cài đặt và khởi chạy trên nền tảng Hyper-V được tích hợp sẵn trong Windows.
I. Nền tảng Hyper-V
1.1 Khởi chạy Hyper-V
Để có thể khởi chạy được HyperV, chúng ta cần vào đường dẫn Control Panel -> Program -> Turn Windows Features On or Off và enable 2 feature sau:
- Hyper-V
- Windows Hypervisor Platform
Tiếp theo, khởi chạy HyperV bằng cách Start -> search Hyper:
Ở phần khởi chạy này, nếu gặp lỗi Hypervisor is not running thì chỉ cần mở PowerShell lên và chạy lệnh sau:
bcdedit /set hypervisorlaunchtype auto
**
1.2 Cấu hình Hyper-V
Để chuẩn bị cho việc tạo và chạy các máy ảo về sau, chúng ta nên cấu hình ban đầu cho Hyper-V như sau:
1.2.1 Cấu hình Network Bridge
Việc cấu hình Network nhằm mục đích khi chúng ta khởi tạo một máy ảo mới (VM) trong tương lai, thì VM này mặc định sẽ được coi như 1 thiết bị cùng lớp mạng với máy tính thực của chúng ta. Tức là nó có thể được cấp phát IP và truy cập ra Internet như một máy tính độc lập.
Truy cập vào mục Virtual Switch Manager:
Mục Virtual Switch Manager: Create New Virtual Switch -> Extenal -> Create Virtual Switch
- Name: Bridge
- Connetion type: External Network -> chọn card mạng bạn đang dùng để kết nối internet -> Allow management..
1.2.2 Cấu hình ổ đĩa ảo
Để tiện cho việc quản lí ổ đĩa ảo của nhiều mày ảo về sau, mình thường sẽ gom tất cả về 1 folder thay vì việc sử dụng đường dẫn mặc định của Hyper-V. Ví dụ, mình sẽ tự tạo 1 folder có tên VirtualMachines ở trên ổ C (C:\VirtualMachines) sau đó sẽ cấu hình để các ổ đĩa ảo được tạo ra trong tương lai sẽ tự động nhảy vào thư mục này.
Truy cập Action -> Hyper-V Setting -> lần lượt tìm đến mục Virtual Hard Disks và Virtual Machines -> Browse -> chỉnh đường dẫn đến folder C:\VirtualMachines -> Select folder.
Vậy là bước khởi tạo ban đầu đã xong, chúng ta sẽ thử cài đặt CentOS trên nền tảng Hyper-V ở phần sau.
**
II. Cài đặt CentOS
Để bắt đầu cài đặt bản CentOS Minimal, chúng ta sẽ download file ISO từ trang chủ của nhà phát triển theo đường dẫn sau:
http://isoredirect.centos.org/centos/7/isos/x86_64/
2.1 Khởi tạo máy ảo (VM)
Vào mục Action -> New -> Virtual Machine
Mục Specify Name and Location: đặt tên cho VM của bạn, phần Store the Virtual Machine in different location không phải chỉnh sửa vì chúng ta đã cấu hình trước đó rồi.
Mục Specify Generation: chọn Generation 2.
Mục Assign Memory: đây là mục cấu hình dung lượng RAM cho máy ảo của bạn, với bản CentOS Minimal thì chúng ta có thể để ở mức 4GB RAM là ổn, nếu máy của bạn có dung lượng RAM lớn thì có thể tăng lượng RAM được share cho máy ảo lên.
Mục Configure Networking: tại đây chúng ta chọn kết nối Bridge đã được tạo ở phần trước để VM của chúng ta trong tương lai có các kết nối LAN & WAN tương tự như máy tính thực ta đang dùng.
Mục Connect Virtual Hard Disk: đây là mục cấu hình ổ đĩa ảo cho VM của chúng ta, đối với bản CentOS Minimal thì ta có thể để dung lượng ổ ảo khoảng 10GB là ổn.
Mục Installation Option nhấn Next, ta sẽ quay lại cấu hình sau. Tiếp tục nhấn Finish tại mục Summary, Hyper-V sẽ bắt đầu khởi tạo VM.
Ở phần này, ta sẽ cấu hình boot cho lần khởi chạy đầu tiên - khởi chạy cài đặt OS bằng file ISO. Để làm được điều đó thì ta sẽ chọn VM vừa được khởi tạo -> Setting.
Mục Processor: tại đây ta sẽ cấu hình số core CPU để chạy VM, tức là sẽ dùng bao nhiêu nhân CPU để chạy cái máy ảo này, số core được chia cho máy ảo sẽ bé hơn hoặc bằng số LogicalCore trên CPU của máy thực, ở đây mình lấy ví dụ là 4 core.
Mục SCSI Controller: ở đây chúng ta sẽ tạo 1 ổ DVD ảo phỏng theo việc cài HDH cho máy tính từ ổ đĩa quang trước đây. Chọn SCSI Controller -> chọn DVD Drive -> Add.Sau khi đã tạo được ổ DVD ảo, chúng ta sẽ khai báo file ISO dùng để cài đặt CentOS bằng cách: chọn DVD Drive -> Image file -> Browse -> mở đường dẫn đến file ISO CentOS Minimal -> chọn file ISO -> Open -> Apply để được kết quả tương tự như hình sau.
Mục Firmware: đây chính là mục cấu hình thứ tự ưu tiên các ổ / thiết bị trong quá trình boot. Hãy sử dụng phím Move up / down để thiết lập ổ DVD chứa bộ cài CentOS lên trên cùng (sẽ được boot đầu tiên). Việc boot thông qua Network Adapter chúng ta sẽ tìm hiểu sau nên tạm thời cho nó xuống cuối cùng.
Cuối cùng, đi đến mục Security và bỏ chọn Enable Secure Boot.
Sở dĩ nếu không bỏ chọn mục Enable Secure Boot thì khi boot ổ DVD lên để cài CentOS, chúng ta sẽ gặp lỗi không chấp nhận file ISO như hình dưới đây.
**
2.3 Cài đặt CentOS
Bây giờ chúng ta sẽ chính thức bắt đầu cài đặt CentOS lên máy ảo vừa khởi tạo. Tích chọn máy ảo ta vừa khởi tạo -> Connect -> Start.
Khi máy ảo được boot bằng file ISO của CentOS Minimal, ta sẽ thấy màn hình cài đặt CentOS như sau. Tiếp theo, chọn Install CentOS 7.
Mục tiếp theo, lực chọn ngôn ngữ và định dạng, chúng ta tạm thời để mặc định là English. Sau này nếu có nhu cầu sử dụng các bộ gõ tiếng Việt, Tàu, Hàn.. thì ta sẽ cài đặt tiếp.
Mục Date & Time: lựa chọn múi giờ phù hợp với quốc gia hiện tại (GMT+7 Ho Chi Minh) để tránh sai giờ có thể dẫn đến lỗi khi truy cập web sau này. Khi cài đặt các HDH nói chung, tốt nhất là chúng ta nên để ý vấn đề múi giờ, nhấn Done khi hoàn thành.
Mục Installation Destination: tại đây chúng ta sẽ tiến hành chia phân vùng cài đặt CentOS trên ổ dĩa ảo thủ công thay vì để trình cài đặt tự động chia.
Chọn I will configure partitioning -> Done.
Tại cửa sổ tiếp theo, chọn Standar Partition.
Để cấu hình các phân vùng (Partition) cài đặt CentOS, chúng ta cần cấu hình ít nhất 3 phân vùng sau:
- Phân vùng "/boot/efi" là nơi sẽ chứa các file khởi động để gọi ra HDH trong tương lai, dung lượng cần cho phân vùng này là ít nhất 200MB.
- Phân vùng "swap" là phân vùng sẽ được dùng làm RAM ảo khi cần. Tức là khi RAM bị đầy (thường gặp ở Server) thì HDH sẽ lấy tạm dung lượng ổ đĩa để làm bộ nhớ đọc ghi ngẫu nhiên, chống tràn bộ nhớ gây treo cả hệ thống. Khi đó hệ thống sẽ chạy chậm hơn vì tốc độ đọc / ghi của ổ đĩa là không thể so sánh được với chip nhớ nhưng cũng không vấn đề gì lắm, còn hơn là sập cả Server. Dung lượng dành cho phân vùng này có thể chọn từ 0.5 đến 2 lần dung lượng RAM.
- Phân vùng "/" là phân vùng để lưu toàn bộ dữ liệu hệ thống, cài phần mềm cũng như dữ liệu cá nhân của người dùng. Với các nhu cầu nâng cao thì người quản trị có thể cần chia riêng phân vùng "/var" để chứa log hệ thống, phân vùng "/tmp" để lưu các file tạm..vv.. nhưng đó là câu chuyện về sau, hiện tại chúng ta sẽ chỉ cần chia 3 phân vùng trên là có thể cài được HDH rồi.
Hãy chú ý thật kĩ khi chia phân vùng nhé.
Đầu tiên ta cấu hình phân vùng "/boot/efi": nhấn vào dấu cộng '+' ở góc dưới bên trái để thêm phân vùng mới -> Mount Point: /boot/efi -> Desired Capacity: 256MB -> Add mount point.
Phân vùng "swap", ở đây mình để dung lượng cho phân vùng này là 2GB.
Phân vùng "/" lúc này chúng ta không cần điền dung lượng, chỉ cần nhấn Add mount point là trình cài đặt sẽ tự động gom toàn bộ dung lượng còn lại cho phân vùng này.
Sau khi cấu hình xong 3 phân vùng, chúng ta hãy kiểm tra lại một lượt và nhấn Done để kết thúc việc chia phân vùng.
Một cửa sổ xác nhận sẽ hiện lên, chọn Accept Changes.
Chọn Begin Installation để bắt đầu quá trình cài đặt.Trong quá trình cài đặt, chúng ta hãy tranh thủ thiết lập luôn password dành cho tài khoản Root. Giờ chỉ còn chờ quá trình copy file hệ thống kết thúc và Reboot là có thể chuyển sang bước tiếp theo.
Quá trình cài đặt hoàn tất, nhấn Reboot. Sau khi khởi động lại, CentOS sẽ chào đón chúng ta bằng một giao diện tươi sáng như tiền đồ chị Dậu. Tại đây chúng ta đăng nhập với Username "root" và password được thiết lập trong quá trình cài đặt.
Sau khi login, chúng ta hãy thử kiểm tra kết nối internet và nhận ra mạng chưa về bản.
2.4 Cấu hình CentOS
2.4.1 Tạo User mới
Như chúng ta đã biết, tài khoản Root là tài khoản có quyền cao nhất trong hệ thống, việc sử dụng trực tiếp tài khoản Root để thực hiện tác vụ bình thường là không nên. Ở đây chúng ta cần thiết phải tạo thêm tài khoản thường và cấp quyền Administrator để thực thi những câu lệnh thực sự cần thiết.
Ví dụ, mình sẽ tạo User "l" và thêm nó vào group "wheel" để có thể thực hiện tác vụ thường ngày. Vậy ở trên tài khoản Root ta cần thực hiện các câu lệnh sau:
Thêm User có tên là "l"
adduser l
Đặt password cho User "l" -> điền password -> Enter
passwd l<điền password>
Thêm User "l" vào group "wheel" để có thể sử dụng đặc quyền Administrator khi cần thiết
usermod -aG wheel l
su - l
yum update
HDH thông báo chúng ta không có đặc quyền Administrator nên không thể thực thi được câu lệnh.
Thực thi lại câu lệnh với đặc quyền Administrator.sudo yum update -y
Câu lệnh đã được thực thi, việc cần làm là nhập đúng password của tài khoản "l"
Thế nhưng đến đây chúng ta vẫn chưa thể chạy update hệ thống được vì chưa có mạng Internet. Vậy chúng ta cùng đi tới phần tiếp theo: Cấu hình Network cho CentOS **
2.4.2 Cấu hình Network
Để cấu hình DHCP cho CentOS, ta cần chỉnh trực tiếp lên file config của HDH với các bước sau:
Sử dụng trình soạn thảo Vi mở tệp config trong đường dẫn /etc/sysconfig/network để chỉnh sửa nội dung.
sudo vi /etc/sysconfig/network
Thêm nội dung sau vào file. Đối với trình soạn thảo Vi (và Vim sau này), để có thể chèn thêm nội dung, ta sẽ nhấn phím 'i' để vào mode Insert.
NETWORKING=yes
Chú ý: để lưu nội dung file với trình soạn thảo Vi (sau này là Vim) các bạn làm đúng theo trình tự sau:
- Nhấn Esc để trình soạn thảo Vi quay về Normal Mode
- tiếp tục gõ :wq -> Enter để lưu và thoát (Write & Quit)
Để sử dụng thành thạo trình soạn thảo Vi là khá khó. Không giống như các trình soạn thảo thông thường với thao tác được thực hiện bởi các phím chức năng. Ở trình soạn thảo Vi, chúng ta sẽ thực hiện thao tác bằng "code" của nó =)))) Ví dụ như để xóa 5 từ tính từ vị trí con trỏ trở đi, ta sẽ phải gõ lệnh (vâng, là câu lệnh) "d5w" với ý nghĩa "delete 5 words" ảo chưa =)))
Chi tiết về thao tác của Vi bạn có thể tham khảo ở đây:
https://www.cs.colostate.edu/helpdocs/vi.html
Nếu bạn có lúng túng với Vi (hay Vim) thì điều đó là hoàn toàn bình thường, chúng ta sẽ dần dần chinh phục nó.
Tiếp tục, mở file icfg-eth0 bằng trình soạn thảo Vi.sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
Và đảm bảo các option với giá trị sau:
DEVICE=eth0BOOTPROTO=dhcpONBOOT=yes
sudo yum update -y
**
III. Tùy chỉnh CentOS
3.1 Cài đặt giao diện đồ họa (GUI)
Để cài đặt giao diện đồ họa cho CentOS Minimal, ta cần đăng nhập vào tài khoản Root và cài đặt các gói "GNOME Desktop", "Graphical Administration Tools" bằng lệnh groupinstall. Quá trình cài đặt khá lâu vì tổng dung lượng các gói cần download sẽ khoảng 2GB.
su - rootyum groupinstall "GNOME Desktop" "Graphical Administration Tools" -y
Sau đó, ta cần set mặc định cho giao diện đồ họa khi khởi động hệ thống bằng câu lệnh:
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
Khởi động lại HDH để xem sự thay đổi:
init 6
**
3.2 Tùy chỉnh giao diện dòng lệnh trong CentOS
Trong phần này chúng ta sẽ lại tùy chỉnh giao diện CLI trên CentOS, việc tùy chỉnh CLI sẽ góp phần hỗ trợ chúng ta khi gõ lệnh. Và quan trọng hơn là thông qua những task như thế này chúng ta sẽ có thêm kĩ năng làm việc với HDH mã nguồn mở trong buổi đầu làm quen.
Đầu tiên, ta sẽ mở vũ khí tối thượng Terminal của CentOS lên bằng cách nhấn chuột phải vào màn hình -> chọn Terminal.
Việc tùy chỉnh giao diện CLI trong CentOS sẽ khó hơn so với Ubuntu hay Kali-linux một chút, nhưng ta chỉ cần thực hiện tuần tự các bước sau.
3.2.1 Cài đặt Powerline và fonts trong CentOS
Đầu tiên chúng ta sẽ download file fonts và file config sau bằng lệnh wget.
cd ~/sudo wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otfsudo wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf
Ta sẽ copy 2 file trên vào thư mục fonts của hệ thống và build lại fonts cache bằng cách chạy lần lượt 3 câu lệnh sau:
sudo cp PowerlineSymbols.otf /usr/share/fonts/sudo cp 10-powerline-symbols.conf /etc/fonts/conf.d/sudo fc-cache -vf /usr/share/fonts/
Ta cài đặt ZSH-Shell bằng câu lệnh sau:
sudo yum install zsh -y
Cài đặt gói Powerline thông qua PIP bằng 3 câu lệnh sau:
sudo yum --enablerepo=extras install epel-release -ysudo yum install python-pip -ysudo pip install powerline-status
Sau đó ta clone gói mã nguồn của OhMyZSH và Powerlevel9k (chính là các theme đẹp mắt dành cho CLI để ta lựa chọn sau này) trên github về máy ảo:
cd ~/sudo git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zshsudo git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
Ồ, hệ thống báo không hiểu "git" nghĩa là gì, ta chỉ cần cài đặt gói Git là câu lệnh này sẽ thực thi được:
sudo yum install git -y
Cài xong GIT thì ta chỉ cần chạy lại câu lệnh git clone:
Tiếp theo, ta sẽ copy file config của OhMyZSH ra thư mục Home Directory (thư mục ~/) để tiến hành chỉnh sửa bằng trình soạn thảo Vim:
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
Khi đã mở được file ~/.zshrc bằng trình soạn thảo Vim, chúng ta sẽ kéo xuống cuối trang để dán đoạn mã sau vào:
ZSH_THEME="powerlevel9k/powerlevel9k"POWERLEVEL9K_DISABLE_RPROMPT=truePOWERLEVEL9K_PROMPT_ON_NEWLINE=truePOWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="▶"POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=""
- Để chèn thêm nội dung, ta nhấn phím "i" (i ngắn) để vào Insert Mode
- Để lưu nội dung và thoát khỏi môi trường soạn thảo, ta thao tác theo trình tự: nhấn phím ESC để về Normal Mode -> gõ :wq (<hai chấm>wq) -> Enter để thoát.
Cuối cùng, ta sẽ đổi Bash-Shell đang dùng sang ZSH-Shell vừa cài đặt, hãy chú ý thông báo Shell changed:
chsh -s /bin/zsh
Hãy khởi động lại máy ảo bằng lệnh "init 6" và mở Terminal lên, chúng ta sẽ thấy giao diện thay đổi rồi:
Giờ chúng ta sẽ thử đổi sang cái theme khác nhé, thao tác như sau:
Giờ chúng ta sẽ thử đổi sang cái theme khác nhé, thao tác như sau:
Dùng Vim để mở và chỉnh sửa file config của ZSH và tìm đến dòng ZSH_THEME=...:
Để chọn cho mình 1 theme ưng ý thì chúng ta sẽ tham khảo tại trang web chính chủ sau, thấy cái nào vừa mắt thì chỉnh sửa file ~/.zshrc là được:
https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
3.2.3 Cài đặt Syntax Highlighting
Chúng ta sẽ tiếp tục cài đặt tính năng nhắc lỗi lệnh trên CentOS. Đầu tiên ta sẽ clone bộ mã nguồn của Syntax Highlighting về máy áo.
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "$HOME/.zsh-syntax-highlighting" --depth 1
vim ~/.zshrc
Và dán đoạn mã sau vào cuối nội dung file config rồi lưu thoát, tắt / mở lại Terminal:
source $HOME/.zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
Sau đó kiểm nghiệm tính năng của Syntax Highlighting bằng cách gõ thử lệnh "sudo yum update" chẳng hạn. Ta sẽ thấy phần lệnh gõ đúng được gạch chân để xác nhận, phần lệnh chưa hoàn thành hoặc gõ sai sẽ có cảnh báo màu đỏ in đậm.
**
3.3 Cấu hình SSH cho CentOS
Thông qua các phần trên, chúng ra đã hoàn thành việc cài đặt môi trường CentOS để có thể dùng ổn được. Nhưng khi tạo máy áo trên nền tảng Hyper-V hay bất kì nền tảng nào khác, việc chuyển qua lại giữa môi trường thực và ảo sẽ phải thực hiện thông qua phím tắt hoặc thao tác di chuột rất bất tiện.
Để khắc phục tình trạng trên, ta có thể từ CLI trên môi trường máy thực Remote vào máy ảo và thao tác, tất nhiên là sẽ thông qua dòng lệnh. Vậy trước tiên chúng ta sẽ cài đặt và cấu hình công cụ SSH trên CentOS
Trong điều kiện bình thường, trên CentOS sẽ mặc định được cài đặt sẵn gói openssh-server và openssh-clienst. Nhưng nếu vì lí do nào đó mà 2 gói trên bị thiếu, chúng ta có thể cài đặt lại thông qua câu lệnh:
sudo yum –y install openssh-server openssh-clients -y
Sau đó tiến hành cấu hình Port cho dịch vụ SSH bằng các mở file config của Openssh:
sudo vim /etc/ssh/sshd_config
Và bỏ dấu # ở đầu dòng Port 22 (đang ở trạng thái comment) đi để dòng code này có hiệu lực:
Để có thể remote vào máy ảo CentOS, ta cần phải biết địa chỉ IP của máy ảo này:
Sau đó, ở môi trường Windows trên máy thực, mở Terminal và đăng nhập vào Kali-linux trên nền tảng WSL:
sudo ssh <UserName>@<ServerIPAddress>
Trong đó:
- UserName: tên User trên máy ảo CentOS
- ServerIPAddress: là địa chỉ IP của máy ảo CentOS đa đã xem ở bước trên
Vậy trong trường hợp này, ta dùng câu lệnh:
sudo ssh l@192.168.1.76
Câu lệnh này được thực thi với quyền Admin nên ta phải nhập Password của User trên Kali-linux, tiếp theo ta nhập Password của User trên CentOS, các bạn đừng nhầm lẫn giữa 2 User này nhé.
Sau khi nhập đúng Password, ta đã có thể remote vào máy ảo CentOS từ Terminal trên Windows.
**
3.4 Vận dụng Script để tự động hóa tùy chỉnh CLI
Sau tất cả, chúng ta hãy thử tóm gọn quá trình tùy chỉnh dòng lệnh dài loằng ngoằng bên trên thành 1 file Script chạy tự động nhé.
Ở đây mình chia thành 2 phần là Cài đặt và Cấu hình. Với các câu lệnh ở bước Cài đặt thì ta sẽ tóm gọn lại thành 1 file Script (có đuôi *.sh). Tạo file Script bằng trình soạn thảo Vim.
vim ~/installPowerlineSyntaxHighlighting.sh
Sau đó, trong môi trường Vim, paste các câu lệnh đã được sắp xếp theo thứ tự sau vào file *.sh vừa tạo:
cd ~/# Download Powerline Fonts and Conf filesudo yum install wget -y sudo wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf sudo wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf sudo cp PowerlineSymbols.otf /usr/share/fonts/ sudo cp 10-powerline-symbols.conf /etc/fonts/conf.d/ sudo fc-cache -vf /usr/share/fonts/ # Install ZSH Shell sudo yum install zsh -y # Install Powerline using PIP sudo yum --enablerepo=extras install epel-release -y sudo yum install python-pip -y sudo pip install powerline-status # Clone OhMyZSH and Powerlevel9k source code sudo yum install git -y sudo yum install vim -y cd ~/ git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k # Create OhMyZSH config file cp $HOME/.oh-my-zsh/templates/zshrc.zsh-template $HOME/.zshrc # Clone SyntaxHighlighting source code git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "$HOME/.zsh-syntax-highlighting" --depth 1# Clone Auto Suggestion source codegit clone git://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions# Change Bash-Shell to ZSH-Shell chsh -s /bin/zsh echo "--- Completed ---"
Sau đó, cấp quyền thực thi cho file Script này và thực thi nó bằng 2 câu lệnh sau để tiến hành cài đặt các gói cần thiết. Ở đây chúng ta nên xem lại phần kiến thức về tạo Script, bảng phân quyền đã được đề cập trong Lab003:
sudo chmod 755 ~/installPowerlineSyntaxHighlighting.sh~/installPowerlineSyntaxHighlighting.sh
Đợi file Script trên chạy xong thì chúng ta sẽ sang phần Cấu hình, rất đơn giản, ta sử dụng trình soạn thảo Vim để chỉnh sửa file config của ZSH như sau:
sudo vim ~/.zshrc
Paste đoạn mã này vào cuối nội dung của file ~/.zshrc và lưu lại:
ZSH_THEME="powerlevel9k/powerlevel9k"POWERLEVEL9K_DISABLE_RPROMPT=true POWERLEVEL9K_PROMPT_ON_NEWLINE=true POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="▶" POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=""source $HOME/.zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
Kích hoạt Plugin AutoSuggestion bằng cách thêm vào file ~/.zshrc đoạn mã sau:
plugins=(zsh-autosuggestions)
**
Đối với CentOS-8, đoạn script sẽ có chút thay đổi nhỏ:
cd ~/# Download Powerline Fonts and Conf filesudo yum install wget -y sudo wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf sudo wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf sudo cp PowerlineSymbols.otf /usr/share/fonts/ sudo cp 10-powerline-symbols.conf /etc/fonts/conf.d/ sudo fc-cache -vf /usr/share/fonts/ # Install ZSH Shell sudo yum install zsh -y # Install Powerline using PIP sudo yum --enablerepo=extras install epel-release -y sudo dnf install python3-paramiko -ysudo dnf install python3 -y sudo pip3 install powerline-status # Clone OhMyZSH and Powerlevel9k source code sudo yum install git -y sudo yum install vim -y cd ~/ git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k # Create OhMyZSH config file cp $HOME/.oh-my-zsh/templates/zshrc.zsh-template $HOME/.zshrc # Clone SyntaxHighlighting source code git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "$HOME/.zsh-syntax-highlighting" --depth 1# Clone Auto Suggestion source codegit clone git://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions# Change Bash-Shell to ZSH-Shell chsh -s /bin/zsh echo "--- Completed ---"
**
**
3.5 Cài đặt trình soạn thảo Neovim
Đề cài đặt gói Neovim trên CentOS thì chúng ta sẽ trải qua các bước sau:
cd ~/sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo yum install -y neovim python3-neovim
Cài đặt trình quản lí Plugins: vim-plug cho Neovim:
cd ~/curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
Tạo đường dẫn và file config cho Neovim:
cd ~/mkdir ~/.config/mkdir ~/.config/nvim/touch ~/.config/nvim/init.vim
Tạo một Shortcut ~/.vimrc đến ~/.config/nvim/init.vim
ln -s ~/.config/nvim/init.vim ~/.vimrc
Nhưng như vậy thì thật là bất tiện, ta hãy viết 1 Script để tự động hóa toàn bộ quá trình này.
3.5.1 Tạo và chạy Script cài đặt Neovim
Đầu tiên, chúng ta sẽ tạo 1 folder có tên script để chứa các tệp thực thi khác trong tương lai, sau đó dùng trình soạn thảo Vi sẵn có trên CentOS để tạo file Script:
cd ~/mkdir ~/scriptvi ~/script/installNeovim.sh
Và dán các câu lệnh sau vào (nhấn "i" để vào chế độ soạn thảo).
# Cai dat goi Neovim thong qua Epelcdsudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo yum install -y neovim python3-neovim# Clone source code cua trinh quan li Plugin: plug-vimcurl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim# Tao file config cho Neovimmkdir ~/.config/mkdir ~/.config/nvim/touch ~/.config/nvim/init.vim# Tao mot loi tat cho file config của Neovimln -s ~/.config/nvim/init.vim ~/.vimrc
Cuối cùng là lưu file thực thi bằng thao tác nhấn ESC -> gõ :wq -> Enter.
sudo chmod 755 ~/script/installNeovim.sh~/script/installNeovim.sh
Khi quá trình cài đặt hoàn tất, ta hãy thử kiểm tra kết quả của câu lệnh cuối cùng bằng cách show hết các file ẩn trong HomeDirectory để xem lối tắt .vimrc của file init.vim đã được tạo chưa. Kết quả sẽ tương tự như hình sau:
3.5.2 Cấu hình Neovim
Tiến hành chỉnh sửa file ~/.config/nvim/init.vim thông qua lối tắt ~/.vimrc. Đến đây ta hãy sử dụng câu lệnh nvim, dùng chính Neovim để chỉnh sửa file config của nó:nvim ~/.vimrc
Và dán nội dung mình đã tối ưu sẵn vào file config. Phần này sẽ hơi loằng ngoằng như đừng lo, chúng ta sẽ hiểu nó dần:
" Neovim init.vim config filefor f in split(glob('~/.config/nvim/configs/*.vim'), '\n')exe 'source' fendforcall plug#begin('~/.config/nvim/bundle')Plug 'scrooloose/nerdtree'Plug 'morhetz/gruvbox'Plug 'vim-airline/vim-airline'Plug 'vim-airline/vim-airline-themes'Plug 'kien/ctrlp.vim'Plug 'easymotion/vim-easymotion'call plug#end()"""""""""""""""""" Global Config """"""""""""""""""let mapleader = "\<Space>" " prefix key dùng để trigger các function hay eventfiletype plugin onfiletype plugin indent onautocmd BufEnter * :set scroll=10 " set croll linesyntax onset encoding=UTF-8set mouse=a " enable mouse trong context của neovimset numberset incsearchset hlsearch " hightlight text khi searchset tabstop=4 " space mỗi lần tabset softtabstop=0set shiftwidth=4let mapleader = "\<Space>" " prefix key dùng để trigger các function hay eventfiletype plugin onfiletype plugin indent onautocmd BufEnter * :set scroll=10 " set croll linesyntax onset encoding=UTF-8set mouse=a " enable mouse trong context của neovimset incsearchset hlsearch " hightlight text khi searchset tabstop=4 " space mỗi lần tabset softtabstop=0set shiftwidth=4"""""""""""""""""""""" End Global Config """"""""""""""""""""""""""""""""""""""""" Plugins Config """"""""""""""""""""Vim-Easymotionnmap <silent> gw <Plug>(easymotion-overwin-f2) // nhận vào 2 kí tự prefixlet g:EasyMotion_smartcase = 1" input vào 1|2 kí tự là prefix của từ đó, vim-easymotion sẽ bind tất cả các key để nhảy $"CtrlPlet g:ctrlp_custom_ignore = {\ 'dir': '\v[\/](node_modules|build|public|lib|dist)|(\.(git|svn))$',\ 'file': 'tags\|tags.lock\|tags.temp',\ }" Nhan Ctrl+P de tim kiem"VimAirlinelet g:airline#extensions#tabline#enabled = 1let g:airline#extensions#tabline#left_sep = ' 'let g:airline#extensions#tabline#left_alt_sep = '|'let g:airline#extensions#tabline#formatter = 'default'"NERDTreemap <C-b> :NERDTreeToggle<CR>map <C-i> :NERDTreeFind<CR>let g:NERDTreePatternMatchHighlightFullName = 1let NERDTreeAutoDeleteBuffer = 1let NERDTreeMinimalUI = 1let NERDTreeDirArrows = 1let g:NERDDefaultAlign = 'left'let g:NERDCustomDelimiters = { 'c': { 'left': '/**','right': '*/' } }let g:NERDTreeChDirMode=2let g:NERDTreeIgnore=['\.rbc$', '\~$', '\.pyc$', '\.db$', '\.sqlite$', '__pycache__', 'node_modules'] let g:NERDTreeShowBookmarks=1" nhấn tổ hợp phím Ctrl + b để show/hide Nerdtree từ màn hình code" nhấn tổ hợp phím Ctrl + i để tìm vị trí của file trong nerdtree" xem phim nhiều tuỳ chỉnh tại https://github.com/scrooloose/nerdtree"Themesyntax enableset background=darkhighlight Normal ctermbg=Nonecolorscheme gruvboxlet g:airline_theme='gruvbox'set termguicolors""""""""""""""""""""""" End Plugins Config """""""""""""""""""""""
Đến đây chúng ta hãy làm thật cẩn thận nhé, đầu tiên lưu nội dung đã nhưng không thoát bằng thao tác nhấn ESC -> gõ :w -> Enter.
Sau đó, ta sẽ ra lệnh cho Neovim đọc file config này và thực hiện các yêu cầu cấu hình bằng cách nhấn ESC -> gõ :so % -> Enter. Neovim sẽ báo lỗi nhưng không sao, cứ Enter , lỗi sẽ được khắc phục ở bước tiếp theo, lí do thì mình sẽ giải thích sau (hoặc không).
Tiếp theo, để cài đặt các Plugins thông qua trình quản lí Vim-plug, ta sẽ thao tác: nhấn ESC -> gõ :PlugInstall -> Enter.
Ok rồi, giờ ta thoát khỏi trình quản lí Vim-plug bằng cách nhấn ESC -> gõ :q -> Enter. Và lặp lại thao tác load cấu hình để xem sự thay đổi, giờ thì Neovim sẽ không báo lỗi nữa.
Ok rồi, giờ ta thoát khỏi trình quản lí Vim-plug bằng cách nhấn ESC -> gõ :q -> Enter. Và lặp lại thao tác load cấu hình để xem sự thay đổi, giờ thì Neovim sẽ không báo lỗi nữa.
**





















































Nhận xét
Đăng nhận xét