Unix & Linux

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

11
ฉันจะรับชื่อระบบปฏิบัติการได้อย่างน่าเชื่อถือได้อย่างไร
ว่าฉันเข้าสู่ระบบระยะไกลฉันจะรู้ได้อย่างไรว่ามันกำลังทำงานอยู่? ใน Linuxes ที่ทันสมัยที่สุด (Linuces?) คุณมีlsb_releaseคำสั่ง: $ lsb_release -ic Distributor ID: LinuxMint Codename: debian /etc/lsb-releaseซึ่งเท่าที่ผมสามารถบอกได้เพียงแค่ให้ข้อมูลเช่นเดียวกับ เกิดอะไรขึ้นถ้าไฟล์นั้นไม่มีอยู่? ฉันดูเหมือนจะจำได้ว่าlsb_releaseคำสั่งนั้นค่อนข้างใหม่ดังนั้นถ้าฉันต้องใช้ระบบปฏิบัติการของระบบเก่า ในกรณีใด ๆlsbย่อมาLinux Standard Baseดังนั้นผมสมมติว่ามันจะไม่ทำงานบนลินุกซ์ที่ไม่ใช่ Unices เท่าที่ฉันรู้ไม่มีวิธีรับข้อมูลนี้จากunameดังนั้นฉันจะได้รับสิ่งนี้ในระบบที่ไม่ได้ใช้lsb_releaseอย่างไร
69 linux  distros 

6
วิธีตัดหลายช่องว่างให้เป็นหนึ่งเดียวโดยใช้ sed?
sedบน AIX ไม่ได้ทำในสิ่งที่ฉันคิดว่าควรจะเป็น ฉันพยายามแทนที่ช่องว่างหลายช่องด้วยช่องว่างเดียวในเอาต์พุตของ IOSTAT: # iostat System configuration: lcpu=4 drives=8 paths=2 vdisks=0 tty: tin tout avg-cpu: % user % sys % idle % iowait 0.2 31.8 9.7 4.9 82.9 2.5 Disks: % tm_act Kbps tps Kb_read Kb_wrtn hdisk9 0.2 54.2 1.1 1073456960 436765896 hdisk7 0.2 54.1 1.1 1070600212 435678280 …

8
ฉันจะทำให้ iconv แทนที่ไฟล์อินพุตด้วยเอาต์พุตที่ถูกแปลงได้อย่างไร?
ฉันมีสคริปต์ทุบตีซึ่งระบุผ่านทุกไฟล์ * .php ในไดเรกทอรีและนำiconvไปใช้กับมัน สิ่งนี้ได้รับผลลัพธ์ใน STDOUT เนื่องจากการเพิ่ม-oพารามิเตอร์ (จากประสบการณ์ของฉัน) จริง ๆ แล้วเขียนไฟล์เปล่าก่อนที่จะเกิดการแปลงฉันจะปรับสคริปต์ของฉันเพื่อให้เกิดการแปลงจากนั้นจึงเขียนทับไฟล์อินพุต for file in *.php do iconv -f cp1251 -t utf8 "$file" done

6
ฉันจะตรวจสอบได้อย่างไรว่าเชลล์ควบคุมจาก SSH
ฉันต้องการตรวจจับจากเชลล์สคริปต์ (โดยเฉพาะอย่างยิ่ง. zshrc) หากมีการควบคุมผ่าน SSH ฉันลองตัวแปร HOST แต่มักจะเป็นชื่อของคอมพิวเตอร์ที่ใช้เชลล์อยู่เสมอ ฉันสามารถเข้าถึงชื่อโฮสต์ที่มาจากเซสชัน SSH ได้หรือไม่ การเปรียบเทียบทั้งสองจะช่วยแก้ปัญหาของฉัน ทุกครั้งที่ฉันเข้าสู่ระบบจะมีข้อความระบุเวลาเข้าสู่ระบบและโฮสต์ล่าสุด: Last login: Fri Mar 18 23:07:28 CET 2011 from max on pts/1 Last login: Fri Mar 18 23:11:56 2011 from max นี่หมายความว่าเซิร์ฟเวอร์มีข้อมูลนี้
69 ssh  shell-script  zsh 


