Unix & Linux

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

3
pv (แถบความคืบหน้า) และ gzip
ทำไมถึงเป็นไปไม่ได้ pv ${dest_file} | gzip -1 pv เป็นแถบความคืบหน้า ความผิดพลาด gzip: compressed data not written to a terminal. Use -f to force compression. For help, type: gzip -h 0 B 0:00:00 [ 0 B/s] [> ] 0% วิธีนี้ใช้ได้ผล pv ${file_in} | tar -Jxf - -C /outdir

1
ระบบไฟล์ Linux ที่ประหยัดพื้นที่สำหรับดิสก์เพลง?
ฉันมี SSD รุ่นเก่าในแล็ปท็อปของฉันที่มีข้อมูลคงที่ส่วนใหญ่เป็น FLAC และไฟล์ zip ไม่กี่ไฟล์มีไฟล์น้อยกว่า 10MB และมีการเขียนทุกสัปดาห์แทนที่จะเป็นหลายต่อวินาที ฉันลังเลที่จะซื้อดิสก์ใหม่ที่เป็นมรดกเพื่อให้มีพื้นที่เพิ่มขึ้นเพราะฉันเคลื่อนย้ายแล็ปท็อปไปรอบ ๆ และประสบการณ์ของฉันกับดิสก์แบบดั้งเดิมและจักรยานคือว่าพวกเขารวมกันไม่ดี การดูที่ " ข้อดีของ BTRFS " " ระบบไฟล์ที่แตกต่างกัน " และHowToGeekฉันอดคิดไม่ได้ว่า ext2fs นั้นน่าจะเป็นระบบไฟล์ที่ประหยัดพื้นที่มากที่สุด มันไม่ได้บันทึกไว้ซึ่งดีสำหรับแอปพลิเคชันนี้และใช้ได้กับไฟล์ขนาดใหญ่ ฉันไม่คิดว่าเรื่องความเร็วนั้นสำคัญจริง ๆ เพราะ SSD นั้นเร็วกว่าที่เครื่องเล่นเพลงต้องการ มีระบบไฟล์ที่ดีกว่าสำหรับ EXT2 หรือไม่? ฉันสามารถฟอร์แมต SSD เป็นรูปแบบ CDFS แบบอ่านอย่างเดียวได้หรือไม่และนั่นจะทำให้ฉันมีพื้นที่ใช้งานมากขึ้นหรือไม่
10 filesystems  flac 

3
ฉันจะยกเลิกการส่งออกตัวแปรโดยไม่สูญเสียมูลค่าได้อย่างไร
สมมติว่าฉันส่งออกตัวแปร: foo=bar export foo ตอนนี้ฉันต้องการยกเลิกการส่งออก นั่นคือจะบอกว่าถ้าผมทำผมก็ไม่ควรจะได้รับsh -c 'echo "$foo"' ไม่ควรแสดงในสภาพแวดล้อมของเลย เป็นเพียงตัวอย่างวิธีง่ายๆในการแสดงการมีอยู่ของตัวแปร คำสั่งอาจเป็นอะไรก็ได้ - มันอาจเป็นสิ่งที่พฤติกรรมของมันได้รับผลกระทบเพียงแค่การปรากฏตัวของตัวแปรในสภาพแวดล้อมของมันbarfoosh -csh -c ฉันสามารถ: unset ตัวแปรและสูญเสียมัน ลบออกโดยใช้envสำหรับแต่ละคำสั่ง:env -u foo sh -c 'echo "$foo"' ทำไม่ได้ถ้าคุณต้องการใช้เชลล์ปัจจุบันต่อไปอีกซักพัก เป็นการดีที่ฉันต้องการเก็บค่าของตัวแปร แต่ไม่ให้ปรากฏขึ้นในกระบวนการลูกไม่ได้เป็นตัวแปรว่างเปล่า ฉันเดาว่าฉันสามารถทำได้: otherfoo="$foo"; unset foo; foo="$otherfoo"; unset otherfoo ความเสี่ยงนี้เกิดขึ้นotherfooหากมีอยู่แล้ว นั่นเป็นวิธีเดียวหรือไม่ มีวิธีมาตรฐานหรือไม่?

