Unix & Linux

คำถาม & คำตอบสำหรับผู้ใช้ Linux, FreeBSD และระบบปฏิบัติการ Un * x อื่น ๆ

3
ประวัติของทุบตี Bash
มีเหตุผลทางประวัติศาสตร์หรือไม่ทำไม Bash "globbing" และการแสดงออกปกติไม่เหมือนกัน? ตัวอย่างเช่นฉันเชื่อว่าใน Bash [1-2]*ตรงกับสิ่งที่เริ่มต้นด้วย 1 หรือ 2 ตามด้วยสิ่งอื่นในขณะที่นิพจน์ทั่วไป[1-2]*จะจับคู่เฉพาะลำดับที่ 1 และ 2 การเขียนสคริปต์ Bash และ REGEX ของฉันนั้นค่อนข้างอ่อนแอและฉันพบปัญหาที่เกี่ยวข้องกับความแตกต่างเหล่านี้เป็นประจำซึ่งทำให้ฉันสงสัยว่าทำไมพวกเขาถึงแตกต่างกัน

5
ฉันจะคัดลอกไฟล์จากเซิร์ฟเวอร์หลายเครื่องไปยังระบบโลคัลของฉันได้อย่างไร
เรามีการปรับใช้แอปพลิเคชั่นหลายตัวบนเซิร์ฟเวอร์เช่น app00, app01 และอื่น ๆ ฉันต้องการคัดลอกไฟล์บันทึกเดียวจากเซิร์ฟเวอร์ทั้งหมดเหล่านี้ลงในเครื่อง mac ของฉันเพื่อให้สามารถทำการ grepping และตัดบางอย่าง ฉันใช้ csshX เพื่อดูไฟล์นี้ แต่ไม่สามารถหาค่าเทียบเท่าสำหรับ scp โดยทั่วไปฉันต้องการสองสิ่ง: ความสามารถในการเชื่อมต่อกับหมายเลขของเซิร์ฟเวอร์ดังกล่าวและคัดลอกไฟล์ หลีกเลี่ยงความขัดแย้งในการตั้งชื่อในเครื่องโดยอาจนำหน้าล็อกไฟล์ด้วยชื่อโฮสต์เซิร์ฟเวอร์ ฉันจะทำสิ่งนี้ได้อย่างไร
11 scp  file-copy 

2
จะปลอดภัยหรือไม่ที่จะประเมิน $ BASH_COMMAND
ฉันทำงานกับเชลล์สคริปต์ที่สร้างคำสั่งที่ซับซ้อนจากตัวแปรเช่นนี้ (ด้วยเทคนิคที่ฉันได้เรียนรู้จาก Bash FAQ ): #!/bin/bash SOME_ARG="abc" ANOTHER_ARG="def" some_complex_command \ ${SOME_ARG:+--do-something "$SOME_ARG"} \ ${ANOTHER_ARG:+--with "$ANOTHER_ARG"} สคริปต์แบบนี้เพิ่มพารามิเตอร์--do-something "$SOME_ARG"และ--with "$ANOTHER_ARG"การsome_complex_commandหากตัวแปรเหล่านี้ถูกกำหนด จนถึงตอนนี้ก็ใช้งานได้ดี แต่ตอนนี้ฉันต้องการพิมพ์หรือบันทึกคำสั่งเมื่อฉันใช้งานเช่นเมื่อสคริปต์ของฉันทำงานในโหมดดีบัก ดังนั้นเมื่อสคริปต์ของฉันทำงานsome_complex_command --do-something abc --with defฉันยังต้องการให้คำสั่งนี้อยู่ในตัวแปรเพื่อให้ฉันสามารถบันทึกลงใน syslog Bash คำถามที่พบบ่อยแสดงให้เห็นถึงเทคนิคในการใช้DEBUGกับดักและ$BASH_COMMANDตัวแปร (ตัวอย่างเช่นสำหรับวัตถุประสงค์ในการแก้จุดบกพร่อง) สำหรับวัตถุประสงค์นี้ ฉันลองด้วยรหัสต่อไปนี้: #!/bin/bash ARG="test string" trap 'COMMAND="$BASH_COMMAND"; trap - DEBUG' DEBUG echo "$ARG" echo "Command was: ${COMMAND}" ใช้งานได้ แต่ไม่ขยายตัวแปรในคำสั่ง: host ~ …
11 bash 

