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

Bash คือ Bourne Again SHell ผู้สืบทอดมาจาก Unix sh (shell) คลาสสิก

8
สามารถใช้ awk แทนได้หรือไม่
ฉันต้องการรับหมายเลขratingเป็นผลลัพธ์จากสิ่งนี้ # nc localhost 9571 language: language:en_ZA.UTF-8 language:en_ZW.UTF-8 session-with-name:Ubuntu Classic (No effects):gnome-session --session=2d-gnome session-with-name:Ubuntu (Safe Mode):gnome-session -f --session=2d-gnome session-with-name:Ubuntu Classic:gnome-session --session=classic-gnome xsession:/etc/X11/Xsession rating:94 ฉันสามารถทำสิ่งนี้ได้ # nc localhost 9571 | grep rating | cut -d: -f2 94 แต่สามารถawkใช้แทนโซลูชันที่ง่ายกว่าได้ไหม
17 linux  bash  grep  awk 

4
นับจำนวนไบต์ piped จากกระบวนการหนึ่งไปยังกระบวนการอื่น
ฉันใช้เชลล์สคริปต์ที่ท่อข้อมูลจากกระบวนการหนึ่งไปยังกระบวนการอื่น process_a | process_b ไม่มีใครรู้วิธีหาจำนวนไบต์ที่ถูกส่งระหว่างโปรแกรมทั้งสอง? ทางออกเดียวที่ฉันสามารถนึกได้ในขณะนี้คือการเขียนโปรแกรม c ขนาดเล็กที่อ่านจาก stdin, เขียนไปยัง stdout และนับจำนวนข้อมูลที่ถ่ายโอนทั้งหมด, จัดเก็บจำนวนในตัวแปรสภาพแวดล้อมเช่น: process_a | count_bytes | process_b ไม่มีใครมีวิธีแก้ปัญหา neater?
17 bash  shell  pipe 

4
วิธีใช้คำสั่ง find เพื่อลบไฟล์ที่ตรงกับรูปแบบ?
ฉันพยายามเขียนคำสั่ง bash ที่จะลบไฟล์ทั้งหมดที่ตรงกับรูปแบบเฉพาะ - ในกรณีนี้มันคือไฟล์บันทึกเก่า vmware ที่สร้างขึ้นทั้งหมด ฉันได้ลองคำสั่งนี้แล้ว: find . -name vmware-*.log | xargs rm อย่างไรก็ตามเมื่อฉันเรียกใช้คำสั่งมันจะปรากฏขึ้นในทุกโฟลเดอร์ที่มีช่องว่างในชื่อของพวกเขา มีวิธีการจัดรูปแบบเส้นทางไฟล์เพื่อให้ xargs ส่งไปยัง rm ที่ยกมาหรือหนีออกมาอย่างถูกต้องหรือไม่?

2
แสดงอักขระ \ n เป็นบรรทัดใหม่เมื่อใช้ส่วนท้ายหรือไม่
ฉันมีไฟล์ที่พยายามอ่านโดยใช้ tail -f ฉันสงสัยว่าถ้ามีวิธีที่จะให้เทอร์มินัลเอาท์พุตมีการขึ้นบรรทัดใหม่แทนอักขระ \ n

2
วิธีถอนการติดตั้งการพึ่งพาที่เพิ่งติดตั้งใหม่สำหรับแพ็คเกจ RPM
มีวิธีง่าย ๆ ในการสร้างรายการของการพึ่งพาแพ็คเกจ RPM ที่ติดตั้งใหม่จะติดตั้งด้วยyumหรือไม่? ตัวอย่าง: ถ้าคุณทำyum install rubyมันจะติดตั้ง rubygems แต่เมื่อฉันถอนการติดตั้งrubyแพคเกจฉันยังต้องการกำจัดการพึ่งพามันติดตั้ง ดังนั้นความคิดแรกของฉันกำลังจะทำรายการของแพคเกจใหม่เหล่านั้นและจากนั้นทำในบรรดาเมื่อฉันถอนการติดตั้งrpm -eruby คำถาม วิธีการทำรายการดังกล่าวด้วยวิธีอัตโนมัติ? หรือมีวิธีที่ง่ายกว่าในการจัดการไฟล์ข้อความด้วยชื่อแพ็คเกจ rpm?
16 linux  centos  bash  fedora 

