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

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

2
ข้อผิดพลาดของสคริปต์ทุบตี: ./test: บรรทัด 5: UID: ตัวแปรแบบอ่านอย่างเดียว
ฉันมีสคริปต์ที่ใช้งานได้บนเซิร์ฟเวอร์ dev ของฉัน แต่เมื่อฉันพยายามเรียกใช้ในการผลิตไม่ทำงาน ฉันได้รับข้อผิดพลาดต่อไปนี้ซึ่งฉันไม่สามารถหาได้: ./test.sh: บรรทัด 5: UID: ตัวแปรแบบอ่านอย่างเดียว ข้อเสนอแนะใด ๆ #!/bin/sh while read inputline do UID="$(echo $inputline | cut -d '"' -f4)" PASSWORD="$(echo $inputline | cut -d '"' -f8)" FIRST="$(echo $inputline | cut -d '"' -f6 | cut -d ' ' -f1)" LAST="$(echo $inputline | cut -d '"' …
9 bash  scripting 

5
รวมคำสั่ง unix หลายคำสั่งไว้ในที่เดียว
ฉันต้องการค้นหาบันทึกอีเมลของเราเพื่อหาที่อยู่อีเมลที่เฉพาะเจาะจง เราเก็บไฟล์ปัจจุบันชื่อmaillogรวมถึงไฟล์. bz2 มูลค่าหนึ่งสัปดาห์ในโฟลเดอร์เดียวกัน ขณะนี้ฉันใช้คำสั่งต่อไปนี้เพื่อค้นหาไฟล์: grep person@domain.com maillog bzgrep person@domain.com *.bz2 มีวิธีรวมgrepและbzgrepคำสั่งเป็นผลลัพธ์เดียวหรือไม่ ด้วยวิธีนี้ฉันสามารถไปป์ไลน์ผลลัพธ์ที่รวมเข้ากับอีเมลหรือไฟล์เดียว
9 linux  unix  bash  grep 

6
ตัดรายการที่ซ้ำกันออกจากตัวแปร PATH
ฉันแก้ไข. bashrc ของฉันบ่อยๆ อย่างไรก็ตามเมื่อฉันมีสิ่งต่าง ๆ เช่น export PATH="~/bin:~/perl5/bin:$PATH"ในไฟล์ของฉันPATHตัวแปรสภาพแวดล้อมจะเพิ่มขึ้นทุกครั้งที่ฉันจัดหาไฟล์ ตัวอย่างเช่นครั้งแรก .bashrc มีที่มาที่ตัวแปรประกอบด้วยPATH~/bin:~/perl5/bin:/usr/bin:/bin ~/bin:~/perl5/bin:~/bin:~/perl5/bin:/usr/bin:/binครั้งที่สองประกอบด้วย ~/bin:~/perl5/bin:~/bin:~/perl5/bin:~/bin:~/perl5/bin:/usr/bin:/binครั้งที่สามประกอบด้วย มีวิธีง่ายๆในการเพิ่มเฉพาะสิ่งที่ไม่ได้อยู่ในเส้นทางหรือไม่?
9 bash  shell  path  bashrc 

6
บางคนควรสร้างรหัสผ่านที่เข้ารหัสสำหรับ / etc / shadow อย่างไร
ฉันกำลังตั้งค่าบัญชีใหม่ในกล่อง Linux สำหรับการเข้าถึงที่เก็บ Subversion และสามารถส่งรหัสผ่านไปยังผู้ใช้ใหม่ อย่างไรก็ตามฉันคิดว่ามียูทิลิตี้บรรทัดคำสั่งสำหรับผู้ใช้รายใหม่นี้เพื่อเข้ารหัสรหัสผ่านที่เขาชอบในรูปแบบที่ฉันสามารถคัดลอก / วางโดยตรงในไฟล์ / etc / shadow อะไรคือคำสั่งแบบเต็มที่ผู้ใช้รายใหม่นี้ควรทำงานบนคอนโซล (เช่น Bash) เพื่อสร้างรหัสผ่านที่เข้ารหัสเช่นนั้น? อัปเดต: ผู้ใช้จะไม่ได้รับอนุญาตให้ลงชื่อเข้าใช้บนเครื่องและบัญชีจะถูกใช้เพื่อการเข้าถึง svn + ssh: // เท่านั้น ดังนั้นผู้ใช้ไม่สามารถเปลี่ยนได้เอง

1
เป็นไปได้หรือไม่ที่จะซ่อนนามแฝงที่เป็นอันตรายใน Bash บน Linux?
เป็นไปได้หรือไม่ที่จะซ่อนการดำรงอยู่ของนามแฝงที่เป็นอันตรายใน Bash บนระบบ Linux และดำเนินการโดยผู้ใช้โดยที่พวกเขาไม่รู้ตัว?

2
บน Redhat“ kernel.suid_dumpable = 1” หมายถึงอะไร
ฉันใช้สคริปต์ทุบตีเพื่อคัดลอกไฟล์บันทึกแล้วเริ่มบริการใหม่ในกล่อง Red Hat ทุกครั้งที่ฉันรันสคริปต์ฉันจะได้สิ่งต่อไปนี้บนคอนโซลของฉัน: [root@servername ~]# sh /bin/restart_nss.sh kernel.suid_dumpable = 1 Stopping Service: [ OK ] Starting Service: [ OK ] [root@servername ~]# "kernel.suid_dumpable = 1" หมายถึงอะไรในกรณีนี้ ขอบคุณ IVR Avenger
9 bash  shell  redhat 

