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

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

0
ไม่สามารถเข้าถึง Python Http Server ที่ทำงานบน Win10 Ubuntu bash จากเครือข่าย
ฉันพยายามเรียกใช้เว็บเซิร์ฟเวอร์จาก Ubuntu Bash บน Windows 10 โดยใช้สิ่งต่อไปนี้: python -c 'import BaseHTTPServer as bhs, SimpleHTTPServer as shs; bhs.HTTPServer(("135.135.135.11", 8888), shs.SimpleHTTPRequestHandler).serve_forever()' อย่างไรก็ตามฉันไม่สามารถเชื่อมต่อกับเครื่องอื่นได้ บน Localhost เท่านั้น มันใช้งานได้ถ้าฉันเรียกใช้จาก windows python ฉันพยายามเพิ่มกฎทุบตีสำหรับ bash.exe ในไฟร์วอลล์ Windows แต่ไม่มีอะไรทำงาน ความคิดใด ๆ

2
วิธีการแทนที่คำสั่งด้วยผลลัพธ์ของคำสั่งอื่นใน linux?
ฉันต้องการสร้างคำสั่งที่ใช้ผลลัพธ์ของสิ่งอื่นเช่นนี้: JNLP_FILE='find . -name viewerApplet.jnlp' cp ${JAR_FILE} ../../sign-jar/$PROFILE/ แต่ฉันไม่รู้วิธีเรียกใช้งานคำสั่ง find เพื่อใช้สำหรับคำสั่ง 'cp' ความช่วยเหลือใด ๆ

4
Rsync พร้อมรายการตัวแปร
ฉันพยายามเขียนสคริปต์ทุบตีที่จะซิงค์เฉพาะโฟลเดอร์ย่อยบางชุดเท่านั้น ฉันพยายามคิดให้ลื่นมากขึ้นเพื่อที่ฉันจะสามารถเพิ่มตัวแปรเช่นFOLDER1='name of folder in home directory'แล้ว rsync -arvz --delete /home/emka/$FOLDER1/ /home/emka/Desktop/Mount/$FOLDER1 ขณะนี้ฉันมีFOLDER1ผ่านFOLDER13แต่ฉันไม่ต้องการมีบรรทัดข้างต้นสิบสามครั้ง ใครช่วยผลักดันให้ฉันทำเช่นนี้?
bash  rsync 

1
Linux ทุบตีสีที่ทับซ้อนกันของเส้น
ปัญหา ฉันมีสคริปต์ ps1และใช้งานได้ดี (ฉันกำลังใช้\[$(tput setaf x)\]) แต่เมื่อฉันใช้ printf กับสีฉันมี 2 สถานการณ์: เส้นที่ทับซ้อนกัน printf $(tput setaf 2)HI!$(tput sgr0) ซึ่งพิมพ์HI!ด้วยสีเขียว แต่จะทำให้การตัดขาด การพิมพ์ \ [\] printf \[$(tput setaf 2)\]HI!\[$(tput sgr0)\] พิมพ์ไหน \[\]HI!\[\] บันทึก ฉันพยายามใช้echoโดยไม่ประสบความสำเร็จ

2
คุณจะได้ส่วนที่เจาะจงของคำในไฟล์โดยใช้ awk ได้อย่างไร
ฉันมีสคริปต์ที่เป็นเช่นนี้: script.m rng('shuffle'); load samples123/stage17/resamp_stage.mat indarray = str2num(getenv('arrayindex')); index = (indarray-1)*4+1:(indarray)*4 samplenow = samplestage(index,:); for i = 1:4 ind = index(i); i num = 123; sampleind = samplenow(i,:); opt.Ndrag = 1; a = cputime; outsmpl = continue_dragon(opt,beta,sampleind,stage,num,covsmpl,ind); b = cputime; b-a toc end ฉันต้องการดึงเฉพาะ 'stage17' ซึ่งอยู่ในบรรทัดที่สอง ฉันพยายามต่อไปนี้: awk '/samples123/{print $2}' …
bash  unix  awk 