4
ฉันจะแก้ไข RHEL 4 สำหรับช่องโหว่ bash ใน CVE-2014-6271 และ CVE-2014-7169 ได้อย่างไร
กลไกสำหรับการเรียกใช้รหัสระยะไกลผ่าน Bash ได้รับการรายงานอย่างกว้างขวางเมื่อวานนี้และวันนี้ (24 กันยายน 2014) http://seclists.org/oss-sec/2014/q3/650รายงานว่าเป็น CVE-2014-7169 หรือ CVE-2014 -6271 ด้วยเหตุผลที่โง่เกินกว่าที่ฉันจะอธิบายในที่สาธารณะฉันต้องรับผิดชอบต่อเซิร์ฟเวอร์ที่ใช้ RHEL 4 และไม่มีการสมัครรับข้อมูลอัปเดต ฉันสามารถสร้างโคลนเพื่อทดสอบสิ่งนี้ แต่ฉันหวังว่าบางคนจะมีคำตอบโดยตรง มี / bin / bash จาก Centos 4 ได้รับการติดตั้งหรือไม่? ฉันสามารถต่อยอด Centos 4 / bin / bash เข้ากับระบบ RHEL ของฉันเป็นวิธีแก้ปัญหาที่จะซื้อฉันเป็นเวลาหลายสัปดาห์ได้หรือไม่? (ฉันต้องการจนถึง 10 ธันวาคม)
16 centos  bash  exploit  rhel4 

