Apa itu PATH dan variabel lingkungan lainnya, dan bagaimana saya bisa mengatur atau menggunakannya?

341

Pertanyaan tentang

  • pengaturan variabel lingkungan
  • itu PATH

sangat umum di sini, dan dalam kebanyakan kasus jawabannya sangat mirip satu sama lain. Di masa depan akan menyenangkan untuk memiliki Q / A yang bagus untuk ini.

Jadi pertanyaannya adalah: Apa variabel lingkungan, seperti yang dapat dieksekusi PATH, dan bagaimana saya bisa mengubah dan menggunakannya pada sistem operasi utama?

Jawaban yang baik akan mencakup penjelasan sederhana tentang variabel lingkungan apa dan khususnya yang PATHberarti bagi OS, serta pedoman sederhana tentang cara mengatur dan membacanya sesuai dengan itu.

slhck
sumber
2
Bosan harus melakukannya secara manual setiap kali saya perlu, saya menulis beberapa entri registri untuk menambahkan entri menu konteks untuk AddToPath dan RemoveFromPath ke folder, menggunakan aplikasi gratis yang disebut pathed.exe. Berikut ini adalah tautan ke panduan lengkap: addictivetips.com/windows-tips/... Saya sekarang dapat dengan mudah menambahkan folder ke variabel PATH atau menghapusnya, tanpa harus mengedit file apa pun atau khawatir mengacaukan pemformatan variabel. . Semoga ini bisa membantu. =)
Haroon Q. Raja
1
Pada Windows ada jalan pintas untuk membuka properti Sistem yaitu. Control Panel -> System Tombol WIN pada keyboard + Pause / Break (WIN + Break). Ini sangat membantu dan mempercepat proses pengaturan variabel lingkungan baru di Win8 karena di sana Anda harus mengklik beberapa jendela di ui modern (Ya. Jika itu modern maka saya akan menumbuhkan kaktus di telapak tangan saya) yang sangat mengganggu. Tentu saja Anda dapat membuat skrip PowerShell atau menggunakan perintah setx dan jangan khawatir lagi tentang hal itu: D
termil0r
Di Windows 8, navigasi tercepat untuk mengubah sistem dan variabel lingkungan pengguna menggunakan pencarian. <kbd> Menangkan </kbd> + <kbd> W </kbd> memunculkan pencarian untuk semua pengaturan. Cari envdan opsi yang diperlukan terdaftar.
FRIdSUN
Saya pikir ini lebih cepat dan lebih jelas dengan membuka CMDdan mengetik set, atau PowerShellmengetik Get-Childitem env:.
paradroid
Jika Anda sering mengedit variabel path (seperti ketika menyiapkan sistem baru), mungkin ada baiknya Anda memiliki pintasan ke dialog System Properties pada desktop. Untuk melakukannya, klik kanan pada desktop, pilih Shortcut Baru, dan masukkan systempropertiesadvanced.exe. Kemudian Anda bisa mengklik tautan untuk menuju ke dialog System Properties, lalu klik pada Variabel Lingkungan untuk mendapatkan dialog dengan pengaturan jalur.
Brian Burns

Jawaban:

334

Apa itu Variabel Lingkungan?

Variabel lingkungan menyimpan nilai yang terkait dengan lingkungan saat ini, seperti Sistem Operasi atau sesi pengguna.

Path

Salah satu yang paling terkenal disebut PATHpada Windows, Linux dan Mac OS X. Ini menentukan direktori di mana program yang dapat dieksekusi * terletak pada mesin yang dapat dimulai tanpa mengetahui dan mengetikkan seluruh path ke file pada baris perintah . (Atau di Windows, dialog Run di Start Menu atau Win+ R).

Di Linux dan Mac OS X, biasanya menyimpan semua bindan sbindirektori yang relevan untuk pengguna saat ini. Pada Windows, ini berisi setidaknya direktori C:\Windowsdan C:\Windows\system32- itulah sebabnya Anda dapat menjalankan calc.exe atau notepad.exedari baris perintah atau dialog Run , tetapi tidak firefox.exe. (Firefox terletak di C:\Program Files\Mozilla Firefox. Untuk informasi tentang cara memasukkan Firefox, buka di sini .)

Misalnya, mengetik calc(yang .exe bisa dihilangkan) di baris perintah pada Windows akan memulai Kalkulator Windows.

* Anda dapat menambahkan dukungan untuk ekstensi file selain .exedengan mengedit %PATHEXT%.

Lain

Variabel lain mungkin memberi tahu program jenis terminal apa yang digunakan ( TERMdi Linux / Mac OS X), atau, di Windows, di mana folder Windows berada (mis., %WINDIR%Adalah C:\Windows).

