Unix & Linux

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

15
คุณจะเลือกการกระจายอย่างไร [ปิด]
ฉันกำลังมองหาการกระจาย Linux (แม้ว่า BSD ยังคงเป็นตัวเลือก) การกระจายบนแล็ปท็อปเครื่องเก่าของฉัน อย่างไรก็ตามฉันไม่แน่ใจว่าจะลุยผ่านตัวเลือกทั้งหมดของฉันได้อย่างไร - การวางจำหน่ายแบบม้วนเทียบกับไม่แจกจ่าย X เทียบกับการกระจาย Y (ฉันส่วนตัวได้ดู Debian, Ubuntu, Fedora, Arch และ OpenSUSE แต่ฉันคิดว่านั่นคือ การตั้งค่าส่วนตัว) และอื่น ๆ พูดตามตรงมันเป็นเรื่องยากที่จะเลือก เมื่อคุณติดตั้งการกระจายคุณจะตัดสินใจเลือกที่คุณต้องการใช้อย่างไร มันเป็นการตั้งค่าส่วนตัว (คุณใช้การกระจายที่คุณชื่นชอบ) หรือมีคำแนะนำบางอย่างเกี่ยวกับการกระจายที่ดีกว่าในงานเฉพาะหรือสำหรับผู้ใช้ที่เฉพาะเจาะจง?

2
รายการบริการทั้งหมดที่มีใน Ubuntu
คำถามนี้คล้ายกับคำถามนี้: รายการบริการที่มี สำหรับกรณีเฉพาะของฉันฉันสงสัยว่ามีคำสั่งเฉพาะให้แสดงรายการบริการทั้งหมดภายใต้ Ubuntu หรือไม่ ฉันเรียกใช้ls /etc/init.dและมันแสดงรายการที่ครอบคลุมสวย แต่บางรายการหายไป ผมไม่เห็นapache2, myslq, gdmและเป็นจำนวนมากทั้งของคนอื่น ๆ แต่บางคนก็หายไป ตัวอย่างหนึ่งคือplexmediaserver(ฉันเพิ่งติดตั้งเซิร์ฟเวอร์เพล็กซ์เมื่อเร็ว ๆ นี้และมีปัญหาในการค้นหาชื่อของบริการ) เพื่อที่จะใช้ถ้อยคำใหม่คำถามนี้ในคำพูดไม่กี่เท่าที่เป็นไปได้: มีวิธีที่จะได้รับรายการเต็มรูปแบบของความเป็นไปของ{x} สำหรับ service {x} status หมายเหตุ: ใช้ Ubuntu 15.04
60 ubuntu  services 

4
เราจะอนุญาตให้ผู้ใช้ที่ไม่ใช่รูทควบคุมบริการ system.d ได้อย่างไร?
ด้วยการsysvinitเป็นsudoersรายการเช่นนี้จะพอเพียง: %webteam cms051=/sbin/service httpd * สิ่งนี้จะช่วยให้คำสั่งเช่น: sudo service httpd status sudo service httpd restart ขณะนี้ด้วยsystemdชื่อบริการเป็นอาร์กิวเมนต์สุดท้าย นั่นคือบริการเริ่มต้นใหม่จะทำกับ: systemctl restart httpd.service โดยธรรมชาติแล้วฉันคิดว่าการกำหนดคำสั่งsystemctl * httpd.serviceจะทำงานได้ แต่นั่นจะอนุญาตให้บางอย่างเช่นsystemctl restart puppet.service httpd.serviceซึ่งไม่ใช่ผลที่ต้องการ เมื่อพิจารณาแล้วสิ่งใดจะเป็นวิธีที่ดีที่สุดที่จะทำให้ผู้ใช้ที่ไม่ใช่รูทสามารถควบคุมsystem.dบริการได้ สิ่งนี้ไม่จำเป็นต้องเป็นsudoers; บางทีการเปลี่ยนแปลงการอนุญาตไฟล์อาจจะเพียงพอหรือไม่