2
“ ช่อง 3: เปิดล้มเหลว: ไม่อนุญาตให้ดำเนินการ: เปิดล้มเหลว” เมื่อสร้างเซสชัน VNC บนอุโมงค์ SSH
ในการสร้างการเชื่อมต่อ VNC ผ่านการเชื่อมต่อช่องสัญญาณ SSH ฉันได้รับข้อผิดพลาด: channel 3: open failed: administratively prohibited: open failed ฉันพบว่าสิ่งนี้เกิดขึ้นเฉพาะเมื่อฉันไม่ได้ลงชื่อเข้าใช้โฮสต์ภายในเครื่องเนื่องจากเป็นusernameโฮสต์ที่ฉันพยายามเชื่อมต่อโดยใช้การเชื่อมต่อ VNC แบบช่องสัญญาณ อุโมงค์ SSH: ssh -p 6000 -L 5901:127.0.0.1:5901 username@192.168.0.2 การเชื่อมต่อ VNC: vncviewer localhost:1 ฉันได้ลองปรับการตั้งค่า/etc/ssh/sshd_configโดยใช้AllowTunnel yesและไม่มีการตั้งค่า (ฉันไม่ SSH เริ่มต้นใหม่หลังจากมีการเปลี่ยนแปลง: service ssh restart) แต่ข้อผิดพลาดออกไปถ้าผมมีช่วงท้องถิ่นทำงานในพื้นที่ห่างไกล (เช่นฉันเข้าสู่ระบบเป็นusernameท้องถิ่น.) เป็นคนอื่นได้เห็นพฤติกรรมนี้หรือไม่? ดูเหมือนว่าฉันควรจะสามารถเริ่ม VNC จากระยะไกลและเข้าถึงได้โดยไม่ต้องเข้าสู่ระบบในท้องถิ่นเช่นกัน

1
X server เริ่มต้นเป็นรูทเท่านั้น
ฉันมีระบบ Arch Linux สต็อกเคอร์เนลและไดรเวอร์ ด้วยเหตุผลแปลก ๆ xinit สร้างข้อผิดพลาดเมื่อเริ่มต้นโดยผู้ใช้ที่ไม่ใช่รูท บันทึกบอกว่า: (EE) parse_vt_settings: Cannot open /dev/tty0 (No such file or directory) อย่างไรก็ตามฉันสามารถstatและlsไฟล์จากผู้ใช้ที่ไม่ใช่รูทและได้รับอนุญาตจากมันคือ 755

1
การจัดการหน่วย systemd ของผู้ใช้รายอื่น
ผู้ใช้รายหนึ่งหรืออาจรูทควบคุมการบริการ systemd ระดับผู้ใช้ของผู้ใช้คนอื่นได้หรือไม่? ฉันได้พยายามsudo -u <some user> systemctl --user restart <some service>แต่ก็บ่นเรื่อง Failed to get D-Bus connection: Connection refuseddbus:
10 sudo  systemd 

3
ฉันสามารถใช้ตัวแปรในการขยาย Bash brace ได้หรือไม่?
ด้านล่างนี้เป็นโค้ดหลอกบางประเภทสำหรับสิ่งที่ฉันพยายามทำ: #!/bin/bash # I already have the variable below figured out (positive integer): numlines=$([returns number of lines containing specific characters in a file]) # This is basically what I want to do with it: for i in {1..$numlines}; do # the part below is already figured out as well: do …

1
ทำไม ffmpeg ถูกลบออกจาก Debian?
ปัจจุบันffmpegขาดหายไปจากแพ็คเกจ APT เมื่อใช้ Debian และ Ubuntu รุ่นเสถียร มีทรัพยากรจำนวนมาก (มีตัวอย่างจาก SuperUserอีกหนึ่งจากเอกสาร Debian ของและหนึ่งจาก AskUbuntu ) ซึ่งอธิบายถึงวิธีการติดตั้งในที่แตกต่างกัน (และซับซ้อนมากขึ้น) apt-get install ffmpegวิธีที่ง่ายกว่า สิ่งที่ฉันสงสัยคือเหตุผลที่แพคเกจไม่ได้อยู่ในสถานที่แรก? จากสิ่งที่ฉันเข้าใจavconvเป็นทางแยกของffmpegและเป็นพฤตินัยมาตรฐานสำหรับการกระจาย Debian ที่คล้ายกัน ในขณะเดียวกันffmpegก็ไม่ได้ถูกทอดทิ้ง: เว็บไซต์กล่าวถึงความตั้งใจที่จะปิดโครงการเพื่อผลกำไรavconvแม้จะมีผู้นำที่ffmpeg ออกจากโครงการก็ตาม ดังนั้น: เหตุใดจึงffmpegถูกลบออกอย่างชัดเจนจากแพ็คเกจ APT แทนที่จะเก็บไว้และเพิ่มเพียงavconv? มีเหตุผล (นอกเหนือจากความจริงที่ว่าเป็นการยากที่จะติดตั้งffmpeg) เพื่อหยุดใช้หรือไม่
10 debian  ffmpeg 

