ວິທີການແລະເປັນຫຍັງທ່ານຈະໃຊ້ຕົວແປ $ SHLVL

ຕົວແປ $ 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 ອື່ນອີກທັງຫມົດທີ່ເຂົາເຈົ້າໃຊ້ຢູ່ໃນລະດັບຕ່າງໆ. ຮູ້ວ່າລະດັບແກະມີຄວາມສໍາຄັນຫຼາຍ.