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

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

1
คำสั่ง Java ทำงานในบรรทัดคำสั่งไม่ได้อยู่ในไฟล์ sh
ฉันเพิ่งพยายามติดตั้ง java บนเซิร์ฟเวอร์ ubuntu 12.04 LTS ฉันลองไฟล์ tar.gz แล้วแตกไฟล์ลงใน / opt / java จากนั้นเพิ่ม / opt / java / bin ไปยังตัวแปรพา ธ ทั้งหมดนี้ทำงานได้อย่างถูกต้องเมื่อพิมพ์ "java" ลงในบรรทัดคำสั่งอย่างไรก็ตามในสคริปต์จะทำหน้าที่ราวกับว่าไม่มีคำสั่งอยู่ ขอบคุณล่วงหน้าสำหรับคำตอบใด ๆ :)

4
ไม่สามารถเพิ่มไฟล์ปฏิบัติการลงใน PATH ใน Linux
ฉันมีสิ่งนี้ในของฉัน ~/.bash_profile: PATH=$PATH:~/Downloads/sublimetext export PATH แต่ sublimetext ในโฟลเดอร์จะไม่ถูกเพิ่มไปยังเส้นทาง Sublime Text ให้เอาต์พุตนี้เมื่อส่งไปยังคำสั่ง file: sublime_text: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

1
ยกเว้น IP จากช่วงเพื่อหลีกเลี่ยงความขัดแย้ง
ฉันมีรายการ IP และช่วงที่ยาวและฉันต้องการดีบักรายการของฉันลบ IP ที่สร้างความขัดแย้งด้วย CIDR . ตัวอย่างเช่น: 8.8.8.0/24 8.8.8.8 23.236.62.147 23.236.48.0/20 104.154.76.93 104.154.0.0/15 etc ดังนั้นฉันต้องลบ 23.236.62.147 (เพราะเป็น subnetwork ของ 23.236.48.0/20 ) 104.154.76.93 (เพราะเป็น subnetwork ของ 104.154.0.0/15 ) 8.8.8.8 (เพราะเป็นเครือข่ายย่อยของ 8.8.8.0/24 ) ฯลฯ ฯลฯ วิธีทำใน bash / command linux
linux  bash  ip  ipv4 

1
การดำเนินการแท็บกรณีเล็กบางส่วนให้เสร็จสิ้น
ก่อนอื่นให้ฉันผ่านกรณีเฉพาะแล้วอธิบายกรณีทั่วไป สมมติว่าฉันมีสองไดเรกทอรี A และ B เนื้อหาของ A คือ: foo Bar เนื้อหาของ B คือ foobar Foobar ฉันต้องการให้แท็บเสร็จสมบูรณ์เป็น 'f' หรือ 'F' ใน A เพื่อขยายเป็น 'foo' ในทำนองเดียวกัน 'b' หรือ 'B' เพื่อไปที่ 'บาร์' อย่างไรก็ตามใน B ฉันต้องการให้ 'f' เสร็จสิ้นเพื่อขยายเป็น 'foobar' และ 'F' เท่านั้นเพื่อขยายเป็น 'Foobar' โดยทั่วไปการกรอกข้อมูลในแท็บควรจะไม่ตรงตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่หากตัวอักษรที่กรอกเสร็จแล้วมีหนึ่งกรณีเมื่อจับคู่ ทราบว่ามี set completion-ignore-case on ฉันสามารถใส่ลงในไฟล์ '.inputrc' ของฉันได้ แต่สิ่งนี้ไม่ทำงานตามที่ฉันต้องการในกรณีของไดเรกทอรี B ของฉัน


1
ข้อผิดพลาด Barnyard2 ในการเริ่มต้น
รับการตั้งค่ากล่อง snort ด้วย barnyard2 พบข้อผิดพลาดด้านล่าง มีคนช่วยได้ไหม $Starting Snort Output Processor (barnyard2): ./barnyard2: 35: ./barnyard2: barnyard2: not found ไฟล์ /etc/init.d/barnyard2 #!/bin/sh # # Init file for Barnyard2 # # # chkconfig: 2345 40 60 # description: Barnyard2 is an output processor for snort. # # processname: barnyard2 # config: /etc/sysconfig/barnyard2 # …
linux  bash  snort 

1
sed จัดเรียงบรรทัดทั้งหมดเป็นบรรทัดสุดท้ายในไฟล์ Bash script
ฉันมีไฟล์ที่มีเส้นด้านล่าง Dev_Campaign_1873.rpm Dev_Campaign_1987.rpm Dev_Campaign_9876.rpm http://52.30.241.107:8081/artifactory/api/storage/adifact พยายามรับเอาต์พุตไปยังไฟล์ดังต่อไปนี้โดยใช้ sed หรือคำสั่งอื่น ๆ http://52.30.241.107:8081/artifactory/api/storage/adifact/Dev_Campaign_1873.rpm http://52.30.241.107:8081/artifactory/api/storage/adifact/Dev_Campaign_1987.rpm http://52.30.241.107:8081/artifactory/api/storage/adifact/Dev_Campaign_9876.rpm

