Unix & Linux

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

2
งาน Cron เริ่มสุ่ม แต่ภายในระยะเวลา
ฉันต้องการให้สคริปต์ทำงานวันละครั้งทุกวันเริ่มตั้งแต่เวลา 0900 ถึง 1200 ฉันไม่แน่ใจเกี่ยวกับไวยากรณ์ของเส้นประอย่างสมบูรณ์ - หมายความว่าสคริปต์จะทำงานทุกชั่วโมงระหว่าง9-12หรือจะเริ่มต้นแบบสุ่มระหว่าง9-12? เพราะฉันต้องการหลัง
12 cron 

2
SIGINFO บน GNU Linux (Arch Linux) หายไป
ฉันกำลังพัฒนาแอปพลิเคชันและฉันต้องการพิมพ์สถิติรันไทม์บางส่วนไปยังคอนโซลตามต้องการ killและสัญญาณมาถึงใจของฉันทันที การอ่านสัญญาณ Unixบน Wiki SIGINFOดูเหมือนจะเป็นไปได้เพราะ: มันมีไว้สำหรับวัตถุประสงค์เหล่านี้ ไม่ยุติกระบวนการหากไม่มีการใช้งานตัวจัดการสัญญาณ (ตรงกันข้ามกับSIGUSRx- ดูที่นี่ ) อย่างไรก็ตามโดยการตรวจสอบผลลัพธ์ของkill -lดูเหมือนว่าเซิร์ฟเวอร์ของฉันไม่ได้ใช้สัญญาณนี้ คำถามของฉันคือ: ทำไมSIGINFOระบบของฉันถึงหายไป มันหายไปกับระบบ GNU Linux ทั้งหมดหรือไม่? มีวิธีง่าย ๆ (เช่นไม่มีเคอร์เนล / glibc recompilation) เพื่อเปิดใช้งานสัญญาณนี้หรือไม่? ถ้าไม่มีสิ่งใดจะเป็นวิธีที่ยาก? ฉันสามารถใช้สัญญาณทางเลือกใดเพื่อจุดประสงค์ของฉันที่จะไม่ทำให้เกิดผลข้างเคียงใด ๆหากไม่ได้รับการจัดการโดยกระบวนการเป้าหมาย (ฉันไม่คิดเลยเพราะฉันไม่สามารถหาสัญญาณอื่นที่เหมาะสมในคู่มือของglibc ) Linux metainfo: Linux whatever 3.18.2-2-ARCH #1 SMP PREEMPT Fri Jan 9 07:37:51 CET 2015 x86_64 GNU/Linux อัปเดต:ฉันยังคงค้นหาข้อมูลเพิ่มเติมว่าทำไมสัญญาณนี้จึงถูกแยกแบบมีเงื่อนไขจากระบบอื่นที่ไม่ใช่ BSD (ดูความคิดเห็นด้านล่าง) …
12 linux  signals  glibc 

