Unix & Linux

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

2
ใช้คำสั่ง `select 'เพื่อพิมพ์เมนูใน Bash
ฉันพยายามใช้เมนูอย่างง่ายโดยใช้selectคำสั่ง สคริปต์ (สำหรับจุดประสงค์ในการทดสอบ) มีดังนี้: #!/bin/bash echo "*******************" PS3='Select an option and press Enter: ' options=("apache" "named" "sendmail") select opt in "${options[@]}" do case $opt in "apache") date ;; "named") echo "test" ;; "sendmail") echo "test 2" ;; *) echo "invalid option";; esac done echo "*********************" สคริปต์ไม่รู้จักอินพุตที่ถูกต้องที่ฉันให้และพิมพ์ข้อความ "ตัวเลือกที่ไม่ถูกต้อง" เสมอ เกิดอะไรขึ้นในสคริปต์นี้

2
วิธีการขัดขวางไม่ให้รูทสคริปต์ทำงาน
Glassfishแอพพลิเคชันเซิร์ฟเวอร์ให้สคริปต์เพื่อดูแลเซิร์ฟเวอร์แอพลิเคชันและยังเริ่มต้นและหยุดพวกเขาและฉันต้องการที่จะ จำกัด การใช้รากจากการทำงานสคริปต์นี้ เหตุผลก็คือผู้พัฒนาคีย์บางคนลืมจัดการเซิร์ฟเวอร์ในฐานะผู้ใช้ที่ไม่ได้รับสิทธิพิเศษและหากพวกเขารีสตาร์ทเซิร์ฟเวอร์แอปพลิเคชันในฐานะผู้ใช้รูทดังนั้นแอปพลิเคชันเซิร์ฟเวอร์จะต้องดำเนินการโดยผู้ใช้รูท มันไม่ใช่ตัวเลือกในการหลีกเลี่ยงการให้สิทธิ์การเข้าถึงรูทและนักพัฒนาซอฟต์แวร์ลืมเพราะพวกเขาคุ้นเคยกับการทำเช่นนี้ในเครื่องของพวกเขา ฉันต้องการให้asadminสคริปต์เปลี่ยนให้ทำงานในฐานะผู้ใช้ที่ไม่มีสิทธิพิเศษหรือเลือกแสดงข้อความแสดงข้อผิดพลาดทุกครั้งที่สคริปต์ทำงานโดยรูท ใช้ Bash shell [*]: ฉันพยายามแก้ไขสิทธิ์ในไฟล์ แต่ถึงแม้ว่าฉันจะติดตามไฟล์จำนวนมากที่รูทเป็นเจ้าของและ chmod พวกเขาแอปพลิเคชันพบข้อผิดพลาดแปลก ๆ และฉันต้องทำงานเป็นรูทอีกครั้ง

4
ระบบการเข้าคิวง่าย ๆ ?
ด้วยพีซีแบบ Commodity เราต้องการใช้มันเพื่อทำงานบางอย่างในพื้นหลังตลอดเวลา โดยทั่วไปเราต้องการมีคำสั่งเช่น: add-task *insert command here* list-tasks remove-task(s) งานที่เพิ่มเข้ามาควรอยู่ในคิวและดำเนินการทีละรายการในพื้นหลัง (ยังคงทำงานหลังจากออกจากระบบของเชลล์) มีสคริปต์ / โปรแกรมง่าย ๆ ที่ทำสิ่งนี้?

1
`^ M` ที่ส่วนท้ายของไฟล์ข้อความแต่ละบรรทัดที่สร้างขึ้นภายใต้ Windows
ฉันสงสัยว่าทำไมถ้าคุณเปิดไฟล์ข้อความที่ทำใน Windows notepad ภายใต้ยูนิกซ์คุณจะพบว่ามันมี^Mตำแหน่งที่ควรมีบรรทัดใหม่หรือไม่ ความเข้าใจของฉันคือว่าใน Windows สายทุกคนจะจบลงด้วย\r\nเช่น 0x0D0Aใน ASCII ในขณะที่มีค่า^M ASCII 0x5E4Dฉันไม่สามารถเกี่ยวข้องทั้งสองนี้จากที่หนึ่งไปที่อื่น

2
เป็นไปได้หรือไม่ที่จะทำตามคำสั่ง (ทำงานซ้ำ ๆ )? เป็นหนึ่งจะติดตามไฟล์โดยใช้ tail -f?
ฉันมีสคริปต์ที่สร้างไฟล์ 'Detail.out' ฉันรู้ว่าสคริปต์จะเสร็จสมบูรณ์เมื่อใดก็ตามที่ไฟล์มีจำนวนบรรทัดที่แน่นอน (ประมาณ 21025) ดังนั้นฉันพบว่าตัวเองกำลังนั่งอยู่ที่พร้อมท์คำสั่งทำงาน: [me@somewhere myDir]$ wc -l */Detail.out 21025 A/Detail.out 21025 B/Detail.out 21025 C/Detail.out 12995 D/Detail.out 10652 E/Detail.out 3481 F/Detail.out 21027 G/Detail.out 21025 H/Detail.out 21025 I/Detail.out ... ... ฉันเคยtail -fดูไฟล์เฉพาะ แต่ฉันต้องการติดตามผลลัพธ์ของwc -l */Detail.outคำสั่งที่แสดงด้านบน เป็นไปได้ไหม ฉันกำลังใช้งานtcshใน Ubuntu 11.04 ถ้าเป็นเช่นนั้น
10 monitoring  pipe  tail 

3
bash: cd ไปยังไดเร็กทอรีย่อยที่แก้ไขล่าสุด
สงสัยว่ามีวิธีที่ง่ายและ / หรือพกพาในการพูดว่า "เปลี่ยนเป็นไดเรกทอรีย่อยที่แก้ไขล่าสุด" ฉันสามารถใช้ ls และ awk แต่อาจมีวิธีที่ดีกว่า cd $( ls -ltrd */ | tail -1 | awk '{ print $8 }' ) ฉันต้องเรียกใช้คำสั่งในไดเรกทอรี "ไฟล์เอาต์พุต" ที่มีไดเรกทอรีย่อยหลายร้อยรายการและ 99% ของเวลาที่ฉันต้องการไปยังไดเรกทอรีที่เปลี่ยนแปลงล่าสุด ฉันไม่รู้ว่าชื่อของไดเรกทอรีจะเป็นอะไรล่วงหน้า
10 bash  date  cd-command 

2
มีวิธีที่ถูกต้องในการแสดงรายการไดเรกทอรีย่อยของไดเรกทอรีปัจจุบันหรือไม่?
ฉันสามารถค้นหาไดเรกทอรีย่อยของไดเรกทอรีโดย ls -d -- */ หรือ ls -l | grep "^d" แต่ทั้งคู่ดูเหมือนจะเป็นทางอ้อมและฉันคิดว่าจะมีวิธีมาตรฐานในการค้นหาเฉพาะไดเรกทอรี มีวิธีที่ถูกต้องในการทำเช่นนี้? และถ้าไม่เช่นนั้นสิ่งเหล่านี้จะนำไปสู่พฤติกรรมที่ไม่พึงประสงค์ในคดีขอบหรือไม่? (ลิงก์สัญลักษณ์ไดเรกทอรีที่ซ่อนอยู่ ฯลฯ )

3
ช้า NFS, nfsstat -c: ฟิลด์ authrefrsh (หรือที่รู้จักว่า newcreds คืออะไร) เกี่ยวกับรายละเอียด?
(net-fs / nfs-utils-1.2.3-r1, 2.6.38.5-zen + Gentoo) Googling ดูเหมือนว่าจะเป็นจุดจบที่สมบูรณ์ ผู้ชาย nfsstatกล่าวว่าไม่มีอะไรมากมายเกี่ยวกับเรื่องนี้ ที่อยู่ใกล้ฉันจะได้รับคือการหาข้อมูลเกี่ยวกับสิ่งที่อาจจะก่อนหน้านี้ " newcreds " newcreds จำนวนครั้งที่ต้องรีเฟรชข้อมูลการพิสูจน์ตัวตน ปัญหาของฉันคือฉันคิดว่าฉันเห็นประสิทธิภาพ subpar NFS เหนือ OpenVPN และสิ่งเดียวที่ฉันเห็นได้ทันทีนั้นแตกต่างอย่างมากจากผลการค้นหาของ Google nfsstat ทั้งหมดนั่นคือฟิลด์ "การโทร" ของฉันเท่ากับ "authrefrsh" ดังนั้นจึงสูงมาก . ผลลัพธ์ของผลลัพธ์การค้นหาทั้งหมดมี authrefrsh เป็น 0 หรือตัวเลขที่ต่ำมากเสมอ ก่อนที่ฉันจะสามารถแก้ไขข้อบกพร่องด้านอื่น ๆ ได้ฉันสามารถใช้หาว่ามันหมายถึงอะไร การดำเนินการที่เฝ้าดูกำลังสร้างแพ็กเกจผ่านพอร์ตการแชร์ NFS การโผล่ออกมาจะข้ามต้นไม้ใหญ่ในระหว่างการดำเนินการ แต่ประสบการณ์ก่อนหน้าบอกว่าประสิทธิภาพที่ฉันเห็นนั้นผิดปกติ $ watch -n 1 nfsstat -c Every 1,0s: …
10 gentoo  nfs  openvpn 

4
เครื่องมือหรือเทคนิคในการรับการติดตั้ง linux ที่แตกต่างกัน
อ้าง Albert Einstein บ้า: ทำสิ่งเดียวกันซ้ำแล้วซ้ำอีกและคาดหวังผลลัพธ์ที่แตกต่าง บ่อยครั้งที่ Linux ทำให้ฉันโมโหเพราะฉันทำสิ่งเดียวกันซ้ำแล้วซ้ำอีกและได้ผลลัพธ์ที่แตกต่างกันไปในแต่ละกล่อง (ดูคำถามก่อนหน้าของฉัน ) สำหรับฉันพื้นที่ที่ใหญ่ที่สุดของความสับสนคือการยึดเครื่องที่มีคนอื่นติดตั้ง (เช่นกรณีเมื่อลงทะเบียนกับ บริษัท เว็บโฮสติ้ง) คุณแค่ไม่รู้ว่าคุณกำลังทำอะไรอยู่ มีเครื่องมือ diff ที่ฉลาดบางอย่างที่ฉันสามารถใช้กับการติดตั้ง Linux (Ubuntu) เพื่อให้ฉันดูว่าเครื่องนั้นเปลี่ยนทิศทางจากการติดตั้งเริ่มต้นหรือไม่ นั่นคือสิ่งที่สามารถแสดงรายการคำสั่งที่จะทำงานได้อย่างน่าประหลาดใจโดยหลีกเลี่ยงการลองผิดลองถูก

2
การเริ่มต้นตั๋ว Kerberos อัตโนมัติเมื่อเข้าสู่ระบบ
ฉันกำลังใช้ksshaskpassเพื่อเพิ่มรหัสป้องกันด้วยรหัสผ่านของฉันเข้าssh-agentสู่ระบบเมื่อเข้าสู่ KDE มีอะไรที่คล้ายกันสำหรับ Kerberos หรือไม่
10 kde  login  kerberos 

4
การแทนที่แท็บ alt ที่ดีสำหรับ Gnome มีอะไรบ้าง
ฉันคิดว่าปัญหาเหล่านี้รบกวนฉันด้วยแอพ alt-tab แบบเนทีฟ: รู้สึกเฉื่อยเล็กน้อย - ใช้เวลาประมาณ 0.3 วินาทีเพื่อให้หน้าต่างแท็บ alt ปรากฏขึ้น ฉันต้องการกำหนดค่าAlt- Shift- Tabเพื่อย้อนกลับไปหนึ่งหน้าต่าง (ไม่แน่ใจว่าใครจะทำกับคนพื้นเมือง) ฉันไม่ชอบวิธีการเพียงหน้าต่างที่มองเห็นเป็นหน้าต่างฉันเปลี่ยนเกินไป - ฉันต้องการพฤติกรรมคล้ายกับระบบปฏิบัติการ Windows -alttab
10 gnome  alt-tab 

4
จะปิดแทร็คแพดใน Yellow Dog Linux ได้อย่างไร
ฉันเพิ่งติดตั้ง Yellow Dog Linux 6.2 บนแล็ปท็อป PowerPC รุ่นเก่า โดยค่าเริ่มต้นมันตีความแทร็คแพดเป็นคลิกซึ่งฉันต้องการปิดการใช้งาน ฉันทำตามคำแนะนำที่นี่และใส่TRACKPAD_OPT=notapของฉัน/etc/sysconfig/mouse-emulationและรีบูต แต่ก๊อกยังคงตีความว่าเป็นการคลิก ใส่การตั้งค่า/etc/sysconfig/mouseแทน (ซึ่งฉันต้องสร้าง) และการรีบูตเครื่องก็ไม่สามารถแก้ไขปัญหาได้เช่นกัน ฉันก็ลอง: % sudo trackpad notap Password: writing /dev/adb: No such device or address ดังนั้นดูเหมือนจะไม่ทำงาน ฉันควรทำอย่างไรดี?
10 mouse  trackpad 

1
ฉันจะกำหนดการแมป LVM บนอุปกรณ์ทางกายภาพได้อย่างไร
ฉันมีเซิร์ฟเวอร์ (SUSE 11.5) ที่มีดิสก์สองแผ่น มีกลุ่มวอลุ่มเพียงกลุ่มเดียว (vg01) ฉันจะตรวจสอบอุปกรณ์ทางกายภาพที่ vg นั้นมีอยู่ได้อย่างไร?
10 linux  lvm 

2
จะเปลี่ยนเครื่องหมายคำพูดในไฟล์ด้วย sed ได้อย่างไร?
ฉันมีไฟล์ที่มี xml หลายบรรทัด ฉันต้องการแทนที่บางส่วนของไฟล์ บางส่วนของไฟล์มีเครื่องหมายอัญประกาศ ( ") ซึ่งฉันต้องการแทนที่ ฉันพยายามหลีกเลี่ยงเครื่องหมายคำพูดด้วย\แต่ฉันไม่คิดว่ามันจะทำงานได้ตามผลลัพธ์ของไฟล์ของฉัน นี่คือตัวอย่างของคำสั่ง sed ของฉัน: sed -e "s/\"text\"/'text'/ig" file.xml > temp.tmp นี่เป็นวิธีที่คุณหลีกเลี่ยงเครื่องหมายคำพูดในคำสั่ง sed หรือฉันกำลังทำอะไรผิดหรือเปล่า?
10 sed 

7
รับค่า ASCII ตัวเลขสำหรับอักขระ
ฉันพยายามเขียนเชลล์สคริปต์ที่ขออักขระ ASCII ในช่วง AZ หรือ az และส่งกลับค่าตัวเลขที่เทียบเท่ากัน ตัวอย่างเช่นผลลัพธ์อาจมีลักษณะดังต่อไปนี้: scarlet$ Please type a character between A and Z or between a and z: scarlet$ A scarlet$ The decimal value of A is: 65 ความพยายามของฉัน: #!/bin/bash echo Enter a letter: read A echo -n ${A} | od -i | head -1 | …

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