Unix & Linux

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

1
เมื่อใดที่ฉันจะแก้ไขสตริงในไบนารีที่สามารถเรียกทำงานได้
ฉันมีไบนารีที่ปฏิบัติการได้; a.outขอเรียกว่า ฉันสามารถดูไบนารีมีสตริง $ strings a.out ... /usr/share/foo .... ฉันจำเป็นต้องเปลี่ยนสายไป/usr/share/foo /usr/share/barฉันสามารถแทนที่สตริงด้วยsedหรือไม่: sed -i 's@/usr/share/foo@/usr/share/bar@' a.out นี่เป็นสิ่งที่ควรทำ สิ่งนี้จะใช้งานได้เมื่อสายไม่ยาวเท่ากันหรือไม่

1
ฉันจะเพิ่มแอพพลิเคชั่นในแถบเปิดแอพพลิเคชั่น lxpanel ผ่านทาง cli ได้อย่างไร?
มีวิธีในแถบเครื่องมือ LXDE เพื่อเปลี่ยนแอปพลิเคชันที่อยู่ในส่วนเปิดใช้ด่วนผ่านทางเทอร์มินัลเพื่อให้สามารถใส่ในแบทช์ไฟล์เพื่อเปลี่ยนบนไคลเอนต์หลาย ๆ เครื่องได้หรือไม่

4
ตรวจสอบว่ามีการกดปุ่มเมาส์หรือไม่จากนั้นเรียกใช้สคริปต์หรือคำสั่ง
มีวิธีใดบ้างที่จะทำให้สถานะปุ่มเมาส์ผิดพลาด Xdotool สามารถรับตำแหน่งเมาส์ได้เท่านั้น ฉันต้องการตั้งค่าบางอย่างที่ฉันสามารถกำหนดกฎที่เมื่อกดปุ่มเมาส์สคริปต์สามารถดำเนินการได้
11 bash  mouse 

2
ทำไม FreeBSD จึงใช้ GCC ที่มีลิขสิทธิ์ GPL
ทำไม FreeBSD ใช้ GCC เป็นคอมไพเลอร์เริ่มต้น ฉันรู้สึกว่าเสาหลักของปรัชญา FreeBSD นั้นไม่ได้ใช้ซอฟต์แวร์ GNU ใด ๆ โดยเฉพาะอย่างยิ่งรหัส GPL ยัง GCC ซึ่งเป็นทั้ง GNU และ GPL มาพร้อมกับ FreeBSD ทำไม?

2
ไฟล์ dot ไม่ได้รับมาเมื่อรันคำสั่งผ่าน ssh
เมื่อฉันเรียกใช้โปรแกรมแบบโต้ตอบมันทำงานได้ดี: ssh somehost $ ~/some/path/somescript.py เมื่อฉันรันโปรแกรมผ่าน ssh โดยตรงมันไม่ทำงาน PYTHONPATHไม่ได้ตั้งค่าตัวแปรเนื่องจาก.bashrcไม่ได้มีการจัดหา ssh somehost ~/some/path/somescript.py ถ้าฉันวิ่งssh somehost 'source ~/.bashrc; ~/some/path/somescript.py'ก็ใช้งานได้ดี แต่หลังจะไม่ทำงานสำหรับคนอื่น ๆ เช่นใช้ tcsh และไม่มี~/.bashrcเลย) คืออะไรคำสั่งเพื่อเรียกใช้สิ่งที่ผ่าน SSH บนโฮสต์ที่ทำงานสำหรับเปลือกหอยทั้งหมดอื่นได้หรือไม่

1
Bash พยายามเขียน prompt สองตัวหรือไม่
ฉันกำลังดูผลลัพธ์ strace ของกระบวนการทุบตีทำงานที่เชื่อมต่อกับเทอร์มินัลเพื่อการศึกษา กระบวนการทุบตีของฉันมี PID 2883 ฉันพิมพ์ [OP@localhost ~]$ strace -e trace=openat,read,write,fork,vfork,clone,execve -p 2883 2> bash.strace เข้าสู่อาคารผู้โดยสาร จากนั้นฉันก็เข้าสู่กระบวนการทุบตีของฉันและมีปฏิสัมพันธ์ต่อไปนี้: [OP@localhost ~]$ ls ฉันมองเห็นผลลัพธ์ strace: Process 2883 attached read(0, "l", 1) = 1 write(2, "l", 1) = 1 read(0, "s", 1) = 1 write(2, "s", 1) = 1 read(0, "\r", 1) = …
11 bash  tty  strace 

