តើ Command Line ជាអ្វី?

មាតិកា

  1. និយាយជាមួយកុំព្យូទ័រជាអក្សរ
  2. Terminal, Shell, Command Line
  3. ហេតុអ្វីអ្នកអភិវឌ្ឍន៍នៅតែប្រើវា
  4. Shell ណាដែលមេរៀនស៊េរីនេះប្រើ
  5. ការបើក Terminal
  6. ការអាន Prompt
  7. វាមិនគ្រោះថ្នាក់ទេ (ភាគច្រើន)
  8. សាកល្បងដោយខ្លួនឯង

1. និយាយជាមួយកុំព្យូទ័រជាអក្សរ

ភាគច្រើន អ្នកបញ្ជាកុំព្យូទ័ររបស់អ្នកតាមរយៈ graphical user interface (GUI)៖ window, icon, ប៊ូតុង និងសញ្ញាព្រួញ mouse។ អ្នកបើក folder ដោយចុចពីរដងលើវា ហើយលុប file ដោយអូសវាទៅធុងសំរាម។

Command line គឺជាវិធីមួយទៀតដើម្បីធ្វើរឿងដដែលៗទាំងនោះ៖ អ្នក វាយ command មួយ ចុច Enter ហើយកុំព្យូទ័រធ្វើវា រួចបង្ហាញលទ្ធផលជាអក្សរ។ ជំនួសឲ្យការចុចពីរដងលើ folder អ្នកវាយ៖

cd Documents

ជំនួសឲ្យការបើក window របស់ folder ដើម្បីមើលអ្វីដែលនៅខាងក្នុង អ្នកវាយ៖

ls

ហើយទទួលបានបញ្ជីឈ្មោះមកវិញ៖

essay.docx    notes.txt    photos

នោះហើយជាគំនិតទាំងមូល។ គ្មានរូបភាព គ្មាន mouse — មានតែអ្នក និងកុំព្យូទ័រ ឆ្លើយឆ្លងគ្នាម្តងម្នាក់៖ អ្នកវាយ វាឆ្លើយ អ្នកវាយម្តងទៀត។

តាមពិត នេះគឺជាវិធីប្រើកុំព្យូទ័រ ចាស់ជាង។ មុនពេល graphical interface កើតមាននៅទសវត្សរ៍ 1980 ការវាយ command គឺជាវិធី តែមួយគត់។ GUI ត្រូវបានសាងសង់នៅពីលើវានៅពេលក្រោយ ហើយ command line មិនដែលបាត់ទៅណាទេ។

2. Terminal, Shell, Command Line

អ្នកនឹងឮពាក្យបីនេះត្រូវបានប្រើស្ទើរតែជំនួសគ្នាបាន។ ពួកវាទាក់ទងគ្នា ប៉ុន្តែមិនមែនជារឿងតែមួយទាំងស្រុងនោះទេ៖

  • Terminal គឺជា window — កម្មវិធីដែលបង្ហាញអក្សរ ហើយបញ្ជូនគ្រាប់ចុចដែលអ្នកវាយបន្តទៅទៀត។ Terminal លើ macOS, Windows Terminal និង GNOME Terminal លើ Linux សុទ្ធតែជា terminal។
  • Shell គឺជា កម្មវិធីដែលដំណើរការនៅខាងក្នុង window នោះ ដែលពិតជាយល់ពី command របស់អ្នក។ វាអានអ្វីដែលអ្នកវាយ ស្វែងយល់ថាអ្នកចង់បានអ្វី ដំណើរការកម្មវិធីដែលត្រឹមត្រូវ ហើយបង្ហាញ output ដល់អ្នក។ Bash, zsh និង PowerShell សុទ្ធតែជា shell។
  • Command line គឺជាគំនិតទូទៅនៃការបញ្ជាកុំព្យូទ័រដោយការវាយ command — គឺ interface ជាអក្សរខ្លួនវាផ្ទាល់។ គេក៏ហៅវាថា CLI (command-line interface) ផងដែរ។

