Unix & Linux

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

8
มีโปรแกรมที่สามารถส่งอีเมลแจ้งเตือนเมื่อกระบวนการเสร็จสิ้นหรือไม่?
ฉันเป็นนักวิทยาศาสตร์การคำนวณและฉันใช้การคำนวณจำนวนมากบนลีนุกซ์ โดยเฉพาะฉันเรียกใช้การจำลองโมเลกุล (MD) โดยใช้แพ็คเกจ GROMACS การจำลองเหล่านี้อาจใช้เวลาหลายวันหรือหลายสัปดาห์ทำงานบน (เช่น) 8 ถึง 24 แกน ฉันสามารถเข้าถึงหลายโหนดของคลัสเตอร์ซึ่งหมายความว่าในเวลาใดก็ตามฉันกำลังทำงานประมาณ 4 หรือ 5 งาน (แต่ละงานบนโหนดที่แตกต่างกันและแต่ละงานใน 8-24 คอร์) ปัญหาคือว่าการจำลองใช้เวลาจำนวนตัวแปร ฉันต้องการให้โหนดทั้งหมดทำงานกับการจำลองตลอดเวลา แต่เพื่อเริ่มต้นการจำลองใหม่ฉันต้องทำการล็อกอินด้วยเทอร์มินัลและทำงานด้วยตนเอง แต่ฉันมักจะลืมเวลาที่เหลืออยู่ในการจำลองดังนั้นฉันมักจะตรวจสอบพวกเขาตลอดเวลา มีวิธีใดบ้างที่ฉันสามารถรับอีเมลเมื่อกระบวนการ Linux เสร็จสิ้น มีโปรแกรม Linux ที่ทำสิ่งนี้หรือไม่? ด้วยวิธีนี้ฉันจะรู้ว่าเมื่อใดที่ต้องล็อกอินด้วยเทอร์มินัลและเตรียมการจำลองต่อไป ฉันใช้ Ubuntu Linux ขอบคุณที่สละเวลา.
46 shell  process  email 

1
รับข้อมูลเกี่ยวกับการใช้หน่วยความจำของกระบวนการจาก / proc / pid / smaps
สำหรับกระบวนการที่กำหนดใน/proc/<pid>/smapsสำหรับรายการการแม็พที่กำหนดคือ: Shared_Clean Shared_Dirty Private_Clean Private_Dirty เป็นShared_Clean+ Shared_Dirtyจำนวนหน่วยความจำที่ใช้ร่วมกันกับกระบวนการอื่น ๆ ? มันเหมือนกับ RSS ที่แชร์ใช่ไหม ในทำนองเดียวกันPrivate_Clean+ Private_Dirtyจำนวนหน่วยความจำที่มีอยู่สำหรับกระบวนการเดียวเท่านั้นหรือไม่ ดังนั้นมันจึงเป็นเหมือน RSS ส่วนตัว? ค่า PSS = PrivateRSS + (SharedRSS / จำนวนกระบวนการที่ใช้ร่วมกัน) หรือไม่ บางคำถามเพิ่มเติมหลังจากอ่านลิงค์นี้: LWN ตอนนี้ให้พูดคุยเกี่ยวกับกระบวนการทั้งหมดซึ่ง smaps รายการที่เรากำลังดู ฉันสังเกตเห็นว่าถ้าฉันทำShared_Clean+ Shared_Dirty+ Private_Clean+ Private_Dirtyสำหรับทุกรายการ smaps สำหรับกระบวนการฉันได้รับ RSS ของกระบวนการตามที่รายงานโดยpsซึ่งค่อนข้างเจ๋ง สำหรับเช่น ps -p $$ -o pid,rss จะให้ฉัน (ประมาณ) ค่าเดียวกันสำหรับ RSS เป็นผลรวมของทุกคนShared_Clean, …