3
ทำไม sh (ไม่ใช่ทุบตี) บ่นเกี่ยวกับฟังก์ชั่นที่กำหนดไว้ใน. bashrc ของฉัน
ฉันได้รับสิ่งนี้เมื่อฉันเปิดเซสชันเทอร์มินัล: sh: ข้อผิดพลาดการนำเข้าคำจำกัดความของฟังก์ชั่นสำหรับ `read.json ' sh: ข้อผิดพลาดการนำเข้าคำจำกัดความของฟังก์ชั่นสำหรับ `ts-project ' sh ไม่ชอบฟังก์ชั่นเหล่านี้เพราะมันดูเหมือน: read.json(){ :: } และ ts-project(){ :: } คำถามที่แท้จริงคือ - ทำไมการshสัมผัส / ตีความไฟล์เหล่านี้? ฉันใช้ MacOS และเห็นสิ่งนี้มาก่อนมันเป็นเรื่องลึกลับ ฉันคิดว่าทุบตีเท่านั้นที่จะโหลดไฟล์เหล่านี้ update : ทุบตีและ sh จะไม่มีอะไรผิดปกติ เมื่อฉันพิมพ์ bash ในเทอร์มินัลฉันได้รับสิ่งนี้: alex$ bash beginning to load .bashrc finished loading .bashrc bash-3.2$ เมื่อฉันพิมพ์shใน terminal ฉันได้รับสิ่งนี้: alex$ sh …

1
ทำไมคุณไม่สามารถย้อนกลับลำดับของโอเปอเรเตอร์การเปลี่ยนเส้นทางอินพุตในขณะที่ลูปได้
ใน Bash คุณสามารถย้ายโอเปอเรเตอร์การเปลี่ยนเส้นทางอินพุตไปยังด้านหน้าของคำสั่ง: cat <<< "hello" # equivalent to <<< "hello" cat ทำไมคุณไม่ทำเช่นเดียวกันกับลูปในขณะที่? while read -r line; do echo "$line"; done <<< "hello" # hello <<< "hello" while read -r line; do echo "$line"; done # -bash: syntax error near unexpected token `do' ฉันคิดว่ามันค่อนข้างสับสนเพราะคุณสามารถไปป์ในขณะที่ ฉันกำลังทำอะไรผิดหรือเป็นเพียงการตัดสินใจออกแบบหรือไม่

5
อะตอม gzip หรือไม่
คือgzipอะตอม? จะเกิดอะไรขึ้นถ้าฉันหยุดgzipกระบวนการในขณะที่อยู่ระหว่างการบีบอัดไฟล์ หากไม่ใช่อะตอมลีและถ้าฉันกด Ctrl + C บนgzip *.txtกระบวนการอยู่แล้วฉันจะกลับมาทำงานอย่างปลอดภัยได้อย่างไร? (ฉันไม่เพียงแค่อยากรู้อยากเห็นเกี่ยวกับวิธีการทำงานต่อ แต่ยังเกี่ยวกับว่าgzipอะตอมเป็นพิเศษหรือไม่)

2
เหตุใดจึงไม่มีการแทรกไฟล์ syscalls
เพื่อความเข้าใจของฉันสำหรับการจัดการไฟล์มีเพียง sys_write syscall ใน Linux ซึ่งจะเขียนทับเนื้อหาไฟล์ (หรือขยายถ้าในตอนท้าย) เหตุใดจึงไม่มี syscalls สำหรับการแทรกหรือลบเนื้อหาในไฟล์ใน Linux? เนื่องจากระบบไฟล์ปัจจุบันทั้งหมดไม่ต้องการให้ไฟล์เก็บไว้ในบล็อกหน่วยความจำต่อเนื่องจึงควรมีการใช้งานที่มีประสิทธิภาพ (ไฟล์จะได้รับการแยกส่วน) ด้วยคุณสมบัติของระบบไฟล์เช่น "คัดลอกเมื่อเขียน" หรือ "การบีบอัดไฟล์โปร่งใส" วิธีการแทรกเนื้อหาในปัจจุบันดูเหมือนจะไม่มีประสิทธิภาพมาก

