Làm thế nào tôi có thể xem một tài liệu tham khảo hoặc gian lận của cú pháp bash cơ bản, trong thiết bị đầu cuối linux?


8

Mỗi lần tôi cần thực hiện một tập lệnh bash nhỏ liên quan đến các câu lệnh if, kiểm tra các biến rỗng và các tệp không tồn tại et.c. Tôi thấy mình nhấn google cho một số hướng dẫn hoặc hướng dẫn bash đơn giản.

Thường thì đây là những cách quá dài và phức tạp để nhanh chóng trả lời câu hỏi tôi có trong tay.

Vì vậy, tôi đã nghĩ rằng phải có một số lệnh hoặc trang man bao gồm cú pháp bash cơ bản (đối với những thứ như if-statement, kiểm tra các biến rỗng, các tệp không tồn tại, v.v.) một cách ngắn gọn và dễ tiếp cận. Tôi chắc chắn rằng tôi chưa tìm ra lệnh (người đàn ông bash dường như không phải vậy).

Tôi có thể tìm thấy nó ở đâu?


2
trong bashbạn có thể thửhelp
mikeerv

Câu trả lời:


13
  • man bash là tài liệu tham khảo Bash chính tắc.
  • help helpcung cấp cho bạn trợ giúp về phần helpdựng sẵn của Bash và cách nó cung cấp cho bạn các thông báo trợ giúp ngắn về các phần dựng sẵn khác của Bash, chẳng hạn như help for.
  • Wiki của Greg là nơi tốt nhất để tìm tài liệu tham khảo chính xác, ngắn gọn và đôi khi thậm chí là giải trí cho hầu hết mọi khía cạnh của Bash.
  • Nếu bạn muốn một cách nhanh chóng để tra cứu cú pháp, bạn có thể kiểm soát phiên bản.bash_history . Có quá nhiều lệnh, cú pháp tham số khác nhau sedawknhiễu dòng và các thứ khác để nhớ tất cả các lệnh đó, vì vậy thật tuyệt khi có một tham chiếu cá nhân "được chải chuốt kỹ lưỡng" với các thẻ để tra cứu.

+1 để đề cập help.
goldilocks

1
Cảm ơn! Như đã đề cập trong câu trả lời của @ polym, tôi rõ ràng đã sử dụng các thuật ngữ tìm kiếm sai trong man bash ("if statement", "[-n", v.v.) không có tác dụng, và vì vậy nghĩ rằng thông tin không có ở đó. Tìm kiếm "biểu thức điều kiện" là thuật ngữ tìm kiếm phù hợp ở đó.
Samuel Lampa

2
Tôi có số lượng yêu và ghét tương đương trong thời điểm này ... 10 năm ... không biết helplà ở đó. Vì vậy, không cần man bashđọc nhiều !
Matt

13

Vì có rất nhiều thứ như vậy trực tuyến , đây là một gợi ý cho bạn; Tôi sử dụng điều này cho tất cả các loại.

Tạo một thư mục $HOME/notes. Thêm một thư mục con , bash. Nếu bạn không có $HOME/bin, hãy tạo một cái, thêm nó vào đường dẫn của bạn bằng bất kỳ phương thức nào bạn thích ( ví dụ: in~/.bashrc ). Sau đó đặt một tập lệnh đơn giản vào đó , cmdref.sh:

#!/bin/bash

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

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

Symlink nó cho thuận tiện , ln -s ~/bin/cmdref.sh ~/bin/cmdref; Tôi thích làm điều này để bạn có thể chỉnh sửa cmdref.shnguồn và một trình soạn thảo sẽ vẫn nhận ra kiểu tệp bằng hậu tố.

Sao chép dán bất cứ điều gì vào các tập tin khác nhau trong ~/notes/bash- ví dụ, bạn có thể có một tập tin arrays.txt, loops.txtvv Chừng nào điều này chỉ dành cho mục đích cá nhân của riêng bạn, bạn không vi phạm bản quyền.

