Unix & Linux

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

2
มีเครื่องมือในการแสดงแผนที่การจัดสรรระบบไฟล์บน Linux หรือไม่?
ขอให้คุณใช้เครื่องมือจัดระเบียบระบบแฟ้ม (เช่น Norton SpeedDisk หรือ Piriform Defraggler) บน Windows คุณเคยเห็นไดอะแกรมดังกล่าวแล้ว: จะแสดงแผนที่ภาคระบบแฟ้ม, ภาพวาด (สำหรับตัวอย่างนี้โดยเฉพาะ) ส่วน (ชุดของภาค, เพื่อให้พอดีกับพาร์ทิชันทั้งหมดในหน้าจอ) ครอบครองโดยไฟล์ที่ไม่มีการแยกส่วน (ต่อเนื่อง) ในสีน้ำเงิน, ตรงข้ามในภาคสีแดงและฟรี ขาว คุณสามารถคลิกที่ "เซกเตอร์" และดูว่าไฟล์ใด "สด" ที่นั่น มีเครื่องมือสร้างภาพข้อมูลสำหรับ Linux หรือไม่?

1
วิธีตั้งค่าการเปลี่ยนเส้นทางพอร์ตหลังจากเปิดการเชื่อมต่อ ssh แล้ว
ฉันใช้ openssh กับทั้งลูกค้าและเซิร์ฟเวอร์ ฉันรู้ว่าฉันสามารถเรียกใช้ssh -Lหรือssh -Rตั้งค่าการเปลี่ยนเส้นทางพอร์ตผ่าน ssh อย่างไรก็ตามเนื่องจากเป็นพารามิเตอร์บรรทัดคำสั่งการเปลี่ยนเส้นทางดังกล่าวจะต้องเขียนก่อนที่การเชื่อมต่อจะเปิดขึ้น ฉันสามารถตั้งค่าการเปลี่ยนเส้นทางพอร์ตแบบทันทีโดยใช้ไคลเอนต์บรรทัดคำสั่ง ssh ได้หรือไม่ เมื่อฉันใช้PuTTYไคลเอนต์ ssh ฉันสามารถตั้งค่าการเปลี่ยนเส้นทางพอร์ตแบบโต้ตอบได้ในขณะที่การเชื่อมต่อนั้นเปิดขึ้นโดยไม่ปล่อยหรือไม่เชื่อมต่อใหม่ดังนั้นฉันจึงรู้ว่าเป็นไปได้ทางเทคนิค

4
สิ่งที่ทำให้การส่ง init = / path / to / program ไปยังเคอร์เนลไม่ได้เริ่มโปรแกรมในฐานะ init?
ฉันพยายามดีบักสคริปต์ init บนระบบ Linux ฉันพยายามที่จะส่งผ่านinit=/bin/shไปยังเคอร์เนลเพื่อให้เริ่มต้นshโดยไม่ต้องเริ่มต้นinitเพื่อให้ฉันสามารถทำงานผ่านลำดับ init ด้วยตนเอง สิ่งที่ฉันได้พบคือเคอร์เนลเริ่มต้นinitแล้ว ระหว่างการบูทเครื่องข้อความหนึ่งใน printk คือบรรทัดคำสั่งและนั่นแสดงว่าบรรทัดนั้นถูกตั้งค่าอย่างเหมาะสม นอกจากนี้ฉันสามารถส่งผลกระทบต่อสิ่งอื่น ๆ โดยใช้บรรทัดคำสั่งเคอร์เนล ฉันได้ตรวจสอบเพื่อให้แน่ใจว่าเส้นทางนั้นมีอยู่; มันทำ นี่คือระบบ busybox และ init เป็น symlink ไปยัง busybox; ดังนั้นเพื่อให้แน่ใจว่า busybox ไม่ได้ใช้เวทมนตร์แปลก ๆ เมื่อ PID ของมันคือ 1 ฉันก็ลองใช้โปรแกรมที่ไม่ยุ่งในฐานะ init ที่ไม่ทำงานเช่นกัน ดูเหมือนว่าไม่ว่าฉันจะทำอะไร init ก็จะถูกเรียกใช้ สิ่งที่อาจทำให้เกิดพฤติกรรมนี้
13 linux  init 

4
ฉันจะตรวจสอบว่าฉันสามารถเข้าสู่เซิร์ฟเวอร์ผ่านทาง ssh ได้อย่างไร?
ฉันมีรายชื่อเซิร์ฟเวอร์: cat list.txt 10.10.10.10 servera 10.11.10.10 serverb ฉันจะตรวจสอบว่าฉันสามารถเข้าสู่ระบบผ่านทาง ssh ได้อย่างไร? ฉันหมายถึงโดยค่าเริ่มต้นฉันควรจะสามารถเข้าสู่ระบบผ่านทางคีย์ ssh auth .. ดังนั้นในระยะสั้นฉันต้องการวิธีแก้ปัญหาที่เรียงลำดับบรรทัด (เซิร์ฟเวอร์) ใน list.txt ดังนี้: เซิร์ฟเวอร์ที่ฉันสามารถเข้าสู่ระบบผ่านทางคีย์ ssh เซิร์ฟเวอร์ที่ถามรหัสผ่าน (ไม่ทราบรหัสผ่านแน่นอน .. ) เซิร์ฟเวอร์ที่ไม่สามารถเข้าถึงได้
13 bash  ssh 

