67 Nguyễn Thị Định, Phường An Hải, TP. Đà Nẵng
Hướng dẫn

Thủ thuật với biến môi trường trên Linux

Thủ thuật với biến môi trường trên Linux
Chia sẻ

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....

Mục lục

Bắt đầu với câu lệnh env
Khám phá shell levels (SHLVL)
Các thao tác với biến PATH
Tìm hiểu kĩ về $USER, $PWD, và $LOGNAME
Cùng chơi một trò chơi với $SHELL
Thiết đặt các biến môi trường riêng của bạn

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

Chia sẻ

Bài viết liên quan

Tối ưu chi phí hạ tầng: chọn đúng cấu hình, thuê theo nhu cầu

Tối ưu chi phí hạ tầng: chọn đúng cấu hình, thuê theo nhu cầu

Cách giảm chi phí hạ tầng hợp lý: chọn đúng cấu hình (right-sizing), thuê theo nhu cầu, kết hợp dịch vụ và rà soát tài nguyên định kỳ mà không ảnh hưởng vận hành

Cách săn khuyến mãi VPS/máy chủ, tránh bẫy giá rẻ

Cách săn khuyến mãi VPS/máy chủ, tránh bẫy giá rẻ

Cách tận dụng khuyến mãi VPS và máy chủ hợp lý, đọc kỹ điều kiện gia hạn và nhận biết bẫy giá rẻ ảnh hưởng chất lượng dịch vụ

Chọn nhà cung cấp VPS/máy chủ: tiêu chí cần kiểm tra

Chọn nhà cung cấp VPS/máy chủ: tiêu chí cần kiểm tra

Các tiêu chí chọn nhà cung cấp VPS và máy chủ: uptime/SLA, hạ tầng data center, peering, hỗ trợ kỹ thuật và chính sách hoàn tiền, kèm cách đọc cam kết dịch vụ

Phần mềm mã nguồn mở thay thế để tiết kiệm bản quyền

Phần mềm mã nguồn mở thay thế để tiết kiệm bản quyền

Gợi ý các phần mềm mã nguồn mở thay thế giải pháp có phí cho máy chủ: hệ điều hành, cơ sở dữ liệu, web server, control panel và ảo hóa, kèm lưu ý chi phí vận hành

So sánh bản quyền control panel: cPanel, DirectAdmin, Plesk

So sánh bản quyền control panel: cPanel, DirectAdmin, Plesk

So sánh cPanel, DirectAdmin và Plesk về tính năng, hệ điều hành hỗ trợ và chi phí bản quyền, kèm gợi ý chọn control panel theo số website và nhu cầu

Các loại bản quyền Windows Server và cách chọn cho đúng

Các loại bản quyền Windows Server và cách chọn cho đúng

Hiểu cấp phép Windows Server theo core, CAL và các kênh OEM/Volume/CSP, phân biệt Standard và Datacenter để chọn bản quyền phù hợp và hợp lệ