12
ฉันจะตรวจสอบว่ามีตัวแปรอยู่ในคำสั่ง 'if' ได้อย่างไร?
ฉันต้องการตรวจสอบการมีอยู่ของตัวแปรในifคำสั่ง สิ่งที่มีผลต่อ: if [ -v $somevar ] then echo "Variable somevar exists!" else echo "Variable somevar does not exist!" และคำถามที่ใกล้เคียงที่สุดคือคำถามนี้ซึ่งไม่ได้ตอบคำถามของฉัน
69 shell  variable  test 

3
วิธีแทรกข้อความหลังสตริงที่ต้องการในไฟล์ได้อย่างไร?
ตอนนี้ฉันกำลังใช้echo "Hello World" >> file.txtต่อท้ายข้อความในไฟล์ แต่ฉันต้องเพิ่มข้อความด้านล่างสตริงที่แน่นอนสมมติว่า "[ตัวเลือก]" มันเป็นไปได้ด้วยsedหรือไม่ เช่น: ใส่ไฟล์ Some text Random [option] Some stuff ไฟล์ที่ส่งออก Some text Random [option] *inserted text* Some stuff

9
คอมไพล์ดึงจากระยะไกล แต่ไม่มีการเรียกอ้างอิงดังกล่าว
ฉันมีกระจกคอมไพล์ในดิสก์ของฉันและเมื่อฉันต้องการอัปเดต repo ด้วย git pull มันทำให้ฉันเกิดข้อผิดพลาด: Your configuration specifies to merge with the ref '3.5/master' from the remote, but no such ref was fetched. มันยังให้ฉัน: 1ce6dac..a5ab7de 3.4/bfq -> origin/3.4/bfq fa52ab1..f5d387e 3.4/master -> origin/3.4/master 398cc33..1c3000a 3.4/upstream-updates -> origin/3.4/upstream-updates d01630e..6b612f7 3.7/master -> origin/3.7/master 491e78a..f49f47f 3.7/misc -> origin/3.7/misc 5b7be63..356d8c6 3.7/upstream-updates -> origin/3.7/upstream-updates 636753a..027c1f3 …
69 git 

1
ไฟล์แพคเกจ Fedora ใดที่เป็นของตัวเอง?
ในตระกูล Debian ของ OSes dpkg --search /bin/lsให้: coreutils: /bin/ls นั่นคือไฟล์/bin/lsเป็นแพคเกจ Debian ชื่อcoreutils (ดูโพสต์นี้ถ้าคุณสนใจในแพ็คเกจที่มีไฟล์ที่ไม่ได้ติดตั้งไว้) เทียบเท่ากับ Fedora คืออะไร?

4
จะพิมพ์เฉพาะค่าซ้ำซ้อนจากไฟล์ข้อความได้อย่างไร
สมมติว่ามีคอลัมน์ของค่าตัวเลขดังนี้: file1: 1 2 3 3 3 4 4 4 5 6 ฉันต้องการผลลัพธ์: 3 4 นั่นคือมีเพียงบรรทัดที่ซ้ำกัน มีเครื่องมือบรรทัดคำสั่งเพื่อค้นหาสิ่งนี้ใน Linux? (หมายเหตุ: ค่าจะถูกจัดเรียงเป็นตัวเลข)

3
curl ป้องกันรหัสผ่านไม่ให้ปรากฏในเอาต์พุต ps ได้อย่างไร
ฉันสังเกตเห็นเมื่อไม่นานมานี้ว่าชื่อผู้ใช้และรหัสผ่านที่กำหนดให้curlเป็นอาร์กิวเมนต์บรรทัดคำสั่งไม่ปรากฏในpsผลลัพธ์ (แม้ว่าแน่นอนว่าพวกเขาอาจปรากฏในประวัติทุบตีของคุณ) /proc/PID/cmdlineเขาก็จะไม่ปรากฏใน (ความยาวของอาร์กิวเมนต์ชื่อผู้ใช้ / รหัสผ่านรวมกันสามารถได้รับแม้ว่า) การสาธิตด้านล่าง: [root@localhost ~]# nc -l 80 & [1] 3342 [root@localhost ~]# curl -u iamsam:samiam localhost & [2] 3343 [root@localhost ~]# GET / HTTP/1.1 Authorization: Basic aWFtc2FtOnNhbWlhbQ== User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.15.3 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 Host: localhost Accept: */* [1]+ Stopped nc -l 80 [root@localhost …

