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

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

3
ฉันจะเชื่อมโยงแต่ละไฟล์ในหนึ่งไดเรกทอรีไปยังไดเรกทอรีอื่นได้อย่างไร
หากฉันมีไดเรกทอรีที่/fooมีไฟล์อยู่สองสามตัวฉันจะเชื่อมโยงแต่ละรายการ/fooเข้าด้วยกันได้/bar/อย่างไร ตัวอย่างเช่นถ้า/fooมีไฟล์a, bและcผมต้องการที่จะสร้างสาม symlinks: /bar/a -> /foo/a /bar/b -> /foo/b /bar/c -> /foo/c
15 linux  mac  command-line  bash 

1
ทำไมกระบวนการระยะไกลของฉันยังคงทำงานหลังจากที่ฆ่าเซสชัน ssh
ฉันกำลังปรับแต่งไฟล์บันทึกระยะไกลโดยใช้คำสั่งนี้ในเชลล์ท้องถิ่น: ssh remotemachine tail -100f /path/to/error_file เมื่อฉัน ctrl-c ออกจากคำสั่งนี้ดูเหมือนว่า ctrl-c ฆ่ากระบวนการ ssh ท้องถิ่นและปล่อยให้หางของฉันทำงานบนเครื่องระยะไกล ฉันตกอยู่ภายใต้ความประทับใจที่การเชื่อมต่อที่ขาดหายไปจะส่งสัญญาณ Hangup (เนื่องจากฉันไม่ได้ใช้ nohup) และฆ่ากระบวนการ แต่นั่นไม่ใช่กรณีที่ชัดเจน ใครสามารถสลัดแสงเพิ่มเติมได้บ้างเมื่อมีการส่งสัญญาณ Hangup และเมื่อไม่มีสัญญาณ? เครื่องระยะไกลคือ Ubuntu และเชลล์ในเครื่องของฉันคือ OS X ทุบตีหากสิ่งใดสิ่งหนึ่งสร้างความแตกต่าง
15 linux  bash  ssh 

4
ทุบตีให้เปลี่ยนสีเมื่อฉันเข้าสู่เซิร์ฟเวอร์
มีวิธีทำให้ bash prompt dynamic หรือไม่ดังนั้นมันจะเปลี่ยนสีเมื่อล็อกอินเข้าสู่เซิร์ฟเวอร์หรือไม่? ดังนั้นฉันต้องการสีที่เป็นสีเขียวเมื่ออยู่ในระบบของฉันและเปลี่ยนเป็นสีแดงเมื่อเชื่อมต่อกับเซิร์ฟเวอร์ ฉันมีเซิร์ฟเวอร์จำนวนมากฉันไม่ต้องการให้เซิร์ฟเวอร์.bashrcเหล่านั้นแตกต่างกัน
15 bash  shell  colors  bashrc 

2
Ctrl + c ในกระบวนการย่อยกำลังฆ่ากระบวนการที่ไม่มีการอัปโหลดก่อนหน้านี้ในสคริปต์
ฉันไม่รู้ว่าสิ่งนี้เป็นของ SO หรือไม่ (เพราะเป็นข้อผิดพลาดในการเขียนโค้ด) แต่คิดว่าพวกคุณจะมีความรู้มากขึ้นเกี่ยวกับรายละเอียดปลีกย่อยของซอฟต์แวร์ที่ใช้ (อาจเป็นเพราะคุณอาจพิจารณา U&L) นี่คือสคริปต์โค้ดขั้นต่ำ (ดูการแก้ไขสคริปต์แบบเต็มมีเหตุผลที่ฉันทำเช่นนี้) #/bin/bash nohup {SERVERCOMMAND} > currentOutput.log 2>&1 & less +F currentOutput.log สิ่งที่พยายามทำคือเรียกใช้เซิร์ฟเวอร์ในพื้นหลังซึ่งส่งออกไปยังไฟล์บันทึก จากนั้นผมล็อกไฟล์ที่ใช้follow less +Fในการออกจากสิ่งนี้คุณต้องกดctrl+ cก่อนจึงจะสามารถกดQได้ จะเกิดอะไรขึ้นเมื่อฉันctrl+ cภายในlessคำสั่ง (หยุดtailing) มันจะฆ่าเซิร์ฟเวอร์ที่เริ่มต้นด้วยnohupที่ด้านบน! ไม่มีอะไรได้รับผลกระทบ ฉันสามารถshift+ fเพื่อเริ่มปรับแต่งบันทึกอีกครั้ง (ซึ่งไม่ได้รับข้อมูลใหม่เนื่องจากเซิร์ฟเวอร์ถูกฆ่าตาย) และถ้าฉันกดQส่วนที่เหลือของสคริปต์ดำเนินการตามปกติ คุณรู้ไหมว่าทำไมสิ่งนี้ถึงเกิดขึ้น ฉันจะหลีกเลี่ยง / ใช้อย่างอื่นได้อย่างไร PS โปรแกรมเซิร์ฟเวอร์อาจกำลังฟัง a ^Cซึ่งอาจเป็นปัญหา มีบางอย่างที่ฉันสามารถทำได้เพื่อหยุดสิ่งนั้น เช่นเมื่อฉันเพิ่งรัน{SERVERCOMMAND}ด้วยตัวเอง (ในลักษณะบล็อก) ฉันสามารถกดctrl+ cซึ่งไม่ฆ่ามันทันที มันพิมพ์Received ^C signal, shutting …
15 linux  bash  less  nohup 

