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

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

1
ฉันต้องการผู้ใช้ linux เฉพาะสำหรับงานที่กำหนดหรือไม่?
บอกว่าฉันมีทุบตีสคริปต์สำหรับการสำรองข้อมูล / ซิงค์ / ดาวน์โหลดจากงานอินเทอร์เน็ต / อัปเดต ฉันจะเรียกใช้พวกเขาตามกำหนดเวลาด้วย crontab มันปลอดภัยที่จะสร้าง crontab สำหรับรูทหรือฉันต้องการผู้ใช้งานลินุกซ์โดยเฉพาะ? และถ้าฉันต้องการมันทำไมฉันถึง? UPD: จริง ๆ แล้วมีสามตัวเลือก: 1) root - Ok มันเป็นตัวเลือกที่ไม่ดี 2) ผู้ใช้ที่มีอยู่ 3) ผู้ใช้เฉพาะ ผู้ใช้โดยเฉพาะนั้นดีกว่าที่มีอยู่ (เช่นเจ้าของเวิร์กสเตชันผู้ใช้ทั่วไป) หรือไม่ ระบุว่าฉันไม่สามารถสร้างผู้ใช้ nologin โดยเฉพาะได้เนื่องจากฉันใช้ rsync ผ่าน ssh และฉันจะต้องเพิ่มผู้ใช้ใหม่บนเครื่องระยะไกลที่ฉันซิงค์อยู่

4
เริ่มสคริปต์เริ่มต้นเมื่ออินเทอร์เฟซเครือข่ายหมดแล้วเท่านั้น
ฉันมีเซิร์ฟเวอร์มีเดียแบบไม่ใช้หัวโดยใช้ mpd ที่ทำงานบน gentoo Mpd ได้รับการกำหนดค่าให้เริ่มต้นตอนบูท (และฉันไม่มีสคริปต์ rc ทำงานพร้อมกัน) แต่น่าเสียดายที่ mpd จะไม่เริ่มทำงานหากไม่สามารถผูกกับอินเทอร์เฟซได้ ฉันพยายามให้ที่อยู่ ip แบบคงที่กับ LAN แบบไร้สาย แต่บางครั้ง MPD จะไม่เริ่มทำงานเนื่องจากการ์ด wlan ไม่ได้เชื่อมโยงกับจุดเข้าใช้งาน (ฉันใช้ wpa_supplicant) ตอนนี้เมื่อ ssh เริ่มทำงานมันค่อนข้างมีความสุขที่จะรอให้อินเทอร์เฟซเกิดขึ้น แต่ถึงแม้จะมีการขุดเล็กน้อยฉันก็ไม่สามารถรู้ได้ว่ามันเป็นเช่นไร แฮ็คที่น่ากลัวของฉันจะเป็นสคริปต์ mpd เพื่อรอเวลา "เพียงพอ" สำหรับการ์ด wlan ที่จะเชื่อมโยง แต่นั่นจะไม่ทำงานในทุกสถานการณ์ ใครมีพอยน์เตอร์บ้าง? NB: คำถามที่เกี่ยวข้องที่ไม่ตอบคำถามของฉัน (แต่อาจเป็นประโยชน์กับผู้อื่นอยู่ที่นี่): เรียกใช้สคริปต์เมื่อเชื่อมต่อกับเครือข่ายไร้สายใน linuxและ linux-how-to-start-skype หรืออื่น ๆ โปรแกรมเฉพาะเมื่อ im ออนไลน์
1 linux  bash  gentoo  mpd 

2
ฉันจะทำงานกับอักขระแป้นพิมพ์ที่ไม่สามารถพิมพ์ได้ได้อย่างไร
ฉันอยู่ระหว่างการทำสคริปต์ทุบตีเพื่อขูด weather.com เพื่อรับรายงานสภาพอากาศ ฉันต้องการประมวลผลบรรทัดข้อความที่มีอักขระผิดปกติ นี่คือข้อความ: 30 ° FHigh 35 °สูง 52 °สูง 45 °สูง 43 °สูง มีวงกลมเล็ก ๆ ระหว่างตัวเลขและตัวอักษร นี่คือรหัส: #!/bin/bash clear lynx --dump http://www.weather.com/weather/5-day/New+York+NY+10001 | \ egrep ' Today | Tonight ' -A 22 | awk 'BEGIN {print "\n\t\t\b\b\b\b\b\bTHE FIVE DAY\ WEATHER REPORT FOR THE NYC: 10001\n"} \ /[0-9][0-9]*[a-z|A-Z]+/{print …
1 linux  bash  terminal 

