~ $ Đứng để làm gì?


27

Không đại diện ~$cho cái gì? Ví dụ:

user@ubuntu:~$

Cho đến nay tôi biết rằng $dấu hiệu là một biểu tượng cho một người dùng thông thường. Nếu tôi không nhầm root#lúc kết thúc.

Tôi cũng tìm thấy rất nhiều lệnh trong các diễn đàn bắt đầu bằng $:

$ sudo apt-get update 

Vì vậy, những gì $thực sự đứng cho?

EDIT (28.01.2014):

Hôm nay tôi đã xem qua video này hoàn toàn trả lời câu hỏi của tôi từ 8 tháng trước và quyết định chia sẻ nó ở đây :)

Khái niệm cơ bản về BASH - https://www.youtube.com/watch?v=x73WTEltyHU

Câu trả lời:


33

Các ~$là các phần tử của dấu nhắc dòng lệnh . Điều này chỉ ra rằng máy tính của bạn (hoặc chính xác hơn, tôi đoán, vỏ bạn đang chạy) đang chờ người dùng nhập liệu. Nó đang nhắc bạn nhập lệnh.

Đây $chỉ là một dải phân cách hoặc dải phân cách. Nó tách dấu nhắc lệnh ra khỏi lệnh theo sau nó. Khi mọi người viết những thứ như $ sudo apt-get update(ví dụ của bạn), họ chỉ cần nói với bạn rằng lệnh, trong trường hợp này sudo apt-get update, cần phải được nhập tại dấu nhắc lệnh. Nói đúng ra, có lẽ, $là dư thừa trong bối cảnh này.

Các dải phân cách khác có thể được sử dụng trong các tình huống khác. Ví dụ, #được sử dụng cho một vỏ gốc.

Các ~(gọi là 'dấu ngã') là viết tắt cho thư mục home của bạn. Khi nó xuất hiện trong một dấu nhắc lệnh, ví dụ user@hostame:~$, nó chỉ ra rằng thư mục làm việc hiện tại là thư mục chính của bạn. Do đó, nếu bạn chạy lệnh list ls, mà không chỉ định bất kỳ thư mục cụ thể nào, nó sẽ liệt kê nội dung của thư mục chính của bạn.

(Nhân tiện $HOME, không phải là một lệnh, như bạn đề xuất, mà là một biến môi trường . Nó xác định vị trí của thư mục chính của bạn. Bạn có thể thấy giá trị của nó bằng cách chạy $ echo $HOME.)


10
@FEarBG Tôi nghĩ rằng câu trả lời này thất bại ở một khía cạnh nhỏ: lời nhắc hoàn toàn có thể tùy chỉnh và chỉ là một trang trí; bạn có thể quyết định có một dấu nhắc trống hoặc sử dụng bất kỳ ký hiệu nào bạn thích trong đó (ví dụ: trên máy tính của tôi, tôi đã thay thế $bằng `̃∴` làm ký hiệu nhắc nhở). Bạn có thể thay đổi lời nhắc thiết lập PS1biến môi trường theo ý thích của bạn.
Bakuriu

@Bakuriu Giả sử bash, tất nhiên. Vỏ khác có thể khác nhau.
CVn

1
"Nói đúng ra, có lẽ, $ là dư thừa trong bối cảnh này." - Có, đó là lý do tại sao chúng tôi thường muốn tránh $nếu không có nhu cầu về nó (ví dụ như có bản sao nhật ký hoặc ví dụ đầu ra).
user98085

12

Theo truyền thống, một dấu nhắc shell kết thúc bằng $,% hoặc #. Nếu kết thúc bằng $, thì điều này cho thấy lớp vỏ tương thích với vỏ Bourne (chẳng hạn như vỏ POSIX hoặc vỏ Korn hoặc Bash). Nếu kết thúc bằng%, điều này biểu thị vỏ C (csh hoặc tcsh). Nếu kết thúc bằng #, điều này cho biết trình bao đang chạy dưới dạng tài khoản siêu người dùng của hệ thống (root).

Nguồn : tại đây


trên một số hệ thống (cũ, thông thường), bạn có "#" ngay cả với tư cách là người dùng thông thường (có thể để giữ chân bạn ^^) ... tức là, một số vỏ cũ hơn không thay đổi biểu tượng nếu bạn đã root - vs- người dùng thường xuyên.
Olivier Dulac


10
  • ~ là viết tắt của thư mục nhà của bạn.
  • $nó là một dấu phân tách cho hệ thống của bạn, nó xuất phát từ lệnh \$từ trang man.

Vì vậy, nếu bạn tìm thấy một lệnh bắt đầu với $nó chỉ nói rằng không có gì cần được thêm vào trước đó.

user@ubuntu:~$

userlà tên người dùng mà bạn đã đăng nhập.
@chỉ để nói ở đây là một liên kết.
ubuntulà tên của hệ thống mà bạn đã đăng nhập.
:~nói rằng bạn đang ở trong userthư mục nhà bây giờ.
$xuất phát từ \$trình tự thoát trong $PS1. trang đàn ông.

Nhưng tất cả điều này có thể được thay đổi bằng cách đọc trong trang người đàn ông. Cảm ơn bạn @demure vì sự giúp đỡ.


2
Cụ thể, đó là một \$phần của $ PS1, được thiết kế để hiển thị $nếu không phải là root (nếu không nó sẽ #) trang man sử dụng
demure

@denure đã cập nhật câu trả lời của tôi, nếu bạn cảm thấy bạn có thể cải thiện nó, hãy làm như vậy.
Alvar

6

$ Ký vào cuối dấu nhắc trong thiết bị đầu cuối khi bạn thêm một lệnh giống như lệnh bạn đã hiển thị, không nhập vào $ khác, nó sẽ không hoạt động.

Vì vậy, $ sudo apt-get cập nhật

sẽ được gõ vào như:

sudo apt-get update 

Mong rằng sẽ giúp.

Chỉnh sửa

~ Là viết tắt của thư mục Home của bạn, do đó name@pc_name:~/Desktop$sẽ hiển thị rằng bạn đang ở trong thư mục Home> Desktop.


3
Có lẽ để cho thấy rằng bạn nên nhập lệnh tại dấu nhắc.
SimplySimon

4
Và cũng để phân biệt giữa một lệnh được chạy bởi người dùng bình thường (tại dấu nhắc $) so với root (dấu nhắc #).
coneslayer

@FEarBG: Đó là một quy ước tùy ý, không liên quan (theo như tôi biết) đối với việc sử dụng $để biểu thị một tên biến. Chỉ có rất nhiều ký tự có thể in có sẵn trên bàn phím. DOS và Windows sử dụng >theo lời nhắc, Unix thường sử dụng $hoặc %. Nó cho bạn biết "đây là một dấu nhắc" mà không lãng phí không gian trên màn hình của bạn (hoặc, trong những ngày xưa, mực và giấy).
Keith Thompson

Và tất nhiên, trong các biến môi trường DOS và Windows sử dụng %. Như bạn nói, nó chủ yếu là tùy tiện; có khá nhiều nhu cầu để trở thành một cái gì đó , nhưng nó không cần phải giống nhau ở mọi nơi (mặc dù nó sẽ rất tốt nếu có).
một CVn
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.