1
คำจำกัดความของ addrtype ใน iptables คืออะไร
ฉันกระตือรือร้นที่จะใช้addrtypeร่วมกับ-srcกฎในหนึ่งในห่วงโซ่ตัวกรองของฉันเช่นเพื่อที่จะวาง ips bogon: -A INPUT -p tcp --dport 80 -m addrtype --src-type UNICAST ! -s 127.0.0.0/8 -j WEB หน้าคนบอกว่าต่อไปนี้ addrtype โมดูลนี้จับคู่แพ็คเก็ตตามประเภทที่อยู่ ประเภทที่อยู่ถูกใช้ภายในสแต็กเครือข่ายเคอร์เนลและจัดประเภทที่อยู่ออกเป็นกลุ่มต่างๆ คำจำกัดความที่แน่นอนของกลุ่มนั้นขึ้นอยู่กับเลเยอร์เฉพาะของโปรโตคอลที่สาม ประเภทที่อยู่ต่อไปนี้เป็นไปได้: UNSPEC ที่อยู่ที่ไม่ระบุ (เช่น 0.0.0.0) UNICAST ที่อยู่ยูนิคาสต์ LOCAL ที่อยู่ท้องถิ่น ออกอากาศที่อยู่ออกอากาศ ANYCAST แพ็กเก็ต anycast MULTICAST ที่อยู่แบบหลายผู้รับ BLACKHOLE ที่อยู่ blackhole ไม่สามารถเข้าถึงที่อยู่ที่ไม่สามารถเข้าถึงได้ PROHIBIT ที่อยู่ห้าม โยนแก้ไข แก้ไข NAT XRESOLVE มันไม่ชัดเจนในสิ่งที่คำจำกัดความที่แน่นอนและบอกว่ามันขึ้นอยู่กับโปรโตคอลเลเยอร์ 3 …
11 iptables 


2
วิธีการป้องกันไม่ให้เคอร์เนล Linux ปลุก HDD สำรองจากการสลีป
มีวิธีในการสั่งให้เคอร์เนล (Linux) ไม่ให้เรียกใช้ hdd สำรองหลังจากระบบรอบ / พักหรือไม่ ฉันถามเพราะในแล็ปท็อปของฉันฉันมี SSD เป็นไดรฟ์หลักที่มีรูทระบบและ HDD สำรองที่ฉันเก็บระบบสำรองและไฟล์ที่ฉันใช้เป็นระยะ ๆ เนื่องจากแล็ปท็อปมักจะผ่านรอบการนอนหลับ / ตื่นทุกวันเป็นจำนวนมาก (ฉันหมายถึง Suspend to RAM ไม่ใช่การจำศีล) เป็นเวลาหลายวันฉันต้องการให้ HDD ตัวที่สองเข้าสู่โหมดสลีปด้วยตนเองและสั่งให้เคอร์เนลหลับไปตลอด / รอบการปลุก

2
ตกลงไหมที่จะใช้“.” รันไฟล์แทนที่จะเป็น source - in .bashrc ใน Ubuntu และ OS X
ตกลงดังนั้นsourceรันสคริปต์ในเชลล์ปัจจุบันและ.แยกกันตามรายละเอียดในการรันสคริปต์ด้วย "." และด้วย "source"ตัวอย่างเช่น แต่โดยเฉพาะใน.bashrcไฟล์ของฉันฉันมี: [ -f ~/.bash_aliases ] && source ~/.bash_aliases [ -f ~/.git-completion.bash ] && source ~/.git-completion.bash [ -s ~/.autojump/etc/profile.d/autojump.sh ] && source ~/.autojump/etc/profile.d/autojump.sh ฉันสามารถแทนที่ด้วย: [ -f ~/.bash_aliases ] && . ~/.bash_aliases [ -f ~/.git-completion.bash ] && . ~/.git-completion.bash [ -s ~/.autojump/etc/profile.d/autojump.sh ] && . ~/.autojump/etc/profile.d/autojump.sh จะใช้งานได้กับ OS …
11 osx  bashrc  posix 