1
Sed: ตัวเลือกที่ไม่รู้จักเป็น `s '
ฉันกำลังพยายามเปลี่ยนไฟล์ปรับแต่งโดยใช้ bash script ฉันใช้คำสั่ง sed เพื่อเปลี่ยนดังนี้ VAR1=$(cat postgresql.conf | grep "shared_buffers =" | cut -d# -f1) VAR2=$(shared_buffers = 8GB) sed -ie s/${VAR1}/${VAR2}/g postgresql.conf ฉันพยายาม แต่มันทำให้ฉันมีข้อผิดพลาด sed: -e expression # 1, ถ่าน 29: ตัวเลือกที่ไม่รู้จักเป็น `s ' อะไรหายไป?
1 linux  bash  shell 

1
ZIP: อะไรคือไฟล์ไบนารีชั่วคราวที่ชื่อขึ้นต้นด้วย `zi`?
ในขณะที่ฉันกำลังซิปไดเรกทอรีย่อยในไดเรกทอรีที่กำหนดให้ทั้งสองไฟล์ไบนารีปรากฏอยู่ในสถานที่แห่งนี้ซึ่งเรียกว่าzietrLSlและziwvPwKmและหายไปเมื่อzipคำสั่งสิ้นสุดวันที่ ที่ไดเร็กตอรี่อื่น, เหมือนกัน. แต่มีไฟล์ไบนารีไฟล์เดียวที่เรียกว่าzi9Rt6a4. เหตุใด zip จึงต้องการไฟล์ไบนารีเหล่านี้ พวกเขาตั้งชื่อziตามด้วยตัวอักษรสุ่มหรือชื่อของพวกเขามีความหมายอะไรที่เฉพาะเจาะจง? ฉันใช้คำสั่ง zip -r mydir.zip mydir สำหรับทั้งสองกรณี ถ้าจำเป็นฉันอยู่MAC OS X 10.11.3
1 linux  mac  bash  zip  binary-files 

2
สคริปต์ Bash จะทำงาน แต่ไม่พบคำสั่ง 'จนถึง'
ฉันกำลังเขียนสคริปต์ทุบตีสำหรับคลาสที่มีเมนูหลักพร้อมกับเมนูย่อยสองรายการ ฉันยังเขียนสคริปต์ไม่เสร็จ แต่ฉันมีปัญหาฉันยังไม่สามารถแก้ไข: สคริปต์ของฉันทำงานได้ดี แต่ทุกครั้งที่ฉันเรียกใช้ฉันได้รับข้อผิดพลาดต่อไปนี้ (แต่รหัสของฉันยังคงทำงานตามที่ตั้งใจ): ./menu1.sh: line 105: =: command not found นอกจากนี้เมื่อฉันป้อนเมนูย่อยอีกสองรายการฉันได้รับข้อผิดพลาดเดียวกัน (เนื่องจากรหัสที่คล้ายกัน): ./menu1.sh: line 7: e: command not found ./menu1.sh: line 79: r: command not found บรรทัดที่เป็นสาเหตุของข้อผิดพลาดคือการที่ผมใช้จะอยู่ในเมนูแต่ละจนปัจจัยการผลิตของผู้ใช้until ($choice = q);q การเพิ่มset -xรหัสของฉันแสดง+ = qทันทีก่อนพิมพ์ข้อผิดพลาด การพิมพ์which untilลงในเทอร์มินัลจะไม่มีผล (ไม่พิมพ์เส้นทางใด ๆ ) ในที่สุดการพิมพ์การecho $SHELLพิมพ์/bin/bashดังนั้นฉันจึงใช้ bash นี่คือรหัสที่มาทั้งหมดของฉัน (ยังไม่เสร็จ): #!/bin/bash q= cNum= …
1 bash  shell  script 

