ຕົວແປ $ SHLVL ຖືກນໍາໃຊ້ເພື່ອບອກທ່ານວ່າທ່ານມີຈໍານວນຫອຍທີ່ທ່ານຢູ່. ຖ້າທ່ານສັບສົນໂດຍການນີ້ມັນຈະມີມູນຄ່າເລີ່ມຕົ້ນໃນຕອນເລີ່ມຕົ້ນ.
Shell ແມ່ນຫຍັງ?
ແກະໃຊ້ຄໍາສັ່ງແລະໃຫ້ພວກເຂົາກັບລະບົບປະຕິບັດການທີ່ກ່ຽວຂ້ອງເພື່ອປະຕິບັດ. ໃນລະບົບ Linux ສ່ວນໃຫຍ່, ໂຄງການຫອຍແມ່ນເອີ້ນວ່າ BASH (The Bourne Again Shell), ແຕ່ວ່າມີເຄື່ອງອື່ນໆທີ່ມີຢູ່ລວມທັງ C Shell (tcsh) ແລະ KORN shell (ksh).
ວິທີການເຂົ້າເຖິງ Linux Shell
ໂດຍທົ່ວໄປແລ້ວໃນຖານະເປັນຜູ້ໃຊ້ທ່ານພົວພັນກັບໂຄງການແກະໂດຍຜ່ານການນໍາໃຊ້ໂຄງການການສະແດງ ຢູ່ປາຍຍອດ ເຊັ່ນ XTerm, konsole ຫຼື gnome-terminal.
ຖ້າທ່ານກໍາລັງເຮັດວຽກຜູ້ຈັດການ windows ເຊັ່ນ Openbox ຫຼືສະພາບແວດລ້ອມ desktop ເຊັ່ນ GNOME ຫຼື KDE ທ່ານຈະຊອກຫາ emulator terminal ຈາກເມນູຫຼື dash. ໃນລະບົບຈໍານວນຫລາຍທາງລັດ CTRL ALT ແລະ T ຈະເປີດຫນ້າຕ່າງເປັນຕົ້ນ.
ນອກຈາກນັ້ນທ່ານສາມາດປ່ຽນໄປທີ່ tty (teletypewriter) ທີ່ໃຫ້ການເຂົ້າເຖິງໂດຍກົງກັບ shell shell ຄໍາສັ່ງ. ທ່ານສາມາດເຮັດໄດ້ໂດຍກົດ CTRL ALT ແລະ F1 ຫຼື CTRL ALT ແລະ F2 ແລະອື່ນໆ.
ລະດັບ Shell ແມ່ນຫຍັງ
ໃນເວລາທີ່ທ່ານດໍາເນີນການຄໍາສັ່ງໃນຫອຍທີ່ມັນເຮັດວຽກຢູ່ໃນບາງສິ່ງບາງຢ່າງທີ່ເອີ້ນວ່າລະດັບແກະ. ພາຍໃນຫອຍທີ່ທ່ານສາມາດເປີດແກະອື່ນເຊິ່ງເຮັດໃຫ້ມັນເປັນ subshell ຫຼືແກະທີ່ເປີດມັນ.
ດັ່ງນັ້ນແກະພໍ່ແມ່ຈະໄດ້ຮັບການພິຈາລະນາບາງທີຫີນຊັ້ນ 1 ແລະຫອຍເດັກຈະເປັນລະດັບ 2 ເປືອກ.
ວິທີການສະແດງລະດັບ Shell
ມັນຄວນຈະເປັນຄວາມແປກໃຈໂດຍອີງໃສ່ຫົວຂໍ້ຂອງບົດຄວາມວ່າວິທີທີ່ທ່ານສາມາດບອກໄດ້ທີ່ລະດັບແກະທີ່ທ່ານກໍາລັງແລ່ນຢູ່ແມ່ນໂດຍໃຊ້ຕົວແປ $ SHLVL.
ເພື່ອເບິ່ງລະດັບແກະທີ່ທ່ານກໍາລັງປະຕິບັດໃນປະເພດດັ່ງຕໍ່ໄປນີ້:
echo $ SHLVL
ແທນທີ່ຈະເປັນທີ່ຫນ້າສົນໃຈຖ້າຫາກວ່າທ່ານດໍາເນີນການຄໍາສັ່ງຂ້າງເທິງຢູ່ໃນປ່ອງຢ້ຽມຢູ່ປາຍຍອດທ່ານອາດຈະຕົກຕະລຶງເຫັນວ່າຜົນໄດ້ຮັບແມ່ນ 2.
ຖ້າວ່າທ່ານໃຊ້ຄໍາສັ່ງດຽວກັນໂດຍໃຊ້ tty ແລ້ວຜົນໄດ້ຮັບແມ່ນ 1.
ນີ້ແມ່ນຫຍັງທີ່ທ່ານອາດຈະຖາມ? ສະພາບແວດລ້ອມ desktop ທີ່ທ່ານກໍາລັງແລ່ນແມ່ນຖືກດໍາເນີນຢູ່ເທິງສຸດຂອງແກະ. ຫອຍນັ້ນຈະເປັນລະດັບ 1. ທຸກໆ window window ທີ່ທ່ານເປີດຈາກພາຍໃນ desktop ນັ້ນກໍ່ຕ້ອງເປັນລູກຂອງ shell ທີ່ເປີດສະພາບແວດລ້ອມ desktop ແລະດັ່ງນັ້ນລະດັບ shell ບໍ່ສາມາດເລີ່ມຕົ້ນຢູ່ໃນຈໍານວນອື່ນນອກເຫນືອຈາກ 2.
tty ບໍ່ໄດ້ໃຊ້ສະພາບແວດລ້ອມ desktop ແລະດັ່ງນັ້ນຈຶ່ງພຽງແຕ່ເປັນລະດັບ 1 shell.
ວິທີການສ້າງ Subshells
ວິທີທີ່ງ່າຍທີ່ສຸດທີ່ຈະທົດສອບແນວຄວາມຄິດຂອງການແກະສະຫຼັກແລະການຍ່ອຍແມ່ນມີດັ່ງນີ້. ເປີດຫນ້າຕ່າງປາຍທາງແລະພິມຕໍ່ໄປນີ້:
echo $ SHLVL
ດັ່ງທີ່ພວກເຮົາຮູ້ຈາກປ່ອງຢ້ຽມຢູ່ໃນລະດັບຕ່ໍາສຸດແມ່ນ 2.
ໃນປັດຈຸບັນຢູ່ໃນປ່ອງຢ້ຽມຢູ່ປາຍສຸດພິມຕໍ່ໄປນີ້:
sh
ຄໍາສັ່ງ sh ແມ່ນຢູ່ໃນຕົວຂອງມັນເອງເປັນຫີນທີ່ມີການໂຕ້ຕອບເຊິ່ງຫມາຍຄວາມວ່າທ່ານກໍາລັງໃຊ້ຫອຍພາຍໃນແກະຫຼືເປືອກ.
ຖ້າທ່ານປະເພດນີ້ອີກຄັ້ງ:
echo $ SHLVL
ທ່ານຈະເຫັນວ່າລະດັບແກະຖືກຕັ້ງຂື້ນ 3. ການດໍາເນີນການຄໍາສັ່ງ sh ຈາກພາຍໃນ subhell ຈະເປີດ subshell ຂອງ subshell ແລະດັ່ງນັ້ນລະດັບແກະຈະຢູ່ໃນລະດັບ 4.
ເປັນຫຍັງຂັ້ນ Shell ຈຶ່ງເປັນສິ່ງສໍາຄັນ?
ລະດັບແກະແມ່ນມີຄວາມສໍາຄັນໃນເວລາທີ່ຄິດກ່ຽວກັບຂອບເຂດຂອງຕົວແປທີ່ຢູ່ໃນສະຄິບຂອງທ່ານ.
ໃຫ້ເລີ່ມຕົ້ນດ້ວຍສິ່ງທີ່ງ່າຍດາຍ:
dog = maisie
echo $ dog
ຖ້າທ່ານດໍາເນີນການຄໍາສັ່ງຂ້າງເທິງໃນ shell shell ຄໍາແຕ່ຈະຖືກສະແດງຢູ່ໃນຫນ້າຕ່າງຂອງ terminal.
ເປີດແກະໃຫມ່ໂດຍການພິມຕໍ່ໄປນີ້:
sh
ຖ້າທ່ານດໍາເນີນການຄໍາສັ່ງນີ້ທ່ານຈະເຫັນວ່າບໍ່ມີຫຍັງຖືກສົ່ງກັບຄືນແທ້ໆ:
echo $ dog
ນັ້ນແມ່ນຍ້ອນວ່າຕົວປ່ຽນ $ dog ເທົ່ານັ້ນທີ່ມີຢູ່ໃນລະດັບ shell 2. ຖ້າທ່ານພິມ exit ເພື່ອອອກຈາກ subshell ແລະ run echo $ dog ອີກເທື່ອຫນຶ່ງ, ແຕ່ຄໍາຄໍານັ້ນຈະຖືກສະແດງອີກເທື່ອຫນຶ່ງ.
ມັນຍັງມີມູນຄ່າການຄິດກ່ຽວກັບພຶດຕິກໍາຂອງຕົວແປທົ່ວໂລກພາຍໃນຫອຍ.
ເລີ່ມຕົ້ນໃນປ່ອງຢ້ຽມສຸດທ້າຍແລະພິມຕໍ່ໄປນີ້:
export dog = maisie
echo $ dog
ຕາມທີ່ທ່ານຄາດຫວັງວ່າຄໍາເວົ້າແມ່ນຈະສະແດງອອກ. ຕອນນີ້ເປີດ subshell ແລະປະເພດ echo $ dog ອີກເທື່ອຫນຶ່ງ. ເວລານີ້ທ່ານຈະເຫັນວ່າຄໍາເວົ້າແມ່ນສະແດງເຖິງແມ່ນວ່າທ່ານຢູ່ໃນລະບົບຍ່ອຍ.
ເຫດຜົນສໍາລັບການນີ້ແມ່ນວ່າຄໍາສັ່ງການສົ່ງອອກໄດ້ເຮັດໃຫ້ຕົວປ່ຽນ $ dog ທົ່ວໂລກ. ການປ່ຽນແປງ $ dog variable ພາຍໃນ subshell ແມ້ວ່າທ່ານຈະນໍາໃຊ້ຄໍາສັ່ງສົ່ງອອກບໍ່ມີຜົນກະທົບກ່ຽວກັບ shells ຂອງມັນ.
ຫວັງວ່າຈາກນີ້ທ່ານສາມາດເຫັນວ່າຮູ້ລະດັບແກະທີ່ທ່ານກໍາລັງເຮັດວຽກຢູ່ມີຄວາມສໍາຄັນບາງຢ່າງໃນເວລາທີ່ຂຽນອັກສອນ.
ຕົວຢ່າງທີ່ຂ້າພະເຈົ້າໄດ້ມອບແມ່ນງ່າຍດາຍແຕ່ວ່າມັນເປັນເລື່ອງທີ່ເປັນປະໂຫຍດສໍາລັບ script shell ຫນຶ່ງທີ່ເອີ້ນວ່າ script shell ອື່ນເຊິ່ງມັນເອີ້ນວ່າ script shell ອື່ນອີກທັງຫມົດທີ່ເຂົາເຈົ້າໃຊ້ຢູ່ໃນລະດັບຕ່າງໆ. ຮູ້ວ່າລະດັບແກະມີຄວາມສໍາຄັນຫຼາຍ.