1
วิธีการอัปเดตโฮสต์คีย์โดยอัตโนมัติ (โดยไม่ต้องมีการโต้ตอบด้วยตนเอง)
ฉันเปลี่ยนระบบของฉัน แต่ใช้ที่อยู่ IP เดียวกันเพื่อเข้าถึงระบบใหม่ เมื่อพยายามที่จะเข้าถึงระบบใหม่สำหรับการระบุการเปลี่ยนแปลงแรกที่ได้รับข้อความ ตามนี้ ลิงค์ ฉันต้องลบรหัสประจำตัวโฮสต์ออกจากไฟล์. ssh / known_hosts ในการทำเช่นนี้ฉันได้เขียนฟังก์ชันด้านล่างใน. bashrc & amp; ใช้นามแฝง rmsshk 19 เพื่อลบรหัส rmsshkey() { sed -i $1d /home/pravin/.ssh/known_hosts } alias rmsshk=rmsshkey แต่ตอนนี้ฉันต้องการทำให้เป็นอัตโนมัติฉันรู้ว่าการระบุโฮสต์ของฉันมีการเปลี่ยนแปลงและฉันต้องการอัปเดตโดยอัตโนมัติโดยไม่มีการโต้ตอบ ฉันจะบรรลุสิ่งนี้ได้อย่างไร
bash  ssh 

1
ต้องการความช่วยเหลือในการแก้ไข Bash Script ของฉัน
ฉันเป็นมือใหม่ในสคริปต์ทุบตีสิ่งที่ฉันพยายามทำคือทำสคริปต์ทุบตีเพื่อเรียกใช้กระบวนการสำรอง 2 ชนิดสำหรับ mysql ขั้นแรกคือการถ่ายโอนฐานข้อมูล mysql ทั้งหมดลงในแฟ้มการถ่ายโอนข้อมูลเดียวและอีกอันคือการสำรองข้อมูลแต่ละรายการ ฐานข้อมูลเป็นไฟล์เดียวฉันค้นหารอบ ๆ เพื่อรับเคล็ดลับในการสร้างสคริปต์ทุบตีและผลลัพธ์ดังต่อไปนี้ แต่ดูเหมือนว่าไม่ทำงานตามที่ฉันคาดหวังฉันพยายามเรียกใช้สคริปต์ แต่ไม่มีอะไรเกิดขึ้นดีใจที่มีคนช่วยฉันแก้ไข . #!/bin/bash TIMESTAMP=$(date "+%d-%m-%Y") BACKUP_DIR="/nas/mysql" MYSQL=/usr/bin/mysql MYSQLDUMP=/usr/bin/mysqldump backup_all_dump(){ find /nas/mysql/all_dump -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \; mkdir -p "$BACKUP_DIR/all_dump/$TIMESTAMP" $MYSQLDUMP --force --events --all-databases | gzip > "/$BACKUP_DIR/all_dump/$TIMESTAMP/dump.sql.gz" } backup_all_users(){ find /nas/mysql/all_users -maxdepth 1 …

1
รายการหรือปรับปรุงเนื้อหาของไดเรกทอรีเมื่อมีการแก้ไข (เช่นไฟล์ใหม่ที่สร้างขึ้นหรือลบไฟล์) ไปยังไฟล์ข้อความ
ฉันใช้ลินุกซ์มินต์และฉันต้องการไฟล์ข้อความเพื่อแสดงการเปลี่ยนแปลงของไฟล์ในไดเรกทอรีมันควรจะมีชื่อของไฟล์ที่มีอยู่ในไดเรกทอรีและเพิ่มไฟล์ที่สร้างขึ้นใหม่โดยอัตโนมัติ ฉันอ้างถึงลิงก์และมันบอกว่าวิธีที่ดีที่จะทำคือใช้ inotify-tools. ฉันค้นหามันและพบกับสคริปต์ทุบตีนี้ #!/bin/sh while inotifywait -qqe modify path-of-directory ; do ls > path-of-text-file; done แต่ดูเหมือนจะไม่ทำงานกรุณาแนะนำฉันเกี่ยวกับเรื่องนี้และมันก็เพียงพอแล้วหากฉันเพิ่งเพิ่มสคริปต์นี้ลงในรายการแอปพลิเคชันเริ่มต้นเพื่อให้มันทำงานตลอดเวลาหรือฉันควรใช้ crontab?

3
ซิงค์ประสิทธิภาพสูง
ฉันกำลังพยายามทำโฟลเดอร์ซิงค์ p4 / ... มันไม่เร็วมากและใช้ CPU เพียง 2% ฉันไม่พอใจกับการแสดง ฉันพยายามที่จะเขียนฟังก์ชั่นใน bash กำหนดพารามิเตอร์ n มันจะสร้างคิวของไฟล์และโฟลเดอร์ทั้งหมด n ระดับลึกและส้อมกระบวนการ p4 ซิงค์ -f $ thatDirectory / ... หรือ p4 sync -f $ thatFile . ฉันจะเริ่มเกี่ยวกับสิ่งนี้ได้อย่างไร มียูทิลิตี้ใดบ้างที่ทำสิ่งนี้อยู่แล้ว? ขอบคุณล่วงหน้า.