1
รัน xinit จาก rc.local โดยอัตโนมัติเป็นผู้ใช้อื่น
ฉันกำลังปรับแต่ง raspberry pi b + ของฉันอยู่ ดังนั้นฉันจึงตัดสินใจว่ามิโดริควรเริ่มต้นโดยอัตโนมัติหลังจากออโตโลจิน ด้วย startx มันทำงานได้โดยไม่มีปัญหา แต่ X ก็ยังคงหิวกระหายอยู่ ดังนั้นฉันจะเริ่มต้น midori ด้วย xinit และ matchbox จากการทดสอบฉันใช้เป็นผู้ใช้ "pi" คำสั่งนี้ "xinit ./home/pi/startmidori.sh" และใช้งานได้ ดังนั้นฉันจะใส่ลงในไฟล์ rc.local ของฉัน มีคำสั่ง "su -l pi -c xinit ./home/pi/startmidori.sh" สิ่งนี้ไม่ทำงาน ฉันไม่รู้ว่าทำไม แต่ xinit ออกทันทีหลังจากเริ่มต้น ไม่มีข้อผิดพลาดหรือคำเตือนใน Xorg logfile แต่เป็นที่รู้จัก (ไม่พบโมดูล g3d_23) ฉันจะแก้ปัญหานี้ได้อย่างไร ในคำแนะนำฉันพบวิธีการแก้ปัญหาบางอย่าง แต่พวกเขาทั้งหมดไม่ทำงาน ฉันพยายามเรียกใช้เป็นรูท …

2
Bash - อ่านบรรทัดจากไฟล์
ฉันมีไฟล์หนึ่งบรรทัดที่มีค่าเก็บไว้เป็นสตริงใน: server-name-2009-August-9-AMI server_nameชื่อไฟล์เป็น วิธีที่สั้นและสวยงามที่สุดในการแปลงค่านี้ให้เป็นตัวแปรด้วยสคริปต์ทุบตีคืออะไร
1 bash  script 

