Unix & Linux

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


2
ทำไมฉันถึงไม่สามารถ“ swapoff” เมื่อมีหน่วยความจำมากมาย
ฉันเพิ่งสังเกตเห็นว่าแม้ว่ามีหน่วยความจำมากมายในระบบของฉัน: # free -m total used free shared buffers cached Mem: 15965 9680 6284 35 1754 2560 -/+ buffers/cache: 5365 10599 Swap: 2047 258 1789 ฉันไม่สามารถswapoff -aใช้ swapfile 2G ของฉันได้ -rw-r----- 1 root root 2.0G Feb 9 21:34 /2GB.swap ฉันได้เปลี่ยนพารามิเตอร์เคอร์เนลต่อไปนี้ผ่านทางsysctlแต่นั่นควรเป็นสาเหตุ: vm.swappiness = 5 vm.vfs_cache_pressure = 200 เหตุผลใด ๆ สำหรับ: # …
10 linux  memory  swap 

6
Bash - จับคู่ไฟล์แต่ละบรรทัด
คำถามนี้เป็นคำถามที่เกี่ยวข้องอย่างยิ่งที่จะนี้และนี้คำถาม ฉันมีไฟล์ที่มีหลายบรรทัดโดยที่แต่ละบรรทัดเป็นพา ธ ไปยังไฟล์ ตอนนี้ฉันต้องการจับคู่แต่ละบรรทัดกับแต่ละบรรทัดที่แตกต่างกัน (ไม่ใช่ของตัวเอง) ทั้งคู่A Bมีค่าเท่ากับB Aคู่สำหรับจุดประสงค์ของฉันดังนั้นควรสร้างชุดค่าผสมเหล่านี้เพียงชุดเดียว ตัวอย่าง files.dat อ่านแบบนี้ในรูปแบบย่อตัวอักษรแต่ละตัวเป็นเส้นทางไฟล์ (สัมบูรณ์หรือสัมพัทธ์) a b c d e จากนั้นผลลัพธ์ของฉันควรมีลักษณะเช่นนี้: a b a c a d a e b c b d b e c d c e d e โดยเฉพาะอย่างยิ่งฉันต้องการที่จะแก้ปัญหานี้ในทุบตี แตกต่างจากคำถามอื่น ๆ รายการไฟล์ของฉันค่อนข้างเล็ก (ประมาณ 200 บรรทัด) ดังนั้นการใช้ลูปและความจุ RAM จึงไม่มีปัญหา

1
(arg: n) ในพรอมต์คำสั่งหมายความว่าอย่างไร
ใน Codecademy ของCommand Line Courseเมื่อพยายามใช้แป้นพิมพ์ลัดAlt+Shift+#(ซึ่งควรจะคอมเม้นท์บรรทัดปัจจุบัน) ใน command prompt มันจะเปลี่ยน prompt จาก$เป็น(arg: 3)แทนการเพิ่ม dash ที่จุดเริ่มต้นของบรรทัด Alt+Shift+@จะทำให้มันแสดง(arg: 2)แทน ฯลฯ ดูบรรทัดสุดท้ายในภาพด้านล่าง ก่อนที่ผมจะตีมันเป็นเพียงแค่Alt+Shift+#$ ทางลัดทำงานได้ดีบนเครื่องของฉัน สิ่งนี้คือ(arg: n)อะไร แป้นพิมพ์ลัดขึ้นอยู่กับว่าทำงานอย่างไร รูปแบบแป้นพิมพ์? OS distro เทอร์มินัลอีมูเลเตอร์? CLI เริ่มต้น อะไร?

2
วิธีสร้างนามแฝงด้วยคำสั่งประกอบด้วย 'และ "
มีบางโพสต์ที่ผ่านมามีคนถามวิธีแสดงหน่วยความจำเป็นเปอร์เซ็นต์ มีคนตอบกลับด้วย: free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }' ฉันสงสัยว่าฉันสามารถเปลี่ยนคำสั่งนี้เป็นชื่อแทนใน ~ / .bashrc หรือไม่ แต่ไวยากรณ์ของนามแฝงคือ: alias aliasname='command' ฉันจะทำสิ่งนี้ได้อย่างไร ที่มีทั้งคำสั่งและ' "ฉันลองใช้วิธีการต่าง ๆ แต่มันไม่ทำงาน เป็นไปได้ไหม ฉันพลาดอะไรไปรึเปล่า?
10 bash  quoting  alias 

