Biến của tôi là
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Làm thế nào để lưu các biến này vĩnh viễn?
Biến của tôi là
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Làm thế nào để lưu các biến này vĩnh viễn?
Câu trả lời:
Bạn có thể thêm nó vào tệp .profilehoặc tệp hồ sơ vỏ đăng nhập của bạn (nằm trong thư mục chính của bạn).
Để thay đổi biến môi trường "vĩnh viễn", bạn cần xem xét ít nhất các tình huống sau:
/etc/profile, ~/.bash_profile, ~/.bash_login, ~/.profiletheo thứ tự~/.bashrc$BASH_ENV$EDITOR ~/.profile
#add lines at the bottom of the file:  
     export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
     export ORACLE_HOME=/usr/lib/oracle/11.2/client64
$EDITOR ~/.zprofile
#add lines at the bottom of the file:  
     export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
     export ORACLE_HOME=/usr/lib/oracle/11.2/client64
$EDITOR ~/.profile
#add lines at the bottom of the file:  
     export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
     export ORACLE_HOME=/usr/lib/oracle/11.2/client64
$EDITOR ~/.profile
#add lines at the bottom of the file:  
     LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib     
     ORACLE_HOME=/usr/lib/oracle/11.2/client64
     export LD_LIBRARY_PATH ORACLE_HOME
$EDITOR ~/.login
#add lines at the bottom of the file:  
     setenv LD_LIBRARY_PATH /usr/lib/oracle/11.2/client64/lib
     setenv ORACLE_HOME /usr/lib/oracle/11.2/client64
Nếu bạn muốn làm cho nó vĩnh viễn cho tất cả người dùng, bạn có thể chỉnh sửa các tệp tương ứng bên dưới /etc/, ví dụ /etc/profilenhư các shell giống như Bourne, /etc/csh.logincho (t) csh /etc/zsh/zprofilevà /etc/zsh/zshrccho zsh.
Một tùy chọn khác là sử dụng /etc/environment, mà trên các hệ thống Linux được đọc bởi mô-đun PAM pam_envvà chỉ hỗ trợ các bài tập đơn giản, không mở rộng kiểu vỏ. (Xem hướng dẫn của Debian về điều này.)
Các tệp này có thể đã chứa một số bài tập, vì vậy hãy làm theo cú pháp bạn thấy đã có trong tệp của mình.
Đảm bảo khởi động lại shell và đăng nhập lại người dùng, để áp dụng các thay đổi.
Nếu bạn cần thêm biến môi trường toàn hệ thống, giờ đây có /etc/profile.dthư mục chứa tập lệnh sh để khởi tạo biến. 
Bạn có thể đặt tập lệnh sh của bạn với tất cả các biến bạn đã xuất ở đây. 
Hãy cẩn thận mặc dù điều này không nên được sử dụng như một cách chuẩn để thêm biến vào env trên Debian.
.profiletrong /etc/nhưng tôi không làm thế nào để thiết lập các biến trong này, .profilexin vui lòng cho tôi biết
                    .profilecó trong thư mục nhà của bạn không/etc/
                    [Admin@localhost etc]$ cat ~/.profile cat: /home/Admin/.profile: No such file or directory [Admin@localhost etc]$  
                    :wqlà lệnh ghi tập tin và thoát trong vi đừng quên gõ esctrước
                    crontabcác tập lệnh. Không có vị trí nào trong số này sẽ được tra cứu khi crontabtập lệnh đang chạy.
                    Để làm nếu cho tất cả người dùng / shell, tùy thuộc vào distro bạn có thể sử dụng /etc/environmenthoặc /etc/profile. Tạo một tệp mới trong /etc/profile.dcó thể thích hợp hơn nếu nó tồn tại, vì nó sẽ ít có khả năng xung đột với các bản cập nhật được thực hiện bởi hệ thống đóng gói.
Trong /etc/environment, các biến thường được đặt với name=value, ví dụ:
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Trong /etc/profile, bạn phải sử dụng exportvì đây là tập lệnh, ví dụ:
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
Cũng vậy với một tập tin dưới /etc/profile.dhạn chế, cũng có thể được đặt tên mà phải được đáp ứng cho các tập tin để làm việc. Trên Debian, tệp phải có phần mở rộng .sh(mặc dù không cần dòng bang hoặc quyền thực thi vì nó có nguồn gốc). kiểm tra tài liệu phân phối của bạn hoặc xem /etc/profiletập lệnh để xem các tệp này được tải như thế nào.
Cũng lưu ý rằng cài đặt LD_LIBRARY_PATHvĩnh viễn có khả năng có vấn đề , bao gồm cả rủi ro bảo mật. Để thay thế, tôi sẽ đề nghị tìm một số cách để LD_LIBRARY_PATHbắt đầu dòng lệnh cho mỗi chương trình cần trước khi chạy. Ví dụ:
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib myprog
Một cách để làm điều này là sử dụng tập lệnh bao bọc để chạy chương trình. Bạn có thể đặt cùng tên với chương trình của bạn và đặt nó vào /usr/local/binhoặc bất kỳ nơi nào xuất hiện trước vị trí của chương trình của bạn PATH. Đây là một kịch bản ví dụ (đừng quên chmod +xtập lệnh):
#!/bin/sh
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib /real/location/of/myprog "$@"
              environmenttệp của mình , nguyên nhân nào khiến chúng tải lên? Ví dụ: sau khi thoát khỏi trình soạn thảo vi (các thay đổi được viết thành công), tôi hy vọng sẽ viết echo $MY_NEW_VARIABLEvà xem nó được in ra - EDIT: Tôi thấy chúng ở đó nếu tôi khởi chạy một shell lệnh mới
                    /etc/environment, ngay cả khi tôi khởi động lại thiết bị đầu cuối bash hoặc gõ source /etc/environment. Vì vậy, nếu bạn gặp vấn đề trong đó biến môi trường không tồn tại lâu, hãy thử khởi động lại.
                    /etc/environmentkhông phải là một tập lệnh, vì vậy nó không thể có nguồn gốc. Nó được PAM tải vào thời gian đăng nhập (và một số sự kiện hệ thống khác) bởi PAM, do đó bạn có thể đăng xuất / đăng nhập hoặc chạy phiên đăng nhập mới trong thiết bị đầu cuối bằng cách $ su <your username here>chọn các giá trị mới trong phiên bị cô lập đó. Các giá trị sẽ biến mất sau khi bạn thoát, do đó có lẽ ít bị lỗi hơn khi chỉ đăng xuất / đăng nhập đầy đủ.
                    Khi bạn cài đặt oracle, oracle yêu cầu bạn chạy một số tập lệnh trước khi nhấp vào ok. Kịch bản lệnh đó đặt một thiết lập giả trong .bash_profilethư mục nhà của người dùng oracle. Để xem tập tin, ls -alsẽ hiển thị tất cả các tập tin ẩn.
gõ nano bash_profileđể mở tập tin. Thay đổi tệp để phản ánh tên máy chủ của bạn và tên sid phù hợp. kiểm tra bất kỳ cài đặt nào khác cần sửa đổi. nhấn control x để lưu và gõ y khi được hỏi nếu bạn muốn lưu. Nhấn phím quay lại để lưu. Khởi động lại máy tính. Đăng nhập như người dùng tiên tri. bắt đầu cơ sở dữ liệu bằng cách gõ
sqlplus / as sysdba
startup  
              
/usr/lib/oracle/11.2/client64/libvào một tệp mới theo/etc/ld.so.conf.d/đường dẫn. Sau đó, bạn không cần phải đặt LD_LIBRARY_PATH, xem thêm tại đây .