Hướng dẫn sử dụng lệnh printenv của Linux dành cho người mới bắt đầu (có ví dụ)

theanh

Administrator
Nhân viên
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.

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]...
Và đây là cách trang hướng dẫn của công cụ định nghĩa lệnh này:
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.
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.

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
Sau đây là đầu ra được tạo ra trên hệ thống:
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
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.

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
Và đây là đầu ra do lệnh này tạo ra:
Mã:
/bin/bash
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:
Mã:
printenv SHELL HOME
tạo ra đầu ra như bên dưới:
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
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:


Kết luận​

Nếu công việc dòng lệnh Linux của bạn liên quan đến việc xử lý các biến môi trường, lệnh printenv là một công cụ quan trọng cần nhớ. Ở đây, trong hướng dẫn này, chúng tôi đã thảo luận về phần lớn các tùy chọn mà công cụ này cung cấp. Sau khi thực hành xong những lệnh này (đường cong học tập không quá khó nên sẽ không mất thời gian), bạn có thể truy cập trang hướng dẫn printenvman để tìm hiểu thêm về tiện ích dòng lệnh này.
 
Back
Bên trên