คุณสมบัติที่ซ่อนอยู่ของ Linux


64

คำตอบ:


52

เพื่อให้ได้ลูกบอลไปฉันพบว่าหน้าจอมีความสำคัญ:

เมื่อหน้าจอถูกเรียกมันจะสร้างหน้าต่างเดียวที่มีเชลล์อยู่ในนั้น (หรือคำสั่งที่ระบุ) จากนั้นจึงออกจากทางของคุณเพื่อให้คุณสามารถใช้โปรแกรมได้ตามปกติ จากนั้นคุณสามารถสร้างหน้าต่างใหม่ (เต็มหน้าจอ) ด้วยโปรแกรมอื่น ๆ ได้ตลอดเวลา (รวมถึงเชลล์เพิ่มเติม) ฆ่าหน้าต่างปัจจุบันดูรายการหน้าต่างที่ใช้งานอยู่เปิดและปิดการบันทึกเอาต์พุตคัดลอกข้อความระหว่าง หน้าต่างดูประวัติการเลื่อนกลับสลับไปมาระหว่างหน้าต่าง ฯลฯ หน้าต่างทั้งหมดจะเรียกใช้โปรแกรมของพวกเขาโดยไม่ขึ้นอยู่กับกันและกัน โปรแกรมยังคงทำงานต่อไปในขณะที่หน้าต่างของพวกเขาไม่สามารถมองเห็นได้และแม้ในขณะที่เซสชันหน้าจอทั้งหมดถูกถอดออกจากเทอร์มินัลผู้ใช้


มีใครที่จะพูดเกี่ยวกับโปรไฟล์หน้าจอที่เปิดตัวด้วยอูบุนตู 9.04? ผมมองไปที่พวกเขาสำหรับบิต แต่ไม่ได้ให้พวกเขามีเวลาพอที่จะสามารถที่จะพูดว่าพวกเขาจะมีประโยชน์จริงหรือเพียงแค่ดูดี
xkcd150

12
พระเจ้าช่วย! หน้าจออีกครั้ง?
setatakahashi

@ xkcd150 พวกมันคล้ายกันมาก แต่ชัยชนะที่ยิ่งใหญ่ที่สุดคือบรรทัดสถานะ มันแสดงหน้าต่างทั้งหมดของคุณพร้อมกับสิ่งต่างๆมากมายเกี่ยวกับเครื่อง
staticsan

และถ้าคุณต้องการรุ่นที่ดีของหน้าจอใช้ tmux;)
คนดี

45

บางทีฉันอาจไม่ใช้สิ่งเหล่านี้ทุกวัน แต่ฉันใช้บ่อยๆ:

  • straceตรวจสอบไฟล์ที่โหลดโดยกระบวนการ
  • htop A ด้านบนดีกว่า
  • mtr ping + traceroute รวมกัน
  • คม / ลิงค์ / w3mในกรณีที่คุณต้องการเรียกดูคอนโซล
  • ettercap ดมกลิ่นเครือข่ายที่ยอดเยี่ยม (ฉันชอบมันมากกว่า wireshark)
  • scripting bash ผู้ดูแลระบบ * nix ทุกคนควรรู้สิ่งนี้
  • ภาษาโปรแกรม สำหรับสิ่งที่ซับซ้อนกว่าอยู่ห่างจาก bash scripting และใช้บางอย่างเช่น python / perl / ruby ​​/ tcl / ... (ฉันใช้ Lisp)
  • ผู้บัญชาการเที่ยงคืนอาจยอดเยี่ยมสำหรับผู้ที่ชอบผู้บัญชาการนอร์ตัน
  • irssiคุณไม่มีทางรู้ว่าเมื่อคุณแค่อยากจะถามอะไรบางอย่างใน IRC
  • wget / curl ดาวน์โหลดข้อมูลจากบรรทัดคำสั่ง
  • scpคัดลอกข้อมูลไปยัง ssh
  • lftp / ncftp ไคลเอนต์ FTP คอนโซลที่ดี (สคริปต์)
  • ไอโซโทปตรวจสอบว่ามีอะไรที่ทำให้ดิสก์คุณเครียด
  • nmapสแกนพอร์ตที่ดี

ฉันจะเพิ่มบนยอดเกินไป
PiL

ทั้งเอกสาร bash TLDP นั้นแย่มาก
adaptr

33

ฉันรู้สึกประหลาดใจที่พบว่าคุณสามารถเรียกใช้แอปพลิเคชัน GUI ระยะไกลผ่าน SSH โดยใช้พารามิเตอร์ "-X" ตัวอย่างเช่น:

