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

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

2
รับหมายเลขหน้าต่างปัจจุบันสำหรับ bash prompt
ฉันต้องการแทนที่แถบสถานะด้วย bash prompt ที่แสดงหมายเลขหน้าต่างเช่น① ฉันจะรับหมายเลขหน้าต่างปัจจุบันในเชลล์ได้อย่างไร มีตัวแปร env ของ TMUX_PANE แต่น่าเสียดายที่ไม่มี TMUX_WINDOW ฉันได้ใกล้เคียงที่สุดคือ: tmux display-messageแฟลชข้อมูลหน้าต่าง / บานหน้าต่างจากนั้นใช้บรรทัดสุดท้ายของtmux show-messagesและแยกมัน ฉันไม่ต้องการให้ข้อมูลหน้าต่าง / บานหน้าต่างกระพริบทุกครั้งที่มีข้อความแจ้งปรากฏขึ้น
11 bash  tmux  prompt 


4
Bash says ไฟล์ไม่มีอยู่ แต่มันทำ
ฉันพยายามรวบรวมเฟิร์มแวร์สำหรับ linksys WRVS4400N ของฉัน lsแสดงให้เห็นว่ามีอยู่จริง แต่เมื่อพยายามเรียกใช้มันทุบตีจะบอกว่าไม่มีอยู่ ฉันสามารถทำได้catและเป็นไฟล์ที่เรียกใช้งานได้ไม่ใช่เชลล์สคริปต์
11 bash  arch-linux 

3
เชื่อมต่อกับเครือข่าย WiFi โดยใช้ Mac Terminal
ทุกครั้งที่ฉันพยายามค้นหาวิธีการทำเช่นนี้ฉันจะหาวิธีทำบน linux และมันไม่ถ่ายโอน ฉันจะเชื่อมต่อกับเครือข่าย WiFi โดยใช้ Mac Terminal Bash ได้อย่างไร

6
หน้าจอ GNU จะไม่สืบทอด PATH ของฉันที่ 10.5.8
ฉันใช้หน้าจอเป็นประจำทุกวันสำหรับความต้องการของเครื่องและฉันมีความสุขมากกับมัน เมื่อเร็ว ๆ นี้ แต่ผมทำบางอย่างเพื่อการปรับปรุงแฟ้มการกำหนดค่าทุบตีของฉันและฉันสังเกตเห็นว่าผมได้รับการตั้งค่าต่าง ๆPATHองค์ประกอบ ( PATH, MANPATH, INFOPATHฯลฯ ) ในสถานที่ 2 แห่ง .bash_profileผมปรับเปลี่ยนไฟล์ที่จะเป็นสิ่งที่พวกเขาควรจะเป็นและตอนนี้ทั้งหมดของตัวแปรสภาพแวดล้อมของฉันได้รับการตั้งครั้งเดียวใน นี่คือปัญหาของฉัน เห็นได้ชัดว่าเหตุผลที่ฉันตั้งค่าพวกเขาในสองสถานที่เป็นเพราะหน้าจอ หน้าจอปรากฏขึ้นเพื่อดำเนินการเท่านั้น.bashrcและไม่ได้รับมรดกPATHตัวแปรสภาพแวดล้อมอื่น ๆของฉันหรืออย่างถูกต้องจากเปลือก bash ดั้งเดิมของฉัน เพราะเพียงดำเนินการ.bashrcและตอนนี้ฉันตั้งค่าตัวแปรของฉันในเพียงฉันได้รับไม่สมบูรณ์.bash_profilePATH คำถามของฉันคือการทำให้ตัวแปรสภาพแวดล้อมของฉันเข้าสู่หน้าจอโดยไม่ต้องทำซ้ำ การอ่านผ่านBashเอกสารดูเหมือนจะบ่งบอกว่ามันอาจเป็นชนิดของเชลล์ที่หน้าจอใช้ในการเข้าสู่ระบบนั่นคือเชลล์แบบโต้ตอบที่ไม่ใช่การเข้าสู่ระบบแต่ฉันไม่สามารถหาวิธีบังคับให้หน้าจอใช้เชลล์ชนิดใดชนิดหนึ่งเท่านั้น -s /bin/bashเปลือกใช้ผ่านทาง คุณสามารถอ่าน config ไฟล์ของฉันที่หน้า GitHub ของฉัน นี่คือการกระทำการกระทำที่หน้าจอยากจน แก้ไข:ฉันใช้Screen version 4.00.03 (FAU) 23-Oct-06และฉันมักจะเรียกใช้โดยscreen -h 50000 แก้ไข:ตอนนี้ฉันสามารถทดสอบบน Cygwin ( CYGWIN_NT-5.1 1.7.1(0.218/5/3) i686, Screen version 4.00.03 (FAU) 23-Oct-06) …