1
Nano Editor: ลบไปที่ท้ายไฟล์
เมื่อใช้Nano Editor ของ GNUจะสามารถลบจากตำแหน่งเคอร์เซอร์จริงไปยังจุดสิ้นสุดของไฟล์ข้อความได้หรือไม่? วิธีแก้ปัญหาของฉันในตอนนี้: กดต่อไปCtrlK( ปุ่มลัดลบสายเต็ม ) แต่วิธีนี้ไม่สะดวกในการเชื่อมต่อระยะไกลช้า (telnet, SSH ... ฯลฯ )
10 nano 

2
ฉันสามารถปิดการใช้งานการบัฟเฟอร์สำหรับ tr
trดูเหมือนว่าจะบัฟเฟอร์อินพุตเพื่อให้คำสั่งนี้LongRunningCommand|tr \\n ,จะเริ่มผลิตผลลัพธ์หลังจากอินพุตไม่กี่กิโลไบต์จาก LongRunningCommand สะสม มีวิธีบังคับtrให้หยุดการบัฟเฟอร์นี้หรือคำสั่งอื่นใดที่สามารถแทนที่บรรทัดใหม่ด้วยอักขระอื่นโดยไม่บัฟเฟอร์หรือไม่? ป.ล. ฉันได้ลองคำแนะนำสองข้อแรกจากปิดการบัฟเฟอร์ในท่อไม่สำเร็จ
10 tr 

1
เซสชั่น Wayland ของ GNOME จริง
ฉันพยายามที่จะทดสอบเซสชั่น Wayland Gnome "ของจริง" ฉันรู้ว่าไม่ใช่ทุกแอปพลิเคชันที่สามารถทำงานบน Wayland ได้ (สำหรับเรามี XWayland) แต่อย่างน้อยฉันก็อยากได้ GTK + แอพพลิเคชั่นมาทำเช่นนั้น ดังนั้นฉันจึงสร้าง~/.profileไฟล์ที่มี export GDK_BACKEND=wayland export CLUTTER_BACKEND=wayland >>> แก้ไข : แทนที่จะเพิ่มเนื้อหาข้างต้นคุณสามารถเพิ่มสิ่งนี้ลงไป~/.profileเพื่อให้มันใช้ได้ทั้ง X และ Wayland: WAY=$(ps -aux | head -n -1 | grep "/usr/bin/gnome-shell --wayland") if [ -z "$WAY" ]; then echo X11 else export GDK_BACKEND=wayland export CLUTTER_BACKEND=wayland fi <<< …
10 bash  gnome  wayland 

4
วิธีดูการใช้หน่วยความจำแบบสรุปของกลุ่มคำสั่ง (แทนกระบวนการ)
มีวิธีการจัดกลุ่มกระบวนการที่คล้ายกันเมื่อใช้เครื่องมือเช่น top / htop หรือไม่? บางครั้งฉันแค่อยากรู้ว่าสิ่งที่กินหน่วยความจำของฉันและบางโปรแกรม (เบราว์เซอร์ส่วนใหญ่) ใช้กระบวนการหลายกระบวนการซึ่งทำให้ยากต่อการอ่านจำนวน RAM ที่ใช้งานจริง จนถึงตอนนี้ฉันก็มาพร้อมกับสิ่งที่: ps ax -o pmem,cmd | grep opera | grep -oE '^[ ]*[0-9.]+' | paste -sd+ - | bc
10 process  top 


1
กฎ Udev เพื่อให้ตรงกับอุปกรณ์เก็บข้อมูล usb ใด ๆ
ฉันจะใช้udevกฎสำหรับอุปกรณ์เก็บข้อมูลขนาดใหญ่แบบ USB ที่เสียบเข้ามาได้อย่างไร สิ่งที่ควรเปลี่ยนในidVendorและidProduct? ACTION=="add", SUBSYSTEM=="usb", SYSFS{idVendor}=="0204", SYSFS{idProduct}=="6025", RUN+="/home/workspace/bash_script.sh"
10 udev 

1
เป็นไปได้หรือไม่ที่จะหยุดงานที่ส่งผ่าน qsub ชั่วคราว?
ฉันกำลังทำงานของฉันในกลุ่มเล็ก ๆ qsubฉันส่งพวกเขาผ่านทาง ตอนนี้เพื่อนร่วมห้องของฉันต้องการทรัพยากรอย่างเร่งด่วนมากกว่าฉันดังนั้นฉันต้องฆ่างานของฉันหรือหยุดพวกเขาถ้าเป็นไปได้ มีวิธีหยุดงานชั่วคราวและปล่อย CPU, RAM และอื่น ๆ หรือไม่? ฉันเป็นผู้ใช้ปกติ (ไม่มีสิทธิ์รูท)
10 batch-jobs 

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