1
`ไม่มีผู้ให้บริการ 'และ' ลง 'หมายถึงอะไรสำหรับส่วนต่อประสานไร้สาย
ฉันมีเซิร์ฟเวอร์ระยะไกลและฉันบันทึกผลลัพธ์ของคำสั่งบางอย่างในขณะที่เซิร์ฟเวอร์ไม่สามารถเข้าถึงอินเทอร์เน็ต มันใช้อินเทอร์เฟซไร้สายเพื่อเชื่อมต่ออินเทอร์เน็ต ในสถานะการทำงานผลลัพธ์ของการip link listแสดง: 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000 link/ether 00:13:ef:b0:29:74 brd ff:ff:ff:ff:ff:ff เมื่อมันไม่ทำงานเอาต์พุตของip link listรายการ: 3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DORMANT qlen 1000 link/ether 00:13:ef:b0:29:74 brd ff:ff:ff:ff:ff:ff นี้จะมีอะไรNO-CARRIERและDOWNหมายถึงสำหรับอินเตอร์เฟซไร้สาย? ในกรณีของอีเธอร์เน็ตนี่หมายความว่าสายเคเบิลถูกตัดการเชื่อมต่อ ฉันขอขอบคุณคำแนะนำใด ๆ เกี่ยวกับวิธีที่ฉันสามารถดีบักต่อไปได้ว่าทำไมการเชื่อมต่อไม่ทำงาน ฉันยังwicd-cli -y -lสแกนระหว่างที่ไฟดับและปรากฏว่าจุดเชื่อมต่อยังคงออกอากาศอยู่ …

2
จะแก้ไข / etc / fstab ให้เหมาะสมกับไดรฟ์เครือข่ายได้อย่างไร
ฉันพยายามติดตั้งไดรฟ์เครือข่ายโดยอัตโนมัติเมื่อเริ่มต้นโดยการแก้ไข/etc/fstabแต่ไม่ทำงาน ถ้าฉันดำเนินการเส้นนี้ sudo mount.cifs //192.168.0.67/test /home/pi/test -o username=myname,password=123 มันใช้งานได้ดี /etc/fstabแต่ผมไม่ทราบวิธีการเขียนเหมือนกันใน

3
มีวิธีที่จะมีฟังก์ชั่นในสคริปต์อัตโนมัติทุบตีของฉันทำงานกับข้อผิดพลาดคำสั่งใด ๆ ?
ฉันกำลังเขียนเชลล์สคริปต์ที่ต้องทำพวงคำสั่งและทุกคำสั่งขึ้นอยู่กับทุกคำสั่งก่อนหน้า หากคำสั่งใด ๆ ล้มเหลวสคริปต์ทั้งหมดควรล้มเหลวและฉันเรียกใช้ฟังก์ชัน exit ฉันสามารถตรวจสอบรหัสออกของแต่ละคำสั่ง แต่ฉันสงสัยว่ามีโหมดที่ฉันสามารถเปิดใช้งานหรือวิธีการทุบตีให้ทำโดยอัตโนมัติ ตัวอย่างเช่นใช้คำสั่งเหล่านี้: cd foo || myfunc rm a || myfunc cd bar || myfunc rm b || myfunc มีวิธีที่ฉันสามารถส่งสัญญาณไปยังเปลือกอย่างใดก่อนที่จะดำเนินการคำสั่งเหล่านี้ว่ามันควรจะเรียก myfunc หากพวกเขาล้มเหลวเพื่อให้ฉันสามารถเขียนสิ่งที่สะอาดเช่น: cd foo rm a cd bar rm b

1
จะกำหนดทิศทางเอาต์พุตเจอร์นัลของบางหน่วยไปยังไฟล์เฉพาะได้อย่างไร?
ฉันมีระบบที่มี daemons หลายตัวกำลังทำงาน (เป็น systemd units) ที่ส่งออกบันทึกข้อมูลไปยังเจอร์นัลใน Arch Linux ฉันต้องการกำหนดเอาท์พุทเจอร์นัลของไฟล์หน่วยเหล่านั้นบางไฟล์ให้เป็นไฟล์ข้อความแยกต่างหากซึ่งฉันระบุตำแหน่งที่ตั้งไว้เป็นหลักโดยสร้างไฟล์บันทึกสำหรับชุดย่อยของหน่วย ฉันจะทำเช่นนั้นได้อย่างไร

1
รูทเชลล์เห็น pip แต่ sudo pip“ ไม่พบคำสั่ง”
ผมได้ติดตั้งหลาม 2.7.8 ผ่านmakeและmake installแล้ว pip ผ่านได้รับ pip ฉันต้องทราบว่าฉันทำงานหลังพร็อกซีซึ่งฉันได้ตั้งค่าผ่าน http_proxy ftp_proxy https_proxy ใน ผู้ใช้ของฉัน ~/.zshrc ราก /root/.basrc ตอนนี้ฉันสามารถวิ่งได้ pip ในบัญชีผู้ใช้ของฉัน ในบัญชีรูท แต่ฉันไม่สามารถเรียกใช้ผ่านเชลล์ผู้ใช้ของฉันโดยใช้ sudo sudo pip sudo: pip: command not found เกิดอะไรขึ้นที่นี่?

3
Zip Archive มีจำนวนไฟล์ จำกัด
ฉันสามารถใช้คำสั่งใดในการสร้างzips ด้วยการ จำกัด จำนวนไฟล์ ฉันมีโฟลเดอร์ (ไม่มีโฟลเดอร์ย่อย) ที่บอกว่ามีไฟล์ 5,000 ไฟล์ดังนั้นฉันต้องการคำสั่งที่สามารถแบ่งจำนวนนั้นและสร้างzipคลังเก็บ10 ไฟล์แต่ละไฟล์แต่ละไฟล์มีไฟล์ไม่เกิน 500 ไฟล์ ฉันไม่ต้องการให้zipไฟล์10 ไฟล์เชื่อมต่อกันเพื่อให้ฉันสามารถเปิดได้ทีละไฟล์และไม่จำเป็นต้องเปิดทั้ง 10 ไฟล์ในเวลาเดียวกัน
12 files  zip 

1
คำสั่ง pkill -USR1 -n -x dd หมายความว่าอย่างไร
ฉันใช้ddเพื่อถ่ายโอนข้อมูลภาพดิสก์ไปยังการ์ด sd บน BeagleBone ของฉัน การใช้pkill -USR1 -n -x ddการเชื่อมต่อ ssh กับ BeagleBone นี้ทำให้ฉันได้รับการอัพเดตสถานะของกระบวนการถ่ายโอนซึ่งยอดเยี่ยมมาก ฉันแค่อยากรู้ว่ามันใช้งานได้จริงอย่างไรเพื่อที่ฉันจะสามารถใช้มันได้อย่างมีประสิทธิภาพในอนาคต หลังจากอ่านman pkillแล้วมันยังไม่ได้อธิบายอย่างสมบูรณ์ถึงวิธีการpkill -USR1 -n -x ddทำงานเพื่อให้การอัปเดตสถานะนี้มีประโยชน์มากกับฉัน
12 kill  dd  signals 

5
วิธีอ่านบางบรรทัดหลังจากค้นหาข้อความ
ฉันจะอ่านจำนวนบรรทัดหลังจากค้นหาข้อความได้อย่างไร เช่น.: อ่าน 2 บรรทัดถัดไปหลังจากค้นหา "Unix" บน: Test 1 Test 2 Test 3 Test 4 UNIX Test 5 Test 6 Test 7 Test 8 Test 9 ผลลัพธ์สามารถ: Test 5 Test 6 หมายเหตุ: "Unix" ในตัวอย่างที่ผ่านมาเป็นอาร์กิวเมนต์และมันอาจเป็นข้อความอื่น ๆ สิ่งที่ฉันมี: ฉันยังขาดความคิดต้องการแค่แสงสว่าง กำลังคิดที่จะสร้างสคริปต์อื่นขึ้นมาเพื่อทำสิ่งนั้น
12 bash  shell 

3
รหัสผ่านหมดอายุและการเข้าสู่ระบบตามคีย์ SSH ด้วย UsePAM ใช่
มีเครื่อง SLES 11 อยู่ ผู้ใช้เข้าสู่ระบบผ่านทาง SSH และ pubkey (ผสมผู้ใช้บางคนใช้รหัสผ่านบางคนใช้คีย์ ssh) sshd_config มี: UsePAM yes PasswordAuthentication yes PubkeyAuthentication yes ปัญหา: หากรหัสผ่านหมดอายุสำหรับผู้ใช้ที่ใช้การเข้าสู่ระบบ pubkey ผู้ใช้จะได้รับแจ้งให้เปลี่ยนรหัสผ่าน คำถาม:เราจะตั้งค่า PAM หรือ sshd ให้ผู้ใช้เข้าสู่ระบบได้อย่างไรหากพวกเขามีคีย์ SSH ที่ถูกต้องและรหัสผ่านหมดอายุ - โดยไม่ต้องโผล่ "เปลี่ยนรหัสผ่าน" อัปเดต # 1: วิธีแก้ปัญหาไม่สามารถเป็น: "UsePAM no" SERVER:~ # cat /etc/pam.d/sshd #%PAM-1.0 auth requisite pam_nologin.so auth include common-auth account …
12 ssh  users  password  pam 

5
จำนวนอักขระในเอาต์พุตของคำสั่งเชลล์
ฉันกำลังเขียนบทซึ่งความต้องการในการคำนวณจำนวนตัวอักษรในการส่งออกคำสั่งในขั้นตอนเดียว ตัวอย่างเช่นการใช้คำสั่งreadlink -f /etc/fstabควรส่งคืน10เนื่องจากผลลัพธ์ของคำสั่งนั้นมีความยาว 10 อักขระ สิ่งนี้สามารถเกิดขึ้นได้กับตัวแปรที่เก็บไว้โดยใช้รหัสต่อไปนี้: variable="somestring"; echo ${#variable}; # 10 น่าเสียดายที่การใช้สูตรเดียวกันกับสตริงที่สร้างคำสั่งไม่ทำงาน: ${#(readlink -f /etc/fstab)}; # bash: ${#(readlink -f /etc/fstab)}: bad substitution ฉันเข้าใจว่าเป็นไปได้ที่จะทำสิ่งนี้โดยการบันทึกผลลัพธ์เป็นตัวแปรแรก: variable=$(readlink -f /etc/fstab); echo ${#variable}; แต่ฉันต้องการลบขั้นตอนพิเศษ เป็นไปได้ไหม ความเข้ากันได้กับ Almquist shell (sh) โดยใช้เฉพาะยูทิลิตี้ที่อยู่ในตัวหรือมาตรฐานเท่านั้น
12 shell  string  variable 

4
เรียกใช้กระบวนการ linux ที่มีความสำคัญต่ำมากใช่ไหม
ฉันมีกระบวนการปกติที่ไม่สำคัญ แต่จะใช้พลังงาน CPU มากและฉันมีกระบวนการอื่นที่สำคัญจริง ๆ แต่ใช้เวลาส่วนใหญ่ว่างเปล่า แต่เมื่อได้งานก็ต้องใช้พลังงานในการคำนวณสูง ฉันพยายามเรียกใช้ด้วยnice -20 ./low_priority_processและnice --20 ./high_priority_processยังคงมีลำดับความสำคัญต่ำกว่าใช้ CPU จำนวนมากเมื่อมีความต้องการกระบวนการที่มีลำดับความสำคัญสูงฉันจะเรียกใช้กระบวนการที่จะให้ผลจริงๆหรือแม้กระทั่งหยุดทำงานอัตโนมัติเมื่อกระบวนการอื่นใช้พลังงาน CPU
12 process  cpu  htop  priority  nice 

5
เชลล์แบบไม่โต้ตอบขยายนามแฝง
ฉันมีปัญหาในการรับชื่อแทนเพื่อขยายบัญชีโฮสติ้งของฉันเมื่อฉันเรียกใช้คำสั่งเช่น: ssh user@server "bash -c \"alias\"" ไฟล์. bashrc ของฉันคือ: echo .bashrc # .bashrc shopt -s expand_aliases # Source global definitions (commenting this out does nothing) if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions alias php="php55" alias composer="php ~/bin/composer.phar" เมื่อฉันเรียกใช้คำสั่ง ssh ฉันเห็น ".bashrc" echo'd …
12 bash  ssh  alias  bashrc 

2
วิธีรับ id หน้าต่างจาก xdotool Window Stack
ฉันต้องการไอดีของหน้าต่างที่ทำงานหรือโฟกัสอยู่ ฉันพยายามใช้xdotoolคำสั่ง มีคำสั่งคือ: xdotool getactivewindow ผลลัพธ์จะถูกบันทึกในสแต็กหน้าต่าง ฉันต้องการรับ widnow id จากสแต็กหน้าต่างนี้ คำสั่ง xdotool getactivewindow getwindowpid ไม่พอใจฉัน ฉันไม่ต้องการรับรหัสหน้าต่างตามรหัสกระบวนการ
12 xdotool 

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