4
จะมีคู่ของ UID และ GID เดียวกันหรือไม่
ฉันต้องเปลี่ยนความเป็นเจ้าของไฟล์ / ไดเรกทอรีโดยใช้chmodฉันรู้เพียงชื่อผู้ใช้ของเจ้าของ แต่ต้องการเปลี่ยนชื่อกลุ่มเริ่มต้น simultaneosly ในตอนนี้ชื่อกลุ่มยังไม่ได้ตัดสินใจดังนั้นฉันจึงใส่ชื่อผู้ใช้ chown -R username:username path_to_dir คำสั่งอาจทำงานสำหรับ sytems / ผู้ใช้หลายคนดังนั้นความกังวลของฉันคือ linux จะมีชื่อผู้ใช้คู่ (ผู้ใช้): ชื่อผู้ใช้ (กลุ่ม) หรือ ณ จุดหนึ่ง group_name เริ่มต้นนี้อาจให้ข้อผิดพลาด แม้ว่าฉันได้เริ่มค้นหา GID จากผู้ใช้แล้ว id username | tr '(=)' ':' | awk -F: '{print $3} แต่สำหรับความรู้ฉันอยากรู้ จนถึงตอนนี้มี/etc/passwd /etc/groupsผู้ใช้ไม่กี่คนยกเว้น "ปิด, หยุด, ซิงค์, opeartor" ผู้ใช้ทั้งหมดที่มีรายชื่ออยู่ในกลุ่มเช่นกัน แก้ไข 1: ชื่อผู้ใช้ id …
11 linux  chown  passwd 

2
วิธีจัดทำฟังก์ชั่นทุบตีและนามแฝงที่กำหนดเองของฉัน
ปัญหา: ฉันมีฟังก์ชั่นทุบตีและชื่อแทนหลายรายการ ฉันจำไม่ได้ว่าพวกเขาทั้งหมดอยู่ด้านบนของหัวของฉันดังนั้นฉันมักจะเปิดท้ายของฉัน.bash_functionsและ.bash_aliasesไฟล์เพื่อค้นหาสิ่งที่ฉันต้องการ คำถาม (s): ฉันจะแสดงรายการฟังก์ชั่น / นามแฝงที่มีอยู่จาก bash prompt ได้อย่างไร? เป็นไปได้ไหมที่ฉันจะทำเอกสารฟังก์ชั่นทุบตี / นามแฝงของฉันโดยใช้ความคิดเห็น (kinda เช่น PHPDoc)? ฉันแค่ต้องการวิธีที่ง่าย / ดีในการแสดงผลสิ่งที่มีอยู่โดยไม่ต้องเปิดไฟล์ มันจะเจ๋งมากในการรันคำสั่งและปล่อยให้มันมีรายการแบบไดนามิกของฟังก์ชั่น / ชื่อแทนของฉัน (ตัวอย่างการใช้งานจะเป็นบวก) :)

2
โปรไฟล์ AppArmor ใน Docker / LXC
ฉันมี Docker container (LXC) ที่รัน MySQL เนื่องจากความคิดที่อยู่เบื้องหลัง Docker โดยทั่วไปคือ "หนึ่งกระบวนการทำงานต่อคอนเทนเนอร์" ถ้าฉันกำหนดโปรไฟล์ AppArmor ที่กำหนดเป้าหมายไปที่ไบนารี MySQL พวกเขาจะถูกบังคับใช้หรือไม่ มีวิธีที่ฉันจะทดสอบสิ่งนี้หรือไม่?
11 lxc  apparmor  docker 

2
วิธีกำหนดลิงก์สัญลักษณ์ที่ฉันสามารถใช้ได้ในทุกไดเร็กทอรี
เป็นไปได้หรือไม่ที่จะตั้งลิงก์สัญลักษณ์เพื่อให้ฉันสามารถใช้projectชี้ไดเรกทอรีhome/me/projectได้เช่น? สิ่งนี้ควรเป็นอิสระจากตำแหน่งในระบบไฟล์ ฉันต้องการใช้คำสั่งเช่นcd projectนี้nano project/file1.texเป็นต้น ฉันต้องเขียนลิงค์สัญลักษณ์ไปยังไดเรกทอรีทั้งหมดของฉันหรือไม่?
11 bash  symlink 

3
ปัญหาการติดตั้งดิสก์พาร์ติชัน GPT
ฉันพยายามเมาต์พาร์ติชันบนดิสก์ GPT แต่ฉันได้รับข้อผิดพลาดต่อไปนี้: $ sudo mount -t ext4 /dev/sda1 disk/ mount: special device /dev/sda1 does not exist มองไปที่ dmesg ฉันไม่เห็นข้อผิดพลาดใด ๆ ใน / dev / sda: $ dmesg | grep sda [ 1.367508] sd 0:0:0:0: [sda] 5860533168 512-byte logical blocks: (3.00 TB/2.72 TiB) [ 1.367514] sd 0:0:0:0: [sda] 4096-byte physical …

