คำถามติดแท็ก bash

Bash เป็นเชลล์ฟรีสำหรับระบบปฏิบัติการยูนิกซ์จากโครงการ GNU

1
ทำความเข้าใจกับอักขระควบคุมใน. inputput
บัญชี Linux ของฉันในเครื่องระยะไกลมาพร้อมกับการกำหนดไว้ล่วงหน้าดังต่อไปนี้ .inputrc "\e[1~": beginning-of-line "\e[4~": end-of-line “\e[5~”: history-search-backward “\e[6~”: history-search-forward "\e[3~": delete-char "\e[2~": quoted-insert "\e[5C": forward-word "\e[5D": backward-word "\e\e[C": forward-word "\e\e[D": backward-word set completion-ignore-case on set bell-style visible set expand-tilde on set convert-meta off set input-meta on set output-meta on set show-all-if-ambiguous on set visible-stats on ฉันกำลังอ่านเอกสารทุบตี GNU …
21 bash  inputrc 

3
หลีกเลี่ยงการอนุญาตปฏิเสธสแปมเมื่อใช้คำสั่งค้นหา
ฉันมักจะพยายามค้นหาไฟล์ที่มีไวยากรณ์ต่อไปนี้: find . -name "filetofind" อย่างไรก็ตามมันมักจะส่งผลให้แถวหรือการรายงานข้อผิดพลาดจำนวนมาก (ปฏิเสธสิทธิ์) เกี่ยวกับโฟลเดอร์ที่ได้รับอนุญาตถูกปฏิเสธ มีวิธีอื่นในการหลีกเลี่ยงสแปมนี้มากกว่าการใช้ sudo หรือ grepping ขั้นสูงจากข้อผิดพลาดของเอาต์พุตหรือไม่
21 bash  find 

1
Bash: ส่งอาร์กิวเมนต์ที่เป็นทางเลือกไปยังคำสั่ง
ฉันกำลังพยายามเพิ่มข้อโต้แย้งในการเรียกใช้คำสั่งขึ้นอยู่กับตัวแปรอื่น โปรดดูรหัสเชลล์สคริปต์: curl \ $([ -z "${title}" ] || echo --data-urlencode title=${title}) \ http://example.com ในตัวอย่างถ้าtitleจะได้รับไม่เป็นโมฆะ, curlอาร์กิวเมนต์จะถูกเพิ่มเข้าไป สิ่งนี้ทำงานไม่ถูกต้องหากtitleมีช่องว่าง นอกจากนี้ผมไม่สามารถล้อมรอบ$(...)ด้วยใบเสนอราคาเพราะถ้าเป็นโมฆะก็จะให้ผลผลิตอาร์กิวเมนต์ที่ว่างเปล่าที่ไม่คาดคิดtitlecurl ฉันควรทำอย่างไรเพื่อให้ทำงานได้ตามที่คาดหวัง

4
การเปิดไฟล์ที่เขียนโดยสคริปต์ทำงานนั้นปลอดภัยหรือไม่
ฉันใช้งานเชลล์สคริปต์ที่กำลังเขียนลงไฟล์ สคริปต์นี้อาจใช้เวลานานในการทำให้เสร็จสมบูรณ์และฉันต้องการตรวจสอบผลลัพธ์บางส่วนแทนที่จะรอให้สคริปต์ทำงานเสร็จ จะปลอดภัยไหมที่จะเปิด (ดับเบิลคลิก) ไฟล์ที่เขียนด้วยสคริปต์?

4
ฉันควรใส่นามสกุลไฟล์ * .sh และ * .rb ในสคริปต์ทั้งหมดของฉันหรือไม่
ฉันมีสคริปต์ที่เรียกใช้งานได้จำนวนมากในไดเรกทอรี $ HOME / bin บางคนเขียนด้วย bash และบางคนเป็น Ruby พวกเขาทุกคนมีเส้น shebang ที่ด้านบนบอกว่า shell ใช้ล่ามอะไร (bash หรือ Ruby ในกรณีของฉัน) ฉันสงสัยว่าจะดีกว่าหรือไม่ที่จะใส่นามสกุลไฟล์ลงในสคริปต์เหล่านี้เพื่อระบุภาษาสคริปต์ที่ใช้เขียน ตัวอย่างเช่นสคริปต์ใน Ruby จะมีส่วนต่อท้าย * .rb และสคริปต์ทุบตีจะมีส่วนต่อท้าย * .sh ปัจจุบันสคริปต์เหล่านี้มีชื่อง่าย ๆ ที่ไม่มีนามสกุลไฟล์ วิธีปฏิบัติที่ดีที่สุดคืออะไร

3
การติดตั้ง -c แตกต่างจาก cp อย่างไร
ความแตกต่างระหว่างการติดตั้ง -c และ cp คืออะไร? การติดตั้งส่วนใหญ่มักจะใช้การติดตั้ง -c แต่จากหน้าคนมันไม่ได้ดูเหมือนว่ามันจะทำอะไรที่แตกต่างจาก cp (ยกเว้นอาจตั้งค่าสิทธิ์) เมื่อใดที่ฉันควรใช้ install -c และ cp เมื่อใด
20 linux  installation  bash  cp  sh 


7
วิธีสคริปต์ที่ง่ายที่สุดในการตรวจสอบว่าตัวแปรเปลือกจะถูกส่งออกคืออะไร?
สำหรับบางเซสชั่นเชลล์ฉันต้องการพิมพ์แฟล็กคำเตือนหากไม่ได้ตั้งค่าและส่งออกตัวแปรเชลล์ มันค่อนข้างง่ายที่จะทำสิ่งนี้เพื่อพิมพ์ "ข้อผิดพลาด" ในพรอมต์หากSET_MEไม่ได้ตั้งค่าหรือเป็นโมฆะ test_var () { test -z "$1" && echo Error; } PS1='$(test_var "$SET_ME") \$ ' อย่างไรก็ตามสิ่งนี้ล้มเหลวในการตั้งค่าสถานะถ้าฉันตั้งค่าSET_MEโดยไม่ส่งออกซึ่งเป็นข้อผิดพลาดที่ฉันต้องการตรวจสอบ มีบางสิ่งที่คล้าย$(bash -c 'test -z "$SET_ME" && echo Error;')หรือส่งออกของ grepping exportมีการตรวจสอบง่าย ๆ ที่ฉันสามารถทำได้เพื่อทดสอบว่าSET_MEมีการส่งออกหรือไม่ โซลูชันที่ไม่ใช่ POSIX และ bash-only เป็นที่ยอมรับ

2
ฉันจะป้องกันหรือขัดจังหวะการคัดลอก / วางโดยไม่ตั้งใจได้อย่างไรในเครื่องเทอร์มินัล
เมื่อฉันวางลงในเทอร์มินัลบางครั้งสิ่งที่อยู่ในคลิปบอร์ดไม่ใช่สิ่งที่ฉันคาดไว้ โดยเฉพาะบางครั้งมันเป็นหน้าและหน้าของข้อความจากเว็บไซต์ เมื่อสิ่งนี้เกิดขึ้นเทอร์มินัลจะบ้ากระพริบเร็วและคายcommand not foundเร็วเท่าที่จะทำได้ ฉันกลัวว่าสักวันหนึ่งข้อความจะมีอะไรทำนองrm -rf /นั้น วิธีที่ดีที่สุดคืออะไร: ทำหน้าที่เมื่อฉันทำผิดพลาด? ป้องกันข้อผิดพลาดดังกล่าวเกิดขึ้น? สำหรับรายละเอียดฉันใช้ bash ในหน้าต่างหน้าจอ GNU ในเทอร์มินัล urxvt บน Linux ปกติCtrl-CหรือCtrl-Zไม่มีผลในประสบการณ์ของฉัน

5
จะบังคับให้ Network Manager ทำการสแกนการเชื่อมต่อใหม่ได้อย่างไร?
จะบังคับให้ Network Manager ใน Ubuntu ทำการสแกนการเชื่อมต่อไร้สายใหม่ได้อย่างไร? หลังจากปิดแล็ปท็อปของฉันผู้จัดการเครือข่ายไม่เห็นการเชื่อมต่อไร้สายใหม่ มีคำสั่ง bash บังคับให้ทำการสแกนซ้ำหรือไม่? sudo service network-manager restartไม่ช่วย

4
bash home / end / delete key กำลังทำการใส่เครื่องหมายตัวหนอนหรือหากนำหน้าด้วยคีย์ escape [1 ~ [3 ~
ในทุบตีปุ่มhome/ end/ deleteกำลังแทรกเครื่องหมายตัวหนอนหรือหากนำหน้าด้วยปุ่ม Escape:[1~ ดังนั้นฉันพิมพ์echo hellpย้ายเคอร์เซอร์ไปที่hel|lpและพิมพ์ลบและแบมฉันได้รับ~tilde นอกจากนี้ฉันพิมพ์echo hellpเลื่อนเคอร์เซอร์ไปที่hel|lpและพิมพ์ esc จากนั้นลบและแบมฉันได้รับ[3~ $ echo hel~lp hel~lp $ echo hell[3~o hell[3~o ~ ทุบตีรุ่นของฉัน: $ bash --version GNU bash, version 3.1.17(1)-release (i686-pc-msys) Copyright (C) 2005 Free Software Foundation, Inc. สิ่งที่ฉันต้องการคือพฤติกรรมที่ชอบcmd.exe: ฉันต้องการให้ Esc เพื่อล้างบรรทัด / บัฟเฟอร์ปัจจุบัน ฉันต้องการให้หน้าแรกเลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นก่อนอักขระตัวแรก ฉันต้องการให้ End เลื่อนเคอร์เซอร์ไปที่ท้ายบรรทัดก่อนอักขระตัวแรก ฉันต้องการลบเพื่อลบอักขระถัดไป (ด้านขวาของเคอร์เซอร์) จากบรรทัด / บัฟเฟอร์ปัจจุบัน …

1
ฉันจะให้อาร์กิวเมนต์คำสั่ง time (อูบุนตู) ได้อย่างไร
ฉันต้องการรับข้อมูลมากกว่าที่คำสั่งเวลามาตรฐานให้ดังนั้นฉันต้องการส่งแฟล็ก verbose info timeให้เป็นตัวอย่างtime -v sleep 4แต่เมื่อฉันรันที่ (ทั้งในทุบตีหรือ tcsh) ฉันได้รับ % time -v sleep 4 -v: Command not found. 0.000u 0.000s 0:00.00 0.0% 0+0k 0+0io 0pf+0w ผมทำอะไรผิดหรือเปล่า?
20 ubuntu  bash  time 

5
ค้นหารูปแบบข้อความใน linux
ฉันเป็นลินุกซ์มือใหม่ ฉันต้องการค้นหาสตริง "teststring" ในไฟล์ * .java ทั้งหมดที่อยู่ภายใต้ / home / user1 / (รวมถึงโฟลเดอร์ย่อย) ฉันจะทำมันใน linux ผ่านคำสั่งเชลล์
20 linux  bash 

7
บังคับให้สคริปต์ทุบตีใช้ทีโดยไม่ต้องไพพ์จากบรรทัดคำสั่ง
ฉันมีสคริปต์ทุบตีที่มีเอาต์พุตจำนวนมากและฉันต้องการเปลี่ยนสคริปต์นั้น (ไม่ได้สร้างสคริปต์ใหม่) เพื่อคัดลอกเอาต์พุตทั้งหมดไปยังไฟล์เช่นเดียวกับที่มันจะเกิดขึ้นหากฉันกำลังไพพ์มันผ่านที ฉันมีไฟล์script.sh : #!/bin/bash init do_something_that_outputs_stuff_to_STDOUT launch_applications_that_output_to_STDOUT fini และฉันต้องการทำสำเนา STDOUT ไปยังไฟล์script.logโดยไม่ต้องพิมพ์./script.sh | tee script.logทุกครั้ง ขอบคุณทอม
20 bash 

2
ฉันจะตั้งค่างาน cron บน OS X เพื่อรันคำสั่ง curl ในเวลาที่กำหนดทุกวันได้อย่างไร
ฉันมีคำสั่ง CURL ฉันต้องการเรียกใช้ทุกวันเวลาตี 3 แต่ฉันไม่แน่ใจเกี่ยวกับวิธีการตั้งค่าและคำแนะนำทั้งหมดแปลก สมมติว่าฉันมีประสบการณ์ terminal / bash มากมาย แต่ฉันไม่เคยติดตั้ง cron มาก่อน เป็นไปได้ไหมที่งาน cron จะปลุกคอมพิวเตอร์ของฉันแม้ว่าจะหลับและฝาปิดอยู่ (macbook pro) เพียงเพื่อเรียกใช้คำสั่ง curl คำสั่งเดียวจากนั้นจึงกลับเข้าสู่โหมดสลีป ฉันจะตั้งค่าอย่างใดอย่างหนึ่งได้อย่างไร
20 macos  mac  bash  cron 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.