1
ออกจาก bash script เมื่อ curl ได้รับสถานะที่ไม่ใช่ 200 HTTP
ฉันมีการตั้งค่าสคริปต์ทุบตีเพื่อดำเนินการตามคำขอ curl สองสามข้อ for currency in EUR INR JPY do curl -i --data '{"currency": "'$currency'"}' -H "Accept: application/json" -H "Content-Type: application/json" http://0.0.0.0:8080/price && echo done มีวิธีที่จะทำให้สคริปต์ออกถ้าหนึ่งในการตอบสนองของขดกลับมาด้วยสถานะ http! = 200? ฉันยังต้องการเก็บเอาท์พุท curl มาตรฐานไว้เช่นฉันไม่ต้องการโซลูชันที่พิมพ์รหัสสถานะ http เท่านั้น ไชโย

1
ssh + sudo + su ลงในเชลล์ล็อกอิน
ฉันมีเครื่องหลายเครื่องที่ฉันใช้เป็นประจำเท่านั้นsudo suเพื่อใช้ในส่วนที่เหลือของการเข้าสู่ระบบในฐานะผู้ใช้ที่มีวัตถุประสงค์พิเศษ เวิร์กโฟลว์ทั่วไปคือ: mymachine:~ me$ ssh me@othermachine othermachine:~ me$ sudo su - specialuser # note: no password needed othermachine:~ specialuser$ # do stuff ฉันต้องการต้มสิ่งนี้ลงในสายการบินเดียวที่ฉันสามารถใช้นามแฝงได้ดังนั้นฉันจึงสามารถตั้งชื่อแทนสำหรับแต่ละเครื่องและไปยังตำแหน่งที่ฉันต้องเป็นคำสั่งเดียวโดยไม่ต้องพิมพ์sudo su - specialuserหม้อต้ม ฉันอาจตั้งค่าme@othermachineให้ใช้sudo suในการเข้าสู่ระบบ แต่ฉันต้องการที่จะรักษาความยืดหยุ่นในการทำงานราวกับmeว่าฉันต้องการ ( หมายเหตุ:ฉันไม่มีการควบคุมใด ๆothermachineหรือวิธีการตั้งค่านี่เป็นขั้นตอนการทำงานที่กำหนดไว้ที่ฉันเข้ามาเมื่อฉันถูกว่าจ้าง) ความคิดแรกของฉันเป็นเพียงแค่ ssh me@othermachine "sudo su - specialuser" และงานประเภทนี้ แต่มันทำให้ฉันพรอมต์ไม่^Cฆ่าและออกจากระบบและฉันคิดว่าสิ่งอื่น ๆ อีกมากมายอาจผิดด้วย หลังจากอ่านคำสั่ง Run Remote ssh ด้วย Full …
11 bash  ssh  sudo 

3
ดำเนินการคำสั่งที่เก็บไว้ในตัวแปร
ฉันมีคำสั่งเก็บไว้ในตัวแปร สมมติว่าตัวแปร$iมีค่า: cat -nT index.php |grep 'someregex' เมื่อฉันพยายามที่จะดำเนินการตัวแปรข้างต้นโดยการพิมพ์$iมันล้มเหลวเพราะเชลล์พยายามที่จะดำเนินการตัวแปรทั้งหมดเป็นคำสั่งเดียว ฉันยังลองใช้eval($i)และใส่$ibackticks ฉันจะทำให้เชลล์ดำเนินการ$iราวกับว่ามันเป็นคำสั่งได้อย่างไร และทำไมมันไม่ทำงานเหมือนกัน $i='echo hi'; $i เป็นเพราะฉันต้องแฮ็คคำพูดเดียว? (เพราะคุณไม่สามารถซ้อนได้) ปัจจุบันโซลูชันของฉันคือ echo $i > /foo; . /foo แต่ฉันไม่ต้องการสร้างไฟล์สำหรับสิ่งนี้เพียงเพื่อลบในภายหลัง สิ่งที่ฉันหมายถึงโดย "ฉันแฮ็คในคำพูดเดียวที่ฉันทำ: $i='cat index.php | grep -P '"'"'MYREGEXHERE'"'"
11 linux  bash  shell 

1
Bash: การค้นหา DNS ย้อนกลับของที่อยู่ IP ที่ใช้งาน
ฉันมีคำสั่งบรรทัดเดียวที่แสดงที่อยู่ IP ที่ใช้งานมากที่สุด 10 อันดับแรกจากบันทึกการเข้าถึงเว็บเซิร์ฟเวอร์: cat access.log | awk '{print $1}' | sort | uniq -c | sort -n | tail -n10 ชุดผลลัพธ์ตัวอย่าง (มีเพียง 3 รายการเพื่อความเรียบง่าย) จะเป็น: 20 12.34.56.7 22 3.67.89.201 29 9.0.203.255 อย่างที่คุณเห็นการนับนำหน้าที่อยู่ IP โดยที่ทั้งสองคั่นด้วยช่องว่าง จริงๆแล้วมีช่องว่างก่อนหน้าการนับด้วย แต่ฉันไม่สามารถให้พวกเขาแสดงที่นี่ ฉันชอบทำการค้นหา DNS ย้อนกลับของที่อยู่ IP เพื่อให้มีลักษณะดังนี้: 20 12.34.56.7 (d12-34-56-7.abhsia.telus.net) 22 3.67.89.201 (customer.vpls.net) 29 …
11 linux  networking  bash  dns 

