Unix & Linux

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

2
รับสัญญาณก่อนที่กระบวนการจะถูกฆ่าโดย OOM killer / cgroups
ในกลุ่มของเราเรากำลัง จำกัด ทรัพยากรกระบวนการของเราเช่นหน่วยความจำ ( memory.limit_in_bytes) ฉันคิดว่าในท้ายที่สุดแล้วมันก็จัดการผ่าน OOM killer ในเคอร์เนลลินุกซ์ (ดูเหมือนว่าโดยการอ่านซอร์สโค้ด ) มีวิธีรับสัญญาณก่อนที่กระบวนการของฉันจะถูกฆ่าหรือไม่? (เช่นเดียวกับ-notifyตัวเลือกสำหรับSGEqsubซึ่งจะส่งSIGUSR1ก่อนที่กระบวนการจะถูกฆ่า) ฉันอ่านเกี่ยวกับ/dev/mem_notify ที่นี่แต่ฉันไม่มี - ทุกวันนี้มีอย่างอื่นอีกไหม? ฉันอ่านสิ่งนี้ซึ่งดูเหมือนว่าจะค่อนข้างเกี่ยวข้อง ฉันต้องการอย่างน้อยก็ทิ้งร่องรอยกองเล็ก ๆ และบางทีข้อมูลการแก้ปัญหาที่มีประโยชน์อื่น ๆ - แต่บางทีฉันสามารถกู้คืนได้โดยการเพิ่มหน่วยความจำ หนึ่งแก้ปัญหาฉันกำลังใช้อยู่นี้สคริปต์เล็ก ๆซึ่งการตรวจสอบบ่อยถ้าผมสนิท (95%) เพื่อขีด จำกัด SIGUSR1และถ้าเป็นเช่นนั้นก็จะส่งกระบวนการ ใน Bash ฉันกำลังเริ่มต้นสคริปต์นี้ในพื้นหลัง ( cgroup-mem-limit-watcher.py &) เพื่อที่จะคอยดู procs อื่น ๆ ใน cgroup เดียวกันและจะหยุดทำงานโดยอัตโนมัติเมื่อกระบวนการ Bash หลักตาย

1
ฉันจะลบการขยายหน้าต่างในแอพ GTK3 ใน Awesome-WM ได้อย่างไร
ผมใช้ที่น่ากลัวในโหมดการปูกระเบื้องสำหรับเดสก์ท็ของฉันเกือบทั้งหมด ตั้งแต่การปรากฎตัวของการตกแต่งด้านลูกค้าใน GTK3 แอพพลิเคชั่นของ Gnome ทั่วไปบางอย่างได้นำไปสู่การเพิ่มช่องว่างนอกขอบหน้าต่างหลัก ฉันสงสัยว่านี่เป็นผลของเงา แต่มันก่อให้เกิดความสับสนกับระบบการเรียงเนื่องจากขนาดหน้าต่างถูกทำตามขนาดของเบาะไม่ใช่หน้าต่างปกติ ผู้กระทำความผิดที่โดดเด่นคือหอยโข่งและ gedit แต่แอป Gnome ที่อัปเดตเมื่อเร็ว ๆ นี้มีพฤติกรรมบางอย่าง ฉันจะกำหนดค่า GTK และ / หรือ AwesomeWM เพื่อละเว้นช่องว่างเหล่านี้และปรับขนาดหน้าต่างตามเรขาคณิตหน้าต่างจริงได้อย่างไร ผลลัพธ์ที่ฉันต้องการคือรูปแบบที่ไม่มีขอบ

3
ฉันจะลบไฟล์ทั้งหมดในโฟลเดอร์ยกเว้นไฟล์ที่ระบุได้อย่างไร
ฉันต้องการลบไฟล์ทั้งหมดในไดเรกทอรีในขณะที่เหลือเพียงบางไฟล์ที่ระบุพวกเขาไม่มีอะไรเหมือนกันโดยใช้ชื่อ ฉันจะบรรลุสิ่งนั้นได้อย่างไร ตัวอย่างเช่นชื่อไฟล์ที่ฉันต้องการเก็บคือ: file_1.png, another_file.jpg,some_music.mp3
11 command-line  files  rm 