# on my machine
$ ssh -X linuxserver
# on remote machine
$ gedit /etc/my.cnf &

หน้าต่าง gedit จะปรากฏขึ้นในเครื่องของฉันแก้ไขไฟล์ "my.cnf" บนเซิร์ฟเวอร์

ฉันสมมติว่านี่ใช้งานได้เฉพาะในกรณีที่เครื่องไคลเอนต์ของคุณมีสภาพแวดล้อม X - กล่าวอีกนัยหนึ่งไม่ใช่ใน Windows แต่มันใช้งานได้ดีบน Mac ของฉัน!


9
การใช้ xming sourceforge.net/projects/xmingคุณสามารถทำให้มันทำงานบน windows ได้เช่นกัน!
xkcd150

3
การส่งต่อ SSH จะทำการเข้ารหัสซึ่งทำให้ทุกอย่างช้าลง หากคุณอยู่บน LAN ที่ปลอดภัยคุณสามารถส่งโปรแกรมจากเดสก์ท็อป Linux เครื่องหนึ่งไปยังอีกเครื่องหนึ่งในคอมพิวเตอร์ X Linux มีประโยชน์มาก ฉันเคยใช้งานภาพยนตร์ผ่าน mplayer เช่นนั้นบนเดสก์ท็อปหลักของฉันซึ่งเสียบเข้ากับ stero ที่ปลายด้านหนึ่งของห้องนั่งเล่น เสียง mplayer จะออกไปเป็นสเตอริโอ แต่ภาพจะไปที่แล็ปท็อปของฉัน (ผ่านอีเธอร์เน็ต) ที่ปลายอีกด้านหนึ่งของห้องเลานจ์ซึ่งเสียบเข้ากับเครื่องฉายข้อมูล ภาพยนตร์ยอดเยี่ยม
Gareth

5
แทนที่จะเพิ่ม -X ในแต่ละครั้งที่คุณสามารถอัปเดต ssh_config ด้วยบรรทัดโฮสต์ที่ตรงกับโฮสต์ภายในและพื้นที่ที่อยู่ของคุณ 'Host .domain.org 192.168 . * 'และเปิดใช้งานตัวเลือก' ForwardX11 ใช่ '
Zoredache

ฉันคุ้นเคยกับการ -Y ไม่เคยเรียนรู้ความแตกต่าง
Notmyfault

-Y คือการส่งต่อ X11 ที่เชื่อถือได้ มันปลอดภัยกว่า -X (การส่งต่อ X11 แบบง่าย) BTW การตั้งค่า sshd เริ่มต้นจำนวนมากจะไม่อนุญาตให้ -X ตอนนี้เพียง -Y หากใช้ -X คุณพบข้อผิดพลาดแปลก ๆ แอปที่ปิดด้วยข้อผิดพลาด "MIT MAGIC COOKIE" ให้ใช้ -Y สรุป: อย่าใช้ -X เพียง -Y
wazoox

33

บ่อยครั้งที่ถูกละเลยมันเป็นเครื่องมือที่มีประโยชน์มาก lsof ให้คุณดูรายการไฟล์ที่เปิดทุกไฟล์ในระบบใคร / อะไรที่กำลังใช้งานอยู่ ฯลฯ

ตัวอย่างเช่น

root@tower:~ # umount /mnt/hardy
umount: /mnt/hardy: device is busy
umount: /mnt/hardy: device is busy
root@tower:~ # lsof | grep /mnt/hardy
bash       5966       root  cwd       DIR      253,2     1024          2 /mnt/hardy
root@tower:~ #

ตอนนี้ฉันเห็นว่าฉันลงชื่อเข้าใช้เชลล์ในเทอร์มินัลอื่นและ / mnt / hardy เป็นไดเรกทอรีการทำงานปัจจุบันของฉัน ดังนั้นฉันสามารถฆ่าเชลล์นั้นหรือไปที่เทอร์มินัลอื่นและออกจากไดเรกทอรีนั้นเพื่อให้สามารถยกเลิกการต่อเชื่อมได้

นั่นเป็นตัวอย่างเล็ก ๆ น้อย ๆ มันมีประโยชน์มากสำหรับการทำความสะอาดการรบกวน 'บอท' เป็นครั้งคราวด้วย ตัวเลือกมีมากมายให้ดูผู้ชายเพื่อดูข้อมูลเพิ่มเติม


2
fuser เป็นอีกหนึ่งเคล็ดลับที่ดีถ้าคุณสนใจเพียงไฟล์เดียวหรือหนึ่งจุดเมานท์
bdonlan

1
ซ่อนเร้นแน่นอน ฉันกำลังมองหาคุณสมบัตินี้สำหรับทุกวัย (ฉันว่า noob)
cgp

