Lệnh cung cấp tên người dùng @ hostname: pwd


7

Tôi biết rằng pwdcung cấp cho thư mục làm việc hiện tại, hostnamecung cấp cho máy chủ hiện tại và whoamicung cấp cho người dùng hiện tại. Có một lệnh unix nào sẽ cho tôi đầu ra của

whoami@hostname:pwd

để tôi có thể nhanh chóng dán đầu ra vào một scplệnh?


2
echo $(whoami)@$(hostname):$(pwd)? Tại sao bạn cần điều này? Người dùng mặc định SSH / SCP mặc định cho người dùng hiện tại, thư mục làm việc mặc định vào thư mục chính nếu bị bỏ qua. Ít nhất bạn cần scp file.txt host:(nơi hostcó thể là tên DNS hoặc bí danh ~/.ssh/config)
Lekensteyn

Câu trả lời:


7

Không phải là một lệnh theo như tôi biết, nhưng đây là thứ bạn cần:

echo "$(whoami)@$(hostname):$PWD"

Bạn có thể biến nó thành bí danh bằng cách thêm dòng này vào rctệp shell của bạn ( ~/.bashrchoặc ~/.zshrchoặc bất cứ thứ gì bạn sử dụng):

alias foo='echo "$(whoami)@$(hostname):$PWD"'

Điều đó làm việc, cảm ơn bạn. Bạn có thể giải thích tại sao lệnh PWDlà trong mũ nhưng hostnamewhoamikhông? Tôi không chắc là tôi hiểu sự khác biệt và tôi nghĩ nó có thể quan trọng.
Móc vào

PWD là biến môi trường, được gọi là $PWD. Có rất nhiều biến môi trường khác (như $PS1, phần đầu tiên của dấu nhắc lệnh của bạn). Những người khác đang sử dụng $()cú pháp để sử dụng đầu ra của một lệnh tại chỗ. Đây là một tổng quan cơ bản, ít nhất, về sự khác biệt là gì. Khi bạn bắt đầu tiến sâu hơn vào dòng lệnh, và bắt đầu tạo bí danh và hàm và bash script, đó là thứ bạn sẽ học cách yêu thích. Tôi ước tôi có thể nghĩ về một số điều điên rồ tôi đã làm với điều này!
Cướp

@Rob Cảm ơn, tôi hiểu rồi, nhưng tại sao sử dụng $PWDlại $(pwd), không nên đầu ra luôn giống nhau? Là cái này tốt hơn cái kia hay đây chỉ là sở thích cá nhân?
Móc vào

@Hooked tốt, thành thật tôi nghi ngờ có nhiều sự khác biệt nhưng pwdchạy thêm một lệnh và tôi (nghĩ) sẽ tốn kém hơn so với truy vấn biến. Trong điều kiện thực tế sẽ không có sự khác biệt thực sự, sử dụng bất cứ điều gì bạn thích.
terdon

1
$(whoami)chạy lệnh whoami và sử dụng đầu ra, và $ PWD chỉ cần lấy một biến môi trường. Giảm bớt các quá trình ít hơn là tốt hơn cho tốc độ và hiệu suất, nhưng trong trường hợp này nó không thực sự tạo ra sự khác biệt. Nếu bạn làm điều printenvđó nên liệt kê tất cả các biến môi trường. Tôi có $ USER, vì vậy tôi có thể sử dụngecho "$USER@$(hostname):$PWD"
Rob
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.