5
สุ่มสุ่มจำนวนบรรทัดจากไฟล์ข้อมูล
ฉันมีรายการข้อมูลเช่น 12345 23456 67891 -20000 200 600 20 ... สมมติว่าขนาดของชุดข้อมูลนี้ (เส้นเช่นของไฟล์) Nเป็น ฉันต้องการสุ่มวาดmเส้นจากไฟล์ข้อมูลนี้ ดังนั้นผลลัพธ์ควรเป็นสองไฟล์หนึ่งไฟล์เป็นไฟล์ที่รวมmบรรทัดข้อมูลเหล่านี้และอีกไฟล์หนึ่งมีN-mข้อมูลอยู่ด้วย มีวิธีการที่ใช้คำสั่ง Linux หรือไม่

2
ฉันจะกำหนดฟังก์ชันทุบตีใหม่ในแง่ของคำนิยามเก่าได้อย่างไร
มีวิธีใดที่ฉันสามารถกำหนดฟังก์ชันทุบตีใหม่ในแง่ของนิยามเก่าหรือไม่? ยกตัวอย่างเช่นผมต้องการที่จะเพิ่มบล็อกของรหัสต่อไปคำนำของฟังก์ชั่นcommand_not_found_handle (), # Check if $1 is instead a bash variable and print value if it is local VAL=$(eval echo \"\$$1\") if [ -n "$VAL" ] && [ $# -eq 1 ]; then echo "$1=$VAL" return $? fi ขณะนี้มีการกำหนดไว้ใน /etc/profile.d/PackageKit.sh และมีที่มาจากสคริปต์เริ่มต้นระบบ bash ด้วยวิธีนี้ฉันสามารถค้นหาค่าของตัวแปรสภาพแวดล้อมที่พรอมต์คำสั่งเพียงพิมพ์ชื่อตัวแปร (และระบุว่าไม่มีคำสั่งดังกล่าวโดยใช้ชื่อนั้น) เช่น user@hostname ~:$ LANG LANG=en_AU.utf8 …
13 bash  function 

5
ฉันจะรับที่อยู่ของเครื่องท้องถิ่นของฉันได้อย่างไร
ฉันใช้ macbook ที่ชื่อ Lion ในฉันเชื่อมต่อกับเซิร์ฟเวอร์โรงเรียนของฉันด้วยTerminal sshฉันไปที่โฟลเดอร์บนเซิร์ฟเวอร์และมีไฟล์ที่ฉันต้องการคัดลอกไปยังเครื่องของฉัน แต่ฉันไม่รู้ว่าที่อยู่ IP ของเครื่องในท้องถิ่นของฉันคืออะไร ฉันจะรับมันได้อย่างไร ฉันอยู่ในโฟลเดอร์บนเซิร์ฟเวอร์และฉันต้องการคัดลอกread.txtไปยังฮาร์ดไดรฟ์ของเครื่องฉัน ฉันลองแล้วscp ./read.txt [my computer name].local/newRead.txtแต่มันใช้งานไม่ได้
13 ssh  ip  remote  file-copy 

8
วิธีกำหนดต้นเคอร์เนล Linux เพื่อรีบูตเครื่องเมื่อตื่นตระหนก?
คุณสามารถวาง "panic = N" บนบรรทัดคำสั่งเคอร์เนลเพื่อให้ระบบรีบูต N วินาทีหลังจากตื่นตระหนก แต่มีตัวเลือกการกำหนดค่าเพื่อระบุสิ่งนี้ (นอกเหนือจากตัวเลือกบรรทัดคำสั่งเคอร์เนลเริ่มต้น) ก่อนที่บูตบูตจะเข้าสู่การเล่นหรือไม่? ตัวเลือกเคอร์เนลบางอย่างอาจเป็นอย่างไร