1
ทำไม FreeBSD ถึงสูญเสียหน้ากาก w แต่เดเบียนยังคงเก็บมันไว้?
ฉันพยายามเข้าใจความแตกต่างของพฤติกรรมระหว่าง FreeBSD ACL และ Linux ACL โดยเฉพาะอย่างยิ่งกลไกการสืบทอดสำหรับ ACL เริ่มต้น ฉันใช้สิ่งต่อไปนี้กับทั้ง Debian 9.6 และ FreeBSD 12: $ cat test_acl.sh #!/bin/sh set -xe mkdir storage setfacl -d -m u::rwx,g::rwx,o::-,m::rwx storage touch outside cd storage touch inside cd .. ls -ld outside storage storage/inside getfacl -d storage getfacl storage getfacl outside getfacl storage/inside …

1
XFCE ตายหรือยังอยู่ระหว่างการพัฒนาหรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา เว็บไซต์ XFCEดูเหมือนว่าจะมีชีวิตอยู่และ distros เช่น Xubuntu ยังคงใช้มัน แต่XFCE ยังไม่ได้รับการปรับปรุงตั้งแต่ 2015 โครงการนี้ตายหรือเปล่า?
10 ubuntu  xfce  xubuntu 

1
Debian: ไม่สามารถลบ symlink ใน / sys /: ไม่อนุญาตให้ดำเนินการ
ฉันรันคำสั่งบางอย่างโดยไม่เข้าใจในขณะที่พยายามทำให้หน้าจอสว่างและตอนนี้ฉันติดอยู่กับ symlink ที่น่ารังเกียจใน '/ sys / class / backlight / asus_laptop' ที่ฉันพยายามกำจัด ฉันเหนื่อย sudo rm /sys/class/backlight/asus_laptop sudo rm '/sys/class/backlight/asus_laptop' su root rm /sys/class/backlight/asus_laptop sudo rm /sys/class/backlight/asus_laptop ไปที่ไดเรกทอรีและการพิมพ์rm asus_laptopการเปลี่ยนความเป็นเจ้าของและการใช้ Thunar เพื่อลองลบออก ฉันเข้าใจ rm: cannot remove '/sys/class/backlight/asus_laptop': Operation not permitted กันไปสำหรับการยกเลิกการเชื่อมโยง rmdir ไม่ทำงานและ Thunar ล้มเหลว สิทธิ์ในการเป็นlrwxrwxrwx ฉันจะลบออกได้อย่างไร
10 linux  permissions  rm  sysfs 

5
จับรหัสทางออกของคำสั่ง exit
ฉันมีสิ่งนี้ในสคริปต์ทุบตี: exit 3; exit_code="$?" if [[ "$exit_code" != "0" ]]; then echo -e "${r2g_magenta}Your r2g process is exiting with code $exit_code.${r2g_no_color}"; exit "$exit_code"; fi ดูเหมือนว่าจะออกทันทีหลังจากคำสั่ง exit ซึ่งทำให้รู้สึก ฉันสงสัยว่าจะมีคำสั่งง่ายๆที่สามารถให้รหัสออกโดยไม่ต้องออกทันทีหรือไม่ ฉันจะเดา: exec exit 3 exec: exit: not foundแต่จะให้ข้อความแสดงข้อผิดพลาด: ฉันควรทำอย่างไร :)

4
POSIX-ly จะนับจำนวนบรรทัดในตัวแปรสตริงได้อย่างไร
ฉันรู้ว่าฉันสามารถทำได้ใน Bash: wc -l <<< "${string_variable}" โดยพื้นฐานแล้วทุกสิ่งที่ฉันพบเกี่ยวข้องกับ<<<ตัวดำเนินการ Bash แต่ใน POSIX shell <<<นั้นไม่ได้ถูกกำหนดและฉันไม่สามารถหาวิธีอื่นได้เป็นเวลาหลายชั่วโมง ฉันค่อนข้างแน่ใจว่ามีวิธีแก้ปัญหาอย่างง่าย แต่น่าเสียดายที่ฉันไม่พบมัน

4
โฟลเดอร์ชั่วคราวที่ทำลายโดยอัตโนมัติหลังจากกระบวนการออก
เราสามารถใช้โฟลเดอร์ชั่วคราวเช่นไฟล์ชั่วคราว TMP=$(mktemp ... ) exec 3<>$TMP rm $TMP cat <&3 ซึ่งจะถูกทำลายโดยอัตโนมัติหลังจากที่เปลือกนี้จบการทำงาน

