Unix & Linux

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

4
บีบอัดเนื้อหาของโฟลเดอร์โดยไม่รวมโฟลเดอร์ด้วยตนเอง
ฉันมีไดเรกทอรีfolderที่มีลักษณะเช่นนี้: folder -> root_folder -> some files ฉันต้องการซิปไดเรกทอรีนี้ลงไปzipped_dirฉันลอง: zip -r zipped_dir.zip folder/* แต่นี่จะสร้าง ZIP ที่มีลักษณะดังนี้: zipped_dir -> folder -> root_folder -> some files กล่าวอีกนัยหนึ่งคือมันรวมถึงไดเรกทอรีที่มีเนื้อหาที่ฉันต้องการซิป ฉันจะแยกไดเรกทอรีหลักนี้ออกจาก ZIP โดยไม่ย้ายอะไรได้อย่างไร IE ฉันต้องการผลลัพธ์สุดท้าย: zipped_dir -> root_folder -> some files
77 command-line  zip 

4
วิธีเลิกทำ `set -x`
ฉันพิมพ์set -xใน terminal ตอนนี้เทอร์มินัลยังคงพิมพ์คำสั่งล่าสุดที่ทำงานอยู่ด้านบนของผลลัพธ์ของฉันดังนั้นคำสั่ง ~]$echo "this is what I see" ผลตอบแทน + echo 'this is what I see' this is what I see ไม่มี man page สำหรับsetฉันจะset -xปิดได้อย่างไร
77 shell 

8
/ usr / sbin / nologin เป็นเชลล์ล็อกอินให้บริการเพื่อความปลอดภัยหรือไม่
ใน/etc/passwdไฟล์ของฉันฉันจะเห็นว่าwww-dataผู้ใช้ที่ Apache ใช้รวมถึงผู้ใช้ระบบทุกประเภทมีเปลือกล็อกอิน/usr/sbin/nologinหรืออย่างใดอย่างหนึ่ง /bin/falseตัวอย่างเช่นนี่คือการเลือกบรรทัด: daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin games:x:5:60:games:/usr/games:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin syslog:x:101:104::/home/syslog:/bin/false whoopsie:x:109:116::/nonexistent:/bin/false mark:x:1000:1000:mark,,,:/home/mark:/bin/bash ดังนั้นหากฉันพยายามที่จะสลับไปยังผู้ใช้เหล่านี้ (ซึ่งบางครั้งฉันต้องการที่จะทำเพื่อตรวจสอบความเข้าใจของฉันเกี่ยวกับการอนุญาตของพวกเขาและสิ่งที่อาจมีเหตุผลอื่นที่มีเหตุผลอย่างน้อยครึ่งทาง) ฉันล้มเหลว: mark@lunchbox:~$ sudo su www-data This account is currently not available. mark@lunchbox:~$ sudo su syslog mark@lunchbox:~$ แน่นอนว่ามันไม่สะดวกนักเพราะฉันยังสามารถเปิดตัวเชลล์สำหรับพวกเขาผ่านวิธีการเช่นนี้: mark@lunchbox:~$ sudo -u www-data /bin/bash www-data@lunchbox:~$ แต่นั่นทำให้ฉันสงสัยว่าจุดประสงค์อะไรที่จะให้บริการโดยการปฏิเสธผู้ใช้เหล่านี้เข้าสู่ระบบเชลล์ เมื่อมองไปรอบ ๆ อินเทอร์เน็ตเพื่อดูคำอธิบายหลาย ๆ คนอ้างว่าสิ่งนี้เกี่ยวข้องกับความปลอดภัยและทุกคนก็เห็นด้วยว่าเป็นความคิดที่ดีที่จะเปลี่ยนเชลล์ล็อกอินของผู้ใช้เหล่านี้ นี่คือชุดของคำพูด: การตั้งค่าเชลล์ของผู้ใช้ Apache ให้เป็นสิ่งที่ไม่ใช่แบบอินเทอร์แอคทีฟโดยทั่วไปแล้วเป็นวิธีปฏิบัติด้านความปลอดภัยที่ดี (จริงๆแล้วผู้ใช้บริการทุกคนที่ไม่จำเป็นต้องเข้าสู่ระบบแบบโต้ตอบควรตั้งค่าเชลล์ของพวกเขา - https://serverfault.com/a/559315/147556 …
77 shell  security  users  login 

4
swapoff นั้นจะช้าได้อย่างไร?
อย่างใดฉันเกิดขึ้นเพื่อสลับหน่วยความจำ 14 GB หลังจากฆ่าผู้กระทำความผิดฉันมีหน่วยความจำว่างอีกครั้งดังนั้นฉันจึงคิดว่าฉันสามารถนำข้อมูลสำคัญอีกครั้ง ดังนั้นด้วยการใช้ 5 GB จาก 32 GB และใช้พื้นที่ swap 14 GB ฉันจึงวิ่งswapoff -a.... และ 4 ชั่วโมงต่อมาประมาณครึ่งหนึ่งของงานก็เสร็จ ซึ่งหมายความว่าน้อยกว่า 1 MB / s ในขณะที่ฉันสามารถคัดลอก 200 MB / s swap ของฉันถูกเข้ารหัส แต่เช่นเดียวกับทุกพาร์ติชันปกติและด้วยaes-niมันทำให้ไม่มีโหลดซีพียูที่สังเกตได้ (และการเติมพื้นที่สว็อปใช้เวลาเพียงไม่กี่นาที) ฉันเห็นว่าไม่มีเหตุผลพิเศษในการเพิ่มประสิทธิภาพswapoffแต่ฉันสงสัยว่ามันจะช้าขนาดนั้นได้อย่างไร เพียงแค่เพิ่มข้อมูลเพิ่มเติม: หน่วยความจำหลักของฉันคือ 32 GB และฉันมีพื้นที่สว็อป swap ขนาด 32 GB ในแต่ละฮาร์ดดิส 4 ตัว (แน่นอนว่า overkill แต่ใครสนใจล่ะ) พื้นที่สว็อปทั้งหมดสามารถ …
77 swap 

1
จุดประสงค์ของคำหลัก "ทำ" ใน Bash สำหรับลูปคืออะไร
วัตถุประสงค์ของdoคำหลักในforไวยากรณ์วนซ้ำคืออะไร สำหรับฉันมันรู้สึกซ้ำซ้อน for i in `seq 1 2`; do echo "hi"; done ทำไมไวยากรณ์ไม่เป็นแบบนี้ for i in `seq 1 2`; echo "hi"; done ฉันแน่ใจว่ามันไม่กรอกวัตถุประสงค์ ฉันแค่ต้องการเรียนรู้
76 bash  shell  for 

1
จัดทำ cd ตามลิงก์สัญลักษณ์
ฉันติดตั้งรหัสของฉันเป็น sshfs ในโฮมไดเร็กตอรี่ของฉัน, แต่ลำดับชั้นนั้นยากต่อการจดจำ, ดังนั้นฉันจึงสร้าง symlink ในโฮมไดเร็กตอรี่ของฉันซึ่งนำไปสู่ไดเรกทอรีนั้น. มีวิธีที่เมื่อฉัน cd ไปที่ลิงค์สัญลักษณ์แทนที่จะ cding ไปที่ลิงก์สัญลักษณ์จริงจะ cd ไปที่ไดเรกทอรีนั้นหรือไม่ หากคำถามไม่ชัดเจนนี่คือตัวอย่างของสิ่งที่ฉันกำลังมองหา: foo@foo:~$ ls -l lrwxrwxrwx 1 foo foo 5 2012-11-14 08:20 foo -> bar/bar foo@foo:~$ cd foo foo@foo:~/bar/bar/$

8
จะปิดการใช้งาน SSLv3 ใน Apache ได้อย่างไร
ดูเหมือนว่าทุกคนกำลังพูดถึงช่องโหว่ POODLEในวันนี้ และทุกคนแนะนำให้ปิดใช้งาน SSLv3 ใน Apache โดยใช้คำสั่งกำหนดค่าต่อไปนี้: SSLProtocol All -SSLv2 -SSLv3 แทนค่าเริ่มต้น SSLProtocol All -SSLv2 ฉันทำไปแล้วและไม่มีความสุข - หลังจากการทดสอบซ้ำ ๆ ด้วยเครื่องมือต่าง ๆ ( นี่คือวิธีที่รวดเร็ว ) ฉันพบว่า SSLv3 ได้รับการยอมรับอย่างมีความสุขจากเซิร์ฟเวอร์ของฉัน ใช่ฉันรีสตาร์ท Apache แล้ว ใช่ฉันทำการวนซ้ำgrepในไฟล์การกำหนดค่าทั้งหมดและไม่มีการแทนที่ใด ๆ และไม่ฉันไม่ได้ใช้ Apache รุ่นโบราณบางตัว: [root@server ~]# apachectl -v Server version: Apache/2.2.15 (Unix) Server built: Jul 23 2014 14:17:29 แล้วอะไรล่ะ …
76 ssl  apache-httpd 

1
ทำไมนิพจน์ปกติของฉันทำงานใน X แต่ไม่ใช่ใน Y
ฉันเขียนนิพจน์ปกติซึ่งทำงานได้ดีในบางโปรแกรม (grep, sed, awk, perl, python, ruby, ksh, bash, zsh, หา, emacs, vi, vim, gedit, …) แต่เมื่อฉันใช้มันในโปรแกรมอื่น (หรือตัวแปร unix ที่แตกต่างกัน) มันหยุดจับคู่ ทำไม?


6
วิธีรับรหัสสำหรับ xmodmap
ฉันพยายามใช้xmodmapเพื่อทำการแมปใหม่Alt/ Superแป้นบนแป้นพิมพ์ Dell L100 และมีปัญหาในการรับรหัส ตัวอย่างเช่นการใช้xevไม่ได้ให้รหัสกุญแจแก่ฉันAlt FocusOut event, serial 36, synthetic NO, window 0x4a00001, mode NotifyGrab, detail NotifyAncestor FocusIn event, serial 36, synthetic NO, window 0x4a00001, mode NotifyUngrab, detail NotifyAncestor KeymapNotify event, serial 36, synthetic NO, window 0x0, keys: 122 0 0 0 0 0 0 0 0 0 0 …

9
แพคเกจซอฟต์แวร์ที่ติดตั้งใดใช้พื้นที่ดิสก์มากที่สุดใน Debian
พื้นที่ดิสก์บนพาร์ติชันรากของฉันใกล้หมดดังนั้นฉันต้องการลบบางแอปพลิเคชันออกจากระบบ ฉันจะดูแพคเกจซอฟต์แวร์ที่ใช้พื้นที่ดิสก์มากที่สุดได้อย่างไร เป็นไปได้ไหมที่จะดูจากaptitude? ฉันรู้เกี่ยวกับการวิเคราะห์พื้นที่ดิสก์ทั่วไปเช่นdfหรือbaobabแต่ฉันต้องการโซลูชันสำหรับแอปพลิเคชันที่ติดตั้ง
76 apt  disk-usage 

3
ช็อตคัต bash คืออะไรที่จะเปลี่ยนเป็นไดเรกทอรีก่อนหน้า?
น่าเศร้าที่ฉันเพิ่งเรียนรู้เกี่ยวกับปีที่แล้วด้วยการสะดุดบนอินเทอร์เน็ตแบบสุ่ม ฉันใช้มันนาน ๆ ครั้งจนฉันลืมเสมอว่ามันคืออะไรตามเวลาที่ฉันต้องการอีกครั้ง คุณจะเปลี่ยนเป็นไดเรกทอรีก่อนหน้าได้อย่างไร
76 bash  shell  cd-command 

14
จะลบไฟล์ทั้งหมดในไดเรกทอรีได้อย่างไร?
ฉันพยายามลบไฟล์และไดเรกทอรีย่อยทั้งหมดในไดเรกทอรี ฉันเคยrm -rลบไฟล์ทั้งหมด แต่ฉันต้องการลบไฟล์และไดเรกทอรีย่อยทั้งหมดยกเว้นไดเรกทอรีบนสุด imagesตัวอย่างเช่นผมมีไดเรกทอรีชั้นนำเช่น มันมีไฟล์header.png, footer.pngและไดเรกทอรีย่อย ตอนนี้ผมต้องการที่จะลบheader.png, footer.pngและไดเรกทอรีย่อย imagesแต่ไม่ ฉันจะทำสิ่งนี้ใน linux ได้อย่างไร

7
วิธีการใช้ `ซึ่ง` กับคำสั่ง aliased?
เช่นเดียวกับผู้ใช้ส่วนใหญ่ฉันมีการตั้งค่านามแฝงมากมายเพื่อให้ชุดธงเริ่มต้นสำหรับโปรแกรมที่ใช้บ่อย ตัวอย่างเช่น alias vim='vim -X' alias grep='grep -E' alias ls='ls -G' ปัญหาคือถ้าฉันต้องการใช้whichเพื่อดูว่าvim/ grep/ ls/ / etc ของฉันมาจากไหนนามแฝงที่ได้รับในทาง: $ which vim vim: aliased to vim -X นี่เป็นผลลัพธ์ที่มีประโยชน์ แต่ไม่ใช่สิ่งที่ฉันกำลังมองหาในกรณีนี้ ฉันรู้ว่าvimเป็นนามแฝงvim -Xแต่ฉันต้องการที่จะรู้ว่า vimมาจากไหน ขาดการกำหนดนามแฝงชั่วคราวเพียงเพื่อให้ฉันสามารถใช้whichกับมันได้หรือไม่มีวิธีง่าย ๆ ที่จะwhich'แกะ' นามแฝงและเรียกใช้ตัวมันเองหรือไม่? แก้ไข:ดูเหมือนว่าwhichเป็นตัวเชลล์ที่มีพฤติกรรมที่แตกต่างกันในแต่ละเชลล์ ใน Bash คำแนะนำของ SiegeX เกี่ยวกับการ--skip-aliasทำงานของธง; อย่างไรก็ตามฉันอยู่ใน Zsh มีสิ่งที่คล้ายกันอยู่ที่นั่นไหม?
76 shell  zsh  alias  which 

15
วิธีการ grep บรรทัดที่ระบุ _and_ บรรทัดแรกของไฟล์?
สมมติว่าเป็น grep อย่างง่ายเช่น: $ psa aux | grep someApp 1000 11634 51.2 0.1 32824 9112 pts/1 SN+ 13:24 7:49 someApp สิ่งนี้จัดเตรียมข้อมูลจำนวนมาก แต่เนื่องจากบรรทัดแรกของคำสั่ง ps หายไปจึงไม่มีบริบทสำหรับข้อมูล ฉันต้องการให้แสดงบรรทัดแรกของ ps ด้วยเช่นกัน: $ psa aux | someMagic someApp USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 1000 11634 51.2 0.1 32824 9112 …

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