Công cụ quản trị viên Unix không thể sống mà không có [đóng]


33

Sau khi quản trị các máy chủ giống Unix hoặc Unix, công cụ nào (tốt nhất là dòng lệnh) bạn cảm thấy mình không thể sống thiếu?

Câu trả lời:



34

Một số tôi biết rằng tôi không thể sống mà không có ...

  • tee - cho phép ghi đồng thời vào STDOUT (đầu ra tiêu chuẩn) và một tệp. Tuyệt vời để xem thông tin và đăng nhập nó sau này.

  • top - trình quản lý tác vụ của UNIX, cung cấp một cái nhìn tổng quan tuyệt vời về hệ thống.

  • tail -f - cho phép bạn xem dữ liệu được nối thêm khi tệp phát triển, tuyệt vời để theo dõi tệp nhật ký trên máy chủ.

  • grep - In biểu thức chính quy toàn cầu, tuyệt vời để tìm kiếm hệ thống cho dữ liệu trong tệp.

  • df - báo cáo việc sử dụng đĩa của các hệ thống tập tin hiện tại.

  • du - báo cáo việc sử dụng đĩa của một tập tin / thư mục nhất định.

  • ít hơn - cần thiết để xem các trang người đàn ông! cũng hữu ích để xem đầu ra của các lệnh theo cách dễ dàng tìm kiếm.

  • vim / Emacs / nano / pico / ed - bất kể trình soạn thảo văn bản của bạn có thể là gì, hãy tự giải thích lý do tại sao nó cần thiết.


Đối với những người không biết, 'less' là phiên bản cập nhật của 'more'. nhiều hơn là hạn chế vì bạn chỉ có thể di chuyển về phía trước một tập tin trong khi ít có thể cuộn ngược lại. Ah sự hài hước ... :-)
Người giữ Iain

8
Một tính năng hữu ích nhưng ít được biết đến khác là bạn luôn có thể sử dụng lệnh 'v' để bắt đầu chỉnh sửa tệp bạn đang xem. Ghi nhớ là 'v' cho 'vi'.
dr-jan

Và nếu bạn không thích morehoặc less, bạn luôn có thể thử most.
Drybjed

PAGER ưa thích của tôi bây giờ thực sự là w3m. Nó có tất cả các tính năng ít hơn và có thể tăng gấp đôi như một trình duyệt web ở chế độ văn bản :-) Tôi cũng đã sử dụng chức năng bash để sử dụng vim ở chế độ chỉ đọc (ví dụ như cách này tôi có các khác biệt màu độc đáo). Hàm bash được sử dụng chỉ để quyết định có cung cấp '-' (để đọc stdin) hay không (trong trường hợp chúng tôi đang phân trang một tệp). Hoạt động như một bùa mê, ngoại trừ các trang dành cho nam giới, nơi nroff hoạt động quá mức ...
njsf

1
htoplà một phiên bản "tốt hơn" của top.
Alexander Bird

26

lsof để xác định quá trình nào đang sử dụng tệp hoặc thư mục (hữu ích khi cố gắng tìm hiểu điều gì ngăn thiết bị không hoạt động)

netstat để xác định quá trình nào đang sử dụng kết nối mạng (đặc biệt hữu ích khi cố gắng tìm ra daemon nào bị ràng buộc với một cổng nhất định)


1
Nếu bạn có lsof, bạn không cần netstat. Chỉ cần sử dụng lsof -i
vartec

lsof -n là lời mời yêu thích của tôi. Tôi đặt nó cho grep để làm giảm nó xuống
Matt Simmons

19

Tìm hiểu tất cả các công cụ cơ bản, nhưng học Perl.

Perl là lý tưởng để thao tác văn bản và vì các toán tử un * x sống trên các tệp văn bản, đường ống, đầu vào và đầu ra, Perl rất phù hợp.

Phần thưởng thêm vào là Perl là nền tảng chéo và nếu bạn phải thực hiện một số công việc trên hộp windows, bạn có thể dễ dàng cài đặt (chỉ cần thả thư mục Perl trên máy chủ) mà bạn đã biết.

