Điều đó có nghĩa gì khi có một dấu trừ là ký tự đầu tiên của lệnh trong đầu ra htop?


24

Trong htop hoặc các lệnh khác hiển thị trạng thái quy trình, tất cả các quy trình bash có trong cột lệnh

/bin/bash

nhưng một quá trình có trong cột lệnh

-bash

Nó có nghĩa là gì?


5
Điều đó không cụ thể htop, đó là cụ thể bash. Nó có nghĩa là nó là một vỏ đăng nhập.
jordanm

3
@jordanm Không cụ bashthể, các shell khác cũng làm như vậy.
lcd047

Câu trả lời:


30

Một dấu trừ trước tên lệnh là một quy ước mà các chương trình đăng nhập sử dụng để bắt đầu các shell đăng nhập. Một chương trình đăng nhập là một chương trình mà bạn thường gõ mật khẩu của bạn và bắt đầu một phiên làm việc cho bạn, chẳng hạn như login, sudo -i, su -, sshd, vv Một đăng nhập vỏ là vỏ ban đầu của một phiên chế độ văn bản.

Thông thường, khi một chương trình gọi một chương trình khác, nó sẽ chuyển tên của chương trình thành đối số 0; đối số dòng lệnh được đánh số bắt đầu từ 1. Ví dụ: khi bạn chạy cp foo bar, tệp này thực thi tệp thực thi được đặt tại /bin/cp(trên các hệ thống điển hình) và chuyển cpnhư đối số 0, foolàm đối số 1 và barlàm đối số 2. Quy ước thông thường là sử dụng tên cơ sở của tệp thực thi dưới dạng đối số 0. Khi một chương trình đăng nhập gọi shell, nó vi phạm quy ước này và đặt dấu gạch nối phụ trước tên chương trình. Vỏ hiểu điều này thay thế Công ước và bộ mọi thứ lên một cách thích hợp cho một vỏ đăng nhập, thường đọc một tập tin khởi tạo như ~/.profile, ~/.login, ~/.bash_profile, vv tùy thuộc vào vỏ.

Xem thêm Sự khác biệt giữa Shell đăng nhập và Shell không đăng nhập?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.