Unix & Linux

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

2
การพัฒนา / ทดสอบโมดูล linux ปลอดภัยหรือไม่หากใช้เครื่องเสมือน
ฉันอยู่ในคลาสระบบปฏิบัติการ ขึ้นมาเราต้องทำงานแก้ไขรหัสเคอร์เนล เราได้รับคำแนะนำว่าอย่าใช้เครื่องส่วนตัวในการทดสอบ (ฉันคิดว่านี่หมายถึงการติดตั้ง) เพราะเราสามารถเขียนรหัสที่ไม่ดีและเขียนทับบางที่ที่เราไม่ควรทำ เราได้รับอนุญาตให้เข้าถึงเครื่องในห้องปฏิบัติการเพื่อความปลอดภัย ถ้าฉันจะทดสอบโดยใช้ VM สิ่งนั้นจะปกป้องระบบโฮสต์จากรหัสที่อาจไม่ปลอดภัยหรือไม่ ฉันไม่ต้องการติดอยู่กับระบบที่โรงเรียนและภาพรวมจะมีประโยชน์ หากยังคงมีความเสี่ยงสูงข้อเสนอแนะใด ๆ เกี่ยวกับสิ่งที่ฉันต้องพิจารณาเพื่อทดสอบอย่างปลอดภัย? เราจะใช้บางอย่างเช่น linuxmint เพื่อเริ่มต้นด้วย หากใครต้องการเห็นสิ่งที่จะอยู่ในโครงการปัจจุบัน: http://www.cs.fsu.edu/~cop4610t/assignments/project2/writeup/specification.pdf

5
เขียนเอาต์พุตของ "time" ในไฟล์ทำไมต้องใช้วงเล็บ?
timeเขียนไปstderrดังนั้นใครจะคิดว่าการเพิ่มบรรทัดคำสั่งควรเส้นทางการส่งออกไปยัง2>&1 stdoutแต่นี่ไม่ได้ผล: test@debian:~$ cat file one two three four test@debian:~$ time wc file > wc.out 2>&1 real 0m0.022s user 0m0.000s sys 0m0.000s test@debian:~$ cat wc.out 1 4 19 file ใช้งานได้กับวงเล็บเท่านั้น: test@debian:~$ (time wc file) > wc.out 2>&1 test@debian:~$ cat wc.out 1 4 19 file real 0m0.005s user 0m0.000s sys 0m0.000s …