វិធីល្អមួយដើម្បីស្រមៃមើល៖ terminal គឺជា ទូរស័ព្ទ shell គឺជា មនុស្សនៅម្ខាងទៀត ដែលយល់ភាសារបស់អ្នក ហើយ command line គឺជា ការសន្ទនា ដែលអ្នកកំពុងធ្វើ។

Shell មិនមែនជាវេទមន្តទេ — វាគ្រាន់តែជាកម្មវិធីធម្មតាមួយ ដូចកម្មវិធីដែលអ្នកបានជួបក្នុង របៀបដែលកុំព្យូទ័រដំណើរការ។ នៅពេលអ្នកវាយ ls shell ចាប់ផ្តើម child process ថ្មីមួយសម្រាប់កម្មវិធី ls ដែលសុំបញ្ជី file នៅក្នុង folder មួយពីប្រព័ន្ធប្រតិបត្តិការ ហើយសរសេរវាទៅ stdout — ដែល terminal របស់អ្នកបង្ហាញនៅលើអេក្រង់។

3. ហេតុអ្វីអ្នកអភិវឌ្ឍន៍នៅតែប្រើវា

បើ GUI អាចធ្វើរឿងដដែលៗបាន ហេតុអ្វីត្រូវរវល់វាយ? ព្រោះសម្រាប់អ្នកអភិវឌ្ឍន៍ command line ជាញឹកញាប់ លឿនជាង ច្បាស់លាស់ជាង និងជាជម្រើសតែមួយគត់៖

  • ឧបករណ៍ជាច្រើនមានតែ command line ប៉ុណ្ណោះ។ Git, Node.js, npm, Docker និងឧបករណ៍ framework ភាគច្រើន (npx create-next-app, nest new) ត្រូវបានរចនាឡើងដើម្បីដំណើរការដោយការវាយ command។ ជាញឹកញាប់គ្មានប៊ូតុងសម្រាប់ចុចទេ។
  • Server គ្មានអេក្រង់ទេ។ នៅពេលអ្នក deploy app មួយទៅ Linux server អ្នកភ្ជាប់ទៅវាតាមរយៈបណ្តាញ ហើយទទួលបាន terminal មួយ — គ្មាន desktop គ្មាន mouse។ គ្រប់ server របស់ក្រុមហ៊ុនដែលអ្នកនឹងធ្លាប់ប៉ះ ដំណើរការបែបនេះទាំងអស់។
  • វាអាចធ្វើឡើងវិញបាន។ Command មួយអាចត្រូវបានចម្លងទៅក្នុង README ផ្ញើទៅមិត្តរួមក្រុម ឬរក្សាទុកក្នុង script ហើយដំណើរការមួយពាន់ដង។ «ចុចត្រង់នេះ បន្ទាប់មកត្រង់នោះ បន្ទាប់មកចុចស្តាំ…» មិនអាចធ្វើបានដូច្នេះទេ។
  • វាពង្រីកបាន។ ការប្តូរឈ្មោះរូបថត 500 ដោយដៃ ចំណាយពេលមួយម៉ោង។ នៅលើ command line វាគ្រាន់តែមួយបន្ទាត់។
  • វាជាភាសារបស់ឯកសារណែនាំ។ មេរៀនស្ទើរតែទាំងអស់ — រួមទាំងគ្រប់មេរៀនស៊េរីផ្សេងទៀតនៅលើគេហទំព័រនេះ — ផ្តល់ការណែនាំជា command សម្រាប់វាយ។

អ្នកមិនចាំបាច់បោះបង់ GUI ទេ។ អ្នកអភិវឌ្ឍន៍ភាគច្រើនប្រើទាំងពីរពេញមួយថ្ងៃ៖ editor ដូចជា VS Code សម្រាប់សរសេរកូដ និង terminal មួយនៅក្បែរវាសម្រាប់ដំណើរការអ្វីៗ។