6
เครื่องหมายวงเล็บในคณิตศาสตร์ expr: 3 * (2 + 1)
expr ดูเหมือนจะไม่ชอบวงเล็บ (ใช้ในคณิตศาสตร์เพื่อจัดลำดับความสำคัญผู้ประกอบการที่ชัดเจน): expr 3 * (2 + 1) bash: syntax error near unexpected token `(' วิธีแสดงโอเปอเรเตอร์ที่สำคัญในการทุบตี?

7
การบันทึกการพยายามเข้าถึง SSH
ฉันได้กำหนดค่าเซิร์ฟเวอร์อูบุนตูด้วย openssh เพื่อเชื่อมต่อกับมันและรันคำสั่งจากระบบระยะไกลเช่นโทรศัพท์หรือแล็ปท็อป ปัญหาคือ ... ฉันอาจไม่ใช่คนเดียว มีวิธีที่จะทราบความพยายามในการเข้าสู่ระบบทั้งหมดที่ทำกับเซิร์ฟเวอร์หรือไม่?
60 ssh  logs 

5
วิธีการเรียกใช้คำสั่งที่เกี่ยวข้องกับการเปลี่ยนเส้นทางหรือท่อด้วย sudo?
ฉันกำลังพยายามติดตามสิ่งที่ฉันถือว่าเป็นแนวทางปฏิบัติที่ดีที่สุดในการใช้ sudo แทนบัญชีรูท ฉันกำลังใช้งานไฟล์ concat อย่างง่ายเช่น: sudo echo 'clock_hctosys="YES"' >> /etc/conf.d/hwclock สิ่งนี้ล้มเหลวทางด้านขวาของ ">>" ซึ่งกำลังทำงานในฐานะผู้ใช้ปกติ การเพิ่ม sudos พิเศษก็ล้มเหลวเช่นกัน (ลักษณะการทำงานที่คาดไว้ตั้งแต่การไพพ์ไปยังคำสั่ง sudo และไม่ไปที่ไฟล์) ตัวอย่างเป็นเพียงแค่นั้น แต่มันได้รับการตรวจสอบและทดสอบภายใต้บัญชีรูท

4
จะตรวจสอบว่าผู้ใช้สามารถเข้าถึงไฟล์ที่กำหนดได้อย่างไร?
* การอนุญาตของผู้ใช้ nix นั้นง่ายมาก แต่สิ่งต่าง ๆ อาจยุ่งเหยิงเมื่อคุณต้องคำนึงถึงการเข้าถึงไดเรกทอรีแม่ทั้งหมดก่อนถึงไฟล์ที่กำหนด ฉันจะตรวจสอบได้อย่างไรว่าผู้ใช้มีสิทธิ์เพียงพอหรือไม่ ถ้าไม่เช่นนั้นไดเรกทอรีใดที่ปฏิเสธการเข้าถึง ตัวอย่างเช่นสมมติว่าผู้ใช้และไฟล์joe /long/path/to/file.txtแม้ว่าfile.txtchmoded จะอยู่ที่ 777 โจก็ยังต้องสามารถเข้าถึงได้/long/จากนั้น/long/path/และ/long/path/to/ก่อนหน้านี้ สิ่งที่ฉันต้องการคือวิธีตรวจสอบสิ่งนี้โดยอัตโนมัติ หากjoeไม่มีการเข้าถึงฉันก็อยากจะรู้ว่าเขาถูกปฏิเสธที่ไหน บางทีเขาอาจจะสามารถเข้าถึงแต่ไม่/long//long/path/

3
สังเกตล็อกไฟล์หลายไฟล์ในเอาต์พุตเดียว
มีวิธีง่ายๆในการทำสิ่งต่าง ๆ เช่นtail -f mylogfileแต่มีการเปลี่ยนแปลงมากกว่าหนึ่งไฟล์ที่แสดง (อาจมีการเพิ่มชื่อไฟล์เป็นคำนำหน้าในแต่ละบรรทัด)? หรืออาจเป็นเครื่องมือ GUI ฉันกำลังเรียกใช้ Debian
60 logs  tail 


7
ฉันจะลบรายการที่ซ้ำกันใน. bash_history ของฉันเพื่อรักษาลำดับได้อย่างไร
ฉันสนุกกับการใช้control+rเพื่อค้นหาประวัติคำสั่งของฉันซ้ำ ๆ ฉันพบตัวเลือกที่ดีบางอย่างที่ฉันชอบใช้กับมัน: # ignore duplicate commands, ignore commands starting with a space export HISTCONTROL=erasedups:ignorespace # keep the last 5000 entries export HISTSIZE=5000 # append to the history instead of overwriting (good for multiple connections) shopt -s histappend ปัญหาเดียวสำหรับฉันคือการerasedupsลบรายการที่ซ้ำกันตามลำดับเท่านั้นดังนั้นด้วยคำสั่งสตริงนี้: ls cd ~ ls lsคำสั่งจริงจะถูกบันทึกไว้เป็นครั้งที่สอง ฉันคิดเกี่ยวกับการทำงานเป็นระยะ ๆ ด้วย: cat .bash_history | …

2
เมื่อไหร่ที่เหมาะสำหรับการคัดลอกข้อมูล (หรือเมื่อมีการอ่าน () และเขียน () บางส่วน)
ฉบับย่อ:ในสถานการณ์ใดที่ddปลอดภัยที่จะใช้สำหรับการคัดลอกข้อมูลหมายความว่าปลอดภัยไม่มีความเสี่ยงจากการทุจริตเนื่องจากการอ่านหรือเขียนบางส่วน? รุ่นยาว - บทนำ: ddมักใช้เพื่อคัดลอกข้อมูลโดยเฉพาะจากหรือไปยังอุปกรณ์ ( ตัวอย่าง ) บางครั้งก็นำมาประกอบคุณสมบัติลึกลับของความสามารถในการเข้าถึงอุปกรณ์ในระดับที่ต่ำกว่าเครื่องมืออื่น ๆ (เมื่ออยู่ในความเป็นจริงมันเป็นแฟ้มอุปกรณ์ที่ทำมายากล) - ยังเป็นสิ่งเดียวกับdd if=/dev/sda บางครั้งคิดจะเร็ว แต่สามารถเอาชนะมันในทางปฏิบัติ อย่างไรก็ตามมีคุณสมบัติที่เป็นเอกลักษณ์ที่ทำให้มันมีประโยชน์อย่างแท้จริงบางครั้งcat /dev/sdaddcatdd ปัญหา: ไม่ได้ในความเป็นจริงเช่นเดียวกับdd if=foo of=bar cat <foo >barเมื่อวันที่unices¹ที่สุดทำให้สายเดียวที่จะdd read()(ฉันพบว่าPOSIXคลุมเครือในสิ่งที่ถือเป็นการ "อ่านบล็อกอินพุต" ในdd) หากread()ส่งคืนผลลัพธ์บางส่วน (ซึ่งตาม POSIX และเอกสารอ้างอิงอื่น ๆ จะอนุญาตให้ยกเว้นว่าเอกสารการใช้งานระบุไว้เป็นอย่างอื่น) บล็อกบางส่วนจะถูกคัดลอก write()ว่าปัญหาเดียวกันที่มีอยู่สำหรับ ข้อสังเกต : ในทางปฏิบัติฉันพบว่าddสามารถรับมือกับอุปกรณ์บล็อกและไฟล์ปกติได้ แต่นั่นอาจเป็นเพราะฉันไม่ได้ออกกำลังกายมากนัก เมื่อพูดถึงท่อก็ไม่ยากที่จะใส่ddผิด ตัวอย่างเช่นลองใช้รหัสนี้ : yes | dd of=out bs=1024k count=10 และตรวจสอบขนาดของoutไฟล์ …
60 io  dd 

3
ทำความเข้าใจกับ“ IFS = read -r line”
ฉันเข้าใจชัดเจนว่าสามารถเพิ่มค่าให้กับตัวแปรตัวคั่นฟิลด์ภายในได้ ตัวอย่างเช่น: $ IFS=blah $ echo "$IFS" blah $ ฉันยังเข้าใจว่าread -r lineจะบันทึกข้อมูลจากstdinไปยังชื่อตัวแปรline: $ read -r line <<< blah $ echo "$line" blah $ อย่างไรก็ตามคำสั่งสามารถกำหนดค่าตัวแปรได้อย่างไร และเก็บข้อมูลจากstdinตัวแปรแรกlineแล้วให้ค่าของlineถึงIFSหรือไม่?

8
วิธีการลบเส้นด้วยเสียงสะท้อน?
ฉันรู้ว่าฉันสามารถลบสามตัวอักษรสุดท้ายด้วย: echo -ne '\b\b\b' แต่ฉันจะลบบรรทัดทั้งหมดได้อย่างไร ฉันหมายความว่าฉันไม่ต้องการใช้: echo -ne '\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b' ... ฯลฯ ... เพื่อลบเส้นยาว


3
ด้วย BASH หลังจาก“ เลื่อน” ขึ้นไปยังคำสั่งก่อนหน้า…จะเลื่อนไปยังขั้นถัดไปในประวัติศาสตร์นี้ได้อย่างไร?
ขออภัยชื่อนี้ไม่ได้หรูหราที่สุดที่ฉันเคยคิด แต่ฉันคิดว่าผู้คนจำนวนมากจะสงสัยในสิ่งนี้และคำถามของฉันอาจจะเป็นคนหลอกลวง ... ทั้งหมดที่ฉันสามารถพูดได้คือฉันไม่ได้พบมัน เมื่อฉันพูดว่า "การเลื่อน" ขึ้นฉันหมายถึงการใช้ปุ่ม "ลูกศรขึ้น" บนแป้นพิมพ์ซึ่งเห็นได้ชัดว่าคุณเลื่อนขึ้นผ่านประวัติศาสตร์เริ่มต้นที่คำสั่งล่าสุด ดังนั้นคุณจะพบคำสั่งที่อาจ 30 คำสั่งกลับมา ... และคุณเรียกใช้ และจากนั้นคุณต้องการเรียกใช้คำสั่งที่มาหลังจากนั้น ... มีวิธีที่รวดเร็วในการทำเช่นนี้หรือ หรือคนที่พูดภาษา BASH คล่องแคล่วทำเช่นนี้ได้อย่างไร?

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