Cara membuat file dan memasukkan garis di dalamnya menggunakan terminal OS X

22

Bagaimana saya bisa melakukan hal berikut menggunakan terminal pada OS X?

Buat file bernama .inputrcdi direktori home pengguna dan letakkan baris ini di dalamnya:

set completion-ignore-case On

GGbro
sumber

Jawaban:

31

Jawaban cepat

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

Penjelasan

Pertama, buat file:

touch ~/.inputrc

Kemudian, tambahkan konten ke file:

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

touchmembuat file kosong (dengan asumsi bahwa ~/.inputrcfile tersebut belum ada). echomenulis teks ke "output standar" ("stdout" singkatnya), yang biasanya layar Anda, tetapi karena pengalihan ( >>), output diarahkan ke ~/.inputrc. Pengaturan ini akan menambahkan baris ke file.

Jika ~/.inputrcsudah ada dan Anda ingin menghapus (clobber) isinya, dan kemudian menulis baris ke dalamnya (yaitu, membuat file dengan hanya baris teks ini), lakukan:

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

Tanda panah tunggal ( >), alias "lebih besar dari", memberi tahu echountuk membuat file dengan hanya teks yang diberikan sebagai isi file, alih-alih menulis konten ke akhir file. (Sebenarnya, echotidak membuat file; shell membuat file, membuang semua konten yang ada, dan echoperintah menulis konten baru.)


Jika Anda menggunakan pendekatan pertama (dengan >>) dan Anda menemukan bahwa garis yang Anda tambahkan dihancurkan ke baris sebelumnya, misalnya,

beberapa barang di sini
beberapa hal lagi di sini diatur selesai-abaikan-case On

maka Anda perlu mengedit file untuk memperbaikinya. Ini akan terjadi jika baris terakhir dari file yang sudah ada berakhir dengan karakter teks daripada karakter "baris baru" (yaitu, penanda garis akhir). Ini umum untuk .TXTfile di Windows, tetapi jarang di * nix.

Jika Anda entah bagaimana menyadari sebelumnya bahwa .inputrcfile Anda memiliki konten yang sudah ada sebelumnya yang tidak berakhir dengan baris baru, maka Anda harus menggunakan echopernyataan ini sebagai gantinya:

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

The \nsebelum kalimat ditafsirkan sebagai karakter baris baru, sehingga baris baru ditambahkan setelah isi sebelumnya dan sebelum barang baru yang ingin Anda tambahkan.

Atau, sedikit lebih banyak mengetik tetapi lebih mudah dibaca,

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

atau

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

yang melakukan hal yang sama; yaitu, berikan karakter baris baru yang hilang ke teks yang ada, dan kemudian tambahkan set completion-…perintah setelah itu.

Caleb Xu
sumber
1
Tidak ada alasan untuk menggunakan touchperintah di sini; echo "…" >> ~/.inputrcsudah cukup.
G-Man Mengatakan 'Reinstate Monica'
1
Kecuali jika file yang ingin Anda tambahkan tidak ada.
amrx
@ Harun: Tidak, echo "…" >> ~/.inputrcakan membuat file jika tidak ada. Kecuali untuk kasus patologis, seperti ~tidak ada, Anda tidak memiliki izin menulis ~, atau sistem file penuh; dan, dalam kasus seperti itu, touchtidak akan membantu.  touchbenar-benar berlebihan di sini.
G-Man Mengatakan 'Reinstate Monica'
4

Yang perlu Anda lakukan adalah:

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

echo cukup gema teks yang diberikan kepadanya melalui saluran output normal (stdout)

yang >>menulis output stdout dari perintah tangan kiri ke file tangan kanan, yang dalam kasus Anda adalah~/.inputrc

~/ sama dengan /home/your_username/

0x7a79
sumber