4
bash: หน้าคนที่มีสี
ฉันจะต้องดูที่ระบบในการทำให้หน้าคนเป็นสี? หน้า man ดูน้อยกว่าดังนั้นฉันพยายามเพิ่มบรรทัดต่อไปนี้ใน. bashrc ของฉันเพื่อเปลี่ยนสี: (ใช้งานได้ดี btw) # # L E S S C O L O R S F O R M A N P A G E S # # CHANGE FIRST NUMBER PAIR FOR COMMAND AND FLAG COLOR # currently 0;33 a.k.a. brown, which is dark …
15 bash  shell  colors  pager  man 

4
ค้นหาไฟล์ด้วยชุด ACL
ฉันสามารถหาไฟล์ทั้งหมดที่มีบาง ACL ของการขยายกำหนดคือผู้ที่มีเล็ก ๆ น้อย ๆในตอนท้ายของธงอนุญาตแสดงโดย+ls -l findฉันไม่สามารถหาธงที่สอดคล้องกันสำหรับ วิธีการที่ไร้เดียงสาของฉันจะเป็นfindบวกกับและls -l grepแต่ฉันไม่คิดว่ามันดี มีใครบางคนมีความคิด?
15 linux  bash  find  acl 

2
ทำไมถึงได้ [[: ไม่พบเมื่อใช้งานสคริปต์]
ฉันพยายามเขียนสคริปต์ที่ต้องตรวจสอบว่ามีไฟล์อยู่หรือไม่ ในคอนโซลฉันเขียน if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi และฉันได้รับ not mod แต่เมื่อฉันเขียนสคริปต์เพื่อทำสิ่งเดียวกัน: #!/bin/sh if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi แล้วรันสคริปต์ฉันได้รับสิ่งนี้: ./ex.sh: 2: [[: not found mod ฉันบันทึกสคริปต์ในไดเรกทอรีปัจจุบันและตั้งชื่อเป็น ex.sh จากนั้นฉันตรวจสอบให้แน่ใจว่าสามารถเรียกใช้งานได้ ในการเรียกใช้สคริปต์ฉันต้องทำสิ่งนี้: ./ex.sh ทำไมฉันถึงได้รับปัญหานี้? ฉันลองมาหลายอย่างแล้ว: if [ -a …

5
วิธีดำเนินการเชลล์สคริปต์โดยอัตโนมัติเมื่อเข้าสู่ระบบ Ubuntu
ฉันจะรับสคริปต์ให้ดำเนินการโดยอัตโนมัติเมื่อฉันเข้าสู่ระบบได้อย่างไร ไม่ใช่เมื่อเครื่องเริ่มทำงานและไม่ใช่สำหรับผู้ใช้ทั้งหมด แต่เฉพาะเมื่อฉัน (หรือผู้ใช้ที่มีสคริปต์) เข้าสู่ระบบผ่าน GNOME UI จากการอ่านที่อื่นฉันคิดว่ามันอยู่.bash_profileในไดเรกทอรีบ้านของฉัน แต่สำหรับฉันมันไม่มีผลกระทบ เมื่อฉันรันมันด้วยตนเองในหน้าต่างเทอร์มินัลโดยการพิมพ์~/.bash_profileมันจะทำงานได้ แต่มันจะไม่ทำงานโดยอัตโนมัติเมื่อฉันเข้าสู่ระบบ ฉันใช้ Ubuntu 11.04 ได้รับอนุญาตจากไฟล์บน .bash_profile -rwx------ของฉันคือ ไม่มี. bash_profile ในโฮมไดเร็กตอรี่ของฉันก่อนที่ฉันจะสร้างมันขึ้นมาวันนี้ ฉันดูเหมือนจะจำ Linux เวอร์ชันเก่าที่มี.profileไฟล์สำหรับผู้ใช้แต่ละคน แต่นั่นไม่ได้ผล เป็นอย่างไรบ้าง? ฉันต้องกำหนดค่าอย่างอื่นเพื่อให้. bash_profile ทำงานได้หรือไม่ หรือสคริปต์เข้าสู่ระบบต่อผู้ใช้จำเป็นต้องอยู่ในไฟล์อื่นหรือไม่?

6
จะตรวจสอบว่า cygwin mintty / bash ทำงานเป็นผู้ดูแลระบบได้อย่างไร?
คำแถลงปัญหา:วิธีที่ดีที่สุดในการทดสอบว่าmintty bashเซสชันCygwin คือ "Run as adminstrator" คืออะไร? ทำไมโดยเฉพาะ ปกติฉันมีminttyเทอร์มินัลหลายเครื่องเปิดเมื่อใช้ Windows ( minttyไม่มีแท็บ) สิ่งที่น่าอึดอัดที่สุดคือเมื่อฉันต้องการค้นหาหน้าต่างเทอร์มินัลที่ฉันเริ่มต้นด้วยการคลิกขวาที่ "Run as administrator" เมื่อเช่นฉันต้องการเรียกใช้pingหรือขั้นตอนแบบครั้งเดียวอื่น ๆ ฉันต้องการระบุ "run as administrator" -ness ของเซสชันเทอร์มินัลด้วยภาพ (โดยการเปลี่ยนbashตัวแปร shell prompt PS1ในไฟล์เริ่มต้นของฉัน~/.bashrc) วิธีแก้ปัญหาที่อาจเกิดขึ้นอย่างรวดเร็ว: ฉันสามารถเปรียบเทียบค่าของตัวแปรสภาพแวดล้อมบางอย่าง โดยการดูอย่างรวดเร็วของการenvส่งออกมีความแตกต่างค่อนข้างมาก อย่างไรก็ตามเป็นการยากที่จะบอกว่าส่วนใดที่เชื่อถือได้มากที่สุดในแง่ของการพกพาไปยังเครื่อง Windows เครื่องอื่น (อาจใช้ Windows รุ่นอื่น) idid -Gnแสดงกลุ่มที่แตกต่างกันโดยเฉพาะหากเรียกใช้ในฐานะผู้ดูแลระบบ ในเครื่อง Windows 7 ของฉันฉันมีAdministratorsและrootเพิ่มกลุ่มในรายการ อีกครั้งฉันไม่แน่ใจว่ามันพกพาได้หรือไม่ ฉันสามารถลองเขียนไฟล์ไปยังตำแหน่งที่อาจล้มเหลวในฐานะผู้ใช้ปกติ แต่ฉันไม่ต้องการที่จะเขียนไฟล์ใด ๆ ไปยังสถานที่แปลก ๆ ซึ่งสิ่งนี้อาจเกิดขึ้นได้ในบางสถานการณ์ที่อาจจะเป็นอันตราย …

4
pip ไม่ทำงานกับการติดตั้ง hombrew python 2.7
ฉันได้ติดตั้งไพ ธ อนโดยใช้ homebrew และฉันไม่สามารถเรียกใช้ pip จาก bash ได้ ฉันได้ลองแก้ไข. bash_profile ของฉันเพื่อรวม / usr / local / bin / python และ / usr local / share / python เพื่อไม่ให้เกิดประโยชน์ เมื่อฉันใช้คำสั่ง bash: find / -name 'pip' ผลลัพธ์เดียวที่ฉันได้รับคือ: /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip /Users/Ivan/Library/Caches/pip /Users/Ivan/Library/Logs/pip /usr/local/Cellar/python/2.7.9/libexec/pip /usr/local/Cellar/python/2.7.9/libexec/pip/pip /usr/local/lib/python2.7/site-packages/pip ไม่มีสิ่งใดที่ปฏิบัติการได้ ฉันไม่ทราบว่าจะชี้ $ PATH ของฉันไปที่ใดเพราะฉันไม่สามารถหาจุดปฏิบัติการได้ เมื่อฉันเปิด /usr/local/lib/python2.7/site-packages/pip หรือ …
15 macos  bash  python  homebrew  pip 

4
มีอะนาล็อกของ Ctrl + Z & fg ใน Powershell หรือไม่?
ฉันพบว่าการรวมกันของ Ctrl + Z กับ fg ที่ตามมาใน Bash มีประโยชน์มากมันเหมือนกับอะนาล็อกบรรทัดคำสั่งของ alt + tab ดังนั้นฉันสามารถสลับจากการดูหนึ่งไฟล์ไปยังเอาต์พุตของกระบวนการทำงาน ฯลฯ มีระบบอนาล็อกสำหรับ Windows Powershell หรือไม่? ฉันไม่สามารถ google อะไรได้นอกจาก "หยุด" ซึ่งเพิ่งหยุดกระบวนการทำงานปัจจุบัน แต่ไม่ให้ฉันสลับไปยังบรรทัดคำสั่งแล้วย้อนกลับ

3
. โปรไฟล์ไม่ทำงานเมื่อฉันเริ่มต้นเทอร์มินัล bash
เมื่อฉันเริ่มต้น bash เทอร์มินัล. โปรไฟล์ของฉันไม่ได้ถูกดำเนินการ ฉันไม่มี ~ / .bash_profile หรือ ~ / .bash_login ดังนั้น. profile ควรจะทำงานใช่ไหม มีอะไรผิดปกติอีกไหม?
15 bash  .profile 

2
วิธีตรวจสอบฟังก์ชั่น SysRq ที่เปิดใช้งาน
ไฟล์ /proc/sys/kernel/sysrqมีหมายเลขเดียวเช่น: 1 (เปิดใช้งานคำสั่ง SysRq ทั้งหมด) 0 (ปิดการใช้งานทั้งหมด) หรือเลขจำนวนเต็มบวกฐาน 10 ซึ่งทำหน้าที่เป็น bitmask แบบไบนารี่ทำให้สามารถใช้ฟังก์ชันย่อยได้ ใครช่วยกรุณาบอกฉันว่าฟังก์ชั่น SysRq ได้รับอนุญาต / ไม่อนุญาตเมื่อ bitmask มีการตั้งค่า438? $ cat /proc/sys/kernel/sysrq 438

3
Bash readline จะถูกลบไปจนถึงเครื่องหมายทับก่อนหน้า
ในโหมดทุบตี emacs มีวิธีลบต่อไปจนถึงอักขระเครื่องหมายทับก่อนหน้าหรือไม่ ตัวอย่างเช่นหากฉันป้อนคำสั่งcp /usr/local/bin/reallylongincorrectfolder /home/myname/reallylong_and_correct_pathและต้องการเพียงลบreallylongincorrectfolder. มีทางลัดใด ๆ หรือไม่ นี่เป็นสถานการณ์ที่คอมมอนมากสำหรับฉันในทุบตี มีบางอย่างที่เหมือนdF<char>ใน vi?
15 linux  bash  readline 

1
การตัดคำสั่ง bash แบบยาวในไฟล์สคริปต์
คุณจะตัดคำสั่งยาวไปยังบรรทัดถัดไปภายในไฟล์ bash script ได้อย่างไร เป็นตัวอย่างง่ายๆฉันต้องการเรียกใช้คำสั่ง pushd . && cd /foo/bar && ls && popd จากคอนโซลฉันสามารถทำได้: pushd . \ && cd /foo/bar \ && ls \ && popd และที่ล้อมรอบเส้น แต่รหัสเดียวกันในไฟล์สคริปต์สร้างข้อผิดพลาด คุณจะตัดบรรทัดเหล่านี้เพื่อจัดรูปแบบได้อย่างไร?

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