Membuat variabel lingkungan baru

Di Windows, Linux dan Unix, dimungkinkan untuk membuat variabel lingkungan baru, yang nilainya kemudian tersedia untuk semua program saat diluncurkan.

Anda dapat menggunakan ini saat menulis skrip atau program yang diinstal atau disebarkan ke beberapa mesin dan perlu referensi nilai yang khusus untuk mesin ini. Sementara efek yang sama dapat dicapai dengan menggunakan pengaturan konfigurasi khusus program, lebih mudah untuk melakukan ini menggunakan variabel lingkungan jika beberapa program perlu mengakses nilai yang sama.

 

Windows

GUI

  1. Terbuka Control Panel » System » Advanced » Environment Variables.

  2. Ketik control sysdm.cpl,,3dialog Run ( Win+ R) dan klik Environment Variables.
    Untuk mengedit variabel pengguna, Anda juga dapat mengetik

    %windir%\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables
    

    dalam dialog Run.

  3. Klik kanan (My) Computer dan klik Properties, atau cukup tekan Win+ Break.

    • Di XP klik Advanced » Environment Variables.
    • Di Vista + klik Advanced system settings » Environment Variables.
  4. Ada banyak cara lain untuk mencapai tempat yang sama, seperti dengan mengetikkan "variabel lingkungan" di kotak pencarian Start Menu / Layar dan sebagainya.

Variabel lingkungan di Windows dipisahkan menjadi nilai spesifik pengguna dan mesin / sistem. Anda dapat melihat dan mengedit nilainya di sana. Nilai saat ini pada saat peluncuran tersedia untuk semua program.

Ada juga Rapid Environment Editor , yang membantu pengaturan dan perubahan variabel lingkungan di Windows tanpa perlu masuk jauh ke pengaturan sistem. Program open source lain untuk Windows yang dengannya lingkungan path dapat diedit dengan sangat mudah adalah Path Editor .

Garis komando

Format

Variabel Lingkungan di Windows dilambangkan dengan tanda persen (%) di sekitar nama:

%name%

gema

Untuk menampilkan nilai variabel lingkungan di cmd.exe, ketik echo %name%.

C:\>echo %USERPROFILE%
C:\Users\Daniel

set

Untuk membuat / mengatur variabel, gunakan set varname=value:

C:\>set FunnyCatPictures=C:\Users\Daniel\Pictures\Funny Cat Pictures

C:\>set FunnyCatPicturesTwo=%USERPROFILE%\Pictures\Funny Cat Pictures 2

Untuk menambahkan / menambahkan variabel, gunakan set varname=value;%varname%:

C:\>set Penguins=C:\Linux

C:\>set Penguins=C:\Windows;%Penguins%

C:\>echo %Penguins%
C:\Windows;C:\Linux

Variabel lingkungan yang diatur dengan cara ini tersedia untuk (sisa) durasi proses Command Prompt di mana mereka ditetapkan, dan tersedia untuk proses yang dimulai setelah variabel ditetapkan.

setx

Untuk membuat / mengatur variabel secara permanen , gunakan setx varname "value":

C:\>setx FunnyCatPictures "C:\Users\Daniel\Pictures\Funny Cat Pictures"

[Restart CMD]

C:\>echo %FunnyCatPictures%
C:\Users\Daniel\Pictures\Funny Cat Pictures

Tidak seperti set, tidak ada tanda sama dengan dan nilainya harus diapit dengan tanda kutip jika mengandung spasi. Perhatikan bahwa variabel dapat diperluas ke string dengan spasi (misalnya, %PATH%menjadi C:\Program Files), jadi yang terbaik adalah menyertakan tanda kutip di sekitar nilai yang berisi variabel apa pun.

Anda harus secara manual menambahkan setxke versi Windows lebih awal dari Vista.
Alat Dukungan Windows XP Paket Layanan 2

Daftar Variabel Lingkungan Windows

Berikut adalah daftar variabel lingkungan default , yang dibangun ke dalam Windows. Beberapa contoh adalah: %WINDIR%, %SystemRoot%, %USERPROFILE%, dan %APPDATA%. Seperti kebanyakan nama di Windows, ini tidak peka huruf besar-kecil.

 

Turunan Unix (FreeBSD, GNU / Linux, OS X)

Variabel Lingkungan di Linux diawali dengan tanda dolar ($) seperti $ HOME atau $ HOSTNAME. Banyak variabel terkenal dan standar dijabarkan dalam huruf kapital untuk menandakan hal itu. Ingatlah bahwa nama variabel peka huruf besar kecil, artinya $ User dan $ USER sama sekali tidak terkait dari sudut pandang shell.