lsof เป็นสิ่งที่ยอดเยี่ยมอย่างแท้จริง เมื่อรวมเข้ากับแนวคิด UNIX ของทุกสิ่ง (ดีเกือบ) เป็นไฟล์มันสามารถทำสิ่งที่น่าอัศจรรย์ หลายสิ่งหลายอย่างที่ดูเหมือนเป็นไปไม่ได้ในตอนแรกหรือยากที่จะแก้ไขได้ด้วยผู้ประกอบการออนไลน์ด้วยตัวเลือกบางอย่างของ lsof
ptman

31

หากต้องการเปลี่ยนเป็นไดเรกทอรีสุดท้ายที่คุณอยู่:

cd -

ฉันใช้สิ่งนี้ตลอดเวลา
MathewC

26

Network stack สามารถทำงานได้หลังจากระบบหยุด ผมไม่ทราบว่านี้เป็นปัจจุบันด้วยชุด 2.6.x เมล็ด แต่ในรุ่นเก่าคุณสามารถกำหนดค่าไฟร์วอลล์ / เส้นทางแล้วหยุดระบบได้โดยไม่ต้องปิดเหลือแค่เครือข่ายสแต็คทำงาน นี้จะช่วยให้คุณที่จะทำให้ราคาถูก (ถึงแม้จะคงที่) ไฟร์วอลล์ที่ "ไม่สามารถแฮ็ก" - เพราะไม่มีอะไรที่จะตัดที่ไม่มีโปรแกรมหรือบริการเพียงส่วนเครือข่าย stack ของแพ็คเก็ตเคอร์เนลที่ผ่านไปมา ..


ว้าว. เจ๋งจริงๆ! +1 ฉันจะลองใช้กับเคอร์เนล 2.6 เมื่อฉันมีเวลาว่าง
wzzrd

มันยอดเยี่ยม แต่มันจะไม่ปลอดภัยอย่างไร เคอร์เนลยังคงไม่ทำงานหรือไม่ หรือมันเป็นเคอร์เนลน้อยที่สุด?
cdeszaq

7
"Kernel"? "เคอร์เนล" นี้ที่คุณพูดคืออะไร? เมื่อเข้าสู่โหมดนี้รหัสเดียวที่รันคือ / network stack / ไม่มีการกำหนดเวลางาน, ไม่มี API, รหัส, บริการ, พื้นที่ผู้ใช้, ไม่มีอะไร, zip, nada ... เพียงแค่เสียงเบา ๆ ของแพ็กเก็ตที่สะท้อนผ่านอีเธอร์เน็ต ... คิดว่ามันเป็นอุปกรณ์ฝังตัวที่มีสองฟังก์ชันในชีวิต - ยอมรับ และส่งแพ็คเก็ต ฉันคิดว่าคุณสามารถ "แฮ็ค" สิ่งนี้ได้ในแง่ที่ว่าคุณสามารถลองแพ็คเก็ตผ่านได้ แต่ไม่มีอะไรที่คุณสามารถ / โดยตรง / โจมตีในกองซ้อนได้
Avery Payne

24

ฉันชอบ "ค้นหา" - วิธีที่ง่ายกว่าในการค้นหาไฟล์มากกว่า "ค้นหา" gnarly -name xxxx -print " โปรดทราบว่าคุณต้องใช้คำสั่ง updatedb กับดัชนีไฟล์ของคุณให้ทันสมัย; ดูรายละเอียด man man


4
โชคดีที่ดิสทริบิวชัน distros Linux หลายคนรวมอัปเดตใน cron.daily :-)
Matt Solnit

1
นอกจากนี้ยังเร็วกว่าการค้นหามาก
cgp

มันควรจะชี้ให้เห็นว่าบางคนเห็นว่าเป็นความเสี่ยงด้านความปลอดภัย ที่ถูกกล่าวว่าฉันจะใช้มันตลอดเวลา :-)
baudtack

verion ล่าสุดของการค้นหามีสวิตช์ -i สำหรับกรณีที่ไม่สนใจมีประโยชน์มาก
niXar

และเพื่อความปลอดภัยมีรุ่นค้นหาที่ปลอดภัยซึ่งให้คุณ "ค้นหา" เฉพาะไฟล์ที่ผู้ใช้ที่เข้าสู่ระบบสามารถเห็นได้
Jürgen A. Erhard

19

ฉันพบว่า "ngrep" มีประโยชน์จริง ๆ สำหรับการดีบักรหัสเครือข่ายบนเซิร์ฟเวอร์ระยะไกลโดยไม่ต้องใช้ไฟล์ tcpdump เพื่อวาง:

