shell là một loại chương trình dùng để chạy các chương trình khác.
Các shell phổ biến có thể kể đến
- sh
- bash
- zsh
- fish
- csh
- ksh
- powershell (Windows)
- ...
ra lệnh, hãy gõ lệnh (command) vào shell để nó thực thi các lệnh của bạn.
hvn@lappy ~> echo hello FAMILUG
hello FAMILUG
PATH là gì?
shell thực hiện gọi các chương trình khác, bạn gõ vào echo nó sẽ gọi đến chương trình echo nằm ở đường dẫn: /bin/echo , bạn gõ vào nano nó sẽ gọi đến /usr/bin/nano - nhưng không phải tự dưng mà shell biết tìm đường đến các chương trình này.
shell có chứa một biến tên là PATH (viết hoa), biến này chứa đường dẫn đến các thư mục chứa các chương trình, và khi bạn gõ lệnh, shell sẽ tìm trong các thư mục có trong PATH để tìm chương trình ứng với lệnh bạn vừa gõ.
kết quả của quá trình tìm kiếm này có thể thu được bằng câu lệnh which:
Các câu lệnh tương tự để tìm hiểu về các câu lệnh khác có thể tìm ở đây
hvn@lappy ~> which echo
/bin/echo
hvn@lappy ~> which nano
/usr/bin/nano
Bạn có thể xem PATH của mình chứa những đường dẫn nào:
hvn@lappy ~> echo $PATH
/home/hvn/bin /usr/local/bin /usr/bin /bin /usr/games
Làm sao biết mình đang dùng SHELL nào?
Dùng câu lệnh sau:
hvn@lappy ~> echo $SHELL
/usr/bin/fish
ở đây tớ đang dùng fish shell.
Sau khi đã nắm được khái niệm shell là gì, hãy tiếp tục tìm hiểu các câu lệnh khác
ở các bài viết CCGU trên FAMILUG
PS: khái niệm về shell không lấy từ wikipedia mà đưa ra theo ý hiểu của người viết, lấy từ nguyên bản từ document của fish shell:
"A shell is a program used to execute other programs."
Về cơ bản theo mình thấy, shell và terminal đều phải dùng một cửa sổ lệnh giống nhau, còn khác nhau về chức năng thì phải ?
ReplyDeleteHay Terminal là cửa sổ để thực hiện các command và trong đó có cả shell :D
terminal là một thiết bị đầu cuối tức thiết bị có thể hiện thị và cho phép nhập dữ liệu qua bàn phím. Nó là thiết bị của "ngày xưa" rồi. Ngày nay, các chương trình giả lập thiết bị terminal được gọi là virtual terminal (VT) và thường được gọi tắt là terminal.
Deleteshell là một loại chương trình dùng để chạy các chương trình khác.
VT sẽ chạy ngay 1 shell nào đó khi được mở.