Và trên chuyến tàu tư tưởng đó, hãy nhận Cygwin. Nếu bạn là quản trị viên un * x và phải làm việc trên hộp windows (thậm chí cả máy tính để bàn của bạn) có ls, rm, grep, sed, tail, vv giúp bạn tiết kiệm rất nhiều thời gian khi chuyển đổi hệ điều hành.


18
  • quyến rũ
  • ôi

Các ông nội bị lãng quên của các hệ thống kịch bản hiện đại. Tôi biết Perl nhận được hầu hết tình yêu (cùng với kịch bản Bash, Python, Ruby và [chèn ngôn ngữ kịch bản yêu thích của bạn vào đây]) và đừng hiểu lầm tôi, tôi yêu Perl. Tôi sử dụng nó gần như hàng ngày.

Nhưng sed và awk không nên bị lãng quên, bỏ qua hoặc bỏ qua. Đối với rất nhiều trường hợp, sed và awk là những công cụ tốt nhất cho công việc. Ví dụ nhanh là lọc dòng lệnh với sed và xử lý nhật ký nhanh và bẩn với awk. Cả hai có thể được thực hiện trong Perl, nhưng sẽ đòi hỏi nhiều thời gian làm việc và phát triển hơn.


13

rsync, đặc biệt là trong buổi hòa nhạc với ssh. Nó cho phép sao chép hiệu quả các tập tin từ máy chủ sang máy chủ. Làm thế nào chúng ta từng đối phó mà không có ssh và rsync? :-)


12

Mèo mạng.

  • Kiểm tra nếu các dịch vụ TCP đang lắng nghe.
  • Thực hiện các giao dịch chống lại các giao thức văn bản gốc như SMTP.
  • Chuyển dữ liệu không an toàn nhanh chóng giữa các máy.
  • Giả lập máy khách Telnet.

Các con dao quân đội Thụy Sĩ, như họ nói.


Gần đây tôi đã bắt đầu sử dụng socat như là sự thay thế của netcat và tôi đã rất ngạc nhiên về số lượng tùy chọn mà nó mang lại cho bạn. Chắc chắn giá trị kiểm tra, mặc dù số lượng chuyển đổi đáng sợ và cú pháp kỳ lạ.
Marcin

12

Đối mặt với nó - sớm hay muộn bạn cũng sẽ đối phó với mạng. mtr , tcpdumptshark thực sự hữu ích để xem những gì đang xảy ra.


9

Đối với các kịch bản nhanh, tự động hóa, vv:

  • bash
  • perl

Để kết nối với máy chủ * NIX của bạn:

  • Mở SSH (máy khách Linux)
  • Putty (máy khách Windows)

+1 cho ... tất cả đều thực sự nhưng đặc biệt là Perl. * nix, Windows hoặc Mac, tôi không thể tưởng tượng mình sẽ làm gì nếu không có nó.
John Gardeniers

9

Tôi sử dụng hầu hết các công cụ đã được liệt kê, nhưng đây là một công cụ chưa có ai chạm vào:

Con rối - hệ thống tự động hóa các nhiệm vụ quản trị hệ thống



6

Hầu hết các câu trả lời tiêu chuẩn được bao gồm trong các câu trả lời khác, vì vậy tôi sẽ đi theo những câu trả lời không chuẩn:

  • htop - tuyệt vời cho quản lý quy trình;
  • pinfo - lynx như trình duyệt cho thông tin và trang man.

6

Một vài công cụ tiện dụng mà tôi chưa thấy đề cập đến:

  • dstat --nocolor (tổng quan về cpu-, đĩa-, sử dụng mạng)
  • iftop (tổng quan động đẹp về lưu lượng mạng)
  • ccze (logfiles màu độc đáo)
  • đường hầm ssh (thỉnh thoảng có thể hữu ích; xem hướng dẫn; -R)
  • mong đợi (tự động hóa các giao diện trò chuyện tương tác, trò chuyện, tốt đẹp nếu bạn đang gặp khó khăn)

+1 "tail -f <file> | ccze" = cách đọc tệp nhật ký tuyệt vời.
Lin

+1 choexpect
Alexander Bird

+1 cho dstat. Thay thế tốt nhất cho vmstat, i bổ sung, vv ra khỏi đó.
Christopher Cashell

5

CụmSSH