4. Shell ណាដែលមេរៀនស៊េរីនេះប្រើ

មាន shell ជាច្រើន ហើយពួកវាមិនមែននិយាយភាសាដូចគ្នាទាំងស្រុងនោះទេ៖

Shellកន្លែងដែលអ្នកនឹងរកឃើញវា
Bashលំនាំដើមលើប្រព័ន្ធ Linux និង server ភាគច្រើន
zshលំនាំដើមលើ macOS ចាប់តាំងពីឆ្នាំ 2019
PowerShellមានស្រាប់នៅក្នុង Windows

Bash និង zsh ប្រៀបដូចជាបងប្អូនជីដូនមួយជិតស្និទ្ធ៖ សម្រាប់អ្វីៗទាំងអស់ក្នុងមេរៀនស៊េរីនេះ ពួកវាដំណើរការដូចគ្នា ដូច្នេះ command ដែលអ្នករៀនអាចប្រើបានលើទាំងពីរ។ PowerShell ខុសគ្នា — វាមានឈ្មោះ command ផ្ទាល់ខ្លួន និងវិធីធ្វើការផ្ទាល់ខ្លួន។

មេរៀនស៊េរីនេះបង្រៀន Bash/zsh លើគ្រប់ប្រព័ន្ធប្រតិបត្តិការ រួមទាំង Windows។ មូលហេតុគឺសាមញ្ញ៖ វាជាអ្វីដែលអ្នកនឹងប្រើលើ server ក្នុង Docker container ក្នុង Git និងក្នុងមេរៀនស្ទើរតែទាំងអស់នៅលើអ៊ីនធឺណិត។ រៀនវាម្តង មានន័យថាវាប្រើបាននៅគ្រប់ទីកន្លែង។

អ្នកប្រើ Windows៖ អ្នកមិនចាំបាច់ប្តូរកុំព្យូទ័រទេ។ អ្នកនឹងដំណើរការ Bash shell ពិតប្រាកដលើ Windows ដោយប្រើ WSL ឬ Git Bash ដែលបង្ហាញនៅក្នុងផ្នែកបន្ទាប់។ នៅកន្លែងណាដែល PowerShell ធ្វើអ្វីមួយខុសគ្នាគួរឲ្យកត់សម្គាល់ អ្នកនឹងឃើញកំណត់ចំណាំខ្លីមួយដូចនេះ។

5. ការបើក Terminal

macOS

ចុច Cmd + Space ដើម្បីបើក Spotlight វាយ Terminal ហើយចុច Enter។ ឥឡូវនេះអ្នកនៅក្នុង zsh shell ហើយ។ គ្រាន់តែប៉ុណ្ណោះ — គ្មានអ្វីត្រូវដំឡើងទេ។

Linux

ចុច Ctrl + Alt + T លើ distribution ភាគច្រើន (រួមទាំង Ubuntu) ឬស្វែងរក Terminal ក្នុងបញ្ជីកម្មវិធីរបស់អ្នក។ អ្នកនៅក្នុង Bash shell ហើយ។

Windows៖ WSL (ណែនាំ)

WSL (Windows Subsystem for Linux) ដំណើរការប្រព័ន្ធ Linux ពិតប្រាកដមួយ — ជាមួយ Bash shell ពិតប្រាកដ — នៅខាងក្នុង Windows។ វាជិតបំផុតនឹងអ្វីដែលដំណើរការលើ server ហើយវាជាអ្វីដែលយើងណែនាំ។

  1. បើក Start menu វាយ PowerShell ចុចស្តាំលើវា ហើយជ្រើសរើស Run as administrator។

  2. ដំណើរការ command នេះ៖

    wsl --install
    
  3. Restart កុំព្យូទ័ររបស់អ្នក នៅពេលវាសុំឲ្យធ្វើ។

  4. បន្ទាប់ពី restart រួច window Ubuntu មួយនឹងបើកឡើង ហើយសុំឲ្យអ្នកជ្រើសរើស username និង password សម្រាប់ Linux។ ទាំងនេះដាច់ដោយឡែកពីគណនីចូល Windows របស់អ្នក។