3
ประมวลผลข้อมูลข้อความล้วน
ฉันเป็นไฟล์ข้อความธรรมดาที่ฉันต้องตรวจสอบโดยอัตโนมัติและเขียนผลลัพธ์ในไฟล์ข้อความธรรมดาอีกไฟล์ โปรดทราบว่าฉันจะใช้ข้อความธรรมดาและ CSV แทนกันเนื่องจาก CSV เป็นข้อความธรรมดาที่มีตัวคั่นทั่วไประหว่างข้อมูล (จุลภาคแท็บ ฯลฯ ) ตัวอย่างข้อมูล ABD-01A ABD-01B ABD-01C AL-25A AL-25B ดำเนินการหนึ่ง - จดจำสองส่วนแรกของข้อมูล ( text- number) เพื่อทำซ้ำและนับใน CSV ที่ส่งออก: ABD-01,1 ABD-01,2 ABD-01,3 AL-25,1 AL-25,2 กระบวนการที่สอง - ส่วนแรกของข้อมูลที่รวบรวมไว้ด้านบนมีประเภทของคีย์หลักที่กำหนดให้กับไฟล์อื่น ฉันต้องการรับคีย์หลักที่กล่าวถึงในไฟล์ที่สร้างขึ้นใหม่เช่นกัน: #primary key file 1,ABD-01 2,ABD-02 3,AL-02 20,AL-25 #newly generated file 1,ABD-01,1 1,ABD-01,2 1,ABD-01,3 20,AL-25,1 20,AL-25,2 โดยพื้นฐานแล้วสิ่งที่ฉันถามเธอคือหากมีซอฟต์แวร์ใดที่สามารถช่วยฉันได้ทั้งในระบบปฏิบัติการ Windows …

1
เมื่อฉันเปลี่ยนไดเรกทอรีการทำงานในสคริปต์และดำเนินการไดเรกทอรีการทำงานจะเปลี่ยนเส้นทางที่ระบุในขณะที่อยู่ในสคริปต์เท่านั้น
เมื่อฉันเปลี่ยนไดเรกทอรีการทำงานในสคริปต์และดำเนินการไดเรกทอรีการทำงานจะเปลี่ยนเส้นทางที่ระบุในขณะที่อยู่ในสคริปต์เท่านั้น นี่คือสคริปต์ของฉัน: (นี่คือเพื่อให้แน่ใจว่ามันเปลี่ยนไดเรกทอรีจริงหรือไม่) #!/bin/bash cd /media/hard/drive/partitionX/ pwd เมื่อฉันรันมันจะส่งคืนพา ธ ที่ระบุ แต่ไดเร็กทอรีการทำงานของฉันในเทอร์มินัลจะไม่เปลี่ยนแปลง ฉันจะเปลี่ยนไดเรกทอรีการทำงานใน terminal ของฉันผ่านสคริปต์ได้อย่างไร

1
ฉันจะรันคำสั่งในทุกไฟล์ในไดเรกทอรีที่กำหนดได้อย่างไร
ฉันใช้mp4boxเพื่อย้ายอะตอม MOOV บนไฟล์ MP4 สิ่งนี้คือฉันจะมี 6 ไฟล์ในโฟลเดอร์ที่กำหนดและฉันไม่ต้องการเรียกใช้inter 500คำสั่งหกครั้งแยกกัน เป็นไปได้ไหมที่จะทำบางอย่างเช่นmp4box -inter 500 *ในไดเรกทอรีเพื่อให้คำสั่งรันไฟล์ mp4 ทั้งหมดในโฟลเดอร์นั้น
linux  bash  mp4box 

