Lý do tại sao điều này xảy ra?
MacOS và Ubuntu được cấu hình khác nhau ngoài hộp để xử lý các bản sao trong lịch sử lệnh của bash. Các cấu hình này được lưu trữ trong một số cái gọi là " tệp chấm ". Chúng có dạng ~ / .bash * cũng như hệ thống rộng / etc / profile. Tất cả các tệp này có thể được tùy chỉnh theo ý thích của bạn và phân biệt giữa các vỏ tương tác, vỏ đăng nhập, vỏ từ xa, vv Các tệp này được đọc theo thứ tự cụ thể và phục vụ các chức năng cụ thể.
Làm thế nào để có được hành vi tương tự trên macOS?
Nếu bạn chỉ muốn cái này, một tùy chỉnh duy nhất là "bỏ qua các bản sao chính xác của dòng lệnh", bạn có thể đi với một cái gì đó giống như câu trả lời của Allan, tức là thêm một dòng duy nhất vào ví dụ tệp bash_profile của bạn. Không có "cách thích hợp" nhưng vô số lựa chọn.
Trong trường hợp đây không phải là tùy chỉnh duy nhất cho bash của bạn thì đây có thể không phải là lựa chọn tốt nhất:
Một vài lưu ý khác:
- Bất cứ điều gì nên có sẵn cho các ứng dụng đồ họa HOẶC để sh (hoặc bash được gọi là sh) PHẢI nằm trong ~ / .profile
- ~ / .bashrc không được xuất bất cứ thứ gì
- Bất cứ thứ gì chỉ có sẵn để đăng nhập shell nên vào ~ / .profile
- Đảm bảo rằng ~ / .bash_login không tồn tại.
Điều đó có nghĩa, khi mọi thứ trở nên phức tạp hơn nó là ý tưởng tốt để lây lan ra các tùy biến thành nhiều file, mỗi người trong số họ chuyên và trật tự cao trong nội dung của họ:
Tất cả exports
có thể nằm trong tập tin riêng của họ để giám sát đơn giản hóa.
Tạo một tệp được đọc bằng bash ở thư mục gốc của thư mục người dùng của bạn, ví dụ như được gọi .exports
có chứa:
# Omit duplicates and commands that begin with a space from history.
export HISTCONTROL='ignoreboth';
Điều này cần phải được "có nguồn gốc" để tập tin được đọc bằng bash khi khởi động tương tác:
Tìm nguồn cung cấp tệp
Nếu bạn có nhiều cấu hình shell, bạn có thể muốn tách chúng thành nhiều tệp con và sử dụng nguồn dựng sẵn để tải chúng từ .bashrc: bằng cách thêm source ~/.exports
vào nó.
Ngoài ra, để đảm bảo các tệp thực sự tồn tại trước khi tải
if [ -f ~/.exports ]; then
. ~/.exports
fi
Lệnh . ~/.exports
sẽ nguồn ~/.exports
trong bối cảnh của shell hiện đang chạy.
Điều này đặc biệt hữu ích để thêm bí danh, tệp riêng biệt giúp tải lại chúng dễ dàng hơn khi bạn thực hiện thay đổi.
zsh
và thậm chí xa hơn để tùy chỉnh zsh với các tập lệnh khác nhau.