ngrep -d any -W byline port 80

ตัวอย่างเช่นจะแสดงคำขอและการตอบกลับ HTTP แบบสดของคุณ

อีกสิ่งหนึ่งที่ฉันพบว่ามีประโยชน์บ่อยคือสวิตช์ "-e" เป็น strace:

strace -p <pid> -e trace=open

จะแสดง syscalls ที่เปิดทั้งหมดสำหรับ pid และ

strace -p <pid> -e trace=\!rt_sigprocmask

จะแยกการเรียกไปยัง rt_sigprocmask () ทั้งหมดจากเอาท์พุท (มีประโยชน์สำหรับการดีบักโค้ด RoR ซึ่งดูเหมือนว่าจะทำให้การโทรเหล่านั้นน่ากลัวมากเมื่อสร้างขึ้นเพื่อใช้ pthreads)


ตอนนี้ฉันเริ่มรักลินุกซ์จริงๆ :)
THE

17
apropos

DESCRIPTION หน้าคู่มือแต่ละหน้ามีคำอธิบายสั้น ๆ อยู่ข้างใน apropos ค้นหาคำอธิบายสำหรับอินสแตนซ์ของคำหลัก

gyaresu@debian:~/bin$ apropos ettercap
etter.conf (5)       - Ettercap configuration file
ettercap (8)         - (unknown subject)
ettercap_curses (8)  - (unknown subject)
ettercap_plugins (8) - (unknown subject)

ฉันมักจะใช้man -kแทน แต่ฉันสะกดผิด
mctylr

15

โชคดีที่ฉันต้องการเพียงสองสามครั้ง แต่คีย์ Magic SysRqยังคงเป็นหนึ่งในคุณสมบัติที่ซ่อนอยู่ที่ฉันโปรดปรานตลอดกาล

Alt + + SysRq RSEIUB


1
+1 Magic SysRQ นั้นเป็นทองคำ โปรดจำไว้ว่า 'การเลี้ยงช้างเป็นสิ่งที่น่าเบื่ออย่างเต็มที่' เพื่อเป็นแนวทางในการใช้กุญแจแม้ว่าลำดับจะไม่ได้อยู่ในหิน นี่คือเหตุผลที่ RSEIUB ใช้งานด้านบน: จะซิงค์ข้อมูลกับดิสก์ก่อนที่จะให้คำสั่ง 'ยุติ' และ 'ฆ่า' แทนที่จะเป็นวิธีอื่น คำสั่งที่ถูกต้องเป็นที่ถกเถียงกัน
wzzrd

อุปกรณ์ช่วยหน่วยความจำอื่น: BUSIER (สะกดหลัง)
เหม่ย

13
NAME
 units -- conversion program

DESCRIPTION
 The units program converts quantities expressed in various scales to their 
equivalents in other scales.  The units program can only handle multiplicative
scale changes.  It cannot convert Celsius to Fahrenheit, for example.
It works interactively by prompting the user for input:

     You have: meters
     You want: feet
             * 3.2808399
             / 0.3048

     You have: cm^3
     You want: gallons
             * 0.00026417205
             / 3785.4118

     You have: meters/s
     You want: furlongs/fortnight
             * 6012.8848
             / 0.00016630952

     You have: 1|2 inch
     You want: cm
             * 1.27
             / 0.78740157

12

มันไม่ได้ซ่อนจริงๆ แต่อาจเป็นเช่นนั้นสำหรับคนที่ไม่มีประสบการณ์ แต่ฉันชอบที่จะให้รายชื่อและปล่อยทุบตีพวกเขาอย่างเช่น:

cp arq{,.bak}

ซึ่งเหมือนกับการพิมพ์

cp arq arq.bak

ฉันยังใช้ทางลัดประวัติ (ฉันไม่คิดว่ามันเป็นคำที่ถูกต้อง แต่ ... ) เช่น

!! 

เพื่อทำซ้ำคำสั่งสุดท้ายหรือ

^foo^bar 

เพื่อแทนที่ foo โดยแถบในคำสั่งสุดท้าย


12

ssh-copy-id สำหรับการถ่ายโอนคีย์ ssh วิธีเดิมคือการใส่กุญแจให้กับคีย์ ssh และแม้แต่รุ่นเก่าก็คือการคัดคีย์จากนั้นให้กดคีย์ หากคุณใช้พอร์ต ssh ที่ไม่ได้มาตรฐานสิ่งนี้จะทำเพื่อคุณ

ssh-copy-id -i / path / to / key '-p ชื่อโฮสต์ที่ไม่ใช่มาตรฐาน'

มิฉะนั้น..