3
รีเซ็ต PostgreSQL โดยสมบูรณ์เป็นค่าเริ่มต้นหรือไม่
คำถาม มีวิธีการรีเซ็ตการติดตั้ง PostgreSQL บน Linux อย่างสมบูรณ์ดังนั้นจึงอยู่ในสถานะเดียวกับเมื่อฉันติดตั้งหรือไม่ ความคิด ฉันได้พิจารณาแล้ว rm -rf /var/lib/pgsql/* rm -rf /var/lib/pgsql/backups/* rm -rf /var/lib/pgsql/data/* แต่นั่นอาจไม่ใช่วิธีที่แนะนำ วัตถุประสงค์ สิ่งนี้จะเป็นประโยชน์ในการกำจัดส่วนที่เหลือจากโปรแกรมก่อนหน้านี้ที่ใช้งานไป

2
มีทุบตี builtin สำหรับ 'ซึ่ง'?
ฉันกำลังทดสอบการติดตั้ง Fedora ขั้นต่ำ whichในการตรวจสอบเส้นทางสำหรับล่ามเช่นงูหลามหรือโหนดผมปกติใช้ ฉันสังเกตwhichว่าไม่ได้ติดตั้งตามค่าเริ่มต้น ฉันสามารถเพิ่มแพ็คเกจ แต่ฉันสงสัยว่ามี shell builtin ที่สามารถใช้เพื่อทำงานทั่วไปนี้ได้หรือไม่ ฉันใช้ทุบตี 4.2
16 bash 

2
“ ไม่สามารถตั้งค่ากลุ่มกระบวนการเทอร์มินัล” ระหว่าง su ให้ผู้ใช้อื่นเป็นเชลล์การเข้าสู่ระบบ
หมายเหตุ: โปรดอ่านข้อมูลอัพเดทที่เริ่มต้นด้วย "แก้ไข" ใกล้กับจุดกึ่งกลางของโพสต์นี้สภาพแวดล้อมและพื้นหลังของปัญหานี้มีการเปลี่ยนแปลง ฉันได้ติดตั้ง Debian 6.0 แบบมาตรฐานที่นี่แล้วฉันจึงตัดสินใจปรับรุ่นเป็นที่เก็บการทดสอบ Debian ฉันทำสิ่งนี้โดยการสลับการอ้างอิงไปยัง Squos repos ใน source.list ของฉันเพื่อใช้ repos การทดสอบแทน หลังจากแพคเกจติดตั้งและรีบูตฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายาม su - กับผู้ใช้รายอื่น: root@skaia:~# su joebloggs - bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell หากฉันละเว้น - สิ่งนี้จะไม่เกิดขึ้น โปรดทราบว่าผู้ใช้สามารถรูทได้อย่างถูกต้องซึ่งจะเกิดขึ้นเมื่อเปลี่ยนจากรูทเป็นบุคคลอื่นและใช้ - เพื่อรับสภาพแวดล้อมของผู้ใช้นั้น Google …

1
ไม่สามารถพิมพ์ e ที่ใส่กล่องล่างได้ใน amazon ec2 (Amazon Linux)
หลังจากสองสามวันของการดำเนินการกับโครงสร้าง ec2 ใหม่ของฉันสิ่งต่อไปนี้เกิดขึ้น ฉันเข้าสู่ SSH ทุกอย่างเรียบร้อยฉันทำรหัสของฉัน ฉันกลับมาในวันถัดไปและเข้าสู่ SSH ฉันไม่สามารถพิมพ์กล่องที่ต่ำกว่าได้eอีก - ฉันได้รับข้อผิดพลาดในการพิมพ์ ฉันพยายาม ssh จากคอมพิวเตอร์เครื่องอื่นปัญหาเดียวกัน ฉันรีบูตเซิร์ฟเวอร์ปัญหาเดียวกัน ฉันเปิดnanoหรือviและeทำงานได้ดีเพียงแค่ไม่ได้อยู่ในbashหรือsh ฉันยุติเซิร์ฟเวอร์สร้างใหม่ติดตั้งตั้งแต่เริ่มต้นไม่กี่วันต่อมาจะเกิดขึ้นอีกครั้ง นี่ทำให้งงงัน! ฉันจะเริ่มแก้ไขปัญหาได้ที่ไหน การตั้งค่าเครื่องท้องถิ่นของฉัน: windows XP หรือ 7 ผงสำหรับอุดรู (ล่าสุด) หรือ cygwin / openssh การตั้งค่า EC2 Amazon Linux (ตัวเลือกเริ่มต้น) Node.js iptables ส่งต่อพอร์ต 80 ไปยังโหนดบนพอร์ต 8003 emacs, npm และ openssl-devel ไม่มี mods อื่น ๆ นี่คือโปรไฟล์ของฉัน …
16 ssh  amazon-ec2  bash  sh 

4
ดูเหมือนว่า Rsync เข้ากันไม่ได้กับ. bashrc (สาเหตุ“ เปลือกของคุณสะอาดหรือไม่”)
ปรากฎว่า rsync ไม่สามารถทำงานกับเซิร์ฟเวอร์ระยะไกลที่มีไฟล์. bashrc ได้หรือไม่ ที่ลูกค้าในพื้นที่ฉันได้รับเมื่อใช้ rsync: protocol version mismatch -- is your shell clean? (see the rsync man page for an explanation) rsync error: protocol incompatibility (code 2) at compat.c(180) [sender=3.0.7] ตามที่แนะนำในที่นี้การลบ. bashrc บนเซิร์ฟเวอร์แก้ไขปัญหาได้ วิธีแก้ปัญหาโดยไม่ลบไฟล์. bashrc (ชั่วคราว)?
16 bash  rsync 

2
กำลังเพิ่มบรรทัดไปยัง / etc / profile ด้วย puppet หรือไม่
ฉันใช้หุ่นเชิดเพื่อติดตั้ง JDK และ tomcat ปัจจุบัน package { [ "openjdk-6-jdk", "openjdk-6-doc", "openjdk-6-jre", "tomcat6", "tomcat6-admin", "tomcat6-common", "tomcat6-docs", "tomcat6-user" ]: ensure => present, } ตอนนี้ฉันต้องการเพิ่ม JAVA_HOME="/usr/lib/java" export JAVA_HOME เพื่อ/etc/profileเพียงเอาสิ่งนี้ออกไปให้พ้น ฉันยังไม่พบคำตอบที่ตรงไปตรงมาในเอกสารเลย มีวิธีแนะนำให้ทำเช่นนี้หรือไม่? โดยทั่วไปฉันจะบอกหุ่นเชิดให้วางไฟล์นี้ไว้ที่นั่นหรือแก้ไขไฟล์นั้นได้อย่างไร ฉันใช้หุ่นโหนดเดียว (ในโหมดสแตนด์อโลน) เพียงเพื่อพยายามที่จะออกและเพื่อให้เข้าสู่ระบบของการติดตั้งเซิร์ฟเวอร์
16 linux  bash  java  puppet 

4
คำสั่ง cp จะแจ้งให้เขียนทับแม้จะมี -f
ฉันพยายามคัดลอก jpgs ที่ใหม่กว่าทั้งหมดจากโฟลเดอร์หนึ่งไปยังอีกโฟลเดอร์โดยใช้คำสั่งต่อไปนี้ cp -u --force /home/oldfolder/*.jpg /home/newfolder/ และฉันได้รับ promt ต่อไปนี้: cp: overwrite `/home/newfolder/4095-181.jpg'? '-u' ฉันรู้ว่าใช้งานได้ดีเพราะมันแจ้งให้ฉันในไฟล์ที่ใหม่กว่าเท่านั้น แต่ฉันไม่ต้องการรับพรอมต์ฉันแค่อยากให้มันเขียนทับมัน ฉันได้ลอง - บังคับใช้และ -f ข้อเสนอแนะใด ๆ ขอบคุณล่วงหน้า
16 centos  bash  copy 

5
ตรวจสอบว่ามีไดเรกทอรีอยู่โดยใช้อักขระหน้าแรก (~) ใน bash ล้มเหลวหรือไม่
เหตุใดจึงbashตรวจสอบต่อไปนี้หากไดเรกทอรีล้มเหลว if [ ! -d "~/Desktop" ]; then echo "DOES NOT EXIST" exit 1; fi ~/Desktopมีอยู่จริง นี่คือบน Mac โดยวิธีการ ปัญหาเกิดขึ้นกับสคริปต์ประเภทนี้ read -p "Provide the destination directory: " DESTINATION if [ ! -d $DESTINATION ]; then echo "\t'$DESTINATION' does not exist." >&2; exit 1; fi
16 bash 


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