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

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

1
แบบสอบถาม OS / ระบบ / คำสั่งฉีดใน Linux
ฉันพบช่องโหว่การฉีดคำสั่งใน Linux ระบบไม่อนุญาตให้มีความหมายของอักขระช่องว่าง คำสั่งดังต่อไปนี้ใช้งานได้: ;ls แต่ฉันต้องการที่จะให้คำสั่งด้วยช่องว่างเช่น: ;ls -l เนื่องจากไม่อนุญาตช่องว่างจึงไม่ทำงาน ฉันลองด้วยตัวเลือกหลายอย่างเช่น Hexa สำหรับช่องว่าง, ฐานแปด, ใช้ / NULL ตัวอักษร / a, / t, ฯลฯ แต่ไม่มีอะไรทำงาน โดยสรุปมีความเป็นไปได้ที่จะพิมพ์คำสั่งเชลล์หลายคำสั่งโดยไม่มีช่องว่างใน bash shell หรือไม่? รายละเอียดเพิ่มเติมนี่คือ webapp ที่พูดคุยกับลีนุกซ์โดยตรง สิ่งที่ฉันเคยป้อนใน webapps - มันจะสะท้อนให้เห็นในพรอมต์คำสั่ง Linux ถ้าฉันเข้า ;ls -a (it does not work due to space) ;ls;ifconfig; (it works and shows …
linux  bash 

1
นามแฝงที่รันคำสั่งย่อย
ฉันต้องการเรียกใช้ 2 คำสั่งภายใต้ an aliasแต่เนื่องจากมีcdและฉันไม่ต้องการเปลี่ยนโฟลเดอร์จากผู้โทรหลักฉันคิดว่ามันอาจช่วยเรียกคำสั่งย่อย: alias lhu="$(cd /my/path && myotherCommand)" แต่เมื่อโทรมาlhuมันบอกว่าnot found(ฉันsourced แล้ว) ฉันจะทำสิ่งนี้ได้อย่างไร

4
ทำให้การกำหนดค่า bash ยุ่งเหยิงใน Mac OS X
เมื่อฉันคลิกที่เทอร์มินัล มันแสดงสิ่งนี้: Last login: Fri Apr 1 17:04:59 on ttys000 -bash: export: /opt/local/bin': not a valid identifier -bash: export: :/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/local/bin:/usr/local/git/bin:/usr/X11/bin': ไม่ใช่ตัวระบุที่ถูกต้อง Josh @ Macbook-Pro ~ $ export ฉันติดตั้งบางสิ่งบางอย่างเมื่อวานนี้และปรับเปลี่ยน bash_profile ตอนนี้ฉันไม่สามารถทำอะไรในเทอร์มินัล แม้กระlsทั้ง มันกลับมา - ต้องการความช่วยเหลือ ฉันจะแก้ไขได้อย่างไร bash: ls: No such file or directory
macos  bash 

1
สคริปต์เพื่อไม่อนุญาตให้ติดตั้ง idVendor บางตัว
ฉันพยายามเขียนสคริปต์เพื่อไม่อนุญาตให้ติดตั้งไดรฟ์ usb thumb drive บางยี่ห้อเช่นซิลิคอนกำลังที่ฉันคิดว่าจะต้องใช้tail -f /var/log/messagesและgrepเพื่อidVendorการบล็อกมันเมื่อตรวจพบจะช่วยฉันได้ไหม ฉันใช้ centos 7 btw

1
ไฟล์เพื่อจัดเก็บการตั้งค่า bash สำหรับเทอร์มินัลเสมือน
เมื่อคุณกด [ALT + F1 ... F6] บนเครื่อง Linux คุณจะเห็น "terminal เสมือน" โดยปกติ เมื่อฉันเข้าสู่ระบบผ่านทางเทอร์มินัลเสมือนบนเครื่อง Debian ของฉัน - ทุบตีไม่ได้ใช้การตั้งค่าจากไฟล์ $ HOME / .bashrc และ $ HOME / .profile! ไฟล์ใดที่ฉันต้องใช้เพื่อทำการตั้งค่า bash สำหรับเทอร์มินัลเสมือน ฉันพยายามแก้ไขข้อบกพร่องนี้: $ strace -e open bash --login 2>&1 | grep -P "\.bash|profile" open("/etc/profile", O_RDONLY|O_LARGEFILE) = 3 open("/etc/profile.d/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 open("/etc/profile.d/bash_completion.sh", …

2
bash หนึ่งซับในขณะที่วนรอบเพื่อ ssh เป็น IP ภายในหรือ IP ภายนอก
ฉันต้องการที่จะวนรอบบนหน้าจอเทอร์มินัลของฉันที่พยายาม ssh เข้าไปในเซิร์ฟเวอร์ของฉันทุกวินาที ในขณะนี้ดูเหมือนว่านี้: while true; do echo INTERNALIP && date >> $HOME/server.log &&\ ssh -Y -o ServerAliveInterval=5 -o ServerAliveCountMax=1 user@192.168.1.10;\ date;\ sleep 1; done ฉันมี bash whileloop คล้ายกันสำหรับ sshing ในเครื่องเดียวกัน แต่ใช้ IP ภายนอกซึ่งเป็นวิธีที่ฉันเชื่อมต่อเมื่อฉันไม่ได้อยู่ในเครือข่ายสำนักงาน: while true; do echo EXTERNALIP && date >> $HOME/server.log &&\ ssh -Y -o ServerAliveInterval=5 -o ServerAliveCountMax=1 …
bash  ssh 

1
ติดตั้งใหม่ / bin / echo ในเดเบียนของฉันอย่างไร
มีบางอย่างผิดปกติสำหรับ/bin/echoคำสั่งของฉัน sudo ls -al /bin/echo -rwxr-xr-x 1 root utmp 0 Nov 11 18:05 /bin/echo method1 เพื่อแก้ไข: ฉันรู้ว่า/bin/echoมันมีสิ่งcoretilsต่อไปนี้ ลบ coreutils ก่อนจากนั้นติดตั้งอีกครั้ง sudo apt-get remove coreutils Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible …
linux  bash  debian  echo 

1
bash script เพื่อ tar หลายโดเมนโดเมน
! / bin / ทุบตี sitedir="$HOME/domains" logs="$HOME/site_backups/log" tbackups="$HOME/site_backups/today" ybackups="$HOME/site_backups/yesterday" echo "`date`" > $logs/backups.log for i in `ls`; do cd $sitedir/$i tar -czf $tbackups/$i".tar.gz" /public_html >> $logs/backups.log done exit 0 ฉันต้องการสำรองข้อมูลทุกโฟลเดอร์ public_html ภายในชื่อโดเมน ($ home / domains / site.com / public_html) และสร้าง tar ใน $ HOME / site_backups / วันนี้ด้วยชื่อโดเมน อย่างไรก็ตามเมื่อฉันเรียกใช้ทุบตีทุบตีฉันได้รับข้อผิดพลาด: …

2
อนุญาตการอนุญาตให้ใช้คำสั่ง bash แบบกำหนดเองโดยไม่อนุญาตให้ใช้คำสั่งพื้นฐาน
เรามีสคริปต์อัตโนมัติบนหนึ่งในเซิร์ฟเวอร์ของเราดำเนินการโดยการสังเกตผู้ใช้ ต้องบอกสคริปต์อื่นดำเนินการโดยผู้ใช้หลักเพื่ออัปเดตไฟล์บันทึก รหัสสำหรับสิ่งนี้คือ sudo kill -UPDATE_LOG pid เห็นได้ชัดว่าผู้สังเกตการณ์จะต้องมีสิทธิ์ในการเรียกใช้คำสั่งนี้ อย่างไรก็ตามฉันไม่ต้องการให้สิทธิ์สคริปต์อัตโนมัตินี้เพื่อฆ่ากระบวนการด้วยเหตุผลที่ชัดเจน ฉันต้องการทำบางสิ่งเช่น alias update_log='kill -UPDATE_LOG; grant update_log on observing_user

2
Bash - เปิดใช้งานการดำเนินการเฉพาะเมื่อสคริปต์ถูกเรียกใช้จากไดเรกทอรีเฉพาะ
ฉันต้องเขียนเชลล์สคริปต์ที่สามารถดำเนินการได้หากรันจากโฮมไดเร็กทอรีของผู้ใช้ที่ลงชื่อเข้าใช้ปัจจุบันและฉันไม่รู้ว่าจะตรวจสอบจากสคริปต์ได้อย่างไร ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม.

1
โหลดจำนวนมากของคาสซานดราไม่เคยออกจากข้อยกเว้นตัวชี้โมฆะดังนั้นเชลล์สคริปต์การโทรของฉันจึงไม่เห็นความล้มเหลว
ฉันสร้างสคริปต์ที่ประมวลผลไฟล์ในลูปโดยใช้การเรียกใช้โปรเซส ฉันตรวจสอบรหัสออกของการโทรที่ได้รับการกล่าวถึงเพื่อดูว่าฉันควรย้ายไฟล์ (ตามความสำเร็จ) หรือไม่ปัญหาคือเมื่อกระบวนการล้มเหลวโดยมีข้อยกเว้นจะไม่มีการออก ฉันจะตรวจสอบข้อยกเว้นที่เกิดขึ้นได้อย่างไรฉันจึงสามารถย้ายสคริปต์ไปยังไฟล์ถัดไปได้ ส่วนที่เกี่ยวข้องของสคริปต์ # Stream data sstableloader -d $3 $tablepathfull # On success, move data to target dir if [[ $? != 0 ]]; then echo "Error: Table failed - $tablepathfull" else echo "Table OK - $tablepathfull" trgtdir="$2/$hostname/$keyspacename/$typename/$timestamp/$keyspacename/$tablename" mkdir -p $trgtdir mv $tablepathfull/* $trgtdir rmdir $tablepathfull fi …
linux  bash  java 

2
เรียกใช้ windows bat จากระยะไกลไฟล์จาก Linux ผ่าน ssh
มันเป็นไปได้? Cygwin ถูกติดตั้งบนสภาพแวดล้อมของ windows ฉันเชื่อมต่อกับสภาพแวดล้อมของ Windows ผ่าน ssh ด้วยคำสั่ง follow: ssh user @ ip /cygdriver/c/run.bat หลังจากแนะนำรหัสผ่านข้อความ 'ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว' จะปรากฏขึ้น ข้อเสนอแนะใด ๆ ที่ฉันสามารถทำได้?
linux  windows  bash  ssh 

2
วิธีรับการประทับเวลาปัจจุบันเมื่อใช้ 'ps' ในสคริปต์ Bash
ฉันกำลังเขียนเชลล์สคริปต์ที่ทำให้กระบวนการปัจจุบันทั้งหมดทำงานและส่งไปยังgrepเพื่อกรองสิ่งที่ฉันต้องการ แต่ฉันยังต้องการมันเพื่อให้เวลากับฉันไม่ว่าจะpsเกิดขึ้นหรือเมื่อเริ่มกระบวนการ ไม่เป็นไรฉันแค่ต้องการเวลา กระบวนการทั้งหมดใช้เวลาเพียงเสี้ยววินาที คำสั่งของฉันคือ: ps -U USERNAME -o rss=MEM,comm=CMD,pid=PID ฉันพยายามไปเช่น ps -U USERNAME -o rss=MEM,comm=CMD,pid=PID, start=START แต่นั่นก็ทำให้ฉันมีเวลาเหมือนhh:mm:ssกัน ฉันต้องการบางสิ่งที่แม่นยำกว่านี้ การประทับเวลาเหมาะอย่างยิ่ง ฉันควรทำอย่างไร?

1
มีวิธีการส่งคำสั่งผ่านการโต้แย้งในเปลือก?
สิ่งที่ฉันพยายามทำให้สำเร็จคือการตั้งชื่อของวิดเจ็ตเมื่อคอมพิวเตอร์ไม่ทำงาน: xsidle.sh echo mywidget.title = "idle" | awesome-client เมื่อฉันลบxsidle.shมันทำงานไม่มีที่ติ xsidle.shประมาณ: sleep 10 command="$1" $command แน่นอนว่าผลลัพธ์ของ xsidle นั้นถูกเปลี่ยนเส้นทางไปที่สุดยอดไคลเอนต์ในขณะที่ฉันพยายามที่จะสะท้อนไปยังไคลเอนต์ที่ยอดเยี่ยมด้วยความล่าช้า ฉันได้พยายามหนีด้วย "หรือ" เอาต์พุตเอคโค่คือ " mywidget.title = "idle" | awesome-client"
linux  bash  shell  sh 

2
การย้ายไฟล์ที่มีนามสกุลจากต้นทางไปยังปลายทาง
สวัสดีฉันพยายามที่จะย้ายไฟล์ทั้งหมดด้วย.hiและ.oนามสกุลจากโฟลเดอร์เป้าหมาย/srcไปยังโฟลเดอร์อื่น/Obj จนถึงตอนนี้ฉันได้ลอง: srcpath=$(pwd)"/src" ghc src/Main.hs > Logs/output.txt 2> Logs/Err.txt //this builds the project and generates the binaries and .hi files mv *.hi *.o $srcpath/src/ Obj/ //i want to move all these files to Obj/ folder but where do i place the extension arguments? คำสั่งควรเป็นอย่างไร: mv extensions source dest ?หรือmv source …
bash  mv  extension 

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