1
เขียนคำสั่งที่มีโครงสร้างในหลายบรรทัดโดยเปิดใช้งานคีย์แท็บ
ฉันต้องการเขียนคำสั่งแบบมีโครงสร้างในหลายบรรทัดเช่น $ for i in *; → do → file $i; → done bmdt.md: ASCII text breakfast.md: ASCII text brmdh.md: ASCII text test.sh: Bourne-Again shell script text executable, ASCII text แต่หาแท็บไม่ทำงาน ฉันจะเปิดใช้งานคีย์แท็บในคอนโซลทุบตีได้อย่างไร
10 bash 

3
กำหนดวันสุดท้ายของทุกเดือน
ฉันอ่านจากคำแนะนำในการกำหนดตารางสคริปต์ในวันสุดท้ายของเดือน: หมายเหตุ: ผู้อ่านที่ฉลาดอาจสงสัยว่าคุณจะสามารถตั้งคำสั่งให้ดำเนินการในวันสุดท้ายของทุกเดือนได้อย่างไรเพราะคุณไม่สามารถกำหนดค่าวันที่ให้ครอบคลุมทุกเดือนได้ ปัญหานี้ทำให้เกิดโปรแกรมเมอร์ Linux และ Unix และวางไข่โซลูชั่นที่แตกต่างกันไม่กี่ วิธีการทั่วไปคือการเพิ่มคำสั่ง if-then ที่ใช้คำสั่ง date เพื่อตรวจสอบว่าวันในวันพรุ่งนี้คือ 01: 00 12 * * * if [`date +%d -d tomorrow` = 01 ] ; then ; command1 สิ่งนี้จะตรวจสอบทุกวันเวลา 12.00 น. เพื่อดูว่าเป็นวันสุดท้ายของเดือนหรือไม่และหากเป็นเช่นนั้น cron จะรันคำสั่ง วิธีการ[`date +%d -d tomorrow` = 01 ]ทำงานหรือไม่ แก้ไขให้ถูกต้องthen; command1หรือไม่?
10 shell-script  cron  date  test 

2
ทำไมบน Linux ที่ทันสมัยขนาดสแต็กเริ่มต้นมีขนาดใหญ่มาก - 8MB (แม้แต่ 10 ในการกระจาย)
ตัวอย่างเช่นบน OSX มันน้อยกว่า 512k มีขนาดที่แนะนำโดยคำนึงว่าแอปไม่ได้ใช้การสอบถามซ้ำและไม่ได้จัดสรรตัวแปรสแต็กจำนวนมากหรือไม่ ฉันรู้ว่าคำถามนั้นกว้างเกินไปและมันก็ขึ้นอยู่กับการใช้งาน แต่ก็ยังอยากถามเพราะฉันสงสัยว่ามีเหตุผลซ่อนอยู่ภายใน / ระบบ /หลังจำนวนมากนี้ ฉันสงสัยว่าในขณะที่ฉันตั้งใจจะเปลี่ยนขนาดสแต็คเป็น 512 KiB ในแอปของฉัน - นี่ยังคงฟังดูเหมือนเป็นจำนวนมากสำหรับเรื่องนี้ แต่มันมีขนาดเล็กกว่า 8MiB - และจะทำให้หน่วยความจำเสมือนของกระบวนการลดลงอย่างมีนัยสำคัญ มีเธรดจำนวนมาก (I / O) ฉันก็รู้ว่ามันไม่เจ็บจริง ๆ อธิบายได้ดีที่นี่ : ขนาดสแต็กเริ่มต้นสำหรับ pthreads

2
คุณสามารถอธิบายสามสิ่งนี้ในรหัสทุบตีนี้ให้ฉันได้ไหม
ฉันมีfunctionใน.bashrcไฟล์ของฉัน ฉันรู้ว่ามันทำอะไรมันทำตามขั้นตอน X หลาย ๆ ไดเรกทอรีด้วยcd นี่มันคือ: up() { local d="" limit=$1 for ((i=1 ; i <= limit ; i++)) do d=$d/.. done d=$(echo $d | sed 's/^\///') if [ -z "$d" ]; then d=.. fi cd $d } แต่คุณสามารถอธิบายสามสิ่งนี้จากฉันได้ไหม? d=$d/.. sed 's/^\///' d=.. ทำไมไม่ทำเช่นนี้: up() { limit=$1 for ((i=1 …

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