3
เป็นไปได้หรือไม่ที่จะทำให้กระบวนการทำงานเบื้องหน้าเป็นพื้นหลังโดยไม่หยุดทำงาน (control + z)?
ฉันใช้งานแอพพลิเคชั่นที่รับแพ็คเก็ต TCP และ UDP ดังนั้นจึงไม่สามารถระงับได้ ฉัน intially วิ่ง 3 &กระบวนการของโปรแกรมเดียวกันกับการขัดแย้งที่แตกต่างกันในโหมดพื้นหลังใช้ เมื่อฉันทำเท่านั้น$fgกระบวนการทั้งสามเข้ามาอยู่เบื้องหน้า ตอนนี้ฉันต้องการส่งพวกเขาเป็นพื้นหลังอีกครั้ง แต่ไม่มีการระงับ ฉันจะทำสิ่งนั้นได้อย่างไร
11 linux  bash  unix 

8
การเรียกใช้สคริปต์จากไดเรกทอรีอื่น
บ่อยครั้งที่สคริปต์ที่ฉันต้องการดำเนินการไม่ได้อยู่ในไดเรกทอรีการทำงานปัจจุบันของฉันและฉันไม่ต้องการออกจากมัน เป็นการดีที่จะเรียกใช้สคริปต์ (BASH, Perl และอื่น ๆ ) จากไดเรกทอรีอื่นหรือไม่? พวกเขามักจะพบสิ่งของทุกอย่างที่พวกเขาต้องการเพื่อให้ทำงานอย่างถูกต้องหรือไม่? ถ้าอย่างนั้นวิธีที่ดีที่สุดในการใช้งานสคริปต์ "ไกล" คืออะไร? ใช่ไหม . /path/to/script หรือ sh /path/to/script และวิธีการใช้งานsudoในกรณีเช่นนี้? เช่นนี้ไม่ทำงาน: sudo . /path/to/script

2
bash <<syntax หมายถึงอะไร
ติดตั้ง Ruby Version Manager (RVM) ดังนี้: bash -s stable &lt; &lt;(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer) ฉันเข้าใจว่า &lt;หมายถึงอะไรก่อน (ฟีดสคริปต์ทุบตีเพื่อแปลล่าม) ฉันสับสนกับ&lt;(...)ส่วนหนึ่ง ดังนั้นวงเล็บทำอะไรที่นี่และเครื่องหมายน้อยกว่า ในกรณีใดบ้างที่เราสามารถใช้ไวยากรณ์เดียวกันได้ ฉันพยายามที่จะขุดบนอินเทอร์เน็ตพบคำถามนี้ดังนั้น/programming/2188199/bash-double-or-single-bracket-parentheses-curly-bracesและคำถามนี้ใน ubuntuforums: http: // ubuntuforums .org / showthread.php? p = 7803008แต่ก็ยังไม่รู้ว่าทำไมเราใช้วงเล็บเหล่านั้นและทำไมเราถึงใช้การเปลี่ยนเส้นทางอินพุตสองครั้ง bash &lt; curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer ไม่เหมือนกันใช่ไหม ขอบคุณ
11 bash  syntax 

1
.bashrc กำลังโหลดนามแฝงจากไฟล์อื่น
ฉันมีไฟล์. bashrc ซึ่งฉันต้องการตั้งค่าเพื่อให้อ่านนามแฝงจากไฟล์. aliias และตั้งค่า ปัจจุบันฉันมี: # User specific aliases and functions while read alias_line do echo `alias ${alias_line}` done &lt; .aliases แต่เมื่อเข้าสู่ระบบฉันจะได้รับ: -bash: alias: -fu: not found -bash: alias: $ USER ": ไม่พบ -bash: alias: -lart ": ไม่พบ ไฟล์. aliases เป็นดังนี้: psu = "ps -fu $ USER" ll = …
11 bash  alias  bashrc 

2
ใส่ภารกิจเป็นแบ็คกราวด์
foo &amp;ฉันรู้ว่าคุณสามารถเริ่มต้นงานพื้นหลังที่มีการทุบตีทำ อย่างไรก็ตามวิธีที่ดีที่สุดที่ฉันรู้ว่าจะนำงานเบื้องหน้าไปยังพื้นหลังคือการทำCtrl+ zเพื่อหยุดชั่วคราวแล้วbg 1กลับมาทำงานในพื้นหลังต่อ มีวิธีที่เร็วกว่านี้ไหม การรวมกันของแป้นCtrl+ บางอย่างที่Somethingฉันไม่ทราบ?
11 bash 

3
Guake - Windows 10 + Bash
มีวิธีใดบ้างที่จะให้Guakeทำงานบน Windows 10 หรือแบบเลื่อนลง "คอนโซลโฮสต์" ทางเลือกที่จะโฮสต์ Win 10 Bash ใหม่หรือไม่
11 windows-10  bash 

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