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

คำว่า 'เชลล์' หมายถึงคลาสทั่วไปของล่ามคำสั่งแบบโต้ตอบตามข้อความซึ่งส่วนใหญ่มักเกี่ยวข้องกับระบบปฏิบัติการ Unix & Linux สำหรับคำถามเกี่ยวกับการเขียนสคริปต์เชลล์โปรดใช้แท็กเฉพาะเพิ่มเติมเช่น 'bash', 'powershell' หรือ 'ksh' หากไม่มีแท็กเฉพาะควรใช้วิธีแก้ปัญหาแบบพกพา (POSIX-compliant) แม้ว่าจะใช้ 'posix' เพิ่มเติมหรือ 'sh' แทนก็ตาม

7
อะไรคือความแตกต่างระหว่างไดเร็กทอรีและโฟลเดอร์?
คนส่วนใหญ่ใช้คำว่า "โฟลเดอร์" และ "ไดเรกทอรี" แทนกัน จากมุมมองของโปรแกรมเมอร์มีความแตกต่างหรือไม่และถ้าเป็นเช่นนั้นมันคืออะไร? ขึ้นอยู่กับระบบปฏิบัติการหรือมีฉันทามติทั่วไปอย่างกว้างขวางหรือไม่? อย่างน้อยสิ่งนี้ชี้ให้เห็นว่ามีความแตกต่าง

8
วนรอบตัวแปรเชลล์ที่คั่นด้วยเครื่องหมายจุลภาค
สมมติว่าฉันมีตัวแปรเปลือก Unix ดังต่อไปนี้ variable=abc,def,ghij ฉันต้องการที่จะดึงค่าทั้งหมด ( abc, defและghij) โดยใช้สำหรับวงและผ่านแต่ละค่าลงในขั้นตอน $variableสคริปต์ควรอนุญาตให้มีการแยกจำนวนข้อของค่าคั่นด้วยเครื่องหมายจุลภาคจาก
114 shell  loops  unix  for-loop  cut 

10
การดำเนินการคำสั่งเชลล์ node.js
ฉันยังคงพยายามเข้าใจประเด็นที่ละเอียดกว่าว่าฉันสามารถรันคำสั่ง linux หรือ windows shell และจับเอาท์พุทภายใน node.js ได้อย่างไร ท้ายที่สุดฉันอยากทำอะไรแบบนี้ ... //pseudocode output = run_command(cmd, args) ส่วนที่สำคัญคือoutputต้องพร้อมใช้งานสำหรับตัวแปร (หรืออ็อบเจ็กต์) ที่มีขอบเขตทั่วโลก ฉันลองใช้ฟังก์ชั่นต่อไปนี้ แต่ด้วยเหตุผลบางอย่างฉันได้รับการundefinedพิมพ์ลงคอนโซล ... function run_cmd(cmd, args, cb) { var spawn = require('child_process').spawn var child = spawn(cmd, args); var me = this; child.stdout.on('data', function(me, data) { cb(me, data); }); } foo = new …

2
bash tab complete ทำงานอย่างไร?
ช่วงนี้ฉันใช้เวลาส่วนใหญ่ในเชลล์และฉันสงสัยว่าการเติมข้อความอัตโนมัติของแท็บทำงานอย่างไร กลไกเบื้องหลังคืออะไร? bash รู้เนื้อหาของทุกไดเร็กทอรีได้อย่างไร?
113 bash  shell  autocomplete 

