쉘 스크립팅을 배우기위한 실제 작업 [닫기]


12

유닉스 시스템 관리의 일반적인 문제와 쉘 스크립팅으로 해결할 수있는 방법을 찾고 있습니다. 자기 교육 목적을 위해 완전히. 또한 쉘 스크립팅을 배우는 방법에 대해 알고 싶습니다.

답변:


15

자신이 여러 번 무언가를하는 것을 발견 할 때마다 스크립트를 작성하십시오. 가능한 한 게으른 생각하십시오. 컴퓨터는 그 정신적 쓰레기를 모두 처리하기 위해 만들어졌습니다. 바쁜 일처럼 냄새가 나는 것은 쉘 스크립트가 필요합니다.

개인적으로, 나는 몇 년 동안 슬랙웨어를 뒤적 거리며 배웠습니다. 시스템을 최대한 많이 제거하면 어떻게되는지 확인하십시오. 텍스트에 익숙해지는 법을 배우십시오. 다른 모든 사람들이 NetworkManager에 대해 소리를 지르고 빚지고있는 동안 자신 만의 NetworkManager를 만드는 것이 얼마나 간단한 지 배웁니다. 물론 유스 케이스가 많지는 않지만 이더넷과 무선 온 디맨드를 통해 동적으로 간단하게 연결하여 무언가를 실행시킬 수 있습니다.


6

나는 다른 스레드에서 제안한 세 권의 책을 다시 추천하고 싶습니다. 이것들은 제 생각에 유닉스의 정신에 들어가는 가장 좋은 책입니다.

  • Kernighan과 Pike의 유닉스 프로그래밍 환경
  • 참을성없는 사람을위한 유닉스
  • 오라일리의 유닉스 전동 공구.

첫 번째는 오래되고 매우 오래되었지만 간결하고 짧으며 필요한 껍질 자르기 (일반 표현식, sed, 파이프 라인)를 제공합니다.

두 번째는 엄청나게 재미있다.

세 번째는 90 년대 유닉스 마스터들의 "최고의"트릭 모음입니다 (제가 읽을 때입니다). 이 책은 계속 다시 편집되므로 많은 새로운 너겟이 포함되어 있다고 확신합니다.


유닉스 프로그래밍 환경의 경우 +1 이것을 읽은 후 갑자기 유닉스가 엄청나게 많은 의미를 갖게되었습니다. 약간의 계시 :-)
dr-jan

유닉스 프로그래밍 환경은 "여기 문서"를 다루는 몇 안되는 책 중 하나입니다. 많은 사람들이 단일 파일로는 불가능하다고 생각하는 "여기 문서"를 사용하여 많은 것을 할 수 있습니다.
Bruce Ediger


2

배우는 법 : 명령 줄에 빠져보세요. 정기적으로 사용하고 맨 페이지를 자주 꺼내십시오. 자주조차 요 스크립팅을 처음 배웠을 때 몇 번을 입력했는지 셀 수 없었습니다 man bash. 또한 다른 명령에 대한 매뉴얼 페이지를 몇 번이나 가져 왔는지 계산할 수 없었습니다.


1
Kevin에게 +1 같은 방식으로 스크립팅을 배웠습니다. 시나리오는 일반적으로 이러한 COBOL 데이터 파일을 처리해야한다는 것입니다 (예, 그 뒤로 ...하지만 이것은 메인 프레임이 아닌 UNIX의 COBOL입니다 !!). COBOL 코드를 크랭크하는 대신 awk (서버에 설치되지 않았기 때문에 perl조차도 발생하지 않음)를 발생시키고 상위 50 명의 고객과 같은 일을보고합니다 :-)

내가 사용 xterm(또는 단자, 만약 그 문제에) 내 주요 파일 관리자로. 따라서 나는 항상 쉘을 항상 사용하도록 강요하여 시간이 지남에 따라 몇 가지 트릭을 배우고 개발했습니다.
Denilson Sá Maia

2

모니터링 도구를 작성하여 배웠습니다. ssh를 통해 여러 머신에 연결하고 가동 시간,로드, 활성 연결 수, 메모리 사용률 등과 같은 데이터를 수집합니다. 내 로컬 컴퓨터에서 해당 데이터를 텍스트 테이블로 표시합니다.


1

나는 두 번째로 'The Unix Programming Environment'에 대한 Miguel의 추천입니다. 정말 오래되었지만 내가 쉘에 대해 알고있는 거의 모든 것을 배운 방법과 너무 오래되어 아마존에서 몇 달러를 얻을 수 있습니다 : http://is.gd/eiSn6


0

책이나 매뉴얼을 찾아 선택한 쉘을 프로그래밍 언어처럼 취급하십시오. (글쎄, 아마도 csh가 아닐 수도 있습니다 ...)

우선 Bash 쉘, Bourne 쉘, csh, zsh 등을 사용하고 있는지 알아내는 방법을 배우십시오. 이들 중 일부는 C 및 C ++와 같이 서로 유사합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.