6
ข้อดีของ Powershell คืออะไรมากกว่า cygwin / unix-shell
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ความแตกต่างที่ชัดเจนที่ฉันทราบคือความสามารถในการเชื่อมต่อกับผลิตภัณฑ์ MS บางตัวเช่น Exchange แต่สำหรับคนที่ไม่ต้องบริหารผลิตภัณฑ์เหล่านี้ข้อดีของ Powershell คืออะไร? อะไรคือเหตุผลในการเรียนรู้ Powershell เลย (สมมติว่าฉันคล่องแคล่วกับทุบตีและ cygwin)

1
คำสั่งที่จะบอกฉันครั้งสุดท้ายที่ไดเรกทอรีหรือไดเรกทอรีย่อยใด ๆ ของมันได้รับการแก้ไข? [ปิด]
เราพยายามที่จะคัดค้านเซิร์ฟเวอร์ลินุกซ์โฮมโฟลเดอร์เก่าของเรา เรายังมีคนไม่กี่คนที่ใช้มันอย่างแข็งขัน แผนของเราคือการเปลี่ยนโฟลเดอร์บ้านที่ไม่มีใครใช้ในช่วงหกเดือนที่ผ่านมาเพื่ออ่านอย่างเดียว เรามีลูกค้า Mac และ Windows ที่เข้าถึงการแชร์เหล่านี้ผ่านทาง SMB ดังนั้นคำถามของฉันคือ: มีคำสั่งที่จะบอกฉันครั้งสุดท้ายที่ไดเรกทอรีหรือไดเรกทอรีย่อยใด ๆ ที่มีการแก้ไข? หรือ รายการของไดเรกทอรีหลักที่มีการแก้ไขตั้งแต่วันที่กำหนดหรือไม่ นี่จะบอกฉันว่าผู้ใช้ยังคงใช้งานโฟลเดอร์บ้านอยู่
3 linux  bash 

3
ค้นหาจำนวนภาพภายในไดเรกทอรี
ฉันต้องการค้นหาจำนวนไฟล์ภาพภายในไดเรกทอรี ฉันลงเอยด้วยการใช้สิ่งนี้: find . -type f -exec file {} \; | grep -c -i 'image' นี่รู้สึกเหมือนเป็นวิธีที่ไม่มีประสิทธิภาพในการทำ ฉันสามารถคิดวิธีอื่นในการทำเช่นนั้นโดยใช้คำสั่ง OR แต่ฉันไม่สามารถแยกแยะหน้าคนได้ว่าจะทำสิ่งนี้ได้อย่างไร ความคิดใด ๆ ที่ว่าสิ่งนี้สามารถทำได้อย่างมีประสิทธิภาพมากขึ้น? ฉันไม่ต้องการรันคำสั่งด้านบนในไดเรกทอรีที่มีไฟล์จำนวนมากและใช้เวลานาน
2 linux  bash  find 

3
tail -f จากนั้นออกจากการจับคู่สตริง
ฉันกำลังพยายามกำหนดค่าสคริปต์เริ่มต้นซึ่งจะเริ่มต้น Tomcat ตรวจสอบ catalina.out สำหรับสตริง "Server startup" แล้วเรียกใช้กระบวนการอื่น ฉันได้ลองใช้ชุดต่าง ๆ ของ tail -f กับ grep และ awk แต่ยังไม่ได้ทำงานอะไรเลย ปัญหาหลักที่ฉันดูเหมือนจะบังคับให้หางตายหลังจาก grep หรือ awk จับคู่กับสตริง ฉันทำให้การทดสอบต่อไปนี้ง่ายขึ้น test.sh is listed below: #!/bin/sh rm -f child.out ./child.sh > child.out & tail -f child.out | grep -q B child.sh is listed below: #!/bin/sh echo A …

1
ปิดเซสชัน ssh เมื่อสิ้นสุดสคริปต์ทุบตี
ใน. profile ของผู้ใช้แต่ละคนของระบบ (debian 8) ฉันเรียกสคริปต์ที่เริ่มเซสชัน typescript เพื่อบันทึกทุกอย่างในไฟล์: #!/bin/bash script -f $HOME/.log/$(date +"%d-%b-%y_%H-%M-%S")_shell.log สิ่งนี้คือเมื่อคุณป้อน "exit" จากนั้นคุณเพียงหยุดเซสชัน typscrit ไม่ใช่การเชื่อมต่อ ssh ดังนั้นคุณต้องป้อน exit อีกครั้ง ฉันต้องการปิดการเชื่อมต่อ ssh เมื่อเราออกจาก typescript โดยป้อน "exit" ฉันลองสิ่งที่แตกต่าง: ในตอนท้ายของสคริปต์ของฉัน: exit or logout or $(logout) ทั้งหมดนี้กลับข้อผิดพลาดหลังจากออก typescript ตัวอย่างเช่นด้วยlogoutหรือ$(logout): /pathtoscript/log.sh: 9: /pathtoscript/log.sh: logout: not found แต่มันเป็นคำสั่งของระบบดังนั้นฉันแค่ต้องรันมันในระบบเมื่อสิ้นสุดสคริปต์และนั่นก็น่าจะดี! ใน. bashrc: function exit() { …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.