1
อะไรคือความแตกต่างระหว่าง 'ls' และ 'ls -l' เมื่อฉันไม่ได้รับอนุญาตให้ดำเนินการในไดเรกทอรีนั้น
ฉันสร้างไดเรกทอรีที่เรียกว่าfolderและนำสิทธิ์ดำเนินการออกไป $ mkdir folder $ touch folder/innerFile $ mkdir folder/innerFolder $ chmod -x folder ตอนนี้ถ้าฉันทำ $ ls folder มันส่งออกรายการไฟล์ แต่เมื่อฉันทำ $ ls -l folder ฉันเข้าใจ ls: innerFile: Permission denied ls: innerFolder: Permission denied ทำไมถึงเป็นอย่างนั้น?

1
รวมไฟล์ PDF หลายไฟล์ไว้ในที่เดียว (จัดเป็นเมทริกซ์)
มีชุดของไฟล์ PDF ที่ช่วยให้พูดว่า: in-01.pdf, in-02.pdf, in-03.pdf... ฉันต้องการที่จะรวมทั้งหมดของพวกเขาเป็นหนึ่งเดียวเกิดเป็นM x Nเมทริกซ์ คำสั่งmontageอนุญาตให้ทำเช่นนั้น ( MและNควรเป็นจำนวนเต็ม): montage -mode concatenate -tile NxM in-*.pdf out.pdf ปัญหาคือขนาดของ PDF ที่ได้นั้นมีขนาดใหญ่มากในขณะที่ฉันคาดหวังว่ามันจะใหญ่กว่าผลรวมของขนาด PDF อินพุตทั้งหมดเล็กน้อย ฉันคิดว่าmontageการแปลงอินพุต PDF เป็นภาพก่อนแล้วจึงสร้างเอาต์พุต PDF จากภาพเหล่านั้น (ตัวอย่างเช่นข้อความใน PDF ดั้งเดิมไม่แสดงเป็นข้อความในไฟล์ PDF ออก แต่เป็นภาพที่มีคุณภาพต่ำและใหญ่กว่า ขนาด). ฉันเดาว่าควรมีวิธีการทำเช่น (LATEX เช่นอนุญาตให้แทรกภาพ PDF ใน PDF อื่นโดยไม่จำเป็นต้องแปลงเป็นรูปภาพก่อน) ฉันกำลังมองหาทางเลือกบรรทัดคำสั่งโดยใช้เครื่องมือซอฟต์แวร์ฟรีภายใต้ระบบ GNU / Linux หมายเหตุ : เราสามารถสันนิษฐานได้ว่าไฟล์ …

2
มีวิธีป้องกันไม่ให้คอมไพล์เปลี่ยนสิทธิ์และความเป็นเจ้าของแบบดึงได้หรือไม่?
ทุกครั้งที่ผมทำgit pullหรือgit reset, gitการตั้งค่าใหม่เปลี่ยนเป็นสิทธิ์และความเป็นเจ้าของฉันทำ ดูตัวเอง: #!/usr/bin/env bash rm -rf 1 2 mkdir 1 cd 1 git init echo 1 > 1 && git add 1 && git ci -m 1 git clone . ../2 cd $_ chmod 0640 1 chgrp http 1 cd ../1 echo 12 > 1 && git …
11 permissions  git 

3
บังคับให้ได้รับพร้อมท์ใช่ / ไม่ใช่
มีวิธีบังคับapt-getให้แสดงพรอมต์ใช่ / ไม่ใช่หรือไม่ มี--force-yesตัวเลือกอยู่แล้ว แต่ดูเหมือนจะไม่มี--force-promptตัวเลือกหรือคล้ายกัน หากคุณพยายามติดตั้งแพคเกจที่มีการติดตั้งทั้งหมดแล้วมันจะเริ่มการติดตั้งโดยไม่แสดงพรอมต์ใช่ / ไม่ สิ่งนี้อาจน่ารำคาญหากคุณต้องการตรวจสอบว่ามีการพึ่งพาหรือไม่และจะติดตั้งรายการใดเนื่องจากคุณไม่ทราบว่ามีการติดตั้งการพึ่งพาที่อาจเกิดขึ้นก่อนหน้าหรือไม่ หมายเหตุ: “ apt-get install” จะขอให้ฉันยืนยันว่าฉันต้องการดำเนินการต่อหรือไม่? ค่อนข้างเกี่ยวข้องกับที่อธิบายภายใต้เงื่อนไขมาตรฐานพรอมต์จะปรากฏขึ้น ฉันสนใจที่จะรู้วิธีการบังคับ
11 apt 