នៅពេលអ្នកវាយ password គ្មានអ្វីលេចឡើងនៅលើអេក្រង់ទេ — គ្មានចំណុច គ្មានផ្កាយ។ នោះជារឿងធម្មតា ហើយជាចេតនា (វាលាក់ទាំងប្រវែងរបស់ password ផងដែរ)។ វាយវា ហើយចុច Enter។

ចាប់ពីពេលនោះតទៅ បើក Ubuntu ពី Start menu ឬបើក Windows Terminal ហើយជ្រើសរើស Ubuntu ពី drop-down នៅក្បែរ tab។

Windows៖ Git Bash (ជម្រើសផ្សេង)

បើ WSL មិនអាចដំឡើងលើម៉ាស៊ីនរបស់អ្នកបាន (កុំព្យូទ័រចាស់ៗ ឬកុំព្យូទ័រដែលត្រូវបានចាក់សោការកំណត់មួយចំនួន មិនអាចដំណើរការវាបានទេ) សូមដំឡើង Git for Windows ពី git-scm.com។ វាមកជាមួយ Git Bash ដែលជា Bash shell តូចជាងសម្រាប់ Windows។ យ៉ាងណាក៏ដោយ អ្នកនឹងត្រូវការ Git សម្រាប់មេរៀនស៊េរីបន្ទាប់ដែរ។

Git Bash ដំណើរការ command ស្ទើរតែទាំងអស់ក្នុងមេរៀនស៊េរីនេះ។ ភាពខុសគ្នាចម្បង៖ drive របស់ Windows លេចឡើងជា path ដូចជា /c/Users/dara ជំនួសឲ្យ C:\Users\dara។

6. ការអាន Prompt

នៅពេល shell រួចរាល់សម្រាប់ command មួយ វាបង្ហាញ prompt ហើយរង់ចាំ។ វាមើលទៅខុសគ្នាបន្តិចលើប្រព័ន្ធនីមួយៗ ប៉ុន្តែជាធម្មតាវាប្រាប់អ្នកពីរឿងបីដូចគ្នា៖

dara@laptop:~$
  • dara — អ្នកប្រើប្រាស់ (user) ដែលអ្នកកំពុង login
  • laptop — ឈ្មោះកុំព្យូទ័រ (មានប្រយោជន៍នៅពេលក្រោយ ពេលអ្នក login ចូល server ហើយត្រូវដឹងថាអ្នកកំពុងវាយលើម៉ាស៊ីន ណា)
  • ~ — folder ដែលអ្នកកំពុងនៅ៖ ~ គឺជាអក្សរកាត់សម្រាប់ home folder របស់អ្នក
  • $ — ចុងបញ្ចប់នៃ prompt៖ «ដល់វេនអ្នកហើយ»

លើ macOS ជាមួយ zsh prompt លំនាំដើមខ្លីជាង ហើយបញ្ចប់ដោយ % ជំនួសឲ្យ $៖

dara@MacBook-Air ~ %

បើអ្នកធ្លាប់ឃើញ # នៅចុងបញ្ចប់វិញ មានន័យថាអ្នកកំពុង login ជាអ្នកប្រើប្រាស់ root (អ្នកគ្រប់គ្រង) — សូមប្រុងប្រយ័ត្ន ព្រោះគ្មានអ្វីនឹងរារាំងអ្នកពីការកែប្រែ file របស់ប្រព័ន្ធឡើយ។ ជំពូកទី 10 ពន្យល់ពីរឿងនេះ។

ទម្លាប់មួយដែលប្រើក្នុងមេរៀនស៊េរីនេះ៖ code block បង្ហាញតែ command សម្រាប់វាយប៉ុណ្ណោះ ដោយគ្មាន prompt នៅពីមុខវា។ នៅពេលយើងបង្ហាញអ្វីដែល command បង្ហាញចេញ វានឹងលេចឡើងក្នុង block ដាច់ដោយឡែកមួយនៅខាងក្រោម។