2
`ทดสอบ 'และ` [' - ไบนารีต่างกันมีความแตกต่างกันอย่างไร
ผมสังเกตเห็นในขณะที่ตอบคำถามที่ว่าคนอื่นtestและ[เป็นไบนารีแตกต่างกัน แต่[manpage ดึงขึ้นtestมา นอกจากข้อกำหนดสำหรับการจบ]แล้วยังมีความแตกต่างหรือไม่? ถ้าไม่ทำไมพวกเขาแยกไบนารีแทนที่จะถูกเชื่อมโยงกัน? (พวกเขายังสร้างbashภายในและbashไม่แสดงความแตกต่างเช่นกัน)


4
คัดลอกไฟล์ที่ได้รับการป้องกันระหว่างเซิร์ฟเวอร์ในหนึ่งบรรทัด?
ฉันต้องการคัดลอกsquid.confจากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่ง เซิร์ฟเวอร์ไม่ได้พูดคุยกัน ฉันต้องการผ่านเวิร์กสเตชันของฉัน เซิร์ฟเวอร์ทั้งสองมีไฟล์ดังนั้นจึงจะถูกเขียนทับบนเป้าหมาย ไฟล์มี600สิทธิ์และเป็นของ root การเข้าสู่ระบบผ่านทางรูต ssh ถูกปิดการใช้งาน ( PermitRootLogin no) ฉันต้องการที่จะทำมันในบรรทัดเดียวถ้าเป็นไปได้เพราะมันจะเป็นส่วนหนึ่งของคู่มือการติดตั้ง ฉันรู้ว่าต้องทำ ssh source 'tar czpf - -C /etc/squid/ squid.conf' | \ ssh target 'tar xzpf - -C /etc/squid/' เพื่อคัดลอกไฟล์ระหว่างเซิร์ฟเวอร์และสงวนสิทธิ์ อย่างไรก็ตามในกรณีนี้ฉันจะได้รับ "ปฏิเสธสิทธิ์" ฉันก็รู้ว่าฉันสามารถทำได้: ssh -t source 'sudo cat /etc/squid/squid.conf' วิธีนี้-tทำให้ sudo เพื่อขอรหัสผ่านของผู้ดูแลระบบก่อนที่จะส่งออกเนื้อหาของไฟล์ ปัญหาคือฉันไม่รู้วิธีรวมเทคนิคเหล่านั้นเป็นสิ่งที่จะขอรหัสผ่าน sudo บนเซิร์ฟเวอร์แต่ละเครื่องและถ่ายโอนไฟล์ไปยังปลายทาง เป็นไปได้ไหม UPDATE : …

4
ฉันจะเลือกไฟล์เฉพาะในไดเรกทอรีอื่นโดยใช้ bash ได้อย่างไร
ฉันต้องการแสดงรายการ (หรือลบหรือดำเนินการอื่น ๆ ) ในบางไฟล์ในไดเรกทอรีเช่นนี้ $ ls /opt/somedir/ aa bb cc aa.txt bb.txt cc.txt $ ls /opt/somedir/(aa|bb|cc) ## pseudo-bash :p aa bb cc ฉันจะบรรลุสิ่งนี้ได้อย่างไร (โดยไม่ต้อง cd-ing ไปที่ไดเรกทอรีก่อน)

2
ฉันจะติดตั้ง mysql ใหม่ได้อย่างไร
ฉันต้องรีบู๊ตกลางการนำเข้าข้อมูลขนาดใหญ่ ฉันมีเพียงหนึ่งฐานข้อมูล mysql ซึ่งตอนนี้ได้รับความเสียหาย ฉันจะลบ mysql และติดตั้งใหม่ได้อย่างไร ฉันได้ลองapt-get purge mysql-serverแล้วลบ/var/lib/mysql/*และติดตั้งใหม่ แต่apt-getไม่แจ้งให้ฉันสำหรับชื่อรูทและรหัสผ่านหรือสร้าง/var/lib/mysqlไฟล์ขึ้นใหม่ ฉันจะติดตั้งใหม่ได้อย่างไร?
13 linux  ubuntu  apt  mysql 

3
วิธีการตั้งค่ากับดักในฟังก์ชั่นทุบตี?
ฉันสามารถตั้งค่าtrapในสคริปต์ทุบตี แต่ไม่ใช้ฟังก์ชันทุบตี ตัวอย่างเช่นsourceรหัสด้านล่างและเรียกใช้fตอนนี้ลองCtrl+ Cมันไม่ถูกดักจับ! วิธีการตั้งค่าtrapในฟังก์ชั่นทุบตี? 4 trap ctrl_c INT 5 6 ctrl_c () { 7 echo "** Trapped CTRL-C" 8 } 9 10 11 f () { 12 for i in `seq 1 100`; do 13 sleep 1 14 echo -n "." 15 done 16 }
13 bash  trap 

5
ฉันจะรับสถานะ http ของไซต์ในเชลล์สคริปต์ได้อย่างไร
ฉันคิดว่าขดจะทำงาน ฉันเขียนในสคริปต์: #!/bin/sh function test { res=`curl -I $1 | grep HTTP/1.1 | awk {'print $2'}` if [ $res -ne 200 ] then echo "Error $res on $1" fi } test mysite.com test google.com ปัญหาที่นี่ไม่ว่าฉันจะทำอะไรฉันไม่สามารถหยุดพิมพ์ด้านล่างเพื่อ stdout: % Total % Received % Xferd Average Speed Time Time Time Current ฉันต้องการ cronjob …
13 cron  curl  output 

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