2
ทำไมนักเทียบท่าจึงต้องการสิทธิ์รูท
ฉันกำลังเรียนรู้นักเทียบท่าและฉันก็ชอบมาก อย่างไรก็ตามฉันไม่เข้าใจว่าทำไมนักเทียบท่าจึงต้องการสิทธิ์รูทในการสร้างตู้คอนเทนเนอร์อ่านบันทึกและอื่น ๆ ฉันได้อ่านบทความบางอย่างเช่นนี้ https://docs.docker.com/articles/security/ แต่ทั้งหมดที่ฉันเห็นคือ "นักเทียบท่าต้องการสิทธิ์รูทเพราะสามารถเข้าถึงโฟลเดอร์รูทได้" ฉันไม่รังเกียจที่จะเรียกใช้นักเทียบท่าในฐานะที่ไม่ใช่รูทและให้พวกเขาเข้าถึงเฉพาะโฟลเดอร์ที่ไม่ใช่ผู้ใช้รูทในระบบภายนอก ทำไมถึงเป็นปัญหา?
11 docker 

2
วงเล็บทำงานในเปลือก bash เอง แต่ไม่ใช่ใน bash script
ฉันสามารถเรียกใช้คำสั่งนี้จากพรอมต์บรรทัดคำสั่งของฉัน: cp -r folder/!(exclude-me) ./ หากต้องการคัดลอกเนื้อหาทั้งหมดซ้ำfolder ยกเว้นไดเรกทอรีย่อยที่มีชื่อexclude-meลงในไดเรกทอรีปัจจุบัน งานนี้ตรงตามที่ตั้งใจไว้ อย่างไรก็ตามฉันต้องการสิ่งนี้เพื่อทำงานในสคริปต์ทุบตีที่ฉันเขียนซึ่งฉันมีสิ่งนี้: if [ -d "folder" ]; then cp -r folder/!(exclude-me) ./ rm -rf folder fi แต่เมื่อฉันเรียกใช้สคริปต์: bash my-script.sh ฉันได้รับสิ่งนี้: my-script.sh: line 30: syntax error near unexpected token `(' my-script.sh: line 30: ` cp -r folder/!(exclude-me) ./' และฉันก็ไม่รู้ว่าทำไมมันถึงทำงานได้จาก command prompt แต่บรรทัดเดียวกันที่แน่นอนไม่สามารถใช้งานได้ในสคริปต์ทุบตี

4
Legacy Debian version และ Bash Shellshock
เรากำลังเรียกใช้ Debian Etch, Lenny และ Squeeze เพราะการอัพเกรดไม่เคยทำในร้านนี้มาก่อน เรามีมากกว่า 150 ระบบที่ใช้งาน Debian เวอร์ชันต่างๆ ในแง่ของ "shell shock" ของสัปดาห์นี้ฉันคิดว่าฉันต้องอัพเกรด bash ฉันไม่รู้จักเดเบียนดังนั้นฉันจึงเป็นห่วง ฉันสามารถรันapt-get install bashบนระบบเดเบียนทั้งหมดของฉันและรับแพคเกจ Bash ที่ถูกต้องในขณะที่ที่เก็บของฉันถูกชี้ไปที่รายการ Squeeze ถ้าไม่ฉันมีแนวทางปฏิบัติอื่นอีกไหม

2
ทำดัชนีไฟล์ CSV ใหม่อีกครั้ง
ฉันได้คำตอบในหัวข้อที่เป็นประโยชน์นี้แต่ปัญหาของฉันดูเหมือนจะแตกต่างกันพอที่ฉันไม่สามารถคิดถึงคำตอบที่ดี (อย่างน้อยก็ด้วยsed) ฉันมีไฟล์ CSV ขนาดใหญ่ (200+ GB) พร้อมแถวที่มีลักษณะดังนี้: <alphanumerical_identifier>,<number> ที่<alphanumerical_identifier>ไม่ซ้ำกันในไฟล์ทั้งหมด ฉันต้องการสร้างไฟล์แยกที่แทนที่คอลัมน์แรกด้วยดัชนีเช่น <index>,<number> เพื่อให้เราได้รับ: 1, <number> 2, <number> 3, <number> สามารถawkสร้างดัชนีที่เพิ่มขึ้นโดยไม่โหลดไฟล์เต็มในหน่วยความจำได้ไหม? เนื่องจากดัชนีเพิ่มขึ้นแบบ monotonically มันอาจจะดีกว่าถ้าจะวางดัชนี วิธีแก้ปัญหาสำหรับสิ่งนั้นจะแตกต่างกันหรือไม่เช่น: <number> <number> <number>
11 files  sed  awk  csv 

