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

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

2
ไม่สามารถเรียกใช้ Python interpreter ใน Terminal ของ Mac
ในขณะนี้ฉันอยู่บน Mavericks และฉันเพิ่งถอนการติดตั้ง homebrew เมื่อใช้ homebrew ฉันได้ติดตั้งไพ ธ อนแล้ว แต่หลังจากถอนการติดตั้งเทอร์มินัลของฉันไม่สามารถเริ่มตัวแปล ธ ฉันได้รับข้อความนี้: -bash: /usr/local/bin/python: No such file or directory มีการกำหนดค่าบางอย่างที่ฉันต้องกู้คืนเพื่อใช้งานไพ ธ อนเวอร์ชันดั้งเดิมหรือไม่

1
หลายช่องอุโมงค์ SSH
ฉันจำเป็นต้องเปิดอุโมงค์ SSH ผ่านไปยังพอร์ตฐานข้อมูล oracle ... หลังจากที่ปุยไปรอบ ๆ ฉันก็ดูเหมือนจะไม่สามารถทำงานได้ นี่คือสถานการณ์ ... My Machine -> host1 -> host2 -> oracle_instance (host3) ... ดังนั้นฉันต้องสามารถผ่าน host1 ซึ่งรู้เกี่ยวกับ host2 ... จาก host2 ถึง oracle_instance บน host3 นี่คือเพื่อเชื่อมต่อนักพัฒนา sql ของฉัน ดังนั้นฉันควรจะสามารถ telnet ไปยังพอร์ตในเครื่องของฉันซึ่งจะส่งต่อการจราจรจากพอร์ต oracle_instance ... ความช่วยเหลือใด ๆ ที่นิยมมาก ...
1 bash 

3
BASH: ค้นหาพาร์ติชันจากเอาต์พุต diskutil
ฉันกำลังพยายามค้นหาผลลัพธ์ของคำสั่งที่แสดงรายการไดรฟ์ในเครื่องเพื่อค้นหาพาร์ติชันที่เรียกว่า EFI ในบูต HDD ฉันได้เขียน oneliner ที่สกปรกจริงๆเพราะฉันไม่สามารถหาวิธีที่จะหา HDD หลักได้อย่างมีประสิทธิภาพ (น่าจะเป็น Macintosh HD เสมอ) จากนั้นหาสิ่งที่พาร์ติชัน EFI ในไดรฟ์เดียวกันจากนั้นหา disk # s # IDENTIFIER สำหรับพาร์ติชัน EFI บนไดรฟ์ Macintosh HD เอาต์พุตมาตรฐานจากdiskutil listบางสิ่งเช่นนี้ $ diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.1 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_HFS …