7
จะเปลี่ยนชื่อโวลุ่มของระบบไฟล์ FAT32 ได้อย่างไร?
ฉันรู้ว่าฉันสามารถตั้งชื่อไดรฟ์เมื่อฉันฟอร์แมตพาร์ติชันที่มีตัวเลือกในการ-n mkfs.vfatแต่จะเปลี่ยนชื่อโดยไม่ต้องจัดรูปแบบได้อย่างไร ฉันต้องการใช้ตัวอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่โดยเฉพาะอย่างยิ่ง ในกรณีที่เลวร้ายที่สุดที่ฉันสามารถใช้เครื่องมือที่หน้าต่าง แต่หน้าต่างโดยค่าเริ่มต้นแปลงตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่ ( แต่ทำงานได้ดีกับอักษรตัวพิมพ์เล็กในปริมาณที่สร้างขึ้นด้วยmkfs.vfat)
46 partition  fat 

7
จะสร้างไฟล์ DEB ด้วยตนเองได้อย่างไร?
ฉันต้องการสร้างไฟล์ DEB ด้วยตนเอง ฉันต้องการเพียงแค่ระบุโฟลเดอร์ที่มีข้อมูลที่จะติดตั้งและสคริปต์ที่จะดำเนินการหลังจากการติดตั้ง เป็นไปได้ไหม
46 debian 

5
การวัดการใช้ RAM ของโปรแกรม
time เป็นคำสั่งที่ยอดเยี่ยมถ้าคุณต้องการที่จะคำนวณเวลาของ CPU ที่คำสั่งที่ได้รับ ฉันกำลังมองหาสิ่งที่คล้ายกันซึ่งสามารถวัดการใช้ RAM สูงสุดของโปรแกรมและเด็ก ๆ ควรแยกความแตกต่างระหว่างหน่วยความจำที่จัดสรรที่ใช้และไม่ได้ใช้ บางทีมันอาจให้การใช้หน่วยความจำมัธยฐาน (ดังนั้นการใช้หน่วยความจำที่คุณควรคาดหวังเมื่อทำงานเป็นเวลานาน) ดังนั้นฉันต้องการทำ: rammeassure my_program my_args และรับเอาต์พุตคล้ายกับ: Max memory allocated: 10233303 Bytes Max memory used: 7233303 Bytes Median memory allocation: 5233303 Bytes ฉันดูmemusg https://gist.github.com/526585/590293d6527c91e48fcb08edb8de9fd6c88a6d82แต่ฉันคิดว่ามันค่อนข้างแฮ็ค

12
ทำให้ cd เป็น ls โดยอัตโนมัติ
ฉันพบว่าฉันมักจะทำต่อไปนี้: %> cd bla/bla %> ls ฉันจะชอบมันที่ว่าเมื่อใดก็ตามที่ฉันในไดเรกทอรีที่มันไม่โดยอัตโนมัติcdls ฉันเล่นซอกับฉันซัก.bashrcพัก แต่ก็ไม่สามารถหาวิธีที่จะทำให้มันเกิดขึ้นได้