2
กระบวนการแยกและตัวแปรที่แชร์
ฉันมีสคริปต์ทุบตีที่มีฟังก์ชั่นสองทางแยกทั้งหมดเขียนลงในบันทึก เมื่อทั้งคู่เสร็จสิ้นแล้วฉันต้องการลบบันทึกนี้ ปัญหาที่ฉันมีอยู่processFinishCountก็คือมันไม่เคยมากกว่าหนึ่ง กระบวนการที่แยกแต่ละอันจะจับสำเนาของตัวแปรที่ใช้ร่วมกันและการเพิ่มขึ้นของสำเนานั้นเมื่อเรียกใช้delete_logหรือไม่ ฉันจะแน่ใจได้อย่างไรว่าตัวแปรจะเพิ่มขึ้นอย่างเหมาะสม? processFinishCount=0 delete_log() { let processFinishCount++ if ["$processFinishCount" == 2]; then rm log.txt else echo `$processFinishCount task(s) finished" >> log.txt fi } function_one() { ... delete_log } function_two() { ... delete_log } function_one & function_two &
1 macos  bash  shell 

2
หยิบส่วนหนึ่งจากไฟล์ขนาดใหญ่ระหว่างสองสตริงย่อยที่รู้จักกันโดยใช้ sed?
ฉันมีไฟล์ XML ที่ค่อนข้างใหญ่โดยไม่มีการแบ่งบรรทัด มันใหญ่มากมันช้าที่จะเปิดและทำงานใน Emacs หรือโปรแกรมแก้ไขข้อความอื่น ๆ แต่ฉันแค่ต้องการแยกส่วนที่ขาดหายไปของมันระหว่างสองสตริงย่อยที่รู้จัก ฉันไม่สนใจที่จะรักษาโครงสร้าง XML ไว้ฉันแค่อยากได้ตัวละคร นี่น่าจะเป็นสายการบินเดียวที่ใช่ไหม? ความคิดใด ๆ วิธีการทำเช่นนี้? ฉันพยายามปรับhttps://stackoverflow.com/questions/13242469/how-to-use-sed-grep-to-extract-text-between-two-wordsแต่ดูเหมือนจะไม่ทำงานเมื่อฉันไปที่ไฟล์ของฉันเป็น มัน. (มันใช้ได้กับตัวอย่างของเล่น แต่ฉันคิดว่าไฟล์ของฉันอาจใหญ่เกินไป)
1 bash  sed 

2
การเปลี่ยนการอนุญาตสำหรับโฟลเดอร์เฉพาะ
ฉันต้องการความช่วยเหลือ. ฉันใช้ Fedora 15. ฉันมีผู้ใช้ 2 คน: user1 และ user2 และไดเรกทอรีใน / usr / local / example_directory ตอนนี้สำหรับเจ้าของไดเรกทอรีนี้คือ user1 และผู้ใช้รายอื่นสามารถอ่านได้เท่านั้น ฉันต้องการเพิ่มสิทธิ์เฉพาะสำหรับ user2 เพื่อให้สามารถลบและแก้ไขไดเรกทอรีนี้ซ้ำ ฉันจะทำอย่างไร PS: ขออภัยสำหรับภาษาที่ไม่ดี

2
ScripDuplicating โครงสร้างไดเรกทอรี!
ฉันมีโครงสร้างไดเรกทอรีต่อไปนี้สำหรับรหัสของฉันที่มีไฟล์ * .c ad * .h และการกำหนดค่าและสร้างไฟล์ที่สร้างโดย automake & autoconf ฉันต้องการคัดลอกเฉพาะไฟล์ * .c และ * .h ลงในโครงสร้างไดเรกทอรีใหม่เช่นนี้ testdir/ ├── subtest1 │ └── subtest11 │ ├── test111.c │ └── test111.h └── subtest2 └── test.c newtestdir/ <--------------------- ONLY THIS DIRECTORY IS CHANGED !! ├── subtest1 │ └── subtest11 │ ├── test111.c │ …
1 linux  bash  script 

1
Bash หนึ่งซับเพื่อล้างไฟล์ขยะจาก NAS
ฉันซื้อQNAP NASแบบ2 อ่าวที่ฉันจะวางฮาร์ดไดรฟ์ 2 x 2TB ในวันนี้และโหลดไฟล์ของฉัน ฉันจะเข้าถึง NAS ผ่านเครื่อง Xubuntu / Debian และ Mac ฉันต้องการใครสักคนที่จะสอนฉันทุบตีหนึ่งซับ (หรือสิ่งที่คล้ายกัน) ที่จะล้างออกบางส่วนของไฟล์ขยะที่สะสมมานานหลายปีของการเข้าถึงหลายแพลตฟอร์ม สิ่งเหล่านี้รวมถึง: .ini thumbs.db .AppleDouble .DS_Store :2e* ฉันไม่ต้องการลบไฟล์เมตาดาต้าที่สำคัญแต่.iniตัวอย่างเช่นฉันไม่ได้มองว่าไฟล์สำคัญและเป็นเช่น.DS_Storeนั้น นอกจากนี้มีวิธีง่าย ๆ ที่จะเชิงรุกในการต่อสู้กับการกระจายไฟล์ขยะเหล่านี้ไปรอบ ๆ ? ใน Mac ฉันทำ: defaults write com.apple.desktopservices DSDontWriteNetworkStores true ในขณะที่กลับมาซึ่งควรดูแลในอนาคต DS_Store เครือข่ายสแปม ฉันไม่สมบูรณ์ OCD แต่ฉันต้องการหลีกเลี่ยงไฟล์ที่ไร้ประโยชน์หากเป็นไปได้
1 networking  bash  nas 

1
.zshrc ไม่ส่งออกตัวแปรสำหรับแอนาคอนดา
ฉันติดตั้ง Anaconda Python บน Mac ของฉันวันนี้และเพิ่มบรรทัดต่อไปนี้ใน. bash_profile โดย Anaconda เนื่องจากฉันกำลังใช้ zsh ดังนั้นฉันจึงย้ายบรรทัดนี้ไปที่. zshrc อย่างไรก็ตามมันใช้งานไม่ได้แม้ว่าฉันจะใช้. zshrc ใน iTerm ก็ตาม export PATH="/Users/shawn/Softfolder/anaconda/anaconda/bin:$PATH" ถ้าฉันย้ายบรรทัดนั้นไปที่. bash_profile และส่งมัน Anaconda จะทำงานตามที่คาดไว้ ฉันสงสัยว่าอนาคอนด้าทำงานในลักษณะนั้นหรือไม่ฉันทำอะไรผิดหรือเปล่า? ขอบคุณมาก! เพิ่มเติม: ฉันพบบรรทัดต่อไปนี้ใน. zshrc ด้านล่างบรรทัดที่ฉันเพิ่มสำหรับอนาคอนดา บรรทัดนี้จะแทนที่เส้นทางของอนาคอนด้าหรือไม่? export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/texbin" PS: ฉันใช้ bash -l เพื่อเริ่มเซสชันการเข้าสู่ระบบของ bash จากนั้น Anaconda จะทำงาน
1 macos  bash  python  zsh 

3
ต้องการคำสั่งเพื่อเรียกใช้งานเฉพาะในกรณีที่จำนวนไฟล์ในไดเรกทอรีมากกว่า 1
ฉันต้องการเขียนสคริปต์ แต่ฉันต้องการคำสั่ง if ดังนั้นมันจะทำงานเฉพาะในกรณีที่จำนวนไฟล์ในไดเรกทอรีมากกว่า 1 เป็นไปได้หรือไม่

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