ssh-copy-id -i / path / to / key hostname


11

คอนโซลเสมือน คนส่วนใหญ่รู้วิธีใช้ (Ctrl-) Alt-F1 เพื่อไปยังคอนโซลแรก แต่จะเกิดอะไรขึ้นถ้าคุณมีมากกว่า 12 คุณสามารถใช้ Alt-Left และ Alt-Right เพื่อวนไปเรื่อย ๆ :-D


ว้าวเพื่อน ณ จุดนั้นเพียงใช้หน้าจอ hehe :) ฉันมีไว้ใน. screenrc ของฉันเพื่อแสดงทาสก์บาร์ที่ด้านล่างเพื่อให้ฉันรู้ว่าหน้าจอเปิดอยู่
Roy Rico

และคอนโซล 12'th ใดที่ใช้สภาพแวดล้อมเดสก์ท็อป (เช่น gnome)
Behrooz

11

ฉันชอบแพ็คเกจ debian-goodies:

คำอธิบาย: ยูทิลิตี้สไตล์กล่องเครื่องมือขนาดเล็กสำหรับระบบ Debian
 โปรแกรมเหล่านี้ออกแบบมาเพื่อรวมเข้ากับเครื่องมือเชลล์มาตรฐาน
 ขยายเพื่อใช้งานบนระบบบรรจุภัณฑ์ Debian
 .
  dgrep - ค้นหาไฟล์ทั้งหมดในแพ็คเกจที่ระบุสำหรับ regex
  dglob - สร้างรายการชื่อแพคเกจที่ตรงกับรูปแบบ
 .
 สิ่งเหล่านี้รวมอยู่ด้วยเพราะมีประโยชน์และไม่จัดชิดขอบ
 แพ็คเกจของตัวเอง:
 .
  debget - ดึงข้อมูล. deb สำหรับแพคเกจในฐานข้อมูลของ APT
  dpigs - แสดงแพ็คเกจที่ติดตั้งซึ่งใช้พื้นที่มากที่สุด
  debman - ดู man page ได้อย่างง่ายดายจากไบนารี. deb โดยไม่ต้องแยกไฟล์
  debmany - เลือก manpages ของแพ็คเกจที่ติดตั้งหรือถอนการติดตั้ง
  checkrestart - ช่วยในการค้นหาและเริ่มกระบวนการที่ใช้เก่า
                 ไฟล์ที่อัปเกรดแล้ว (เช่นไลบรารี)
  popbugs - แสดงรายการบั๊กที่สำคัญที่กำหนดเองตาม
                 แพ็คเกจที่คุณใช้ (ใช้ข้อมูลการประกวดความนิยม)

และยิ่งไปกว่านั้นซึ่งเป็นเครื่องมือท่อที่ยอดเยี่ยมบนล้อ:

คำอธิบาย: ยูทิลิตี้ยูนิกซ์เพิ่มเติม
 นี่เป็นคอลเลกชันที่เพิ่มขึ้นของเครื่องมือยูนิกซ์ที่ไม่มีใครคิด
 เพื่อเขียนสามสิบปีที่ผ่านมา
 .
 จนถึงตอนนี้มันรวมสาธารณูปโภคต่างๆดังต่อไปนี้:
  - ฟองน้ำ: ดูดซับอินพุตมาตรฐานและเขียนลงไฟล์
  - ifdata: รับข้อมูลอินเตอร์เฟสเครือข่ายโดยไม่ต้องแยกวิเคราะห์เอาต์พุต ifconfig
  - ifne: เรียกใช้โปรแกรมหากอินพุตมาตรฐานไม่ว่างเปล่า
  - vidir: แก้ไขไดเรกทอรีในโปรแกรมแก้ไขข้อความของคุณ
  - vipe: แทรกตัวแก้ไขข้อความในไพพ์
  - ts: อินพุตมาตรฐานการประทับเวลา
  - รวม: รวมบรรทัดในสองไฟล์โดยใช้การดำเนินการบูลีน
  - ฉี่: ทีอินพุตมาตรฐานไปยังท่อ
  - zrun: ยกเลิกการบีบอัดอาร์กิวเมนต์ที่คำสั่งโดยอัตโนมัติ
  - mispipe: ไพพ์สองคำสั่งคืนสถานะทางออกของคำสั่งแรก
  - isutf8: ตรวจสอบว่าไฟล์หรืออินพุตมาตรฐานเป็น utf-8
  - lckdo: รันโปรแกรมด้วยการล็อค
โฮมเพจ: http://kitenet.net/~joey/code/moreutils/

8