5
มีวิธีอ่านองค์ประกอบสุดท้ายของอาร์เรย์ที่มี bash หรือไม่?
ถ้าฉันมีอาร์เรย์ที่มี 5 องค์ประกอบตัวอย่างเช่น: [a][b][c][d][e] ใช้echo ${myarray[4]}ฉันสามารถดูสิ่งที่มันถือ แต่ถ้าฉันไม่ทราบจำนวนองค์ประกอบในอาร์เรย์ที่กำหนดล่ะ มีวิธีอ่านองค์ประกอบสุดท้ายของอาร์เรย์ความยาวที่ไม่รู้จักหรือไม่? เช่นองค์ประกอบแรกอ่านจากขวาไปซ้ายสำหรับอาร์เรย์ใด ๆ ฉันต้องการทราบวิธีการทำเช่นนี้ในทุบตี
68 bash  array 

6
แสดงพอร์ตที่กระบวนการ PID กำลังฟัง (ควรใช้เครื่องมือ iproute2) หรือไม่
ฉันกำลังค้นหารายการพอร์ตทั้งหมดที่ PID กำลังฟังอยู่ คุณจะแนะนำอย่างไรให้ฉันได้รับข้อมูลประเภทนี้เกี่ยวกับกระบวนการ

3
shellshock สามารถใช้ประโยชน์จาก SSH ได้อย่างไร
เห็นได้ชัดว่า shellshock Bash exploit CVE-2014-6271สามารถใช้ประโยชน์ผ่านเครือข่ายผ่าน SSH ฉันสามารถจินตนาการว่าการหาประโยชน์จะทำงานผ่าน Apache / CGI แต่ฉันไม่สามารถจินตนาการได้ว่าจะใช้ SSH อย่างไร ใครช่วยกรุณายกตัวอย่างว่า SSH จะถูกเอารัดเอาเปรียบได้อย่างไรและระบบจะทำอันตรายอะไรได้บ้าง? ชี้แจง AFAIU ผู้ใช้ที่ผ่านการตรวจสอบแล้วเท่านั้นที่สามารถใช้ประโยชน์จากช่องโหว่นี้ผ่าน SSH การใช้ประโยชน์นี้มีประโยชน์อะไรสำหรับใครบางคนที่สามารถเข้าถึงระบบที่ถูกกฎหมายได้? ฉันหมายความว่าการหาประโยชน์นี้ไม่มีการเพิ่มระดับสิทธิ์ (เขาไม่สามารถกลายเป็นรูตได้) ดังนั้นเขาจึงไม่สามารถทำอะไรได้มากกว่าที่เขาทำได้หลังจากเพียงเข้าสู่ระบบอย่างถูกต้องผ่าน SSH
68 bash  ssh  shellshock 

5
ทำความเข้าใจเกี่ยวกับสิทธิ์ UNIX และประเภทไฟล์
ฉันไม่เคยได้chmodทำงานมาจนถึงทุกวันนี้ ฉันทำตามบทช่วยสอนที่อธิบายเรื่องสำคัญให้ฉัน ตัวอย่างเช่นฉันได้อ่านว่าคุณมีกลุ่มสิทธิ์ที่แตกต่างกันสามกลุ่ม: เจ้าของ ( u) กลุ่ม ( g) ทุกคน ( o) จากสามกลุ่มนี้ฉันรู้แล้วว่า: หากผู้ใช้เป็นเจ้าของไฟล์สิทธิ์ของผู้ใช้จะกำหนดการเข้าถึง หากกลุ่มของไฟล์เหมือนกันกับกลุ่มของผู้ใช้สิทธิ์กลุ่มจะกำหนดการเข้าถึง หากผู้ใช้ไม่ใช่เจ้าของไฟล์และไม่ได้อยู่ในกลุ่มจะมีการใช้สิทธิ์อื่น ๆ ฉันได้เรียนรู้ด้วยว่าคุณได้รับอนุญาตดังต่อไปนี้: อ่าน ( r) เขียน ( w) ดำเนินการ ( x) ฉันสร้างไดเรกทอรีเพื่อทดสอบความรู้ที่ได้มาใหม่: mkdir test จากนั้นฉันทำแบบทดสอบ: chmod u+rwx test/ # drwx------ chmod g+rx test/ # drwxr-x--- chmod u-x test/ # drw-r-x--- หลังจากหลอกไประยะหนึ่งฉันคิดว่าในที่สุดฉันก็หยุดchmodและวิธีที่คุณตั้งค่าการอนุญาตโดยใช้คำสั่งนี้ แต่... ฉันยังมีคำถามสองสามข้อ: อะไรdที่เริ่มต้นยืน? …
68 linux  permissions  ls  chmod 

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