7. វាមិនគ្រោះថ្នាក់ទេ (ភាគច្រើន)

អ្នកចាប់ផ្តើមដំបូងជាច្រើនភ័យខ្លាច terminal ហាក់ដូចជាគ្រាប់ចុចខុសមួយអាចធ្វើឲ្យកុំព្យូទ័រខូច។ វាមិនអាចទេ។ ស្ទើរតែអ្វីៗទាំងអស់ដែលអ្នកនឹងធ្វើ គឺគ្មានគ្រោះថ្នាក់ទេ៖ បើអ្នកវាយអ្វីមួយដែល shell មិនយល់ វាគ្រាន់តែប្រាប់អ្នកដូច្នោះ៖

zsh: command not found: lss

គ្មានអ្វីកើតឡើងទេ។ អ្នកកែកំហុសអក្ខរាវិរុទ្ធ ហើយសាកល្បងម្តងទៀត។

មានរឿងមួយចំនួនដែលពិតជាមានហានិភ័យ ហើយមេរៀនស៊េរីនេះនឹងចង្អុលបង្ហាញនីមួយៗឲ្យបានច្បាស់ នៅពេលវាលេចឡើង៖

  • ការលុប file ដោយប្រើ rm រំលងធុងសំរាម — គ្មានការ undo ទេ (ជំពូកទី 4)។
  • ការដំណើរការ command ជាអ្នកគ្រប់គ្រង ដោយប្រើ sudo ដករបាំងសុវត្ថិភាពចេញ (ជំពូកទី 10)។
  • ការបិទភ្ជាប់ command ពីគេហទំព័រចៃដន្យ ដែលអ្នកមិនយល់។

ទម្លាប់ដែលត្រូវកសាងគឺសាមញ្ញ៖ អាន command មុនពេលអ្នកចុច Enter ហើយបើអ្នកមិនដឹងថាវាធ្វើអ្វី សូមស្វែងរកវាជាមុនសិន (ជំពូកទី 2 បង្ហាញអ្នកពីរបៀប)។

8. សាកល្បងដោយខ្លួនឯង

  1. បើក terminal ដោយប្រើជំហានសម្រាប់ប្រព័ន្ធប្រតិបត្តិការរបស់អ្នក។ លើ Windows សូមរៀបចំ WSL (ឬ Git Bash បើ WSL មិនអាចដំឡើងបាន)។
  2. មើល prompt របស់អ្នក។ តើអ្នកអាចរកឃើញ username ឈ្មោះកុំព្យូទ័រ និង folder បច្ចុប្បន្ន របស់អ្នកទេ?
  3. វាយ whoami ហើយចុច Enter។ វាបង្ហាញ username របស់អ្នក — ប្រៀបធៀបវាជាមួយ prompt។
  4. វាយ ls ហើយចុច Enter។ អ្នកនឹងឃើញ file និង folder នៅក្នុង home folder របស់អ្នក។ បើក file manager របស់អ្នកទៅកាន់ home folder ហើយប្រៀបធៀប — វាជាបញ្ជីដូចគ្នា។
  5. វាយ command ដែលមិនមាន ដូចជា hello ហើយចុច Enter។ អានសារ error។ គ្មានអ្វីខូចទេ។

អ្នកបានបើក shell មួយ ហើយបានសន្ទនាលើកដំបូងជាមួយវា។ បន្ទាប់ សូមរៀនពីរបៀបដែល command មួយត្រូវបានផ្គុំឡើងពិតប្រាកដ។

ទិញកាហ្វេជូនខ្ញុំ

ចូលចិត្តមេរៀននេះមែនទេ? សូមពិចារណាទិញកាហ្វេជូនខ្ញុំមួយកែវ ដើម្បីគាំទ្រការបង្កើតមាតិកាឥតគិតថ្លៃបន្ថែមទៀត!