Biến môi trường cung cấp cho chúng ta những thông tin rất giá trị, và chúng có thể được tuỳ chỉnh để thay đổi hoặc nâng cao trải nghiệm người dùng
Biến môi trường tồn tại để chuẩn hoá cũng nâng cấp môi trường shell trên các hệ thống Linux. Có một loạt các biến môi trường mặc định đã được hệ thống cài đặt sẵn cho chung ta, những bạn vẫn có thể cài đặt những biến môi trường riêng của bạn, hoặc đơn giản hơn là chỉnh sửa lại các thiết lập mặc định
Mục lục
Bắt đầu với câu lệnh env
Để xem toàn bộ các biến môi trường trong hệ thống cũng như giá trị của chúng, các bạn sử dụng công cụ env và các bạn có thể thấy danh sách tên các biến được VIẾT HOA cùng với giá trị của chúng
$ env LS_COLORS=(long output) LANG=en_US.UTF-8 HISTCONTROL=ignoredups HOSTNAME=rhel8t XDG_SESSION_ID=5 USER=khess SELINUX_ROLE_REQUESTED= PWD=/home/khess HOME=/home/khess SSH_CLIENT=192.168.1.94 53911 22 SELINUX_LEVEL_REQUESTED= XDG_DATA_DIRS=/home/khess/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share SSH_TTY=/dev/pts/1 MAIL=/var/spool/mail/khess TERM=xterm-256color SHELL=/bin/bash SELINUX_USE_CURRENT_RANGE= SHLVL=1 LOGNAME=khess DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus XDG_RUNTIME_DIR=/run/user/1000 PATH=/home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/bin HISTSIZE=1000 LESSOPEN=||/usr/bin/lesspipe.sh %s _=/usr/bin/env
Rất nhiều biến môi trường được đặt và được xuất ra từ file /etc/profile và /etc/bashc. Có một dòng trong file /etc/profile như sau
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
To make permanent changes to the environment variables for all new accounts, go to your /etc/skel files, such as .bashrc, and change the ones that are already there or enter the new ones. When you create new users, these /etc/skel files will be copied to the new user’s home directory.
Để tạo ra thay đổi vĩnh viễn tới các biến môi trường cho tất cả các tài khoản được tạo ra sau đó, bạn hãy tìm tới các files /etc/skel như là file .bashrc và thay đổi chúng. Khi bạn tạo một users mới thì các files /etc/skel sẽ tự động được sao chép vào thư mục home của user mới
Khám phá shell levels (SHLVL)
Để gọi gía trị của các biến môi trường đơn, sử dụng câu lệnh sau, sử dụng SHLVL
$ echo $SHLVL 1
Giá trị thay đổi tuỳ thuộc theo bạn có bao nhiêu subshells đang mở. Ví dụ, bạn thử thực hiện lệnh bash hai lần và thực hiện lại câu lệnh
$ bash $ bash echo $SHLVL 3
Shell level 3 có nghĩa là bạn đã ở dưới 2 tần subshells, do đó bạn gõ exit 2 lần để quay về shell thông thường
Các thao tác với biến PATH
Biến PATH chứa các đường dẫn để thực thi câu lệnh và scripts. Để thấy các giá trị của biến PATH trong máy bạn, nhập câu lệnh
$ echo $PATH /home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
Thử tạm thời đổi giá trị biến PATH của bạn bằng cách nhập câu lệnh sau để thêm đường dẫn /opt/bin vào
$ PATH=$PATH:/opt/bin $ echo $PATH /home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/bin
Sự thay đổi này chỉ là tạm thời trong phiên làm việc nó không phải vĩnh viễn vì nó không được nhập vào file .bashrc. Để khiến thay đổi này là vĩnh viễn, nhập câu lệnh PATH=$PATH:/opt/bin ở trong file .bashrc ở trong thư mục home của bạn
Khi bạn thực hiện việc đó, bạn đã tạo ra một biến PATH mới bằng cách thêm một thư mục mới vào biến PATH hiện tại. Các thư mục được ngăn cách với nhau bởi dấu :
Tìm hiểu kĩ về $USER, $PWD, và $LOGNAME
Tôi có một suy nghĩ là các câu lệnh pwd và whoami thực chất chỉ là đọc các nội dung của các biến $PWD, $USER hay $LOGNAME. Khi tôi thử xem mã nguồn thì nó lại không như vậy, có khi tôi sẽ viết lại mã nguồn để nó làm theo đúng như thế. Vì chẳng có lí do nào để thêm hàng loạt thư viện và hơn 400 dòng code để hiển thị thư mục bạn đan g làm việc. Bạn có thể chỉ cần echo biến $PWD ra màn hình, điều này tương tự với $USER và $LOGNAME
Nếu bạn muốn tự xem mã nguồn thì bạn có thể xem chúng tại GitHub. Nếu bạn bạn tìm thấy các chương trình (hoặc những thứ khác) sử dụng biến môi trường thì tôi rất muốn được biết về nó. Phải thú thật là tôi không quá giỏi khi đọc mã nguồn C, mặc dù một số người dùng rất thành thạo các biến môi trường nhưng họ có vẻ không cần đọc những thứ mà tôi nghĩ rằng họ cần phải đọc
Cùng chơi một trò chơi với $SHELL
Để tìm hiểu shells nào đã được cài trong hệ thống của bạn, sử dụng câu lệnh
$ cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash
Thường là bash, nhưng bạn có thể tìm thấy các shell khác như /bin/tcsh, /bin/csh, /bin/mksh, /bin/ksh, hay /bin/rksh.
Bạn có thể dùng bất cứ shells nào trong đó và có nhiều điều khác biệt giữa các shells. Nhưng nếu bạn là một quản trị viên hệ thống Solaris và bạn muốn sử dụng Korn shell. Bạn có thể chỉnh shell mặc định về /bin/ksh sử dụng câu lệnh chsh
$ chsh Changing shell for khess. New shell [/bin/bash]: /bin/ksh Password: Shell changed.
Tuy nhiên nếu bạn gõ echo $SHELL, thì bạn vẫn nhận được về giá trị /bin/bash, bạn cần đăng xuất ra và đăng nhập lại để thấy sự thay đổi . Khi bạn đăng nhập lại, bạn sẽ thấy sự phản hồi khác khi gõ echo $SHELL
Bạn có thể truy cập vào shells khác và gõ echo $SHELL để xem báo cáo về shell hiện tại cũng như giá trị của biến $SHLVL vốn đã được trình bày ở trên
Thiết đặt các biến môi trường riêng của bạn
Bạn có thể thiết đặt các biến môi trường riêng của bạn cho mỗi phiên làm việc, hoặc có thể lưu lại vĩnh viễn bằng cách đặt chúng vào các file ~/.bashrc hay /.profile hoặc bất cứ startup file nào bạn dùng cho shell mặc định
Máy chủ vật lý
4 Lợi Ích Thiết Thực Mà Máy Chủ Vật Lý Mang Lại Cho Doanh Nghiệp
Trong thời đại chuyển đổi số mạnh mẽ như hiện nay, việc đầu tư vào [...]
Giải pháp
Cách Phòng Chống DDoS Cho Website, VPS, và Server Hiệu Quả
Các cuộc tấn công DDoS (Distributed Denial of Service) là một mối đe dọa lớn [...]
Chưa được phân loại portal portal cloudzone Về Portal
Mã đăng nhập Portal Cloudzone là gì? 3 cách lấy mã đăng nhập
Ngày nay, khi công nghệ số phát triển mạnh mẽ, việc bảo mật thông tin [...]
Cloud hosting Blog
So sánh Cloud Hosting cPanel, DirectAdmin và Plesk
Khi lựa chọn dịch vụ Cloud Hosting để lưu trữ website hoặc ứng dụng, một [...]
Cloud VPS
[2024] Kinh Nghiệm Chọn VPS Treo Game Không Lo Gián Đoạn
Với sự phát triển nhanh chóng của các trò chơi trực tuyến, việc duy trì [...]
Blog
Tuyển Đại lý dịch vụ Cloud – Chiết khấu đến 35%
Cloudzone tuyển đại lý dịch vụ Cloud, Data Center với lợi nhuận không giới hạn, [...]