Unix & Linux

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

2
จำกัด จำนวนของตัวให้คำอธิบายไฟล์
ฉันกำลังพยายามติดตั้ง389-dsและมันทำให้ฉันได้รับคำเตือนนี้: WARNING: There are only 1024 file descriptors (hard limit) available, which limit the number of simultaneous connections. ฉันเข้าใจเกี่ยวกับตัวอธิบายไฟล์ แต่ฉันไม่เข้าใจเกี่ยวกับข้อ จำกัด ที่อ่อนและแข็ง เมื่อผมทำงานผมได้รับกลับมาcat /proc/sys/fs/file-max 590432นี่แปลว่าฉันสามารถเปิดไฟล์ได้สูงสุด 590432 ไฟล์ (เช่นมีตัวอธิบายไฟล์สูงสุด 590432 แต่เมื่อฉันวิ่งulimitมันให้ผลลัพธ์ที่แตกต่าง: $ ulimit unlimited $ ulimit -Hn # Hard limit 4096 $ ulimit -Sn # Soft limit 1024 แต่อะไรคือข้อ จำกัด ฮาร์ด …

4
เหตุใดจึงไม่พบ read / run / user / 1000 / gvfs แม้ว่ามันจะทำงานเป็น root
มีคนบอกฉันว่าฉันทำอะไรผิดนี่คืออะไรหรือจะแก้ไขได้อย่างไร ฉันกำลังใช้งาน Fedora 18 และแสดงข้อผิดพลาด [root@servername /]# find . -name ngirc find: `./run/user/1000/gvfs': Permission denied [root@servername /]# [root@thinktank /]# pwd / [root@thinktank /]# ls -ltr ./run/user/1000 ls: cannot access ./run/user/1000/gvfs: Permission denied total 0 d?????????? ? ? ? ? ? gvfs lrwxrwxrwx. 1 root root 17 May 28 12:30 X11-display …
34 permissions  root  gvfs 

3
อะไร: $ {param: = value} หมายถึงอะไร
ฉันอ่านต่อไปนี้ค่ะ คู่มือผู้ใช้ของ Z-Shell : คำพ้องความหมายสำหรับ 'ความจริง' คือ ':'; มันมักจะใช้ในรูปแบบนี้เพื่อให้ข้อโต้แย้งที่มีผลข้างเคียง แต่ไม่ควรใช้ - เช่น : ${param:=value} ซึ่งเป็นสำนวนสามัญในอนุพันธ์บอร์นเชลล์ทั้งหมด ในการขยายพารามิเตอร์$paramจะได้รับค่าค่าหากว่างก่อนและปล่อยให้อยู่คนเดียว เนื่องจากเป็นเหตุผลเดียวสำหรับการขยายพารามิเตอร์คุณจึงใช้:เพื่อละเว้นอาร์กิวเมนต์ ที่จริงแล้วเปลือกสร้าง blithely บรรทัดคำสั่ง - ลำไส้ใหญ่ตามด้วยสิ่งที่มีค่า$paramไม่ว่าจะได้รับมอบหมายหรือไม่ - จากนั้นดำเนินการคำสั่ง; มันแค่เกิดขึ้นที่ ':' จะไม่แจ้งให้ทราบถึงข้อโต้แย้งที่ได้รับ แต่ฉันไม่เข้าใจ ฉันได้รับ:หมายถึงtrueแต่มีสอง colons ในการแสดงออก ในฐานะที่เป็นคำถามเล็กน้อยทำไมสำนวนนี้จึงใช้มากในอนุพันธ์เชลล์บอร์นทั้งหมด มันมีจุดประสงค์อะไร หมายเหตุ: ฉันสนใจในสิ่งที่สำนวนนี้ทำในทั้งทุบตีและในzsh zsh ขอบคุณ
34 bash  shell  zsh 

9
เปิดไฟล์ที่กำหนดโดยผลลัพธ์ของคำสั่งเป็นกลุ่ม
ฉันพบว่าตัวเองทำสิ่งต่อไปนี้เกือบทุกวัน เรียกใช้การค้นหา ( find -name somefile.txt) เปิดผลลัพธ์ vim ปัญหาคือฉันต้องคัดลอกและวางผลลัพธ์ของการfindลงในvimคำสั่ง มีวิธีหลีกเลี่ยงการทำเช่นนี้หรือไม่? ฉันได้ทดลองเล็กน้อย ( find -name somefile.txt | vim) แต่ไม่พบสิ่งใดที่ใช้งานได้ ขอบคุณล่วงหน้า
34 linux  bash  vim  find 

7
เรียกใช้แอปพลิเคชัน GUI เป็นผู้ใช้อื่น
สมมติว่าผมมีบัญชีผู้ใช้ที่ 2 และuser1 user2เมื่อฉันลงชื่อเข้าใช้user1แล้วสลับไปuser2ใช้suฉันสามารถรันโปรแกรมบรรทัดคำสั่งได้ แต่โปรแกรม GUI ล้มเหลว ตัวอย่าง: user1@laptop:~$ su - user2 user2@laptop:~$ leafpad ~/somefile.txt No protocol specified leafpad: Cannot open display: ดังนั้นฉันจะเรียกใช้โปรแกรมประยุกต์ GUI ได้อย่างไร
34 shell  x11  xorg  su 

5
เราจะรันคำสั่งที่เก็บไว้ในตัวแปรได้อย่างไร?
$ ls -l /tmp/test/my\ dir/ total 0 ฉันสงสัยว่าทำไมวิธีต่อไปนี้ในการเรียกใช้คำสั่งด้านบนจึงล้มเหลวหรือสำเร็จ $ abc='ls -l "/tmp/test/my dir"' $ $abc ls: cannot access '"/tmp/test/my': No such file or directory ls: cannot access 'dir"': No such file or directory $ "$abc" bash: ls -l "/tmp/test/my dir": No such file or directory $ bash -c $abc 'my …
34 bash  shell  quoting  variable 

4
วิธีเรียกใช้ตัวแก้ไข vim และไพพ์เอาต์พุตเพื่อ bash
บางครั้งฉันจำเป็นต้องเขียนข้อความจากนั้นส่งข้อความไปยังคำสั่งอื่น เวิร์กโฟลว์ตามปกติของฉันมีลักษณะดังนี้: vim # I edit and save my file as file.txt cat file.txt | pandoc -o file.pdf # pandoc is an example rm file.txt ฉันพบว่ามันยุ่งยากและพยายามเรียนรู้การเขียนสคริปต์ทุบตีฉันต้องการทำให้กระบวนการง่ายขึ้นมากโดยการเขียนคำสั่งที่เปิดไฟเอดิเตอร์และเมื่อเอดิเตอร์ปิดไพพ์เอาต์พุตของเอดิเตอร์เพื่อ stdout quickedit | pandoc -o file.pdfแล้วฉันจะสามารถเรียกใช้คำสั่งเป็น ฉันไม่แน่ใจว่ามันจะทำงานอย่างไร ฉันได้เขียนฟังก์ชันเพื่อทำให้สิ่งนี้เป็นไปโดยอัตโนมัติโดยทำตามขั้นตอนการทำงานที่ถูกต้องข้างต้นรวมถึงการเพิ่มเติมบางอย่าง มันสร้างสตริงแบบสุ่มเพื่อทำหน้าที่เป็นชื่อไฟล์และส่งผ่านไปยังกลุ่มเมื่อฟังก์ชันถูกเรียกใช้ เมื่อผู้ใช้ออกเป็นกลุ่มโดยการบันทึกไฟล์ฟังก์ชั่นพิมพ์ไฟล์ไปยังคอนโซลแล้วลบไฟล์ function quickedit { filename="$(cat /dev/urandom | env LC_CTYPE=C tr -cd 'a-f0-9' | head -c …
34 vim  pipe  stdout 


2
ตัดแต่งไฟล์เสียงโดยใช้เวลาเริ่มและหยุด
ฉันมีคำสั่ง FFmpeg เพื่อตัดแต่งเสียง: ffmpeg -ss 01:43:46 -t 00:00:44.30 -i input.mp3 output.mp3 ผมมีปัญหากับคำสั่งนี้เป็นตัวเลือกที่-tต้องใช้ระยะเวลา (วินาที) จาก01:43:46 ฉันต้องการที่จะตัดเสียงโดยใช้เวลาเริ่ม / หยุดเช่นระหว่าง01:43:46และ00: 01: 45.02 เป็นไปได้ไหม
34 audio  ffmpeg  trim 


4
ฉันสามารถจัดเรียงไฟล์ / etc / group และ / etc / passwd ได้ไหม?
My /etc/groupโตขึ้นโดยการเพิ่มผู้ใช้ใหม่รวมถึงการติดตั้งโปรแกรมที่เพิ่มผู้ใช้และ / หรือกลุ่มของตนเอง /etc/passwdเช่นเดียวกับที่เป็นจริงสำหรับ ขณะนี้การแก้ไขกลายเป็นเรื่องยุ่งยากเล็กน้อยเนื่องจากขาดโครงสร้าง ฉันสามารถจัดเรียงไฟล์เหล่านี้ (เช่นตามตัวเลขหรือตัวอักษรตามชื่อ) โดยไม่มีผลเสียต่อระบบและ / หรือผู้จัดการแพ็คเกจ? ฉันเดาว่ามันไม่สำคัญ แต่เพื่อให้แน่ใจว่าฉันต้องการได้รับความเห็นที่สอง อาจจะrootต้องเป็นบรรทัดที่ 1 หรือภายใน 1k บรรทัดแรกหรืออะไรก็ได้ /etc/*shadowเดียวกันจะไปสำหรับ
33 group  passwd 

4
เมื่อสร้างไฟล์ว่างเหตุใดจึงอาจต้องการ 'ไฟล์สัมผัส' มากกว่า ': >> ไฟล์'
ไม่เคยรู้เลยว่าคุณสามารถทำได้จนถึงตอนนี้: : >> file ดูเหมือนว่าจะมีฟังก์ชันคล้ายกับ: touch file มีเหตุผลที่ทรัพยากรส่วนใหญ่ดูเหมือนจะชอบมากกว่าการสัมผัสเปลือกนี้ในตัว?
33 shell  files  touch 

6
วิ่งวนซ้ำอย่างแม่นยำหนึ่งครั้งต่อวินาที
ฉันใช้วงนี้เพื่อตรวจสอบและพิมพ์บางสิ่งทุกวินาที อย่างไรก็ตามเนื่องจากการคำนวณอาจใช้เวลาสักสองสามร้อยมิลลิวินาทีเวลาที่พิมพ์จึงข้ามหนึ่งวินาที มีวิธีใดที่จะเขียนลูปที่ฉันรับประกันว่าจะได้รับผลงานพิมพ์ทุกวินาทีหรือไม่? (แน่นอนว่าการคำนวณในลูปนั้นใช้เวลาน้อยกว่าหนึ่งวินาที :)) while true; do TIME=$(date +%H:%M:%S) # some calculations which take a few hundred milliseconds FOO=... BAR=... printf '%s %s %s\n' $TIME $FOO $BAR sleep 1 done
33 bash  timestamps  sleep 

4
ฉันจะเปิดใช้งานปุ่มปรับระดับเสียงของแป้นพิมพ์ใน XFCE ได้อย่างไร
แป้นพิมพ์ของฉันมีปุ่มเฉพาะเพื่อเปลี่ยนระดับเสียงและเพื่อปิดเสียง / เปิดเสียง ฉันจะทำให้งานเหล่านี้เป็นแบบ XFCE ได้อย่างไร

4
ฉันจะทราบได้อย่างไรว่าฉันอยู่ในตำแหน่ง symlink จากบรรทัดคำสั่ง
สมมติว่าฉันมีโฟลเดอร์: cd /home/cpm135/public_html และสร้างลิงก์สัญลักษณ์ ln -s /var/lib/class . ต่อมาฉันอยู่ในไดเรกทอรีนั้น: cd /home/cpm135/public_html/class pwdจะบอกฉันฉันอยู่ใน/home/cpm135/public_html/class มีวิธีใดบ้างที่จะรู้ว่าฉันเป็น "จริง ๆ " เข้าไป/var/lib/class? ขอบคุณ

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