3
วิธีใช้ btrfs ส่ง / รับสำหรับการส่งสแน็ปช็อตการสำรองข้อมูลผ่านการเชื่อมต่อเครือข่ายที่ช้าและไม่น่าเชื่อถือ?
ฉันต้องการใช้คุณลักษณะรับ / ส่งของ btrfs สำหรับการส่งสแน็ปช็อตการสำรองข้อมูลที่ค่อนข้างช้า (เมล็ดเริ่มต้นประมาณ 50-100GB, upstream bandwith ~ 1-2MBit / s) และการเชื่อมต่อที่ไม่น่าเชื่อถือ ฉันเห็นข้อกำหนดดังต่อไปนี้: การถ่ายโอนที่เข้ารหัส (โดยปกติจะทำได้โดยใช้อุโมงค์ SSH) ความทนทานต่อการเชื่อมต่อที่ถูกขัดจังหวะ ดูเหมือนว่าZFS จะสามารถดำเนินการถ่ายโอนต่อให้ถูกขัดจังหวะโดยอัตโนมัติอีกครั้งคล้ายกับวิธีการทำ rsync สิ่งนี้ใช้กับ BTRFS หรือไม่ หน้า wikiการส่ง / รับไม่มีประโยชน์สำหรับการถ่ายโอนขัดจังหวะ หาก btrfs จะกลับมาทำงานต่อการถ่ายโอนถูกขัดจังหวะสิ่งที่ฉันต้องทำคือใช้อุโมงค์ SSH และกลับมาทำงานต่อหากถูกขัดจังหวะ ถ้าไม่ฉันจะต้องใช้บัฟเฟอร์บางอย่างในระหว่างนั้นตรวจสอบให้แน่ใจว่าการเชื่อมต่อ btrfs ยังคงอยู่อินเตอร์รัปต์หรือทำให้เซิร์ฟเวอร์ทั้งสองอยู่ใกล้กันเพื่อทำการ seed (ซึ่งจะเป็นปัญหาเกี่ยวกับการเพิ่มไฟล์ที่เก่งกว่าการส่งข้อมูลรายวัน ความจุและการส่งสแนปชอต) ฉันต้องพิจารณาอะไรบ้างในการถ่ายทอดเมล็ดพันธุ์และสแนปชอต?
11 linux  backup  btrfs 

3
ฉันจะรับพา ธ สัมบูรณ์จากการใช้คำสั่ง find unix ได้อย่างไร
วิธีรับพา ธ สัมบูรณ์โดยใช้คำสั่ง find จริง ๆ แล้วฉันกำลังเรียกใช้สคริปต์ต่อไปนี้: - find . -size +20M | while read a do i=$(echo $a | sed 's:/: :g') echo $a; j=($i) fileName=${j[${#j[@]}-1]} userName=${j[${#j[@]}-3]} done แต่ตัวแปรที่นี่$aเส้นทางเริ่มต้นจากการแสดงแต่ฉันต้องการเส้นทางที่แน่นอนจาก./Downloads/filename/

9
ฉันจะพิมพ์หมายเลขที่ยาวที่สุดในสตริงได้อย่างไร
ฉันกำลังมองหาวิธีการพิมพ์จำนวนที่ยาวที่สุดในสตริง เช่น: ถ้าฉันมีสตริง 212334123434test233 ฉันจะพิมพ์ได้อย่างไร 212334123434 ? หมายเหตุ: ฉันกำลังมองหาลำดับที่ต่อเนื่องยาวนานที่สุดของตัวเลขไม่ใช่ค่าที่สูงกว่าเป็นตัวเลข แก้ไข:ขอบคุณสำหรับคำตอบทุกคน การตอบคำถามนี้ค่อนข้างท่วมท้น ฉันทำเครื่องหมายโพสต์ของ @ HaukeLaging เป็นคำตอบที่ยอมรับได้เพราะมันเหมาะกับกรณีของฉันเป็นอย่างดี แต่ฉันต้องการชี้ให้เห็นว่าคำตอบทั้งหมดนั้นใช้ได้อย่างเท่าเทียมกัน เป็นเรื่องที่ดีเสมอที่จะมีตัวเลือกต่าง ๆ เพื่อแก้ไขปัญหา

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