2
มีปัญหากับอักขระการนับสคริปต์เชลล์
ฉันพยายามที่จะเรียนรู้พื้นฐานและฉันประสบปัญหากับสคริปต์ของฉันนับตัวอักษรของการป้อนข้อมูลของผู้ใช้ นี่คือสคริปต์ของฉันมีใครช่วยชี้ให้เห็นว่าฉันผิดไปไหม #!/bin/bash echo "Enter a word!" read INPUT_STRING len= echo $INPUT_STRING | wc -c echo "Your character length is " $len exit

3
การติดตั้ง linux บนเครื่อง 32 บิต UEFI เท่านั้น
ฉันมีแท็บเล็ต Intel BayTrial Z3735D ซึ่งมาพร้อมกับ BIOS UEFI 32 บิต หลังจากการค้นหาฉันพบว่าส่วนใหญ่ของลินุกซ์ distro ไม่ได้มาพร้อมกับไฟล์ 32 บิต efi ฉันจะแทรกหนึ่ง (หรือสร้าง ISO ใหม่ได้อย่างไร) ตาม https://wiki.archlinux.org/index.php/HCL/Firmwares/UEFI#Intel_Atom_SoC_Bay_Trail สิ่งนี้น่าจะเป็นไปได้
11 linux  uefi 

1
Linux: มีวิธีที่สะดวกในการดำเนินการโปรแกรมที่เชื่อมโยงกับที่อยู่ IP ของตัวเลือกหรือไม่?
ใน FreeBSD 4.9 มันง่ายมากที่จะทำสำเร็จด้วยเพียงคำสั่งเดียวเช่น jail [-u username] path hostname ip-number command หากพา ธ/คุณใช้งานโปรแกรมเดียวกันตามปกติ แต่การสื่อสารเครือข่ายทั้งหมดนั้นถูก จำกัด ให้ใช้เฉพาะที่อยู่ IP ที่ให้มาเท่านั้น บางครั้งมันมีประโยชน์มาก ตอนนี้ใน Linux มี LXC ซึ่งดูคล้ายกับ FreeBSD's jail(หรือ Solaris 'โซน) - คุณคิดวิธีที่คล้ายกันในการรันโปรแกรมหรือไม่?
11 linux  freebsd  ip  lxc  jails 

4
การบีบอัด VPN ส่วนตัวสำหรับอินเทอร์เน็ตที่เร็วขึ้น
พื้นหลัง: ฉันเป็นนักเรียนและปัจจุบันการเชื่อมต่อ Wi-Fi ที่โรงเรียนของฉันช้ามาก (ตายช้า) ฉันมีแผนข้อมูล 8Gb 4G แต่ถึงอย่างนั้นฉันก็จะใช้งานไม่ถึงสิ้นเดือน ฉันได้ตั้งค่าเดเบียนหัวขาดที่บ้าน (ซึ่งมีการเชื่อมต่อ 400 Mbps) และฉันได้ใช้มันเป็น Seedbox อัตโนมัติ L2TP-IPSec VPN เซิร์ฟเวอร์ BTSync และเซิร์ฟเวอร์ Apache ฉันเริ่มสร้างเมื่อสองเดือนที่แล้วโดยรู้ว่าฉันจะไม่ได้เห็นการเชื่อมต่ออินเทอร์เน็ตที่รวดเร็ว - ดังนั้นฉันค่อนข้างใหม่กับเดเบียน นี่คือคำถามของฉัน: เป็นไปได้ไหมที่จะบีบอัดข้อมูลอย่างมีประสิทธิภาพบน VPN ส่วนตัว ? ฉันรู้ว่าแอพ iPhone และ Android บางอย่างเช่นOnavo Extendสามารถทำได้และฉันสงสัยว่าฉันจะวางระบบประเภทนี้ไว้ได้อย่างไร หากฉันเคยติดตั้ง / สร้าง VPN เช่นนั้นควรเข้ากันได้กับ: Debian (เซิร์ฟเวอร์) Mac OS (คอมพิวเตอร์ของฉัน) และ iOS (โทรศัพท์ของฉัน) หากคุณมีข้อเสนอแนะอื่น …
11 debian  osx  vpn  compression  ios 

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