Các kết quả khác nhau cho ls khi truy cập Ubuntu qua SSH từ các máy khách khác nhau (Windows-PuTTy, Mac-Terminal)


15

Hãy xem xét cấu trúc thư mục sau, được in ra màn hình bằng cách sử dụng ls -l "$dir"( $dirlà biến bash đứng cho một số thư mục trên cùng một máy chủ, tăng một vài cấp), trên máy chủ Ubuntu từ xa (chính xác hơn là Ubuntu 16.04.4 LTS (GNU / Linux 4.4 .0-116-chung x86_64)):

-rw-r--r-- 1 user group     12 Apr  2 12:34 FILE1
-rwxr--r-- 1 user group    287 Apr 23  2017 File_
-rw-r--r-- 1 user group      0 Apr 21  2017 file_1
-rw-r--r-- 1 user group    272 Apr  3 22:16 myFile
-rw-r--r-- 1 user group  47633 Apr 11 14:01 myFile.txt
-rw-r--r-- 1 user group  37030 Apr 11 14:16 myfile1
-rw-r--r-- 1 user group      0 Apr 11 21:23 nothing_here
-rw-r--r-- 1 user group      2 Apr 22  2017 small_file
-rwxr-x--- 1 user group 262529 Apr  8 15:31 story

Điều này đến từ MacBook và sử dụng thiết bị đầu cuối tích hợp và cài đặt bên ngoài ssh(OS X Phiên bản 10.13.3, như thiết bị đầu cuối cho tôi biết).

Hãy xem xét, so sánh, cùng một máy chủ được truy cập từ một máy Windows chạy PuTTy phát hành 0,70:

-rwxr--r-- 1 user group    287 Apr 23  2017 File_
-rw-r--r-- 1 user group      0 Apr 21  2017 file_1
-rw-r--r-- 1 user group     12 Apr  2 12:34 FILE1
-rw-r--r-- 1 user group    272 Apr  3 22:16 myFile
-rw-r--r-- 1 user group  37030 Apr 11 14:16 myfile1
-rw-r--r-- 1 user group  47633 Apr 11 14:01 myFile.txt
-rw-r--r-- 1 user group      0 Apr 11 21:23 nothing_here
-rw-r--r-- 1 user group      2 Apr 22  2017 small_file
-rwxr-x--- 1 user group 262529 Apr  8 15:31 story

Lưu ý cách sắp xếp khác nhau của 6 tệp đầu tiên trong mỗi hình ảnh.

Xem xét rằng các lệnh đang chạy trên máy chủ chứ không phải trên các máy khách, người ta sẽ không mong đợi sự khác biệt giữa hai đầu ra. Vậy lý do chúng không giống nhau là gì?

Chỉnh sửa 1: Như đã đề cập trong các nhận xét, tôi đã kiểm tra và thiết bị đầu cuối của Mac được đặt thành xterm-256colortrong khi Windows được đặt thành xterm. Thay đổi nhanh cài đặt của Mac thành xtermkhông có hiệu lực.

Chỉnh sửa 2: Như đã đề cập trong các nhận xét, tôi đã thử chạy whereis ls, cung cấp vị trí hợp lý mà bạn mong muốn tìm thấy ls- tức là bin/ls.

Chỉnh sửa 3: Loại bỏ các hình ảnh đầu cuối, trao đổi chúng cho mã được định dạng chính xác theo bài đăng meta này .

Chỉnh sửa 4: Đã thêm dấu ngoặc kép xung quanh "$dir"để ngăn chặn sự cố với dấu cách.


Hãy nhớ trích dẫn biến của bạn, do đó : ls -l "$dir". Nếu không có điều này, nếu tên thư mục chứa một khoảng trắng, bạn sẽ nhận được một kết quả vô nghĩa.
Paddy Landau

@PaddyLandau bạn nói đúng. Đã chỉnh sửa mà.
t0mgs

Câu trả lời:


30

Thứ tự sắp xếp được xác định bởi các biến địa phương LC_ALL, LC_COLLATELANG(theo thứ tự này, việc đầu tiên là mạnh nhất). Đây cũng là một vài trong số ít các biến thường có thể được đặt bởi máy khách ssh. Kiểm tra và so sánh các biến này. Bạn có thể muốn đặt chúng thành một giá trị được xác định rõ trên máy chủ (ví dụ: trong .bash_profile) hoặc đảm bảo rằng các máy khách ssh của bạn đặt cùng một giá trị nhất quán.


4

Điều cuối cùng có hiệu quả là phần phụ "Dừng chuyển tiếp địa điểm từ khách hàng" trong câu trả lời này . Chỉ cần bình luận ra SendEnv LANG LC_*dòng dưới Hosttrong tập tin địa phương /etc/ssh/ssh_config . Một số giải thích về những gì nó có thể được tìm thấy ở đây .

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.