Derivatif Unix mendefinisikan variabel lebar sistem dalam skrip shell yang sebagian besar berada di /etcfolder, tetapi nilai spesifik pengguna dapat diberikan kepada variabel tersebut dalam skrip yang terletak di folder home (misalnya /etc/profile,, $HOME/.bash_profile). The .profilefile dalam folder rumah adalah tempat umum untuk mendefinisikan variabel pengguna.

Pengaturan variabel

File-file ini adalah skrip shell biasa dan dapat berisi lebih dari sekedar deklarasi variabel lingkungan. Untuk mengatur variabel lingkungan, gunakan export. Untuk menunjukkan variabel lingkungan yang Anda tentukan saat ini di terminal, jalankan env.

The exportperintah adalah cara standar untuk mendefinisikan variabel. Sintaksnya sangat intuitif. Hasilnya identik untuk dua baris ini, tetapi alternatif pertama lebih disukai dalam hal portabilitas ke shell Bourne pra-POSIX diperlukan.

var=value; export var
export var=value

C shell dan turunannya menggunakan sintaks yang sama sekali berbeda; di sana, perintahnya adalah setenv.

Lihat proyek dokumentasi Linux, Path HOWTO untuk diskusi yang lebih menyeluruh tentang topik ini.

Mungkin bertentangan dengan kepercayaan umum, OS X lebih "Unix" dari Linux. Selain file yang telah disebutkan, $ PATH dapat dimodifikasi dalam file ini:

  • /etc/pathsberisi semua direktori default yang ditambahkan ke path, seperti /bindan /usr/sbin.
  • File apa saja /etc/paths.d- biasanya digunakan oleh penginstal untuk membuat file yang dapat dieksekusi yang mereka sediakan tersedia dari shell tanpa menyentuh file konfigurasi khusus sistem atau pengguna. File-file ini hanya berisi satu jalur per baris. misalnya, / Program / Mozilla / Kalender / bin.

 

Tautan Eksternal:

Variabel Lingkungan di XP
Windows XP Paket Layanan 2 Alat Pendukung (Termasuk setx)
Variabel Lingkungan di Windows Vista dan Windows 7
Menambahkan executable ke Run Dialog Box
Tips Mac OSX - Mengatur Variabel Lingkungan
TLDP: Path Howto