ClusterSSH kiểm soát một số cửa sổ xterm thông qua một cửa sổ bảng điều khiển đồ họa duy nhất để cho phép các lệnh được chạy tương tác trên nhiều máy chủ qua kết nối ssh.


... và vì ClusterSSH được viết bằng Perl, có lẽ bạn nên học Perl.
Brad Gilbert

Sự khác biệt giữa màn hình ClusterSSH và GNU là gì? hoặc họ thực hiện khác nhau của cùng một khái niệm?
Alexander Bird

4

vmstat 1

Cung cấp cho bạn một cái nhìn tổng quan tuyệt vời về hành vi hệ thống.


4

pv: Hiển thị tiến trình của các hoạt động dài có thể được chuyển hướng. http://www.ivarch.com/programs/pv.shtml

Hữu ích sau đó bạn muốn theo dõi thứ gì đó sẽ mất nhiều thời gian, như sao chép / nén một thiết bị khối thô qua mạng (đó là cách tôi sao lưu các bản sao lưu hoang tưởng của netbook 8Gb của mình trước khi sửa đổi mọi thứ chính như điều chỉnh cài đặt hệ thống tệp).

Ngoài ra: Tôi sẽ bỏ phiếu thứ hai cho ssh, rsync, màn hình, htop và netcat như được đề cập bởi những người ở trên - tất cả đều quan trọng hơn pv nhưng pv chưa được đề cập. Trong thực tế, pv thường là một bổ sung hữu ích khi các công cụ đường ống đến hoặc từ netcat.


pvcó thể là một công cụ tiện dụng, nhưng hãy cẩn thận với việc lạm dụng nó. Truyền dữ liệu qua nó hoàn toàn có tác động hiệu suất (tất cả dữ liệu phải chuyển qua chương trình khác ). Ở công việc cuối cùng của tôi, chúng tôi đã xử lý nhật ký rất nhiều. Một trong những người quyết định bắt đầu đưa pv vào tất cả các tập lệnh xử lý nhật ký, cho đến khi chúng tôi phát hiện ra rằng nó đã thêm khoảng 15% vào thời gian xử lý cho họ. Bây giờ, nó chỉ được sử dụng cho các công việc mất ít hơn vài phút hoặc có giới hạn tài nguyên hiện có (chẳng hạn như vượt qua kết nối mạng chậm).
Christopher Cashell

Điểm hay của Christopher, mặc dù tôi chưa bao giờ thấy nó gây ra thay đổi hiệu suất 15% (một lần nữa, hầu hết những gì tôi sử dụng pvlà ràng buộc I / O của đĩa hoặc mạng thay vì bị ràng buộc CPU / bộ nhớ). Lập luận tương tự là chìa khóa chống lại việc sử dụng catquá mức (đôi khi tôi sử dụng mèo khi không thực sự cần thiết chỉ để làm cho mọi thứ đọc độc đáo từ trái sang phải, nhưng sao chép dữ liệu trong bộ nhớ bổ sung qua đường ống và chuyển đổi ngữ cảnh có thể có tác động hiệu suất có thể đo lường).
David Spillett

Vâng, tôi làm điều tương tự. Hầu hết việc catsử dụng quá mức của tôi đến từ bắt đầu cat foo, tiếp theo là nhấn mũi tên "lên" và sau đó thêm | [command]vào dòng trước đó của tôi. Tôi biết rằng tôi đang thực hiện một hiệu suất (nhỏ) bằng cách giữ con mèo ở đó, nhưng để nó đòi hỏi ít nỗ lực hơn là viết lại / gõ lại lệnh [command] < foo. Không phải là mối quan tâm đối với (hầu hết) dòng lệnh ad hoc hoạt động, nhưng không lý tưởng cho các tập lệnh (giống như cách tôi cảm nhận đối với pv, tôi đoán vậy).
Christopher Cashell

4

ssh, Vim, htop, su, Python, ls, cd, màn hình, du, tar :)



3

Một số điều chưa được đề cập trước đây:

  • đầu / đuôi
  • khác
  • pstree
  • hắc ín
  • gzip / bzip
  • đồng hồ đeo tay

Pstree +1 là khá ngọt ngào.
Lin

3

ống nhựa đường!