"คุณสมบัติ" ที่ยอดเยี่ยมฉันใช้ทุกวันในที่ทำงาน: ความสามารถในการฟัง SSH บนพอร์ต 443 เพื่อให้ฉันสามารถสร้างอุโมงค์ที่ข้ามไฟร์วอลล์ที่ทำงานของฉันทำให้ฉันสามารถเรียกใช้พร็อกซี SOCKS ในพื้นที่ผ่านทาง SSH ไปยังอินเทอร์เน็ตบนเซิร์ฟเวอร์ Linux .

ฉันสามารถเพิกเฉยต่อไฟร์วอลล์องค์กรของฉันได้อย่างสมบูรณ์


3
มันทำให้ฉันหัวเราะหึๆเมื่อคิดถึงคนที่เชื่อว่าคุณสามารถ "ล็อค" เครือข่าย หากปล่อยให้พอร์ตเดียวสำหรับการจราจรที่จะออกไปคุณจะเมา
baudtack

ถ้าพวกเขาเห็นข้อมูล 3GB ไหลผ่านพอร์ต 443 จากคอมพิวเตอร์ของคุณ
Wadih M.

เพิ่มเหล็กไขจุกใน nix และแม้แต่ผู้รับมอบฉันทะ https ก็ไม่เป็นปัญหา !!
Niall Donegan

@ Wadih.M: นี่คือวิธี: ssh ถึง 443 ส่งกลับแพ็กเก็ต udp จากเครื่องรีโมตไปยังพอร์ตอื่นด้วย netcat.send แพ็กเก็ต udp อีกอันจากที่ที่คุณอยู่ไปยังเครื่องรีโมต
Behrooz


8

บางทีหนึ่งในคุณสมบัติที่ยอดเยี่ยมของ Linux ซึ่งต่างจาก Windows ก็คือไม่มีการซ่อนคุณสมบัติใด ๆ ไว้ในการออกแบบ หวังว่าหากคุณลักษณะที่ไม่มีเอกสารใด ๆ มีความสำคัญพอที่จะรู้เกี่ยวกับชุมชนก็สามารถทำงานได้


7

นี่คือบางส่วนที่ฉันใช้เป็นประจำ:

  • sar - แสดงกิจกรรมของระบบ
  • vmstat - สถิติหน่วยความจำเสมือน
  • iostat - สถิติ io
  • pkill- like pgrepแต่อนุญาตให้คุณฆ่า ID กระบวนการที่ส่งคืน
  • xargs -I<string> - อนุญาตให้แทนที่สตริงด้วยข้อมูลที่ถูกวางท่อ
  • at - จัดตารางงาน
  • tkdiff- diffยูทิลิตี้กราฟิก

สิ่งเหล่านี้อาจไม่ใช่ "ซ่อน" แต่ฉันพบว่ามีประโยชน์มาก:

  • df -hk - แสดงการใช้ดิสก์ในรูปแบบที่มนุษย์อ่านได้
  • ls -ltr - รายการไฟล์เรียงตามวันที่
  • while :; do...done- (Bash) แทนwatchหากไม่พร้อมใช้งาน
  • perl -e- เรียกใช้Perlตัวอย่างบนบรรทัดคำสั่ง
  • free -kt - แสดงข้อมูลหน่วยความจำ (กิโลไบต์ w / ทั้งหมด)

ฉันคิดว่ามันง่ายกว่าที่จะเขียนwhile true; do ...มากกว่าwhile [ 1 ]; do ...
ptman

6

เริ่มด้วยบทความนี้ด้วยเทคนิคลีนุกซ์ที่ยอดเยี่ยม สิ่งที่ฉันชอบคือ pstree ซึ่งแสดงกระบวนการของคุณในรูปแบบทรีเพื่อให้คุณสามารถดูว่ากระบวนการใดที่วางไข่

ขดเป็นจังหวะนรกจาก wget สำหรับสิ่งที่คุณจะใช้ wget

zgrep และ zless เหมาะอย่างยิ่งสำหรับการค้นหาไฟล์บันทึก gzipped ดังนั้นคุณไม่ต้องไปป์มันผ่าน gunzip หรือปล่อยสิ่งที่ไม่มีการบีบอัดไว้ใน / var / log


เรื่องย่อสำหรับคนขี้เกียจ ;-) 1.pgrep (เช่น ps พบ grep) 2.pstree (แสดงรายการกระบวนการในรูปแบบต้นไม้) 3.bc (ภาษาเครื่องคิดเลขที่มีความแม่นยำตามอำเภอใจ) 4.split (แยกไฟล์ขนาดใหญ่เป็นส่วน ๆ ) 5 .nl (บรรทัดตัวเลข) 6.mkfifo (ทำให้สองคำสั่งสื่อสารผ่านไพพ์ที่มีชื่อ) 7.ldd (พิมพ์การอ้างอิงไลบรารีที่แบ่งใช้) 8.col (ตัดการป้อนบรรทัด) 9.xmlwf (ตรวจสอบว่าเอกสาร XML มีรูปแบบที่ดีหรือไม่) 10.lsof (แสดงรายการไฟล์ที่เปิด)
ชื่อผู้ใช้