0
SED -f FileParams.txt FileIN.xml> FileOUT.xml
ฉันมีปัญหากับคำสั่ง sed ฉันต้องการแทนที่พารามิเตอร์จาก File Params.txt บน File IN.xml และสร้าง FileOut.txt ปัญหาของฉันคือ params ทั้งหมดที่ฉันมีใน FileParams.txt (เช่น: XXXX; YYYY; g) พวกเขาจะไม่ถูกแทนที่ทั้งหมดใน FileIN.txt ฉันจะสร้างยังรายงานเพื่อทราบ params แม่มดจะถูกแทนที่ใน fileIN ขอบคุณ

1
ข้อผิดพลาด Citrix-XenApp (SSL-Server 61) ด้วย FF บน OpenSuse 12.2: วิธีเลี่ยงผ่านได้อย่างไร
สวัสดีวันที่รัก Superuser ฉันพยายามใช้ Citrix XenApp เพื่อเข้าถึงงานของฉันจากระยะไกล หมายเลขผู้ใช้และแอปพลิเคชันจากที่บ้าน ฉันสามารถเข้าสู่ระบบและดูเสมือนจริงของฉัน เดสก์ท็อป / แอปพลิเคชัน แต่เมื่อฉันพยายามเรียกใช้แอปพลิเคชัน ฉันเข้าใจ SSL Error 61: คุณเลือกที่จะไม่เชื่อถือ "Thawte Premium Server CA" ผู้ออกใบรับรองความปลอดภัยของเซิร์ฟเวอร์ จะกำจัดข้อผิดพลาดนี้ได้อย่างไร? ฉันจะทำยังไงดี!? ฉันจะลองอัปเดตใบรับรองด้วย FF ได้อย่างไร

1
ดาวน์โหลดหลายไฟล์จากเซิร์ฟเวอร์ ftp ด้วยสคริปต์ทุบตี
ฉันมีเซิร์ฟเวอร์ FTP 2 หรือ 3 ตัวที่ hoster ของเราทำการสำรองฐานข้อมูลในแต่ละวัน เนื่องจากเขาเก็บไว้เพียงอันเดียวฉันถูกสั่งให้เขียนสคริปต์ทุบตีเพื่อดาวน์โหลดสำเนาสำรองฐานข้อมูลทุกวันดังนั้นเราจึงมีข้อมูลสำรองมากกว่าหนึ่งวัน ฉันพยายามทำให้มันใช้งานได้กับคำสั่ง ftp แต่ดูเหมือนว่าฉันจะไม่สามารถดาวน์โหลดไดเร็กตอรี่ที่สมบูรณ์ได้ฉันคิดว่าฉันสามารถใช้กับลูป for ได้ แต่นั่นจะไม่ทำงานกับคำสั่ง ftp และฉันก็จะสิ้นสุด ข้อผิดพลาดไฟล์ ฉันควรจะพูดว่าสามารถเชื่อมต่อผ่าน ftp บนเซิร์ฟเวอร์เท่านั้น ไม่มีการเข้าถึง SSH หรืออย่างอื่น! ในขณะนี้ฉันมีสิ่งนี้: echo "Download all the database backups from honds ftp-servers" SERVERS="ftp.srv1.de ftp.srv2.de" #for SERVER in $SERVERS; do ftp -in ftp://user:pw@ftp.srv1.de << EOF binary get Datenbankbackup EOF
bash  backup  ftp 

1
ฉันจะเพิ่มไดเรคทอรี่ที่เต็มไปด้วย Bash Scripts ลงใน Path Variable ได้อย่างไรและรันมันจาก oustide ของไดเร็คทอรี
การมีปัญหาเล็ก ๆ น้อย ๆ ใครบางคนอาจช่วยฉันด้วย ฉันได้สร้างสคริปต์ Bash จำนวนหนึ่งสำหรับการทำงานประจำวันของฉันบนเครื่อง Snow Lepoard ของฉันโดยอัตโนมัติ สคริปต์ทั้งหมดเหล่านี้อาศัยอยู่ในโฟลเดอร์ DropBox ที่แชร์ในเครื่องของฉัน เส้นทางนั้นเหมือนกันในทุกเครื่อง: เช่น /User/myuser/Drobox/Bash\ and\ Batch/ ฉันได้เพิ่มโฟลเดอร์ใน / etc / path ของฉัน เส้นทางตัวแปร: /Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/myuser/Dropbox/Bash\ and\ Batch:/usr/local/git/bin:/usr/X11/bin ปัญหาของฉันไม่สามารถเรียกใช้สคริปต์จากนอกไดเรกทอรีได้ สคริปต์ทั้งหมดมีสิทธิ์ที่จำเป็นเช่น: 755 สคริปต์สามารถเรียกใช้เมื่ออยู่ในไดเรกทอรี: mymachine:~ myuser$ cd Dropbox/Bash\ and\ Batch mymachine:Bash and Batch myuser$ ./uni-update.sh Update University Repository At revision 246. …

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