Daniel Beck
sumber
10
Pada Windows Vista dan seterusnya, Anda dapat menggunakan SETXuntuk membuat perubahan permanen. Ini memiliki sintaks yang sedikit berbeda. SETXharus ditambahkan dari Windows Server 2003 Resource Kituntuk versi sebelumnya NT.
paradroid
1
@paradroid Bagus, tidak tahu itu (bukan pengguna Windows). Topik ini adalah wiki komunitas, Anda dapat melanjutkan dan hanya mengedit informasi itu.
Daniel Beck
2
@ JdeBP Judul bagian dimaksudkan untuk referensi cara mengatur nilai-nilai ini pada antarmuka pengguna , yang disebut shell pada Windows, berbeda dengan bagian berikut, antarmuka baris perintah . Saya mengedit ini bahkan sebelum saya melihat komentar Anda 10 jam yang lalu. Tidak ada yang pernah menyebutkan bahwa ini hanya berlaku untuk Explorer.
Daniel Beck
1
@ JdeBP Jawaban yang Anda tautkan tidak benar-benar berlaku dalam kasus ini, karena Anda berbicara tentang pengaturan nilai dalam registri. Pengaturan melalui dialog akan menyiarkan yang WM_SETTINGCHANGEsaya bayangkan, dan karena itu memberi tahu pihak yang tertarik tentang nilai-nilai baru. Itu sebabnya saya bertanya bagaimana ini diterapkan di sini. Membuat sesuatu yang berani tidak mengubah artinya dan juga tidak membuatnya lebih mudah untuk dipahami, seperti mengulangi kalimat yang sama, hanya lebih keras. Juga, saya mengedit posting ini beberapa jam yang lalu untuk secara khusus menyebutkan bahwa nilai-nilai yang diterima proses ditetapkan ketika mereka diluncurkan.
Daniel Beck
3
@ JdeBP Anda mungkin juga memperhatikan bahwa pertanyaannya sifatnya agak mendasar. Hati-hati menjelaskan seluk-beluk bagaimana perubahan terhadap variabel lingkungan didistribusikan (serius, WM_SETTINGCHANGE"Windows API? Ini bukan pemirsa pertanyaan ini!) Mungkin bukan ide yang baik, karena mungkin membingungkan pembaca, bukan menjelaskan tentang apa variabel-variabel ini tentang .
Daniel Beck
64

Posting ini dari sudut pandang yang lebih teknis daripada Daniel, tetapi tidak menjelaskan banyak konsep.


The Artikel Wikipedia juga merupakan pada referensi yang sangat baik.

Linux dan sebagian besar BSD

Di sebagian besar shell baris perintah, variabel lingkungan sementara diatur menggunakan perintah export(sh, bash, zsh) atau setenv(csh, tcsh).

  • Contoh untuk mengawali $HOME/binuntuk $PATHdi bash atau zsh:

    export PATH="$HOME/bin:$PATH"
    

    (Dalam kasus khusus ini, exporttidak perlu karena PATHsudah menjadi bagian dari lingkungan.)

  • csh, tcsh:

    setenv PATH "$HOME/bin:$PATH"
    

Variabel lingkungan yang persisten dapat diatur selama beberapa tahap terpisah:

  • Gabung:

    • Pengaturan sesi login: Linux pam_env, yang biasanya dibaca dari/etc/environment

    • Terminal login: File "profil" shell.

      • bashmenggunakan /etc/profiledan yang pertama dari: ~/.bash_profile, ~/.bash_login, ~/.profile. Doabash(1) bagian halaman manual .

        Seringkali, file profil pengguna menyertakan panggilan eksplisit ~/.bashrcjuga.

      • zsh: zsh(1)Bagian halaman manual File startup / shutdown .

      • csh dan cangkang lainnya: Lihat halaman manual yang sesuai.

    • Login grafis: Tidak yakin; dapat bervariasi tergantung pada manajer login. GDM tampaknya membaca ~/.profiledi sistem saya.

  • Pembukaan jendela terminal:

    • bashmenggunakan /etc/bash.bashrcdan ~/.bashrc.

Seri Windows NT

  • Di Command Prompt ( cmd.exe), gunakan set name=valueuntuk mengubah variabel lingkungan untuk jendela itu.

    Untuk menambahkan c:\binke %PATH%, gunakan:

    set path=%path%;c:\bin
    

    Ini hanya memengaruhi cmd.exeproses itu, dan setiap proses baru diluncurkan darinya.

  • Untuk membuat perubahan terus-menerus, gunakan Panel Kontrol → Sistem → Lanjutan → Variabel Lingkungan . ( docs )

    Catatan: Ketika pengaturan pengguna biasanya menimpa yang sistem, PATHvariabel ditangani secara khusus: pengaturan sistem dan pengguna digabungkan ke dalam nilai akhir.

    Perubahan disimpan ke Registri (lihat di bawah), dan langsung diterapkan ke semua proses baru yang dibuat oleh Explorer (shell grafis), misalnya, melalui Start Menu.

  • Variabel lingkungan sistem-lebar disimpan dalam Registry HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment,, dan dimuat saat boot sistem.

    Lingkungan pengguna disimpan HKCU\Environmentdan dimuat selama login pengguna.

  • Secara default, sistem juga mencari setperintah dalam AUTOEXEC.NTfile.

MS-DOS, Windows 16-bit, seri Windows 9x

  • Di MS-DOS Prompt ( command.com), gunakan set name=value, seperti di WinNT.

    Demikian pula, menjalankan secara setinteraktif hanya memengaruhi satu command.cominstance, bersama dengan setiap proses baru yang diluncurkan darinya.

  • Untuk membuat perubahan terus-menerus, tambahkan atau edit setbaris yang sesuai C:\AUTOEXEC.BAT, lalu reboot.

    • Solusi untuk menghindari memulai kembali, untuk Windows 9x: buka jendela MS-DOS Prompt, atur variabel yang sesuai, tutup proses Explorer yang ada ( Mulai → Matikan → sambil menahan Ctrl + Shift, klik Batalkan ), jalankan explorer.exedari jendela MS-DOS Prompt .

VMS

(Tidak bisa menahan.)

DCL tidak memiliki konsep "jalan", tetapi berbagai simbol dan definisi perintah dapat dimasukkan SYS$LOGIN:LOGIN.COM.

grawity
sumber
2
Bagian VMS salah. DCL memiliki DCL$PATHuntuk " perintah asing otomatis ".
JdeBP
9

Untuk variabel lingkungan global bashshell PATH(non-terminal), saya mengikuti konvensi yang digunakan dalam instalasi Ubuntu VM saya - shell lain akan bervariasi:

Peringatan: Seluruh urutan pengaktifan shell, yang mana .bashrc, .profiledll. Diambil dari urutan yang mana ?, kapan saya harus login ulang untuk mendapatkan visibilitas ke variabel yang baru didefinisikan, alias, dll ?, apa perbedaan antara login , shell interaktif, dan non-interaktif - saya menggunakan cron?, dan mengapa ketika saya melakukan a . ~/.bashrcadalah PATHvariabel bodoh saya tumbuh lebih lama dan lebih lama? adalah pertanyaan kunci yang muncul ketika saya memikirkan PATHvariabel saya .

Bahkan, saya baru saja sepenuhnya menulis ulang seluruh set file startup bash saya mengambil ide dari Ubuntu dan file kerangka cygwin, dan berikut adalah beberapa situs saya di:

  1. Ekspor PATHdan variabel lingkungan global lainnya (yaitu LD_LIBRARY_PATH) variabel dalam .profile;
  2. Gunakan logika ~/.profileuntuk sumber $HOME/.bashrcjika ada;
  3. Eksekusi pagar ~/.bashrcdengan tes untuk eksekusi interaktif, keluar sebaliknya;
  4. Letakkan semua alias, shopt's, pengaturan cepat, kontrol riwayat, pengaturan terminal, definisi fungsi, dll. (Pengaturan terkait interaktif) di bagian ~/.bashrcyang dilindungi agar hanya berjalan dalam mode interaktif;
  5. Singkirkan file startup bash lainnya, karena keberadaannya menentukan apakah jalur kontrol berjalan .profiledan .bashrcberfungsi seperti yang diharapkan. Yaitu, kecuali ada persyaratan khusus untuk melakukan sebaliknya, hapus ~/.bash_profile& ~/.bash_login;
  6. Ketika saya berada di bash prompt, dan saya perlu memperbarui beberapa pengaturan default, saya mengedit ~/.bashrcfile saya , kemudian cukup sumber dengan a . ~/.bashrcuntuk mendapatkan perubahan-perubahan di shell saya saat ini.
  7. Ketika saya membuat perubahan ke variabel lingkungan seperti PATH, saya perlu memodifikasi dan sumber saya ~/.profile;
  8. Saya melakukan panggilan ke fink, port, dan membuat setup khusus .profile.

Itu 2 sen saya pada topik ini.

Billy McCloskey
sumber
7

T: Apa itu Variabel Lingkungan?

A: Variabel Lingkungan mirip dengan variabel dalam bahasa pemrograman apa pun. Dalam kasus sistem Windows atau Unix mereka menyimpan berbagai nilai untuk memungkinkan program dan tugas mendapatkan informasi OS yang diperlukan atau informasi 'Lingkungan'. Sebagai contoh:

USERPROFILE: direktori pengguna di dalam file OS.

MAIL: tempat surat pengguna dapat ditemukan dalam file OS.

T: APA variabel PATH secara spesifik?

A: Variabel PATH menetapkan jalur direktori untuk melihat ketika perintah dijalankan, baik untuk perintah RUN, dan untuk panggilan internal dari program. Ini mencegah program dari perlu mengetahui lokasi instalasinya untuk memanggil proses yang dapat dieksekusi lainnya.

Itu terlihat ke variabel PATH Sistem Lingkungan Windows dan menguji setiap lokasi untuk executable yang diberikan. Dengan demikian menambahkan lokasi ke variabel PATH memungkinkan executable dipanggil secara langsung.

Menurut artikel Wikipedia ini :

Ketika sebuah perintah dimasukkan dalam shell perintah atau panggilan sistem dibuat oleh program untuk menjalankan program, sistem pertama-tama mencari direktori kerja saat ini dan kemudian mencari path, memeriksa setiap direktori dari kiri ke kanan.


T: BAGAIMANA cara menambahkan lokasi ke variabel PATH?

A: Anda perlu mengedit string variabel dari variabel PATH Variabel Lingkungan untuk memasukkan lokasi Anda yang dapat dieksekusi.

Salah satu cara untuk melakukannya dijelaskan di sini :

  1. Buka Start Menu dan klik kanan pada Computer. Pilih Properties.
  2. Pilih Pengaturan sistem lanjutan.
  3. Di tab Lanjut, pilih Variabel Lingkungan.
  4. Pilih EDIT atau BARU. (untuk PATH Anda kemungkinan besar ingin MENGEDIT).
  5. Tambahkan jalur lokasi Anda. misalnya:C:\wamp\bin\php\php5.5.12;

Saya harap ini menjelaskan beberapa kebingungan.

pengguna945389
sumber