cp -R "~/photo dir" /backups #method1 cp -R ~"/photo dir" /backups #method2 cp -R ~/"photo dir" /backups #method3
"$HOME/photo dir"
sẽ thành công. "~/"
đến thư mục home của người dùng và sau đó thêm vào tên thư mục được trích dẫn bao gồm một khoảng trống. "~/"
đến thư mục home của người dùng và sau đó thêm vào tên thư mục được trích dẫn bao gồm một khoảng trống. "~/"
đến thư mục home của người dùng và sau đó thêm vào tên thư mục được trích dẫn bao gồm một khoảng trống. $ ls -1 Beach photo1.jpg Photo1.jpg Photo2.jpg Script.sh $ cat script.sh for i in $(ls *.jpg); do mv $i ${i}.bak done
( command )
sh command
{ command; }
(( command ))
tham khảo. Các shell phụ là một cách để người lập trình chụp (thường với ý định xử lý) đầu ra từ một chương trình hoặc tập lệnh. Các lệnh được chạy trong shell phụ được bao bọc bên trong cặp dấu ngoặc đơn và tiền bởi một ký tự đô la: DIRCONTENTS=$(ls -l) echo ${DIRCONTENTS}
echo "1 2 3" | awk '{for (i=1; i<=NF; i++) s=s+$i};END {print s}'
tham khảo. AWK là một ngôn ngữ lập trình được thiết kế để xử lý dữ liệu dựa trên văn bản, entweder trong các tệp hoặc luồng dữ liệu, hoặc sử dụng ống dẫn shell. Nói cách khác, bạn có thể kết hợp awk với các tập lệnh shell hoặc sử dụng trực tiếp tại một dấu nhắc shell.
find / -name "finance.db" 1>results.txt 2>/dev/null
tham khảo. Cú pháp để chuyển hướng stderr (lỗi tiêu chuẩn) vào một tệp: command 2> errors.txt
.
sed -i '/^$/d' textfile
sed '/^$/d' textfile
cat textfile | sed '/^$/d
sed -i 's/^$//' textfile
tham khảo
sed : sed là một trình chỉnh sửa luồng. Một trình chỉnh sửa luồng được sử dụng để thực hiện các biến đổi văn bản cơ bản trên một luồng đầu vào.
-i[SUFFIX] : Tùy chọn này chỉ định rằng các tệp sẽ được chỉnh sửa tại chỗ.
'/^$/d' : regex được đặt trong //. ^ là đầu dòng, $ là cuối dòng. ^$ có nghĩa là bắt đầu và kết thúc không có gì ở giữa.
d : Xóa không gian mẫu; ngay lập tức bắt đầu chu kỳ kế tiếp.
Cảnh báo, ví dụ trên sẽ không hoạt động trên terminal của mac vì các hương UNIX khác nhau. Có một cách để làm cho nó hoạt động trên một cờ mac bổ sung -e
, hoặc thậm chí chỉ là --
(được tìm thấy trên StackOverflow): sed -i -e '/^$/d' textfile.txt
awk -F: '/user1/{print $1 "-" $3 "-" $6}' /etc/passwd
tham khảo. Truyền thống, tệp /etc/passwd được sử dụng để theo dõi mọi người dùng đã đăng ký có quyền truy cập vào một hệ thống. Tệp /etc/passwd là một tệp được phân tách bằng dấu hai chấm chứa các thông tin sau đây: 1-Tên người dùng
, 2-Mật khẩu
, 3-User ID (UID)
, 4-Group ID (GID)
, 5-Thông tin ID người dùng (GECOS)
, 6-Thư mục home
, 7-Lệnh/shell
"set -e"
trong một kịch bản Bash?tham khảo. Tùy chọn set -e chỉ dẫn bash thoát ngay lập tức nếu bất kỳ lệnh [1] nào có mã thoát khác không. Bạn không muốn đặt điều này cho shell dòng lệnh của bạn, nhưng trong một tập lệnh nó rất hữu ích. Trong tất cả các ngôn ngữ lập trình được sử dụng rộng rãi, một lỗi runtime không được xử lý - dù đó là một ngoại lệ được ném trong Java, hoặc một lỗi phân đoạn trong C, hoặc một lỗi cú pháp trong Python - sẽ ngay lập tức dừng thực thi của chương trình; các dòng tiếp theo không được thực thi.
mysql < file.sql > file.txt
Lưu ý: Kiểm tra câu hỏi dưới đây để xem biến thể.
mysql < file.sql > out.txt
Lưu ý: Kiểm tra câu hỏi phía trên để xem biến thể.
tham khảo. Cờ truy cập Linux và Unix setuid và setgid (viết tắt của set user identity và set group identity) [1] cho phép người dùng chạy một lệnh thực thi với quyền hệ thống tệp của chủ sở hữu hoặc nhóm của lệnh tương ứng và thay đổi hành vi trong thư mục.
cat {$1,textfile}
cat textfile | awk [print $1]
cat textfile | awk '{print $1}'
awk textfile {print $1}
(reverse-i-search)`':
Lưu ý: Trên Mac nó sẽ hiển thị bck-i-search:
thay vì (reverse-i-search)
.
var=$( expr 10 / 8 )
(( var= 10 /8 ))
var=$(( 10 / 8 ))
var=$(echo 'scale=2; 10 / 8' | bc)
tham khảo. Lệnh bc được sử dụng cho máy tính dòng lệnh. Nó tương tự như máy tính cơ bản bằng cách sử dụng nó, chúng ta có thể thực hiện các phép tính toán cơ bản. Phép chia với 2 chữ số chính xác sẽ được chuyển đến bc
, được đánh giá và gán cho biến.
txt=Penguins [[ $txt =~ [a-z]{8} ]]; echo $?
HAL>
SHELL="HAL\>"
SHELL="HAL>"
export PS1="HAL>"
PS1="HAL\>"
/website.com/html/
/html/website.com/html/
/var/www/html/website.com/
tham khảo
Điều gì đang xảy ra ở đây là trích dẫn đặc điểm của POSIX shell: ${parameter#[word]}
. Loại bỏ Mẫu Tiền Tố Nhỏ Nhất. Từ khóa sẽ được mở rộng để tạo ra một mẫu. Mở rộng tham số sau đó sẽ dẫn đến tham số, với phần tiền tố nhỏ nhất khớp với mẫu đã bị xóa.
Ví dụ ${VAR#?}
mở rộng thành giá trị của $VAR với ký tự đầu tiên bị xóa. Và ${VAR#\*/html}
mở rộng để bao gồm tất cả các ký tự đến và bao gồm văn bản /html
sẽ bị xóa khỏi biến tạo ra đầu ra của /website.com/html/
kill %1
để kết thúc lệnh đang chạy.