4
tar และตัวอักษรหลัก: มันเป็นข้อบกพร่องหรือคุณสมบัติ?
ฉันสงสัยว่าจะถามความแตกต่างของสองคำสั่งนี้ (เช่นคำสั่งของตัวเลือกของพวกเขาเท่านั้นที่แตกต่างกัน): tar -zxvf foo.tar.gz tar -zfxv foo.tar.gz คนแรกวิ่งได้อย่างสมบูรณ์แบบ แต่คนที่สองพูดว่า: tar: You must specify one of the `-Acdtrux' or `--test-label' options Try `tar --help' or `tar --usage' for more information. และ tar ด้วย--test-labelและ-zfxvพูดว่า: tar (child): xv: Cannot open: No such file or directory tar (child): Error is not recoverable: exiting …

9
ลบบรรทัดส่วนหัวพิเศษออกจากไฟล์ยกเว้นบรรทัดแรก
ฉันมีไฟล์ที่ดูเหมือนตัวอย่างของเล่นนี้ ไฟล์จริงของฉันมี 4 ล้านบรรทัดซึ่งต้องลบประมาณ 10 บรรทัด ID Data1 Data2 1 100 100 2 100 200 3 200 100 ID Data1 Data2 4 100 100 ID Data1 Data2 5 200 200 ฉันต้องการลบบรรทัดที่มีลักษณะส่วนหัวยกเว้นบรรทัดแรก ไฟล์สุดท้าย: ID Data1 Data2 1 100 100 2 100 200 3 200 100 4 100 100 5 200 200 …

6
ควรอ้างอิงตัวแปรเมื่อดำเนินการหรือไม่
กฎทั่วไปในการเขียนสคริปต์เปลือกคือตัวแปรที่ควรจะยกมาเว้นแต่จะมีเหตุผลที่น่าสนใจที่จะไม่ สำหรับรายละเอียดมากกว่าที่คุณอาจต้องการทราบลองดูที่ Q&A ที่ยอดเยี่ยมนี้: ผลกระทบด้านความปลอดภัยของการลืมอ้างตัวแปรใน bash / POSIX shellsเปลือกหอย พิจารณาอย่างไรก็ตามฟังก์ชั่นเช่นนี้: run_this(){ $@ } ควร$@จะยกมามีหรือไม่? ฉันเล่นกับมันสักครู่และไม่พบกรณีใด ๆ ที่การขาดคำพูดทำให้เกิดปัญหา ในทางกลับกันการใช้เครื่องหมายคำพูดทำให้หยุดพักเมื่อส่งคำสั่งที่มีช่องว่างเป็นตัวแปรที่ยกมา: #!/usr/bin/sh set -x run_this(){ $@ } run_that(){ "$@" } comm="ls -l" run_this "$comm" run_that "$comm" การเรียกใช้สคริปต์ด้านบนส่งคืน: $ a.sh + comm='ls -l' + run_this 'ls -l' + ls -l total 8 -rw-r--r-- 1 …

3
ฉันจะปรับปรุงการแสดงผลแบบอักษรใน Firefox ได้อย่างไร
การแสดงผลตัวอักษรของฉันใน Firefox ดูแย่มากในหน้าต่างๆเช่น facebook.com และ twitter.com: ฉันใช้ Debian 8 และเล่นซอกับการเร่งความเร็วฮาร์ดแวร์และดูเหมือนว่าจะไม่ทำงาน
18 debian  fonts  firefox 

2
ฉันจะทำให้ sudo จดจำรหัสผ่านของฉันได้นานขึ้นได้อย่างไร
ฉันจะsudoจำรหัสผ่านของฉันให้นานขึ้นได้อย่างไรเพื่อที่ฉันจะได้ไม่ต้องพิมพ์ต่อไป? ฉันไม่ต้องการsudo suและรันคำสั่งเหมือนรูทตลอดเวลา ฉันอยู่บน Arch Linux และได้ลองใช้ google นี้ แต่ฉันได้รับตัวอย่างในการเปลี่ยนรหัสผ่านซึ่งไม่ใช่สิ่งที่ฉันตามมา
18 sudo  password 

2
มีบางอย่างเช่น "แยก ()" ของ JavaScript ในเปลือกหรือไม่
มันใช้งานง่ายมากsplit()ใน JavaScript เพื่อแยกสตริงออกเป็นอาร์เรย์ เชลล์สคริปต์เป็นอย่างไร พูดว่าฉันต้องการทำสิ่งนี้: $ script.sh var1_var2_var3 เมื่อผู้ใช้ให้สตริงดังกล่าวvar1_var2_var3กับ script.sh ภายในสคริปต์มันจะแปลงสตริงเป็นอาร์เรย์เช่น array=( var1 var2 var3 ) for name in ${array[@]}; do # some code done

5
ฉันไม่สามารถเปิดใช้งานหรือปิดใช้งานบริการผู้ใช้: ไม่สามารถดำเนินการได้: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
ฉันต้องการดีบัก / ทดสอบโปรแกรมใน eclipse ที่ใช้เซิร์ฟเวอร์ Redis ดังนั้นฉันตัดสินใจที่จะเปลี่ยนเซิร์ฟเวอร์เป็นบริการผู้ใช้เพื่อให้มีสิทธิ์ในการใช้งาน สิ่งที่รบกวนฉันคือฉันสามารถเริ่มหรือหยุดบริการ แต่ไม่สามารถเปิด / ปิดใช้งานได้ ข้อผิดพลาดที่ฉันได้รับคือ: Failed to execute operation: No such file or directory ต้นฉบับ / usr / lib / systemd / ระบบ: [Unit] Description=Advanced key-value store After=network.target [Service] User=arkos ExecStart=/usr/bin/redis-server /etc/arkos/arkos-redis.conf ExecStop=/usr/bin/redis-cli shutdown [Install] WantedBy=multi-user.target แก้ไขและย้ายไปที่ / usr / lib / systemd …

1
ยูนิตตัวจับเวลา systemd ข้ามการทำงานครั้งถัดไปหรือไม่ถ้ากระบวนการยังไม่เสร็จ
ฉันต้องการใช้ systemd เพื่อเรียกใช้คำสั่งทุก 5 นาที อย่างไรก็ตามมีความเสี่ยงที่บางครั้งงานอาจใช้เวลานานกว่า 5 นาทีในการทำงาน ณ จุดนั้น systemd จะเริ่มต้นอินสแตนซ์ที่สองของคำสั่งเช่นฉันจะจบลงด้วย 2 กระบวนการทำงาน? เป็นไปได้ไหมที่จะบอกให้ systemd ไม่เริ่มกระบวนการที่สองหากกระบวนการแรกยังไม่เสร็จ? ถ้าไม่เป็นเช่นนั้น หมายเหตุ: ฉันหวังว่าคำตอบคือ "นั่นเป็นพฤติกรรมเริ่มต้นมันไม่ได้บันทึกไว้" หากเป็นกรณีนี้มีใครช่วยบอกฉันถึงข้อบกพร่องของเอกสารได้หรือไม่? หมายเหตุ: Cron มีปัญหาที่คล้ายกันซึ่งจะกล่าวถึงใน/unix//a/173928/11244 ฉันกำลังมองหาระบบที่เทียบเท่า
18 cron  systemd 

2
NFS: mount.nfs: ไม่รองรับโปรโตคอล
ฉันต้องการติดตั้งส่วนแบ่ง NFS ของ Zyxel NSA310s NAS Showmount ที่เรียกใช้บนเครื่องไคลเอ็นต์แสดงการแบ่งใช้: $ showmount 10.0.0.100 -e Export list for 10.0.0.100: /i-data/7fd943bf/nfs/zyxelNFS * ลูกค้า / etc / fstab มีบรรทัด: 10.0.0.100:/i-data/7fd943bf/nfs/zyxelNFS /media/nasNFS nfs rw 0 0 แต่การติดตั้งไม่ทำงาน: sudo mount /media/nasNFS/ -v mount.nfs: timeout set for Mon May 25 17:34:46 2015 mount.nfs: trying text-based options 'vers=4,addr=10.0.0.100,clientaddr=10.0.0.2' mount.nfs: …
18 mount  nfs  fstab 

2
การใช้งานจริงของไฟล์ / etc / Networks
การใช้งานจริงของ/etc/networksไฟล์คืออะไร? อย่างที่ฉันเข้าใจใครสามารถให้ชื่อกับเครือข่ายในไฟล์นี้ ตัวอย่างเช่น: root@fw-test:~# cat /etc/networks default 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0 google-dns 8.8.4.4 root@fw-test:~# อย่างไรก็ตามถ้าฉันพยายามใช้ชื่อเครือข่ายนี้เช่นในipยูทิลิตี้มันไม่ทำงาน: root@fw-test:~# ip route add google-dns via 104.236.63.1 dev eth0 Error: an inet prefix is expected rather than "google-dns". root@fw-test:~# ip route add 8.8.4.4 via 104.236.64.1 dev eth0 root@fw-test:~# การใช้งานจริงของ/etc/networksไฟล์คืออะไร?

2
พร็อกซี (nginx) แสดงข้อผิดพลาดของเกตเวย์ไม่ดี
ฉันมีบริการ (รีจิสทรีนักเทียบท่า) ที่วิ่งบนport 5000ผมได้ติดตั้ง Nginx เพื่อเปลี่ยนเส้นทาง http การร้องขอจากไป8080 5000ถ้าฉันทำ curl ให้localhost:5000ใช้งานได้ แต่เมื่อฉันทำ curl กับlocalhost:8080ฉันฉันจะได้รับข้อผิดพลาดของเกตเวย์ที่ไม่ดี ไฟล์กำหนดค่า nginx: upstream docker-registry { server localhost:5000; } server { listen 8080; server_name registry.mydomain.com; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 0; chunked_transfer_encoding on; location / { proxy_pass http://docker-registry; } location /_ping { auth_basic off; proxy_pass …
18 proxy  nginx  gateway 

4
tar แตกในไดเรกทอรีที่มีชื่อฐานเดียวกันหรือไม่
ผมมีไฟล์ ziped myArchive123.tar.gzเช่น ข้างในมีโฟลเดอร์เหมือนhelloWorld ถ้าฉันแยกมัน: tar -xf myArchive123.tar.gzฉันได้รับhelloWorldโฟลเดอร์: ls myArchive123.tar.gz helloWorld ฉันต้องการให้ผลลัพธ์เป็นชื่อเดียวกับชื่อไฟล์ลบด้วยนามสกุล. tar.gz เช่น: tar <magic paramaters> myArchive123.tar.gz ls myArchive123.tar.gz myArchive123 cd myArchive123 ls helloWorld สามารถทำได้หรือไม่ ฉันไม่เคยรู้ว่ามีอะไรอยู่ในคลัง อาจเป็นโฟลเดอร์ได้หลายไฟล์ ฉันจะโอเคกับเครื่องมืออื่นถ้า tar ไม่สามารถทำได้ ฉันจะโอเคกับฟอร์มที่ยาวขึ้นซึ่งสามารถเปลี่ยนเป็นสคริปต์ได้ แก้ไข ในขณะที่ฉันแฮ็คสคริปต์ที่ดูเหมือนว่าจะทำให้งานเสร็จ (ดูคำตอบที่โพสต์ของฉันด้านล่าง) หากสามารถปรับปรุงได้โปรดโพสต์ความคิดเห็น / คำตอบเพิ่มเติม สิ่งสำคัญคือมันควรจะบรรจุลงในหนึ่งซับเหมือน: extract <file>
18 tar 

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