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

สำหรับคำถามเกี่ยวกับสคริปต์ที่เขียนขึ้นสำหรับเชลล์คำสั่ง Bash สำหรับเชลล์สคริปต์ที่มีข้อผิดพลาด / ข้อผิดพลาดทางไวยากรณ์โปรดตรวจสอบด้วยโปรแกรม shellcheck (หรือในเซิร์ฟเวอร์ shellcheck เว็บที่ https://shellcheck.net) ก่อนโพสต์ที่นี่ คำถามเกี่ยวกับการใช้งานอินเทอร์แอคทีฟของ Bash นั้นมีแนวโน้มที่จะอยู่ในหัวข้อของผู้ใช้ขั้นสูงมากกว่าในสแต็คโอเวอร์โฟลว์

13
ดำเนินการคำสั่งโดยไม่เก็บไว้ในประวัติ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน8 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ ฉันต้องการรันคำสั่งบางอย่าง แต่ไม่ต้องการเก็บไว้ในประวัติคำสั่ง เพื่อให้ไม่มีใครสามารถค้นหาได้ใน.bash_historyไฟล์ มีวิธีการรันคำสั่ง bash ด้วยวิธีนี้หรือไม่?
203 linux  bash  unix 

4
ไม่สามารถส่งต่อค้นหาประวัติการทุบตีแบบเดียวกับ CTRL-r
ฉันพยายามค้นหาประวัติทุบตีของฉันเช่นเดียวกับCTRL- rแต่เพื่อส่งต่อทิศทาง มันเป็นความเจ็บปวดสำหรับฉันเมื่อฉันเพิ่งกดหนึ่งครั้งบ่อยเกินไปCTRL- rเพื่อค้นหาคำสั่งก่อนหน้าอีกครั้ง คุณจะส่งต่อการค้นหาประวัติทุบตีของคุณคล้ายกันในการค้นหาแบบย้อนกลับได้อย่างไร
203 bash  search 

12
วิธีการประเมินรหัสตอบสนอง http จาก bash / shell script?
ฉันรู้สึกว่าฉันขาดความชัดเจน แต่ไม่ประสบความสำเร็จman [curl|wget]หรือ Google ("http" ทำให้ข้อความค้นหาไม่ดี) ฉันกำลังมองหาการแก้ไขอย่างรวดเร็วและสกปรกให้กับหนึ่งในเว็บเซิร์ฟเวอร์ของเราที่ล้มเหลวบ่อยครั้งส่งคืนรหัสสถานะ 500 พร้อมข้อความแสดงข้อผิดพลาด เมื่อสิ่งนี้เกิดขึ้นจะต้องเริ่มต้นใหม่ เนื่องจากสาเหตุที่หาได้ยากเรากำลังเล็งการแก้ไขอย่างรวดเร็วโดยหวังว่ามันจะเพียงพอที่จะเชื่อมโยงเวลาจนกว่าเราจะสามารถแก้ไขได้จริง ๆ (บริการไม่ต้องการความพร้อมใช้งานสูง) เสนอวิธีการแก้ปัญหาคือการสร้างงาน cron ที่ทำงานทุกๆ 5 นาทีตรวจสอบhttp: // localhost: 8080 / หากสิ่งนี้กลับมาพร้อมกับรหัสสถานะ 500 เว็บเซิร์ฟเวอร์จะเริ่มต้นใหม่ เซิร์ฟเวอร์จะรีสตาร์ทภายในไม่กี่นาทีจึงไม่จำเป็นต้องตรวจสอบว่ามีการรีสตาร์ทแล้ว เซิร์ฟเวอร์ที่มีปัญหาคือการติดตั้งน้อยที่สุดของ Ubuntu 8.04 โดยมีแพ็คเกจเพียงพอที่จะติดตั้งเพื่อให้ทำงานตามที่ต้องการในปัจจุบัน ไม่มีความต้องการที่ยากในการทำงานใน bash แต่ฉันต้องการให้ทำงานในสภาพแวดล้อมที่น้อยที่สุดโดยไม่ต้องติดตั้งล่ามอีกต่อไป (ฉันคุ้นเคยกับการเขียนสคริปต์เพียงพอแล้วว่าคำสั่ง / ตัวเลือกในการกำหนดรหัสสถานะ http ให้กับตัวแปรสภาพแวดล้อมจะเพียงพอ - นี่คือสิ่งที่ฉันค้นหาและไม่พบ)
203 http  bash  shell  http-headers 

11
จะเปลี่ยนเส้นทางเอาต์พุตของคำสั่ง time ไปยังไฟล์ใน Linux ได้อย่างไร?
เพียงคำถามเล็กน้อยเกี่ยวกับโปรแกรมกำหนดเวลาบน Linux: คำสั่ง time ช่วยให้สามารถวัดเวลาดำเนินการของโปรแกรมได้: [ed@lbox200 ~]$ time sleep 1 real 0m1.004s user 0m0.000s sys 0m0.004s ซึ่งใช้งานได้ดี แต่ถ้าฉันพยายามเปลี่ยนเส้นทางไปยังไฟล์มันจะล้มเหลว [ed@lbox200 ~]$ time sleep 1 > time.txt real 0m1.004s user 0m0.001s sys 0m0.004s [ed@lbox200 ~]$ cat time.txt [ed@lbox200 ~]$ ฉันรู้ว่ามีการใช้งานอื่น ๆ ของเวลาด้วยตัวเลือก -o เพื่อเขียนไฟล์ แต่คำถามของฉันเกี่ยวกับคำสั่งโดยไม่มีตัวเลือกเหล่านั้น ข้อเสนอแนะใด ๆ
202 linux  bash  time 

10
วิธีการลบอักขระสุดท้าย n ออกจากสตริงใน Bash
ฉันมีตัวแปรvarในสคริปต์ Bash ถือสตริงเช่น: echo $var "some string.rtf" ฉันต้องการลบอักขระ 4 ตัวสุดท้ายของสตริงนี้และกำหนดผลลัพธ์ให้กับตัวแปรใหม่var2ดังนั้น echo $var2 "some string" ฉันจะทำสิ่งนี้ได้อย่างไร
202 bash 

3
วิธีการ gzip ไฟล์ทั้งหมดในไดเรกทอรีย่อยทั้งหมดเป็นไฟล์บีบอัดหนึ่งในทุบตี
ซ้ำเป็นไปได้: gzipping ชุดไดเรกทอรีและสร้างไฟล์บีบอัด tar โพสต์นี้อธิบายถึงวิธีการ gzip แต่ละไฟล์ภายในโครงสร้างไดเรกทอรี อย่างไรก็ตามฉันต้องทำสิ่งที่แตกต่างออกไปเล็กน้อย ฉันต้องการผลิตไฟล์ gzip ขนาดใหญ่หนึ่งไฟล์สำหรับไฟล์ทั้งหมดภายใต้ไดเรกทอรีที่แน่นอน ฉันยังต้องสามารถระบุชื่อไฟล์ที่ส่งออกสำหรับไฟล์บีบอัด (เช่น files.gz) และเขียนทับไฟล์ไฟล์บีบอัดเก่าหากมีอยู่แล้ว
201 linux  bash  shell  gzip 

11
ทำซ้ำรายการไฟล์ที่มีช่องว่าง
ฉันต้องการย้ำเหนือรายการไฟล์ รายการนี้เป็นผลลัพธ์ของfindคำสั่งดังนั้นฉันมาด้วย: getlist() { for f in $(find . -iname "foo*") do echo "File found: $f" # do something useful done } ไม่เป็นไรยกเว้นไฟล์ที่มีช่องว่างในชื่อ: $ ls foo_bar_baz.txt foo bar baz.txt $ getlist File found: foo_bar_baz.txt File found: foo File found: bar File found: baz.txt ฉันจะทำอย่างไรเพื่อหลีกเลี่ยงการแบ่งช่องว่าง
201 linux  bash  shell 


19
วิธีเพิ่มบัญชีผู้ใช้และรหัสผ่านโดยอัตโนมัติด้วยสคริปต์ Bash
ฉันต้องมีความสามารถในการสร้างบัญชีผู้ใช้บน Linux ของฉัน (Fedora 10) และกำหนดรหัสผ่านโดยอัตโนมัติผ่านสคริปต์ทุบตี (หรืออื่น ๆ ถ้าจำเป็น) ง่ายในการสร้างผู้ใช้ผ่าน Bash เช่น: [whoever@server ]# /usr/sbin/useradd newuser เป็นไปได้หรือไม่ที่จะกำหนดรหัสผ่านใน Bash ซึ่งเป็นสิ่งที่คล้ายกับหน้าที่นี้ แต่อัตโนมัติ: [whoever@server ]# passwd newuser Changing password for user testpass. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. [whoever@server ]#
200 linux  bash  passwd 

14
บรรทัดที่ยาวที่สุดในไฟล์
ฉันกำลังมองหาวิธีง่ายๆในการค้นหาความยาวของบรรทัดที่ยาวที่สุดในไฟล์ เป็นการดีที่มันจะเป็นคำสั่ง bash shell อย่างง่าย ๆ แทนที่จะเป็นสคริปต์
200 bash  shell  utilities 

15
ตัวเลขสุ่มจากช่วงใน Bash Script
ฉันต้องสร้างหมายเลขพอร์ตสุ่มระหว่าง2000-65000จากเชลล์สคริปต์ ปัญหาคือ$RANDOMหมายเลข 15 บิตดังนั้นฉันติดอยู่! PORT=$(($RANDOM%63000+2001)) จะทำงานได้ดีถ้ามันไม่ได้สำหรับขนาดที่ จำกัด ไม่มีใครมีตัวอย่างของวิธีที่ฉันสามารถทำได้อาจโดยการแยกบางสิ่งบางอย่างจาก/dev/urandomและรับมันในช่วงหรือไม่
198 bash  shell  scripting 

14
ทดสอบว่าพอร์ตเปิดอยู่บน Linux อย่างมีประสิทธิภาพหรือไม่
จากสคริปต์ทุบตีฉันจะทราบได้อย่างรวดเร็วว่าพอร์ต445เปิด / รับฟังบนเซิร์ฟเวอร์หรือไม่ ฉันได้พยายามสองตัวเลือก แต่ฉันต้องการบางสิ่งบางอย่างรวดเร็ว: 1. lsof -i :445 (ใช้เวลาไม่กี่วินาที) 2. netstat -an |grep 445 |grep LISTEN(ใช้เวลาไม่กี่วินาที) 3. telnet(มันไม่กลับ) 4. nmap, netcatจะไม่สามารถใช้ได้บนเซิร์ฟเวอร์ มันจะเป็นการดีที่ได้ทราบวิธีการที่ไม่ระบุจำนวนแรกและ greps หลังจากนั้น
197 linux  bash  shell  port 

7
คัดลอกโฟลเดอร์แบบเรียกซ้ำโดยไม่รวมบางโฟลเดอร์
ฉันพยายามเขียนสคริปต์ทุบตีง่าย ๆ ที่จะคัดลอกเนื้อหาทั้งหมดของโฟลเดอร์รวมถึงไฟล์และโฟลเดอร์ที่ซ่อนอยู่ในโฟลเดอร์อื่น แต่ฉันต้องการแยกโฟลเดอร์เฉพาะบางอย่างออก ฉันจะบรรลุสิ่งนี้ได้อย่างไร
197 bash  unix  shell  scripting 

5
วิธีรับการใช้งาน CPU โดยรวม (เช่น 57%) บน Linux [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน8 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันสงสัยว่าคุณจะได้รับการใช้งาน CPU ของระบบและแสดงเป็นเปอร์เซ็นต์ด้วยการใช้ bash ได้อย่างไร ตัวอย่างผลลัพธ์: 57% ในกรณีที่มีมากกว่าหนึ่งแกนมันจะดีถ้าคำนวณเปอร์เซ็นต์เฉลี่ย
197 linux  bash  unix  cpu 

4
วิธีการแบ่งอาร์เรย์ใน Bash
มองหาส่วน "Array" ในหน้า man (1) bash ฉันไม่พบวิธีที่จะแบ่งอาร์เรย์ ดังนั้นฉันจึงได้ฟังก์ชั่นที่ซับซ้อนมากเกินไปนี้: #!/bin/bash # @brief: slice a bash array # @arg1: output-name # @arg2: input-name # @args: seq args # ---------------------------------------------- function slice() { local output=$1 local input=$2 shift 2 local indexes=$(seq $*) local -i i local tmp=$(for i in $indexes do echo "$(eval …
197 arrays  bash  slice 

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