1
ตัวกรองกราฟิคจะคัดลอกลำธารเสียงตามค่าเริ่มต้นใน FFMpeg หรือไม่?
ฉันได้รับคำสั่งต่อไปนี้ใน FFMpeg: ffmpeg -i file_input.mp4 -filter_complex split=2[i1][i2];[i1]scale=trunc(oh*a/2)*2:480[o1];[i2]scale=trunc(oh*a/2)*2:640[o2] -map [o1] -map 0:a -pix_fmt yuv420p -vcodec libx264 file_out_1.mp4 -map [o2] -map 0:a -pix_fmt yuv420p -vcodec libx264 file_out_2.mp4 สิ่งที่คำสั่งนี้ทำคือการแยกไฟล์ต้นฉบับของฉันออกเป็นสองส่วนขนาดวิดีโอใน 2 รูปแบบที่แตกต่างกันและเข้ารหัสวิดีโอสตรีมอีกครั้งโดยใช้x264ตัวแปลงสัญญาณ จนถึงตอนนี้ดีมาก ตอนนี้โปรดสังเกต-map 0:aธง หากฉันลบสิ่งนี้ออกจากทั้งสองสตรีมไฟล์ผลลัพธ์ที่ได้จะไม่มีเสียงเลย ทำให้ฉันสงสัยว่าscaleตัวกรองจะลบเสียงออกจากช่อดอกไม้โดยอัตโนมัติหรือเป็นอย่างอื่น หากฉันเปลี่ยนคำสั่งเป็นเล็กน้อยและพยายามดึงกระแสข้อมูลเสียงจากผลลัพธ์ [o1] หรือ [o2] ฉันยังไม่ได้ยินเสียงเลย: ffmpeg -i eFront_sample.mp4 -filter_complex split=2[i1][i2];[i1]scale=trunc(oh*a/2)*2:480[o1];[i2]scale=trunc(oh*a/2)*2:640[o2] -map [o1]:a -pix_fmt yuv420p -vcodec libx264 file_out_1.mp4 …

1
ฉันจะบังคับให้ออกจากการทุบตีได้อย่างไร
ฉันใช้ระบบย่อย Windows สำหรับ Linux และด้วยเหตุผลบางอย่างหน้าต่างทุบตีไม่ได้ปิด ฉันเริ่มตัวจัดการงานเพื่อบังคับให้เลิก แต่ไม่ได้แสดงเป็นกระบวนการ ฉันจะบังคับให้ออกจากการทุบตีได้อย่างไร? (สำหรับตอนนี้ฉันเพิ่งจะรีสตาร์ทคอมพิวเตอร์ แต่มันก็เป็นการดีที่จะรู้วิธีการออกโดยไม่ต้องทำเช่นนี้) ภาพ: แก้ไข: ดังนั้นฉันพบกระบวนการภายใต้ "กระบวนการ Windows >> ระบบ >> เลือก ... " เมื่อฉันคลิกที่ "Bring to front" มันจะเปิดหน้าต่างที่ไม่ปิด อย่างไรก็ตามอย่างที่คุณเห็นในภาพเมื่อฉันพยายามที่จะ "จบภารกิจ" มันก็แค่บอกว่า "ไม่ตอบสนอง" เพียงไม่กี่วินาทีและอยู่ได้

1
ใช้หน้าจอ GNU เพื่อสร้างสภาพแวดล้อมแบบแยกหน้าจอจากบรรทัดคำสั่ง
มีคนช่วยแนะนำฉันไปที่ไวยากรณ์สำหรับการใช้หน้าจอ GNU จากบรรทัดคำสั่ง ในคลัสเตอร์ก่อนหน้านี้ฉันจัดการเพื่อสร้างสคริปต์ทุบตีที่จะสร้างเชลล์จำนวนกระเบื้องที่ X จำนวนแต่ละ ssh-ing ลงในโหนดระยะไกลและเรียกใช้ htop ด้วยวิธีนี้ฉันสามารถตรวจสอบทั้งคลัสเตอร์จากเปลือกหนึ่ง ฉันสูญเสียการเข้าถึงคลัสเตอร์นั้น (และการทำงานกับมัน) แต่ฉันต้องทำสิ่งเดียวกันอีกครั้ง ฉันจำได้ว่าเห็นคำถามที่ตอบแล้วใน StackExchange, SuperUser หรือ LinuxQuestions ซึ่งเป็นสิ่งที่ฉันอ้างอิงจากสคริปต์ก่อนหน้าของฉัน แต่ฉันไม่สามารถหาชีวิตของฉันได้อีกดังนั้นฉันต้องถามอีกครั้ง ขอบคุณ, จวร์ต ** กรุณาอย่าแนะนำให้ใช้ไฟล์ screenrc นั่นไม่ใช่วิธีที่ดีที่สุดในการบรรลุสิ่งที่ฉันต้องการ

