Biến môi trường đóng vai trò chính trong Linux. Hầu hết các chương trình, dù là dựa trên dòng lệnh hay dựa trên GUI, đều xử lý biến môi trường theo cách này hay cách khác. Vì vậy, tất nhiên là có những công cụ cho phép bạn truy cập biến môi trường từ dòng lệnh.
Một trong những công cụ như vậy là printenv. Trong hướng dẫn này, chúng ta sẽ thảo luận về lệnh printenv bằng một số ví dụ dễ hiểu. Nhưng trước khi thực hiện, cần lưu ý rằng tất cả các ví dụ ở đây đều đã được thử nghiệm trên máy Ubuntu 20.04 LTS.
Và đây là cách trang hướng dẫn của công cụ định nghĩa lệnh này:
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp sẽ giúp bạn hiểu rõ hơn về cách lệnh printenv hoạt động.
Sau đây là đầu ra được tạo ra trên hệ thống:
Vì vậy, bạn có thể thấy rằng hầu hết các biến môi trường được đặt trong hệ thống của tôi đều được tạo ra trong đầu ra.
Đây là một ví dụ:
Và đây là đầu ra do lệnh này tạo ra:
Tất nhiên, bạn có thể thêm nhiều biến hơn vào danh sách đầu vào. Ví dụ, lệnh sau:
tạo ra đầu ra như bên dưới:
Đối với điều này, bạn sẽ phải sử dụng tùy chọn dòng lệnh --null. Sau đây là một ví dụ:
Và đây là ảnh chụp màn hình về đầu ra được tạo ra so với việc sử dụng printenv mà không có tùy chọn --null:
Một trong những công cụ như vậy là printenv. Trong hướng dẫn này, chúng ta sẽ thảo luận về lệnh printenv bằng một số ví dụ dễ hiểu. Nhưng trước khi thực hiện, cần lưu ý rằng tất cả các ví dụ ở đây đều đã được thử nghiệm trên máy Ubuntu 20.04 LTS.
Lệnh printenv của Linux
Lệnh printenv trong Linux cung cấp cho bạn khả năng xem toàn bộ hoặc một phần môi trường. Cú pháp của lệnh này như sau:
Mã:
printenv [OPTION]... [VARIABLE]...
Mã:
In các giá trị của BIẾN môi trường đã chỉ định. Nếu không có BIẾN nào được chỉ định, hãy in
các cặp tên và giá trị cho tất cả chúng.
Câu hỏi 1. Làm thế nào để sử dụng printenv?
Cách sử dụng cơ bản khá dễ. Tất cả những gì bạn phải làm là chạy printenv mà không có bất kỳ đối số nào.
Mã:
printenv
Mã:
CLUTTER_IM_MODULE=xim
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=3 7;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:* .lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=0 1;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:* .bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war =01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01 ;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35: *.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:* .pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=0 1;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35 :*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.f lac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
LESSCLOSE=/usr/bin/lesspipe %s %s
XDG_MENU_PREFIX=gnome-
LANG=en_IN
DISPLAY=:0
GNOME_SHELL_SESSION_MODE=ubuntu
COLORTERM=truecolor
USERNAME=himanshu
XDG_VTNR=2
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path
XDG_SESSION_ID=2
USER=himanshu
DESKTOP_SESSION=ubuntu
QT4_IM_MODULE=xim
TEXTDOMAINDIR=/usr/share/locale/
GNOME _TERMINAL_SCREEN=/org/gnome/Terminal/screen/44c42800_9a68_408d_8539_7a0e414b7986
ĐƯỜNG DẪN MẶC ĐỊNH=/usr/share/gconf/ubuntu.default.path
PWD=/home/himanshu
HOME=/home/himanshu
TEXTDOMAIN=im-config
SSH_AGENT_PID=1918
QT_ACCESSIBILITY=1
XDG_SESSION_TYPE=x11
XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
XDG_SESSION_DESKTOP =ubuntu
GJS_DEBUG_OUTPUT=stderr
GTK_MODULES=gail:atk-bridge
WINDOWPATH=2
TERM=xterm-256color
SHELL=/bin/bash
VTE_VERSION=5201
QT_IM_MODULE=xim
XMODIFIERS=@im=ibus
IM_CONFIG_PHASE=2
XDG_CURRENT_DESKTOP=ubuntu:GNOME
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GNOME_TERMINAL_SERVICE=:1.61
XDG_SEAT=seat0
SHLVL=1
GDMSESSION=ubuntu
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
LOGNAME=himanshu
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000
XAUTHORITY=/run/user/1000/gdm/Xauthority
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
GJS_DEBUG_TOPICS=JS ERROR;JS LOG
SESSION_MANAGER=local/himanshu:@/tmp/.ICE-unix/1823,unix/himanshu:/tmp/.ICE-unix/1823
LESSOPEN=| /usr/bin/lesspipe %s
GTK_IM_MODULE=ibus
_=/usr/bin/printenv
Câu hỏi 2. Làm thế nào để printenv chỉ hiển thị thông tin chọn?
Giả sử bạn muốn printenv hiển thị thông tin chi tiết chỉ liên quan đến một biến môi trường cụ thể trong đầu ra, thì tất cả những gì bạn phải làm là truyền tên của biến đó làm đầu vào cho lệnh.Đây là một ví dụ:
Mã:
printenv SHELL
Mã:
/bin/bash
Mã:
printenv SHELL HOME
Mã:
/bin/bash
/home/himanshu
Câu hỏi 3. Làm thế nào để printenv sử dụng NUL thay vì xuống dòng?
Theo mặc định, lệnh printenv sử dụng xuống dòng làm ký tự kết thúc giữa các mục đầu ra. Tuy nhiên, nếu muốn, bạn có thể khiến công cụ sử dụng NUL làm ký tự kết thúc thay thế.Đối với điều này, bạn sẽ phải sử dụng tùy chọn dòng lệnh --null. Sau đây là một ví dụ:
Mã:
printenv --null SHELL HOME