15
เรียกใช้คำสั่งผ่าน SSH บนเซิร์ฟเวอร์หลายเครื่องโดยอัตโนมัติ
มีรายการที่อยู่ IP ในไฟล์. txt เช่น: 1.1.1.1 2.2.2.2 3.3.3.3 ที่อยู่ IP ทุกหลังมีเซิร์ฟเวอร์และทุกเซิร์ฟเวอร์มี sshd ที่ทำงานอยู่ที่พอร์ต 22 ไม่ใช่เซิร์ฟเวอร์ทุกเครื่องที่อยู่ในknown_hostsรายการ (บนพีซีของฉัน Ubuntu 10.04 LTS / bash) ฉันจะรันคำสั่งบนเซิร์ฟเวอร์เหล่านี้และรวบรวมผลลัพธ์ได้อย่างไร เป็นการดีที่ฉันต้องการเรียกใช้คำสั่งแบบขนานบนเซิร์ฟเวอร์ทั้งหมด ฉันจะใช้การรับรองความถูกต้องของรหัสสาธารณะในเซิร์ฟเวอร์ทั้งหมด นี่คือข้อผิดพลาดที่อาจเกิดขึ้น: ssh แจ้งให้ฉันใส่คีย์ ssh ของเซิร์ฟเวอร์ที่ระบุลงในknown_hostsไฟล์ของฉัน คำสั่งที่กำหนดอาจส่งคืนโค้ดการออกที่ไม่ใช่ศูนย์ซึ่งบ่งชี้ว่าเอาต์พุตอาจไม่ถูกต้อง ฉันต้องยอมรับว่า การเชื่อมต่ออาจล้มเหลวในการสร้างไปยังเซิร์ฟเวอร์ที่กำหนดตัวอย่างเช่นเนื่องจากข้อผิดพลาดของเครือข่าย ควรมีการหมดเวลาในกรณีที่คำสั่งรันนานกว่าที่คาดไว้หรือเซิร์ฟเวอร์หยุดทำงานในขณะที่รันคำสั่ง เซิร์ฟเวอร์คือ AIX / ksh (แต่ฉันคิดว่ามันไม่สำคัญ

3
วิธีค้นหาไบนารีที่ปฏิบัติการได้ทั้งหมดในไดเรกทอรีซ้ำ?
ถ้าฉันใช้findคำสั่งเช่นนี้: find /mydir/mysubdir -executable -type f ไฟล์ที่สามารถเรียกทำงานได้ทั้งหมดจะแสดงรายการ (ไม่รวมไดเรกทอรี) และรวมถึงไฟล์สคริปต์ที่สามารถใช้งานได้ (เช่น script.sh เป็นต้น) สิ่งที่ฉันต้องการจะทำคือรายการไฟล์ปฏิบัติการไบนารีเท่านั้น
46 files  find  binary 

6
วิธีคัดลอกโฟลเดอร์แบบวนซ้ำโดยใช้ cemp ได้อย่างไร?
เมื่อฉันใช้ cp -R inputFolder outputFolder ผลลัพธ์ขึ้นอยู่กับบริบท : ถ้าไม่อยู่ก็จะถูกสร้างขึ้นและเส้นทางโฟลเดอร์โคลนจะเป็นoutputFolderoutputFolder หากoutputFolderมีอยู่โคลนจะถูกสร้างขึ้นoutputFolder/inputFolder นี้เป็นที่น่ากลัวเพราะผมต้องการที่จะสร้างสคริปต์การติดตั้งบางส่วนและหากผู้ใช้วิ่งมันสองครั้งโดยไม่ได้ตั้งใจเขาจะได้สร้างขึ้นเป็นครั้งแรกแล้วในการทำงานที่สองทุกสิ่งที่จะถูกสร้างขึ้นอีกครั้งในoutputFolderoutputFolder/inputFolder ฉันต้องการพฤติกรรมแรกเสมอ: สร้างโคลนถัดจากต้นฉบับ (เป็นพี่น้อง) ฉันต้องการใช้cpแบบพกพา (เช่น MINGW ไม่มีการrsyncจัดส่ง) ฉันตรวจสอบcp -R --parentsแต่สิ่งนี้จะสร้างเส้นทางใหม่ตลอดเส้นทางไดเรกทอรีต้นไม้ (ดังนั้นโคลนจะไม่เป็นoutputFolderแต่some/path/outputFolder) --remove-destinationหรือ--updateในกรณีที่ 2 ไม่เปลี่ยนแปลงสิ่งใดสิ่งต่าง ๆ ก็ยังคงถูกคัดลอกไปoutputFolder/inputFolder มีวิธีการทำเช่นนี้โดยไม่ตรวจสอบการมีอยู่ของoutputFolder(หากโฟลเดอร์ไม่มีอยู่แล้ว ... ) หรือใช้งานrm -rf outputFolderหรือไม่? วิธีการทำ UNIX แบบพกพาที่ตกลงกันคืออะไร
46 cp  recursive 

2
ทำไม ZSH ถึงลงท้ายด้วยเครื่องหมายเปอร์เซนต์ไฮไลต์?
ฉันพบสิ่งนี้ในบางโอกาสด้วยแอพพลิเคชั่นที่หลากหลาย ฉันมักจะคิดว่าเป็นเพราะผลผลิตถูกยกเลิกก่อน (ctrl + c เป็นต้น) หรือสิ่งที่คล้ายกันและ zsh เติมอักขระบรรทัดใหม่ แต่ตอนนี้ความอยากรู้อยากเห็นได้รับสิ่งที่ดีที่สุดของฉันเพราะมันดูเหมือนจะไม่ทำอย่างนี้ zsh ทุบตี Sequenceโปรแกรมเป็นสิ่งที่ฉันดึงออกมาจากหนังสือในขณะอ่านบน Java การรับรองและเพียงแค่ต้องการที่จะดูว่ามันจะรวบรวมและวิ่ง ฉันสังเกตเห็นว่ามันไม่ได้ใช้println()วิธีการจากSystem.outแพ็คเกจ / คลาส print()แต่มันใช้เก่าธรรมดา การขาดอักขระขึ้นบรรทัดใหม่เป็นเหตุผลที่ทำให้ฉันได้รับสัญลักษณ์นี้หรือไม่?
46 bash  zsh  prompt  newlines 

5
คำสั่งเพื่อกำหนดพอร์ตของอุปกรณ์ (เช่น / dev / ttyUSB0)
ฉันมีคำถามเกี่ยวกับพอร์ตใน Linux หากฉันเชื่อมต่ออุปกรณ์ผ่าน USB และต้องการตรวจสอบพอร์ตฉันไม่สามารถทำได้โดยใช้คำสั่ง lsusb ซึ่งระบุหมายเลขรถบัสและหมายเลขอุปกรณ์บนรถบัสนี้เท่านั้น: [ziga@Ziga-PC ~]$ lsusb Bus 003 Device 007: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC มีคำสั่งที่บอกพอร์ตที่อุปกรณ์เชื่อมต่อโดยตรงหรือไม่ วิธีเดียวที่จะทำเช่นนี้ได้จนถึงตอนนี้คือการแยกและเชื่อมต่อใหม่และใช้คำสั่ง: [ziga@Ziga-PC ~]$ dmesg | grep tty [ 0.000000] console [tty0] enabled [ 0.929510] 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a …
46 usb  serial-port  dmesg 

2
bash-builtins 'set' และ 'export' ทำอะไรได้บ้าง
ฉันมีการสูญเสียเล็กน้อยตามวัตถุประสงค์setและexportใน Bash (และฉันก็เดาว่าอาจเป็นหอยอื่นด้วย) ฉันคิดว่ามันเป็นการตั้งค่าตัวแปรสภาพแวดล้อม แต่สามารถทำได้ด้วยVARIABLE=VALUEใช่ไหม พิมพ์setและexportแสดงค่าที่แตกต่างด้วยตัวเอง ดังนั้นวัตถุประสงค์ของพวกเขาคืออะไร?
46 bash  shell 

10
วิธีการทริกเกอร์การทำลายตนเองของระบบด้วยรหัสผ่านที่แน่นอนถูกป้อน
ฉันจะกำหนดค่าระบบของฉันเพื่อทำลายข้อมูลส่วนบุคคลทั้งหมดเมื่อป้อนรหัสผ่านที่แน่นอนได้อย่างไร แรงจูงใจเบื้องหลังสิ่งนี้เป็นสิ่งที่ NSA ฉันจินตนาการว่ามีสามกรณีการใช้งานหลัก เมื่อเข้าสู่ระบบการป้อนรหัสผ่านที่กำหนดไว้ล่วงหน้าจะทำให้เกิดการทำลายข้อมูลผู้ใช้ เมื่อระบบตื่นนอน การป้อนรหัสผ่านที่กำหนดไว้ล่วงหน้าจะทำให้เกิดการทำลายข้อมูลส่วนบุคคล การป้อนคำสั่งพิเศษด้วยรหัสผ่านที่กำหนดไว้ล่วงหน้าจะทำให้เกิดการทำลายข้อมูลส่วนบุคคล ฉันรู้ว่าสิ่งที่ชอบ dd if=/dev/urandom of=/dev/$HOME ควรเพียงพอสำหรับการทำลายข้อมูล อย่างไรก็ตามฉันไม่ทราบวิธีการที่เรียกใช้รหัสผ่านบางอย่าง คะแนนโบนัสหากอนุญาตให้เข้าสู่ระบบในขณะที่ข้อมูลจะถูกลบ


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