1
เชลล์สคริปต์ใช้ตัวแปรเพื่อเก็บการเปลี่ยนเส้นทางเอาต์พุต
ฉันมีสคริปต์ 'ง่าย' ที่รันคำสั่งไม่กี่ปกติฉันแค่ต้องการเห็น echo สองสามแจ้งให้ฉันรู้ว่ามันขึ้นอยู่กับ แต่บางครั้งฉันต้องการเอาต์พุต verbose ซึ่งแสดงผลลัพธ์ของคำสั่งที่ถูกเรียกใช้ ตัวอย่างการใช้งานปกติ echo "Simple message" wget 'http://example.com' > /dev/null ตัวเลือกอย่างละเอียด echo "Simple message" wget 'http://example.com' ฉันคิดว่าการใช้ตัวแปรเพื่อเก็บการเปลี่ยนเส้นทางผลลัพธ์ output="" if [ -z "$1" ] then output="> /dev/null" fi echo "Simple message" wget 'http://example.com' $output ปัญหามันดูเหมือนจะไม่ทำงานดังนั้นฉันจึงเพิ่ม -x ลงใน shebang และผลลัพธ์แสดงให้ฉันเห็น wget 'http://example.com' '>' /dev/null ฉันจะหยุดไม่ให้>อ้างคำพูดเดียวได้อย่างไร สคริปต์ต้นฉบับมีอยู่มากกว่าเรื่องง่าย …

1
Bash script: อนุญาตให้เปลี่ยนแปลง“ environment / identity”
ฉันเจอปัญหานี้หลายครั้งแล้วและฉันต้องการหาวิธีอัตโนมัติ / สคริปต์สิ่งนี้ที่เกี่ยวข้องกับการเปลี่ยนแปลงของข้อมูลประจำตัวหรือสภาพแวดล้อม (ฉันไม่แน่ใจว่าจะเรียกสิ่งนั้นอย่างแม่นยำได้อย่างไร) suตัวอย่างง่ายจะเป็นสคริปต์ที่ส่วนหนึ่งจะต้องมีการดำเนินการกับ ( make installเช่น) sudoเพื่อให้บรรลุนี้สามารถใช้ อย่างไรก็ตามมีการเปลี่ยนแปลงสภาพแวดล้อมอื่น ๆ ที่ไม่มีทางออกเช่น อาจเป็นที่รู้จักกันดีคือ python virtualenv ที่ใคร ๆ ก็สามารถจินตนาการถึงสคริปต์ได้อย่างง่ายดาย source virtEnv/bin/activate python myScript.py screenหรือเพียงแค่สคริปต์ที่จะเรียก ตอนนี้ฉันกำลังรวบรวม gstreamer ซึ่งฉันต้องการจะทำให้เป็นอัตโนมัติในสคริปต์เพราะฉันจะต้องใช้การติดตั้งนี้ในคอมพิวเตอร์เครื่องอื่น ๆ ในภายหลัง for i in gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-python gnonlin gst-ffmpeg do gst-head cd ./$i git checkout tags/1.1.1 ./autogen.sh make -j7 exit done …
linux  bash 


1
เหตุใดฉันต้องพิมพ์. / เมื่อเรียกใช้งานสคริปต์ในไดเรกทอรีปัจจุบันของฉัน [ซ้ำ]
สำเนาซ้ำที่เป็นไปได้: เพราะเหตุใด ไม่ได้อยู่ในเส้นทางโดยค่าเริ่มต้น? คำถามนี้อาจเล็กน้อย แต่ฉันสงสัยว่าทำไมฉันต้องพิมพ์จุดและเครื่องหมายทับหน้าชื่อสคริปต์ของฉันเพื่อดำเนินการแม้ว่าจะอยู่ในไดเรกทอรีปัจจุบันของฉัน ./my_script.sh เมื่อใดก็ตามที่ฉันพิมพ์โดยไม่มีจุด & เครื่องหมายทับ: my_script.sh ฉันเพิ่งได้รับ-bash: cloud_sync.sh: ไม่พบคำสั่ง อะไรคือสาเหตุของการวาง. /ไว้หน้าชื่อสคริปต์ ขอบคุณ
linux  bash  unix 

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