Bây giờ bạn có thể sử dụng từ dòng lệnh, ví dụ: cmdref bash arraysvà bảng cheat đó sẽ được in ra bàn điều khiển. Lưu ý mặc dù các tệp là .txt(một lần nữa, sử dụng hậu tố thích hợp rất hữu ích cho người chỉnh sửa, trình duyệt tệp, v.v.) bạn không nên sử dụng cmdref bash arrays.txtvì nó được thêm vào cmdref.sh(điều duy nhất mà tập lệnh thực hiện là chuyển đổi đường dẫn và thêm hậu tố).


Rực rỡ! Ý tưởng tuyệt vời và đã dạy tôi một vài điều tôi chưa từng cân nhắc về mức độ linh hoạt và tùy biến của Linux.
mightypile

@goldilocks Tôi không hiểu lý do bạn đề cập đến khi liên kết tệp tập lệnh, đặc biệt là "Tôi thích làm điều này để bạn có thể chỉnh sửa nguồn cmdref.sh và một trình soạn thảo sẽ vẫn nhận ra kiểu tệp bằng hậu tố." Bạn có thể vui lòng giải thích? Điều đó có nghĩa là tôi có thể làm vi cmdrefvà vim sẽ mở "cmdref.sh" và sau đó tôi có thể chỉnh sửa nó hoặc tôi đang thiếu một cái gì đó rõ ràng ở đây?
Geek

@Geek AFAIK tất cả các biên tập viên chủ yếu sử dụng hậu tố tệp để xác định tô sáng cú pháp WRT loại tệp (thực hiện một số cách khác sẽ rất sơ sài, nhưng có thể là một dự phòng cho một số công cụ nếu chúng không nhận ra hậu tố). Vì vậy, nếu bạn vi ~/bin/cmdref, vim không thực sự biết đây là loại tệp gì và sẽ sử dụng mặc định để làm nổi bật (tôi nghĩ đó là .txt). Nhưng nếu bạn vi ~/bin/cmref.sh, vim biết tập tin là một kịch bản shell và việc tô sáng sẽ có ý nghĩa. Nhưng WRT một lệnh, bạn muốn gõ cmdref, không cmdref.sh. Đó là lý do tại sao tôi sử dụng symlink.
goldilocks

Như một thanh bên cho điều đó: vibản thân nó thường là một liên kết tượng trưng vim, đó là lý do tại sao bạn có thể làm nổi bật cú pháp ("vi" ban đầu không có tính năng như vậy, tôi nghĩ vậy). Và: vim thực sự đủ thông minh để nhận ra rằng kịch bản như một kịch bản shell nếu tập tin không có hậu tố, nhưng nguyên tắc đứng;) Vào những dịp hiếm có lẽ tôi cần / muốn một cái gì đó sử dụng ít thông minh.
goldilocks

... Nếu bạn muốn thấy sự khác biệt, hãy tải một .shtệp trong vim và set filetype=txt- eek!
goldilocks

3

man bashbao gồm mọi khía cạnh của cú pháp bash, ví dụ if statements, string is zeronon-existent files, chỉ cần tìm kiếm (nhấn /phím và nhập thông tin sau) cho CONDITIONAL EXPRESSIONS.


1
À, thực sự. Bộ não của tôi phải bị tắt hoặc thiếu vì tôi không tìm ra thuật ngữ tìm kiếm đó (tôi đã cố gắng tìm kiếm "if statement", "\ '[-n", v.v. Cảm ơn!
Samuel Lampa

1
@SamuelLampa nếu bạn sử dụng trang bash man đủ (nó không mất nhiều như vậy) bạn sẽ cảm nhận được cấu trúc của nó, vì vậy bạn có thể nói những gì trong đó và về vị trí của nó trước khi bạn thực sự tìm kiếm nó.
David Z
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.