chuyển đầu ra của tar sang một tiện ích khác, để tar chạy trên cùng một hộp hoặc để tar chạy trên SSH là bước di chuyển Unix trường học cũ yêu thích của tôi để di chuyển các tệp từ nơi này sang nơi khác.

Điều này cũng cung cấp cho bạn tùy chọn kiểu Windows để sao chép một thư mục sang thư mục khác và kết thúc với tất cả các tệp trong thư mục nguồn và đích.



3

iotop, là một chương trình giống như hàng đầu để theo dõi truy cập I / O vào đĩa của bạn.


Chỉ có sẵn trên các hạt nhân mới hơn, nhưng cực kỳ tốt đẹp.
Sean Reifschneider

3

Hầu hết các công cụ này được tạo ra mạnh mẽ hơn nhiều bằng cách sử dụng "hoàn thành có thể lập trình" của Bash - vì vậy bạn có thể hoàn thành các tab như tùy chọn dòng lệnh hoặc nói tên của gói với "apt-get install". Nó cũng sẽ giới hạn những gì bạn hoàn thành tab cho các tệp có liên quan - ví dụ: "giải nén" sẽ chỉ hoàn thành các tệp lưu trữ được hỗ trợ.

Nó thực sự là đột biến - nếu bạn chưa bao giờ thử nó, có lẽ bạn chỉ cần đánh lừa .bashrc của bạn:

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
 fi

Chắc chắn điều này là đúng trên Ubuntu và Debian. Bạn có thể cần lấy gói trên một số bản phân phối Linux.



2

Một vài điều bỏ qua tôi muốn đề cập.

  • Bảng điều khiển màn hình chia nhỏ vim -d giúp dễ dàng nhìn thấy sự khác biệt trong một tệp
  • pdsh cho phép bạn dễ dàng chạy một lệnh trên nhiều hệ thống như bạn muốn nối tiếp hoặc song song (Tôi là quản trị viên cụm. Tôi không thể hoạt động mà không có nó.)
  • Nmon giống như đầu trên vết nứt. Nó cung cấp cho bạn một ý tưởng tuyệt vời về những gì đang diễn ra trên một hệ thống trên một màn hình duy nhất. Bạn có thể thấy I / O đĩa, sử dụng CPU I / O mạng và sử dụng bộ nhớ theo thời gian thực. Ít nhất là một điều thú vị thực sự để chơi khi lập hồ sơ một hệ thống.

Ồ, và tôi đã quên đề cập đến, khi viết kịch bản, tôi tin rằng bạn nên luôn luôn sử dụng Korn. Tôi ghét Korn (Không phải ban nhạc. Tôi yêu ban nhạc :-P) nhưng nó thực sự ở khắp mọi nơi. Bạn có thể lấy một tập lệnh và di chuyển nó giữa Solaris, AIX và Linux và không phải lo lắng về việc liệu quản trị viên có quyết định cài đặt Bash hay không.


2

Một công cụ đôi khi rất tiện dụng là nohup. Tôi sử dụng nó để chạy các tập lệnh tồn tại trong một thời gian dài bằng cách sử dụng các máy khách SSH từ xa.


2

người đàn ông - để đọc các trang người đàn ông.

elinks - để kiểm tra google, vì tôi chắc chắn không thể nhớ tất cả mọi thứ.

Và chú ý đến chi tiết & sự kiên trì, bởi vì không có chúng tôi chỉ lãng phí thời gian.


+1 để chú ý đến chi tiết & độ bền
cop1152

2

màn hình là phải, đặc biệt là với một tập tin .screenrc tốt. Tôi có cấu hình để hiển thị trực quan cửa sổ nào tôi đang ở và có thể di chuyển giữa chúng bằng Ctrl + Mũi tên. Đối với một phiên ssh duy nhất và nhiều shell, đó là một trình cứu sinh.


2

  • vi
  • tìm thấy
  • ssh
  • AWK
  • quyến rũ
  • mèo
  • hắc ín
  • ps


  • 2

    Tôi yêu AWK cũng như "cho" trên dòng lệnh.

    Đặc biệt là để xây dựng một danh sách các lệnh tôi muốn chạy và sau đó thực hiện tất cả chúng cùng một lúc.

    Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
    Licensed under cc by-sa 3.0 with attribution required.