(GNU) ps มีแฟล็กสำหรับการพิมพ์ทรี มีอะไรอื่นนอกจากความง่ายในการจำที่เกิดขึ้นกับ pstree หรือไม่?
ptman

ทำไมจะขดดีกว่า wget และ: zgrep และ zless เป็นเพียงจุดเริ่มต้นเท่านั้น นอกจากนี้ยังมี zcat และ zmore
เหม่ย

6

ESC + .

'Pastes' พารามิเตอร์สุดท้ายจากบรรทัดก่อนหน้าเข้าสู่พรอมต์ปัจจุบัน

เช่น

ls -l /home/someuser/somedir/somefile

ติดตามโดย

rm ESC + .

แปลเป็น

rm /home/someuser/somedir/somefile

ที่น่ากลัว. ไม่ทราบว่า
Andrew Taylor

5

ฉันเห็นyesคำสั่งดีมาก:

yes | do_you_agree

จากหน้าคน:

NAME
       yes - output a string repeatedly until killed

SYNOPSIS
       yes [STRING]...
       yes OPTION

5

เป็นแนวคิดที่ว่าทุกอย่างในลินุกซ์เป็นไฟล์ที่

การกำหนดค่าทั้งหมดอยู่ในไฟล์ข้อความและทุกอย่างใน Linux ถือว่าเป็นไฟล์ นี่เป็นวิธีที่ง่ายกว่ามากซึ่งทำให้ง่ายต่อการเปลี่ยนแปลงสิ่งต่างๆใน Linux ใน Linux แม้แต่ระบบไฟล์ของคุณเองก็สามารถดูเป็นไฟล์ได้


ถ้าคุณชอบแนวคิดพื้นฐานของ Unix คุณจะชอบ Plan9 OS
wazoox

4

มันเป็นโอเพ่นซอร์ส ไม่มีสิ่งใด "ซ่อนเร้น" ถ้าคุณรำคาญที่จะมอง


น่าเสียดายที่โอเพนซอร์สมีแนวโน้มที่จะทำให้สิ่งที่ "ซ่อนอยู่" นั้นค่อนข้างยากสำหรับคุณที่จะมอง
Spoike

5
ฉันได้โต้แย้งสิ่งที่ตรงกันข้าม - หากสถานที่นั้นถูกซ่อนอยู่ในแอพปิดแหล่งข้อมูลมันขึ้นอยู่กับร้านค้า dev ที่จะเปิดเผย ในแอพโอเพนซอร์ซคุณลักษณะนี้มีให้ทุกคนได้เห็น นอกจากนี้จำนวนของคนที่พัฒนาอย่างแข็งขันนั้นใหญ่กว่ามาก (มีคนรู้จักและพูดคุยเกี่ยวกับฟีเจอร์ 'ซ่อนเร้น') สุดท้ายการพัฒนาโอเพ่นซอร์สส่วนใหญ่จะมุ่งเน้นไปที่ชุมชนเป็นหลักดังนั้นคนทั่วไปบอกกันเกี่ยวกับคุณสมบัติที่ซ่อนอยู่
Tom Wright

ฉันไม่ได้ติดตามเหตุผลของ @ Spoike เลย ใช่มีอะไรให้ดูอีกมาก แต่สิ่งที่คุณเห็นคือสิ่งที่คุณได้รับ
Paul Tomblin

ฉันคิดว่าคุณโต้เถียงความหมาย แล้วเราจะเปลี่ยนชื่อเป็น "Obfuscated features of linux"
spoulson

ฉันจะบางส่วนยืนยันในความโปรดปรานของ Spoike ว่าบางทีสิ่งที่ซ่อน 'เพราะขาดทั่วไปของดีถึงวันที่เอกสาร ไม่พูดคำนี้ถือเป็นจริงสำหรับทุกโครงการอย่างไรก็ตามมีโครงการจำนวนมากที่เอกสารเต็มรูปแบบ (และฉันไม่ได้หมายถึงเพียงแค่คู่มือผู้ใช้วิธีใช้) ค่อนข้างขาดหายไป คุณลักษณะการดูแลระบบของ KDE โดยเฉพาะอย่างยิ่งในเรื่องการจัดการการตั้งค่าภายในไฟล์ rc และผลกระทบที่เกิดขึ้นจริงจากการตั้งค่าฟิลด์เฉพาะที่ไม่เปลี่ยนรูปเป็นตัวอย่างที่สมบูรณ์แบบ ในหลายกรณีฉันพบว่าตัวเองกำลังมองหาซอร์สโค้ดเพื่อค้นหาวิธีจัดการสิ่งต่าง ๆ
เจสันจำลอง