1
POSIX sed ต้องการอะไรสำหรับ `1d; 1,2d 'ซึ่งช่วงที่อยู่เริ่มต้นจากบรรทัดที่ถูกลบไปแล้ว?
ในความคิดเห็นต่อคำถามนี้มีกรณีเกิดขึ้นที่การใช้งาน sed หลาย ๆ ครั้งไม่เห็นด้วยกับโปรแกรมที่ค่อนข้างง่ายและเรา (หรืออย่างน้อยฉัน) ไม่สามารถระบุได้ว่าสเปคนั้นต้องการอะไร ปัญหาคือพฤติกรรมของช่วงที่เริ่มต้นที่บรรทัดที่ถูกลบ: 1d;1,2d ควรลบบรรทัด 2แม้ว่าจุดเริ่มต้นของช่วงจะถูกลบออกก่อนที่จะถึงคำสั่งนั้นหรือไม่ ความคาดหวังเริ่มต้นของฉันคือ "ไม่" สอดคล้องกับ BSD sed ในขณะที่ GNU sed พูดว่า "ใช่" และการตรวจสอบข้อความข้อกำหนดไม่ได้ช่วยแก้ปัญหาทั้งหมด ที่ตรงกับความคาดหวังของฉัน (อย่างน้อย) MacOS และ Solaris sedและ sedBSD ไม่เห็นด้วยคือ (อย่างน้อย) GNU และ Busybox sedและผู้คนมากมายที่นี่ สองคนแรกได้รับการรับรองจาก SUS ขณะที่คนอื่น ๆ มีแนวโน้มที่จะแพร่หลายมากขึ้น พฤติกรรมใดที่ถูกต้อง? ข้อความข้อกำหนดสำหรับช่วงสองที่อยู่พูดว่า: sedยูทิลิตี้แล้วให้ใช้บังคับในลำดับคำสั่งทั้งหมดที่มีอยู่เลือกพื้นที่รูปแบบที่จนกว่าคำสั่งเริ่มต้นรอบถัดไปหรือลาออก และ คำสั่งแก้ไขที่มีสองที่อยู่จะต้องเลือกช่วงที่ครอบคลุมจากพื้นที่รูปแบบแรกที่ตรงกับที่อยู่แรกผ่านพื้นที่รูปแบบต่อไปที่ตรงกับที่สอง [... ] เริ่มต้นที่บรรทัดแรกตามช่วงที่เลือก sed จะค้นหาที่อยู่แรกอีกครั้ง …
11 sed  posix 

2
ทำไมฉันถึงสูญเสียข้อมูลโดยใช้การสร้างท่อ bash นี้
ฉันกำลังพยายามรวมโปรแกรมบางโปรแกรมเช่นนั้น (โปรดละเว้นการรวมพิเศษใด ๆ นี่เป็นงานที่กำลังดำเนินการอยู่): pv -q -l -L 1 < input.csv | ./repeat <(nc "host" 1234) แหล่งที่มาของโปรแกรมซ้ำมีลักษณะดังนี้: #include <fcntl.h> #include <stdint.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/epoll.h> #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> #include <iostream> #include <string> inline std::string readline(int fd, const size_t len, const char delim = …

5
วิธีการจัดเรียงขนาดที่มนุษย์อ่านได้
โดยทั่วไปฉันกำลังมองหาไฟล์แล้วจัดเรียงตามขนาด สคริปต์ทำงานได้ถ้าฉันไม่จัดเรียงตามขนาดที่มนุษย์อ่านได้ แต่ฉันต้องการขนาดที่มนุษย์สามารถอ่านได้ ฉันจะจัดเรียงขนาดที่มนุษย์สามารถอ่านได้ได้อย่างไร ตัวอย่างเช่น: ls -l | sort -k 5 -n | awk '{print $9 " " $5}' ใช้งานได้ตามที่คาดหวังฉันมีขนาดไฟล์ของฉันเป็นไบต์จากน้อยไปมาก: 1.txt 1 test.txt 3 bash.sh* 573 DocGeneration.txt 1131 andres_stuff.txt 1465 Branches.xlsx 15087 foo 23735 bar 60566 2016_stuff.pdf 996850 ตอนนี้ฉันต้องการให้ขนาดที่มนุษย์อ่านได้ดังนั้นฉันจึงเพิ่มพารามิเตอร์ -h ลงใน ls และตอนนี้ไฟล์บางไฟล์ไม่เป็นระเบียบ: ls -lh | sort -k 5 -n …
11 find  ls  sort 

6
ปิดในวันที่ที่ระบุ
ฉันรู้ว่าคุณสามารถกำหนดเวลาปิดเครื่องตามเวลาที่กำหนดได้shutdown -h 21:45และคุณไม่ควรใช้ crontabs สำหรับสิ่งต่าง ๆ เนื่องจากลักษณะที่ซ้ำซ้อน ฉันจะกำหนดปิดระบบสำหรับวันที่เฉพาะเช่น 31 สิงหาคมเวลา 20:00 น. ได้อย่างไร
11 ubuntu  shutdown 


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