Bagaimana saya bisa melihat lembar referensi atau cheat dari sintaks bash dasar, di terminal linux?

8

Setiap kali saya perlu melakukan sedikit bash scripting yang melibatkan pernyataan if, memeriksa variabel kosong dan file tidak ada et.c. Saya menemukan diri saya memukul google untuk beberapa bash manual atau panduan sederhana.

Seringkali ini terlalu lama dan rumit untuk dengan cepat menjawab pertanyaan yang saya miliki.

Jadi, saya berpikir bahwa harus ada beberapa perintah atau halaman manual yang mencakup sintaks bash dasar (untuk hal-hal seperti pernyataan if, memeriksa variabel kosong, file tidak ada dll) dengan cara yang singkat dan dapat diakses. Saya yakin saya belum menemukan perintah (man bash tampaknya bukan itu).

Di mana saya dapat menemukan itu?

Samuel Lampa
sumber
2
di bashAnda dapat mencobahelp
mikeserv
github.com/cirosantilli/bash-cheat
Ciro Santilli 冠状 病毒 审查 六四 六四 事件 法轮功

Jawaban:

13
  • man bash adalah referensi Bash kanonik.
  • help helpmemberi Anda bantuan di helpBash bawaan, dan bagaimana itu memberi Anda pesan bantuan singkat tentang bawaan Bash lainnya, seperti help for.
  • Greg's Wiki adalah tempat terbaik untuk menemukan bahan referensi langsung, ringkas, dan terkadang menghibur untuk hampir semua aspek Bash.
  • Jika Anda ingin cara cepat mencari sintaks, Anda bisa mengontrol versi.bash_history . Ada terlalu banyak perintah, sintaks parameter yang berbeda, seddan awkderau baris serta hal-hal lain yang harus diingat semuanya, jadi senang memiliki referensi pribadi yang "terawat" dengan tag untuk dicari.
l0b0
sumber
+1 untuk disebutkan help.
goldilocks
1
Terima kasih! Seperti yang disebutkan dalam jawaban @ polym, saya jelas menggunakan istilah pencarian yang salah di man bash ("jika pernyataan", "[-n" dll) tidak berhasil, dan saya pikir info itu tidak ada di sana. Mencari "ekspresi kondisional" adalah istilah pencarian yang tepat di sana.
Samuel Lampa
2
Saya memiliki jumlah cinta dan benci yang sama untuk saat ini ... 10 tahun ... tidak tahu helpada di sana. Begitu banyak man bashbacaan yang tidak perlu tidak diperlukan!
Matt
13

Karena ada banyak hal seperti itu online , inilah saran untuk Anda; Saya menggunakan ini untuk semua jenis hal.

Buat direktori $HOME/notes. Tambahkan subfolder bash,. Jika Anda tidak memiliki $HOME/bin, buat satu, tambahkan ke jalur Anda menggunakan metode apa pun yang Anda sukai ( misalnya: di~/.bashrc ). Lalu letakkan skrip sederhana di sana cmdref.sh,:

#!/bin/bash

if [ -z "$CMREF_DIR" ]; then
        CMREF_DIR="$HOME/notes"
fi

cat "$CMREF_DIR/${1}/${2}.txt"

Symlink untuk kenyamanan, ln -s ~/bin/cmdref.sh ~/bin/cmdref; Saya suka melakukan ini sehingga Anda dapat mengedit cmdref.shsumber dan editor masih akan mengenali tipe file oleh suffix.

Salin tempel apapun ke berbagai file di ~/notes/bash- misalnya, Anda bisa memiliki sebuah file arrays.txt, loops.txtdll Selama ini hanya untuk penggunaan pribadi Anda, Anda tidak melanggar hak cipta.

Anda sekarang dapat menggunakannya dari baris perintah, misalnya: cmdref bash arraysdan lembar contekan itu akan dicetak ke konsol. Catatan meskipun file .txt(sekali lagi, menggunakan sufiks yang sesuai berguna untuk editor, browser file, dll.) Anda tidak boleh menggunakannya cmdref bash arrays.txtkarena ditambahkan cmdref.sh(satu-satunya hal yang dilakukan skrip adalah mengonversi lintasan dan menambahkan sufiks).

goldilocks
sumber
Menawan! Ide bagus, dan mengajari saya beberapa hal yang belum saya pertimbangkan tentang betapa fleksibel dan dapat disesuaikannya Linux.
mayypile
@goldilocks Saya tidak mengerti alasan Anda menyebutkan symlinking file skrip, khususnya "Saya suka melakukan ini sehingga Anda dapat mengedit sumber cmdref.sh dan editor masih akan mengenali tipe file dengan akhiran." Bisakah Anda jelaskan? Apakah itu berarti saya dapat melakukan vi cmdrefdan vim akan membuka "cmdref.sh" dan kemudian saya dapat mengeditnya atau saya kehilangan sesuatu yang jelas di sini?
Geek
@Geek AFAIK semua editor terutama menggunakan akhiran file untuk menentukan jenis file yang disoroti dengan sintaksis WRT (melakukannya dengan cara lain mungkin tidak jelas, tetapi mungkin menjadi mundur untuk beberapa alat jika mereka tidak mengenali sufiks). Jadi jika Anda vi ~/bin/cmdref, vim tidak benar-benar tahu jenis file apa ini, dan akan menggunakan default untuk menyorot (saya pikir itu .txt). Tetapi jika Anda vi ~/bin/cmref.sh, vim tahu file tersebut adalah skrip shell dan sorotan akan masuk akal. Tapi WRT sebuah perintah, Anda ingin mengetik cmdref, bukan cmdref.sh. Itu sebabnya saya menggunakan symlink.
goldilocks
Sebagai bilah sisi untuk itu: viitu sendiri biasanya merupakan symlink ke vim, yang mengapa Anda mendapatkan highlight sintaks sama sekali ("vi" aslinya tidak memiliki fitur seperti itu, saya pikir). Dan: vim sebenarnya adalah cukup pintar untuk mengenali script yang sebagai shell script jika file tidak memiliki akhiran, tetapi prinsipnya berdiri;) Pada kesempatan langka mungkin aku perlu / ingin menggunakan sesuatu yang kurang cerdas.
goldilocks
... jika Anda ingin melihat perbedaannya, muat .shfile dalam vim dan set filetype=txt- eek!
goldilocks
3

man bashmencakup setiap aspek sintaks bash, misalnya untuk if statements, string is zerodan non-existent files, cukup cari (tekan /tombol dan masukkan yang berikut) untuk CONDITIONAL EXPRESSIONS.

polym
sumber
1
Ah, memang. Otak saya harus dimatikan, atau kurang karena saya tidak datang dengan istilah pencarian (saya mencoba mencari "jika pernyataan", "\ '[-n" dll tidak berhasil). Terima kasih!
Samuel Lampa
1
@SamuelLampa jika Anda menggunakan halaman bash man cukup (tidak butuh banyak) Anda akan merasakan strukturnya, sehingga Anda dapat mengetahui apa yang ada di sana dan tentang di mana itu sebelum Anda benar-benar mencarinya.
David Z