4

คุณสมบัติที่ซ่อนอยู่คือไม่มีคุณสมบัติที่ซ่อนอยู่ ระบบให้พลังงานจำนวนมหาศาลที่คุณสามารถเข้าถึงได้อย่างสมบูรณ์ คุณต้องเข้าใจทุกส่วนของมันและเครื่องมือทุกอย่างที่มีอยู่เพื่อรู้ว่าพลังอยู่ที่ปลายนิ้วของคุณ

คุณควรเริ่มด้วยการทำความเข้าใจกับทุกคำสั่งใน / bin, / sbin, / usr / bin, / usr / sbin และไฟล์เสมือนทุกไฟล์ใน / proc อ่าน manpages เอกสารอื่น ๆ และแหล่งที่มาตามความจำเป็น

หากคุณไม่สะดวกในการอ่านหน้าคนหรืออ่านแหล่งข้อมูลนั่นคือคุณสมบัติที่ซ่อนอยู่ของคุณ



3
  • od- ไฟล์ดัมพ์ในรูปแบบฐานแปดและอื่น ๆ มีประโยชน์ในการตรวจสอบว่ามีอึ BOM บางส่วนในตอนต้นของไฟล์หรือไม่
  • file - ไฟล์ประเภทใดของไฟล์ที่ระบุ
  • lshw, lsusb, lspci- ฮาร์ดแวร์รายการ
  • tracepath - เราจัดการกับปัญหา MTU ที่นี่หรือไม่
  • netwox มีเครื่องมือที่เกี่ยวข้องกับเครือข่ายมากกว่า 200 รายการ
  • ip - สำหรับการกำหนดค่าเครือข่าย / ข้อมูล
  • sysctl - ระบบไฟล์ / เครือข่าย / ข้อมูลเคอร์เนล
  • ebtables - iptables สำหรับบริดจ์
  • vconfig - การกำหนดค่า VLAN
  • brctl - การกำหนดค่าบริดจ์
  • socat- netcatบนเตียรอยด์
  • ipgrab- tcpdumpยูทิลิตี้เหมือนที่พิมพ์ข้อมูลส่วนหัวโดยละเอียด
  • dig - เกิดอะไรขึ้นกับเซิร์ฟเวอร์ DNS ตอนนี้


3

เพิ่งพบสิ่งนี้ในวันนี้:

dmidecode :
รายงานข้อมูลเกี่ยวกับฮาร์ดแวร์ของระบบตามที่อธิบายไว้ใน BIOS ระบบของคุณตามมาตรฐาน SMBIOS / DMI โดยทั่วไปแล้วข้อมูลนี้จะรวมถึงผู้ผลิตระบบชื่อรุ่นหมายเลขซีเรียลเวอร์ชั่น BIOS แท็กสินทรัพย์รวมถึงรายละเอียดอื่น ๆ อีกมากมายในระดับความสนใจและความน่าเชื่อถือที่แตกต่างกันไปขึ้นอยู่กับผู้ผลิต ซึ่งมักจะรวมถึงสถานะการใช้งานสำหรับซ็อกเก็ต CPU สล็อตส่วนขยาย (เช่น AGP, PCI, ISA) และสล็อตโมดูลหน่วยความจำและรายการพอร์ต I / O (เช่นอนุกรม, ขนาน, USB)

มันทำให้การตอบคำถามเกี่ยวกับ somerandomserver27 ที่ colo สิ่งอำนวยความสะดวกง่ายขึ้นมาก!


คุณจะชอบ lspci, lsscsi, lsusb ด้วยเช่นกัน :)
wazoox

Yup ผมใช้คำสั่ง ls * คำสั่งเป็นประจำ - ฉันก็ไม่ได้ตระหนักถึงมีอะไรที่สามารถดึงข้อมูลระดับ BIOS :)
gharper

3

ไม่ใช่สิ่ง Linux จริง ๆ สิ่ง Bash: แทนกระบวนการ

diff some_local_file <(ssh somehost "cat some_remote_file")

สิ่งนี้แตกต่างกับโลคัลและรีโมตไฟล์ที่ดึงผ่าน SSH ในหนึ่งบรรทัด

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