3
เชลล์สคริปต์การวนลูปผ่านโฟลเดอร์
ฉันมีโฟลเดอร์ย่อยจำนวนมากบน Mac ของฉันพร้อมไฟล์ csv จำนวนสุ่มในแต่ละไฟล์ สิ่งที่ฉันต้องการทำคือรวมไฟล์เหล่านี้เป็นไฟล์เดียวสำหรับแต่ละไดเรกทอรี จนถึงตอนนี้ฉันรู้ว่าฉันสามารถรวมไฟล์เหล่านี้ด้วยcat * > mergedfile.csvแต่ฉันมีปัญหาซ้ำผ่านโฟลเดอร์ทั้งหมด ฉันพยายามรวมสิ่งต่าง ๆ เข้าด้วยกัน แต่ฉันไม่สามารถทำให้สิ่งนี้เป็นสิ่งที่ฉันต้องการได้อย่างแน่นอน มีความคิดเกี่ยวกับวิธีที่ดีที่สุดในการทำเช่นนี้? for DIR in ./subfolder/* do cat $dir/* > merged.csv done
1 bash  shell 

2
ความแตกต่างระหว่าง“ ls -lh” และ“ ls -lh | tail -n +2”
ฉันกำลังอ่านsplitบทความคำสั่งบนอินเทอร์เน็ตและเจอคำสั่ง Linux นี้ls -lh | tail -n +2เพื่อแสดงรายการไฟล์ ดีกว่าls -ltrh(ซึ่งแสดงเกือบเป็นรายการเดียวกันหรือไม่) มีคนช่วยบอกความแตกต่างระหว่างls -lh&ls -lh | tail -n +2 PS: ฉันได้ตรวจสอบหน้าคน แต่ยังคงสับสน

2
วัตถุประสงค์ของการส่งออกฟังก์ชั่นในทุบตี
ถ้าเราดูตัวอย่างต่อไปนี้: # testing(){ echo hello;} # testing hello # echo $(testing) hello # echo testing >script # ./script ./script: line 1: testing: command not found # source ./script hello # export -f testing # ./script hello ปรากฎว่าbashฟังก์ชั่นจะต้องส่งออกเฉพาะในกรณีที่คุณต้องการใช้ในสคริปต์ที่ไม่ได้มา ฉันลองใช้หลายระดับของ subshells พฤติกรรมเหมือนกัน บางคนสามารถยืนยันสิ่งนี้ได้เพราะฉันพบว่ามันขัดแย้งกับการอ้างว่าตัวแปรท้องถิ่นไม่มีอยู่ใน subshells
1 linux  bash  shell 

1
การวางคอลัมน์หนึ่งคอลัมน์ของไฟล์ CSV โดยใช้ไฟล์ CSV ที่มีขนาดใหญ่มาก
ฉันมีโฟลเดอร์ 300GB ในขนาดที่มีขนาดใหญ่ (ประมาณ 2GB) CSVไฟล์ งานของฉันคือแยกแถวจากแฟ้มที่มีค่าในคอลัมน์เฉพาะที่มีอยู่ในไฟล์อินพุตที่ฉันมี (ขนาด 2GB เช่นกัน) ขณะนี้ฉันกำลังพยายามใช้pythonวิธีการแบบพื้นฐานโดยใช้Pandasเพื่อรับข้อมูลที่ฉันต้องการ แต่กระบวนการนี้ช้ามากและเนื่องจากข้อ จำกัด ฉันต้องอ่านทั้งไฟล์อินพุตและไฟล์แต่ละไฟล์ในโฟลเดอร์เป็น chunks ซึ่งกำลังดำเนินการอยู่ ซักพักนึง: all_wow_files = glob.glob('/media/noname365/0205D5FE310DDEEC/bing_verticals_wow_job/US_WOW/*_Keywords.csv') for file in all_wow_files: print(file) for chunk in pd.read_csv(file, chunksize=500000): for chunk_dupe in pd.read_csv('input_file.csv',chunksize=500000, names=['Keyword']): keyword_list = set(chunk_dupe['Keyword'].tolist()) chunk = chunk[chunk['Keyword'].isin(keyword_list)] chunk.to_csv(output_file,index=False, mode='a') มีคำสั่งเฉพาะในbashฉันที่สามารถใช้เพื่อให้งานเสร็จเร็วขึ้นหรือไม่? ฉันไม่ต้องการอ่านไฟล์อินพุตทั้งหมดลงในหน่วยความจำเพื่อประโยชน์ของการเปรียบเทียบ ... แก้ไข: โดยทั่วไปไฟล์ในโฟลเดอร์จะถูกสร้างขึ้นเช่นนี้ในผลลัพธ์ของฉันฉันต้องการคอลัมน์ทั้งหมดที่รวมอยู่: Parent ID, …
1 bash  python  csv 

2
ทำไมเสียงก้อง * | rm -f ไม่ทำงานเหรอ
ทำไมecho * | rm -fไม่ทำงาน ตามความเข้าใจของฉันecho *ควรแสดงรายการไฟล์ทั้งหมดในไดเรกทอรีและไปป์ควรส่งรายการนี้เป็นอาร์กิวเมนต์ไปยังrm -fคำสั่งซึ่งควรลบไฟล์ ฉันพลาดอะไรไป
1 linux  bash  shell 

0
ไม่สามารถเรียกใช้ GAP ใน cygwin ได้
ฉันมีGAPซึ่งฉันต้องการหนีจากภายใน emacs มีบางสิ่งที่เรียกว่าโหมดช่องว่างสำหรับ emacs ที่ฉันติดตั้ง เห็นได้ชัดว่าพบปฏิบัติการที่ถูกต้องในการรัน GAP เนื่องจากเริ่มต้นด้วยข้อความเริ่มต้น GAP ┌───────┐ GAP 4.8.10, 15-Jan-2018, build of 2018-01-15 14:36:25 (GMTST) │ GAP │ https://www.gap-system.org └───────┘ Architecture: i686-pc-cygwin-gcc-default32 Libs used: gmp, readline Loading the library and packages ... อย่างไรก็ตามทันทีหลังจากที่มันบอกว่า Error opening terminal: dumb. และหยุด จากนั้นฉันก็ค้นพบว่าสิ่งเดียวกันนี้เกิดขึ้นได้ถ้าฉันเรียกใช้สคริปต์เริ่มต้น GAP จากเชลล์ cygwin GAP ยังมาพร้อมกับไฟล์แบตช์เพื่อเรียกใช้ในรูปแบบต่าง ๆ บน Windows …

1
การตั้งค่าพร็อกซีเป็น Auto Proxy Detection โดยใช้บรรทัดคำสั่งบน Mac OSX
ฉันต้องการทราบวิธีตั้งค่าพร็อกซีเป็น Auto Proxy Detection เหมือนในการกำหนดค่าเครือข่าย แต่ใช้เชลล์ ฉันลองมองไปรอบ ๆ แต่ฉันแค่ค้นหาคำสั่งเช่น: networksetup -gethttpproxy
1 macos  bash  proxy 

2
ทุกอย่างไปไหน
ฉันย้ายไฟล์ไปมาเมื่อฉันพิมพ์คำสั่ง โดยไม่ได้ตั้งใจ mv misc/* *แทนที่จะmv misc/* .ไปทุกที่และฉันจะนำกลับมาได้อย่างไรโฟลเดอร์อื่น ๆ จะหายไป?
1 linux  bash  terminal 

0
การใช้ _kill เสร็จสมบูรณ์ใน. bashrc ล้มเหลว
ฉันพยายามที่จะขยายความสมบูรณ์ทุบตี alias perf-connect-process="perf record -p"; alias pperf=perf-connect-process; complete -F _kill perf-connect-process; complete -F _kill pperf; _killโดยการนำฟังก์ชั่นที่มีอยู่ทุบตีเสร็จสิ้น แต่เมื่อฉันพยายามทำให้เสร็จสมบูรณ์pperfหลังจากการรีโหลด.bashrcมันล้มเหลวโดยบอกว่า_killไม่มีฟังก์ชั่นนี้ อย่างไรก็ตามเมื่อฉันแทรก complete -F _kill pperf; ลงใน bash prompt และลองทำสิ่งต่าง ๆ ตามที่คาดไว้ ทำไม?

1
ฉันจะค้นหาไฟล์ตามเงื่อนไข * error * ในเทอร์มินัลได้อย่างไร
ฉันรู้ว่าการใช้find . -exec <command>ส่งคืนไฟล์ทั้งหมดที่ส่งคืนเงื่อนไขความสำเร็จสำหรับคำสั่งนั้น ฉันจะทำมันได้อย่างไรเพื่อให้ฉันสามารถค้นหาทุกสิ่งที่มีข้อผิดพลาดได้ กรณีการใช้งานขั้นพื้นฐานของฉันคือฉันพยายามค้นหาไฟล์ที่ไม่ผ่านการตรวจสอบไวยากรณ์ขั้นพื้นฐาน หากฉันกำลังมองหาไฟล์ที่ถูกต้อง PHP ฉันจะทำอะไรเช่น find . -exec php -l {} \; -print. ฉันจะตรงกันข้ามกับรายการนั้นได้อย่างไร

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

1
ก่อ: ทุบตีทุบตีแตกหักบน macOS
ฉันใช้สำเร็จทุบตีต่อไปนี้จะติดตั้งผ่านการชง: และbash-completion หน้าตาbash-completion@2ของฉัน.bashrc: if [ -f /usr/local/share/bash-completion/bash_completion ]; then . /usr/local/share/bash-completion/bash_completion fi if [ -f /usr/local/Cellar/bash-completion/1.3_2/etc/bash_completion ]; then BASH_COMPLETION=/usr/local/Cellar/bash-completion/1.3_2/etc/bash_completion . /usr/local/Cellar/bash-completion/1.3_2/etc/bash_completion fi ปัญหาคือเมื่อฉันกดTABแป้นพิมพ์ฉันได้รับข้อผิดพลาด: -bash: words: ตัวห้อยอาร์เรย์ที่ไม่ถูกต้อง ปัญหาคืออะไรที่นี่? ฉันจะแก้ไขได้อย่างไร อัปเดตที่ 1:หลังจากลบ/usr/local/share/bash-completion/bash_completionจาก.bashrcข้อผิดพลาดที่ไม่ได้เกิดขึ้น แต่ผมพลาดในการสำเร็จจำนวนมาก

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