5
ดำเนินการและรับเอาต์พุตของคำสั่งเชลล์ใน node.js
ใน node.js ฉันต้องการหาวิธีรับเอาต์พุตของคำสั่ง Unix terminal มีวิธีใดบ้างที่จะทำเช่นนี้? function getCommandOutput(commandString){ // now how can I implement this function? // getCommandOutput("ls") should print the terminal output of the shell command "ls" }

7
วิธีย้ายไฟล์ทั้งหมดรวมถึงไฟล์ที่ซ่อนอยู่ไปยังไดเร็กทอรีหลักผ่าน *
คำถามนี้ต้องเป็นคำถามยอดนิยม แต่หาคำตอบไม่ได้ วิธีย้ายไฟล์ทั้งหมดผ่าน * รวมถึงไฟล์ที่ซ่อนอยู่และไปยังไดเร็กทอรีหลักเช่นนี้: mv /path/subfolder/* /path/ การดำเนินการนี้จะย้ายไฟล์ทั้งหมดไปยังไดเร็กทอรีหลักอย่างที่คาดไว้ แต่จะไม่ย้ายไฟล์ที่ซ่อนอยู่ ต้องทำอย่างไร?
113 linux  bash  shell  command 

9
ฉันจะให้ทั้ง STDOUT และ STDERR ไปที่เทอร์มินัลและล็อกไฟล์ได้อย่างไร
ฉันมีสคริปต์ที่จะเรียกใช้แบบโต้ตอบโดยผู้ใช้ที่ไม่ใช่ด้านเทคนิค สคริปต์เขียนอัพเดตสถานะเป็น STDOUT เพื่อให้ผู้ใช้มั่นใจได้ว่าสคริปต์กำลังทำงานตกลง ฉันต้องการให้ทั้ง STDOUT และ STDERR เปลี่ยนเส้นทางไปยังเทอร์มินัล (เพื่อให้ผู้ใช้เห็นว่าสคริปต์ทำงานและดูว่ามีปัญหาหรือไม่) ฉันยังต้องการให้สตรีมทั้งสองเปลี่ยนเส้นทางไปยังไฟล์บันทึก ฉันเคยเห็นวิธีแก้ปัญหามากมายบนเน็ต บางอย่างไม่ได้ผลและบางอย่างก็ซับซ้อนอย่างน่ากลัว ฉันได้พัฒนาโซลูชันที่ใช้งานได้แล้ว (ซึ่งฉันจะป้อนเป็นคำตอบ) แต่มันเป็นสิ่งที่น่ารังเกียจ โซลูชันที่สมบูรณ์แบบคือโค้ดบรรทัดเดียวที่สามารถรวมไว้ในส่วนเริ่มต้นของสคริปต์ใด ๆ ที่ส่งสตรีมทั้งสองไปยังเทอร์มินัลและล็อกไฟล์ แก้ไข:เปลี่ยนเส้นทาง STDERR เป็น STDOUT และส่งผลลัพธ์ไปยังงานที แต่ขึ้นอยู่กับผู้ใช้ที่จำเปลี่ยนเส้นทางและไปป์เอาต์พุต ฉันต้องการให้การบันทึกเป็นแบบอัตโนมัติ (ซึ่งเป็นเหตุผลว่าทำไมฉันจึงต้องการที่จะสามารถฝังโซลูชันลงในสคริปต์ได้)
113 bash  logging  shell 

6
Execute Shell ทำเครื่องหมาย build เป็นความล้มเหลวใน Jenkins อย่างไร / เมื่อใด
เรื่องราวสยองขวัญที่ฉันพบขณะค้นหาคำตอบสำหรับเรื่องนี้ ... ตกลงฉันมีสคริปต์. sh ซึ่งทำทุกอย่างที่เจนกินส์ควรทำ: ตรวจสอบแหล่งที่มาจาก SVN สร้างโครงการ ปรับใช้โครงการ ทำความสะอาดตัวเอง ดังนั้นใน Jenkins ฉันต้อง 'สร้าง' โครงการโดยการเรียกใช้สคริปต์ในคำสั่ง Execute Shell สคริปต์ถูกรัน (มีการดาวน์โหลดแหล่งที่มาโปรเจ็กต์กำลังสร้าง / ปรับใช้) แต่จากนั้นจะทำเครื่องหมายบิลด์ว่าล้มเหลว: ขั้นตอนการสร้าง 'ดำเนินการเชลล์' ทำเครื่องหมายว่าบิลด์ล้มเหลวแม้ว่าสคริปต์จะรันสำเร็จก็ตาม! ฉันพยายามปิดสคริปต์ด้วย: ออกจาก 0 (ยังคงทำเครื่องหมายว่าล้มเหลว) ทางออก 1 (ทำเครื่องหมายว่าล้มเหลวตามที่คาดไว้) ไม่มีคำสั่ง exit เลย (ทำเครื่องหมายว่าล้มเหลว) เมื่อไหร่อย่างไรและทำไม Execute Shell จึงทำเครื่องหมายว่าบิลด์ของฉันล้มเหลว
112 shell  unix  jenkins  build  hudson 

1
ฉันจะวางกระบวนการ linux ที่กำลังทำงานอยู่ในพื้นหลังได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันมีคำสั่งที่อัปโหลดไฟล์โดยใช้ git ไปยังเซิร์ฟเวอร์ระยะไกลจาก Linux shell และจะใช้เวลาหลายชั่วโมงจึงจะเสร็จสิ้น ฉันจะวางโปรแกรมที่กำลังทำงานอยู่ในพื้นหลังได้อย่างไร? เพื่อให้ฉันยังสามารถทำงานกับเชลล์ได้และกระบวนการนั้นก็เสร็จสมบูรณ์เช่นกัน?
112 linux  bash  shell  background 

6
รับ pids จาก ps -ef | grep keyword
ฉันต้องการใช้ps -ef | grep "keyword"เพื่อกำหนด pid ของกระบวนการ daemon (มีสตริงเฉพาะในเอาต์พุต ps -ef อยู่ในนั้น) ฉันสามารถฆ่ากระบวนการโดยpkill keywordมีคำสั่งใดที่ส่งคืน pid แทนการฆ่ามันหรือไม่? (pidof หรือ pgrep ไม่ทำงาน)
111 linux  shell  daemon 

3
จะวางการยืนยันตัวแปร $ PATH ใน zsh ได้ที่ไหน?
ฉันชอบzshแต่ฉันไม่แน่ใจว่าจะวาง$PATHคำยืนยันของฉันและตัวแปรอื่น ๆ ไว้ที่ไหน? ฉันพบว่ามันกระจัดกระจายระหว่างไฟล์.zshrc .zprofile .bashrc .bash_profileและบางครั้งก็เพิ่มเป็นสองเท่า ฉันตระหนักดีว่ามีอะไรอยู่ภายในbashไฟล์ไม่ได้ทำให้ความรู้สึกมากเห็นเป็นผมใช้zshแต่ที่ว่าฉันควรจะวางของฉันrvm, python, nodeฯลฯ เพิ่มเติมให้กับฉัน$PATH? มีไฟล์เฉพาะผมควรจะใช้ (เช่น.zshenvที่ไม่ได้มีอยู่ในปัจจุบันในการติดตั้งของฉัน) ซึ่งเป็นหนึ่งในคนที่ฉันกำลังใช้หรือไม่ได้แม้กระทั่งเรื่อง?
111 macos  shell  zsh 


2
หมายความว่าอย่างไรในเชลล์เมื่อเราใส่คำสั่งไว้ในเครื่องหมายดอลลาร์และวงเล็บ: $ (คำสั่ง)
ฉันแค่ต้องการเข้าใจบรรทัดของโค้ดต่อไปนี้ในเชลล์ ใช้เพื่อรับไดเร็กทอรีการทำงานปัจจุบัน ฉันทราบว่า$(variable)ชื่อส่งคืนค่าภายในชื่อตัวแปร แต่$(command)ควรส่งคืนอะไร มันคืนค่าหลังจากรันคำสั่งหรือไม่? ในกรณีนั้นเราสามารถใช้`เพื่อดำเนินการคำสั่ง CWD="$(cd "$(dirname $0)"; pwd)" ผลลัพธ์เดียวกันสามารถนำมาจากบรรทัดของโค้ดต่อไปนี้และในเชลล์เวอร์ชันอื่น DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" ฉันไม่สามารถเข้าใจความหมายของและ$(cd..$(dirname ใครช่วยฉันคิดว่าคำสั่งนี้ดำเนินการอย่างไร
111 bash  shell  terminal  sh  ksh 

11
แปลงทศนิยมเป็นเลขฐานสิบหกใน UNIX เชลล์สคริปต์
ในเชลล์สคริปต์ UNIX ฉันจะใช้อะไรในการแปลงเลขฐานสิบเป็นเลขฐานสิบหกได้บ้าง ฉันคิดว่า od จะทำเคล็ดลับ แต่ก็ไม่รู้ว่าฉันกำลังป้อนตัวเลข ASCII printf? ขั้นต้น! ใช้ตอนนี้ แต่มีอะไรอีกบ้าง?
110 unix  shell  hex 

22
ฉันจะเปิดใช้งาน Virtualenv ภายในเทอร์มินัลของ PyCharm ได้อย่างไร
ฉันได้ตั้งค่า PyCharm สร้าง Virtualenv ของฉัน (ไม่ว่าจะผ่านคำสั่ง virtual env หรือโดยตรงใน PyCharm) และเปิดใช้งานสภาพแวดล้อมนั้นเป็น Interpreter ของฉัน ทุกอย่างทำงานได้ดี อย่างไรก็ตามถ้าฉันเปิดเทอร์มินัลโดยใช้ "Tools, Open Terminal" แสดงว่าเชลล์พร้อมต์ที่ให้มานั้นไม่ได้ใช้ virtual env ฉันยังคงต้องใช้source ~/envs/someenv/bin/activateภายใน Terminal นั้นเพื่อเปิดใช้งาน อีกวิธีหนึ่งคือการเปิดใช้งานสภาพแวดล้อมในเชลล์และเรียกใช้ PyCharm จากสภาพแวดล้อมนั้น สิ่งนี้ "ใช้งานได้" แต่ค่อนข้างน่าเกลียดและหมายความว่าฉันมีปัญหาใหญ่หากฉันเปลี่ยนสภาพแวดล้อมหรือโปรเจ็กต์จาก PyCharm: ตอนนี้ฉันใช้สภาพแวดล้อมที่ไม่ถูกต้องทั้งหมด มีวิธีอื่นที่ง่ายกว่ามากในการให้ "Tools, Open Terminal" เปิดใช้งานสภาพแวดล้อมเสมือนโดยอัตโนมัติหรือไม่

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