Cách tạo tệp và chèn một dòng trong đó bằng thiết bị đầu cuối OS X


22

Làm cách nào tôi có thể thực hiện các thao tác sau bằng thiết bị đầu cuối trên OS X?

Tạo một tệp có tên .inputrctrong thư mục nhà của người dùng và đặt dòng này vào đó:

set completion-ignore-case On

Câu trả lời:


31

Câu trả lời nhanh

touch ~/.inputrc
echo "set completion-ignore-case On" >> ~/.inputrc

Giải trình

Đầu tiên, tạo tập tin:

touch ~/.inputrc

Sau đó, thêm nội dung vào tệp:

echo "set completion-ignore-case On" >> ~/.inputrc

touchtạo một tệp trống (giả sử rằng ~/.inputrctệp chưa tồn tại). echoghi văn bản vào "đầu ra tiêu chuẩn" (viết tắt là "thiết bị xuất chuẩn"), thường là màn hình của bạn, nhưng do chuyển hướng ( >>), đầu ra được chuyển hướng đến ~/.inputrc. Thiết lập này sẽ nối dòng vào tệp.

Nếu ~/.inputrcđã tồn tại và bạn muốn xóa (ghi đè) nội dung của nó, sau đó viết dòng vào đó (nghĩa là tạo một tệp chỉ có dòng văn bản này), hãy làm:

echo "set completion-ignore-case On" > ~/.inputrc

Biểu tượng mũi tên đơn ( >), còn gọi là "lớn hơn", yêu echocầu tạo một tệp chỉ có văn bản đã cho làm nội dung của tệp, thay vì ghi nội dung vào cuối tệp. (Trên thực tế, echokhông tạo tệp; shell tạo tệp, loại bỏ bất kỳ nội dung hiện có nào và echolệnh ghi nội dung mới.)


Nếu bạn sử dụng cách tiếp cận đầu tiên (với >>) và bạn thấy rằng dòng bạn đã thêm bị nhòe trên dòng trước đó, ví dụ:

một số thứ ở đây
Một số nội dung khác ở đây thiết lập hoàn thành-bỏ qua trường hợp Bật

sau đó bạn cần chỉnh sửa tập tin để sửa nó. Điều này sẽ xảy ra nếu dòng cuối cùng của tệp tồn tại trước kết thúc bằng ký tự văn bản thay vì ký tự "dòng mới" (nghĩa là điểm đánh dấu cuối dòng). Điều này là phổ biến cho .TXTcác tệp trên Windows, nhưng hiếm trên * nix.

Nếu bạn bằng cách nào đó nhận ra trước rằng .inputrctệp của bạn có nội dung tồn tại trước đó không kết thúc bằng một dòng mới, thì bạn nên sử dụng echotuyên bố này thay thế:

echo -e "\nset completion-ignore-case On" >> ~/.inputrc

Các \ntrước khi cụm từ được hiểu như là một ký tự xuống dòng, vì vậy một dòng mới được thêm vào sau khi các nội dung trước và trước khi những thứ mới mà bạn muốn thêm vào.

Hoặc, gõ nhiều hơn một chút nhưng dễ đọc hơn nhiều,

echo "" >> ~/.inputrc
echo "set completion-ignore-case On" >> ~/.inputrc

hoặc là

(echo ""; echo "set completion-ignore-case On") >> ~/.inputrc

mà làm điều tương tự; tức là cung cấp ký tự dòng mới bị thiếu cho văn bản hiện có và sau đó thêm set completion-…lệnh sau đó.


1
Không có lý do để sử dụng touchlệnh ở đây; echo "…" >> ~/.inputrclà khá đủ
G-Man nói 'Phục hồi Monica'

1
Trừ khi tập tin bạn muốn thêm vào không tồn tại.
amrx

@Baron: Không, echo "…" >> ~/.inputrcsẽ tạo tệp nếu nó không tồn tại. Ngoại trừ các trường hợp bệnh lý, như ~không tồn tại, bạn không có quyền ghi ~hoặc hệ thống tệp đã đầy; và, trong những trường hợp như vậy, touchsẽ không giúp đỡ.  touchlà hoàn toàn thừa ở đây.
G-Man nói 'Phục hồi Monica'

4

Tất cả bạn cần làm là:

echo "set completion-ignore-case On" >> ~/.inputrc 

echo chỉ đơn giản lặp lại văn bản được cung cấp cho nó thông qua kênh đầu ra bình thường (thiết bị xuất chuẩn)

các >>ghi đầu ra stdout từ lệnh tay trái vào file bên hữu, mà trong trường hợp của bạn là~/.inputrc

~/ giống như /home/your_username/

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.