어느 정도까지는 말할 수 있습니다. 그러나 반드시 그런 것은 아닙니다. 단순한 디자인 접근 방식으로 더 많은 것을 달성 할 수있는 능력으로 더 읽어야한다고 생각합니다. 그리고 간단하기 위해서는 작업을 쉽게 이해할 수 있고 조립하기 쉬운 부분으로 나눠야합니다. 솔직한 유닉스 철학은 다음 예제에서 설명 할 수 있습니다.
모든 프로그래밍은 일종의 데이터 조작입니다! 어떤 경우에는 프로그래밍도 프로그램 조작 자체 (메타 프로그래밍)입니다. 이제 UNIX 철학이 작동하는 방식은 텍스트 처리를 상상해보십시오. 텍스트 란 무엇입니까? 텍스트는 결국 일종의 데이터입니다. 체계적인 정의로 어셈블 할 때 텍스트도 XML과 JSON이됩니다. 텍스트는 숫자의 목록이 될 수 있으며 텍스트는 csv, tsv 및 기타가 될 수 있습니다! 다른 텍스트 나 문자열은 문맥이 뒤틀리고 우리가 원하는 것으로 바뀔 수 있기 때문에 프로그래밍 데이터의 실제 영역을 나타낼 수 있습니다!
모든 프로그래밍에는 일종의 데이터 구성이 필요합니다. 구성하려면 검색이 필요합니다 ...
에이. 거기에 'grep', 'fgrep'및 그 가족이 있습니다.
일단 검색하면 정렬이 필요합니다 ..
비. 이제 우리는 '정렬'명령을 내 렸습니다.
방금 두 파일을 정렬했습니다. 이제 파일을 비교하려고합니다.
기음. 이제 'diff', 'cmp'등이 있습니다.
방금 파일간에 차이가 없음을 발견했습니다. 이제보다 체계적인 데이터가 필요합니다.
디. 파일에 쓸 'cat', 파이프 및 리디렉션 연산자가 있습니다.
보다 구체적인 구문 분석이 필요합니다.
이자형. 당신은 머리, 꼬리, 더 많이, 덜, 잘라 등을 가지고 있습니다 ...
이 모든 것은 '|' 코드를 전혀 쓰지 않고 실제로 강력한 물건을 생성합니다. 더 많은 검색과 봉제를 위해 ..
에프. awk, shell 및 sed.
awk, shell 및 sed는 잘라 내기보다 텍스트를 더 잘 제어 할 수있게합니다. 당신은 그 command1 궁금해 | command2 | command3 ... series는 일종의 워크 플로 메커니즘입니다. If와 결합하면 더욱 강력 해집니다.
이제 더 재미있게옵니다.
'Perl' 이라는 유틸리티에 대해 들어 본 적이 있습니까? 이 작업은 상상력이 거의없는 거의 모든 작업을 사실상 수행 할 수있는 강력한 기능입니다. DBM과 같은 유틸리티와 함께 사용하면 애플리케이션에 대한 작은 시간 지속성 요구도 수행 할 수 있습니다. 우리는 텍스트 세계를 벗어나지 않았지만 프로그래밍 환경의 대부분을 다루었습니다.
그래서 유닉스는 단순한 운영체제가 아니라고 생각합니다. 가장 간단한 방법으로 문제를 해결하도록 설계된 도구 및 환경 모음입니다. 간단한 방법이 솔루션 구현의 단순성을 의미하지는 않습니다. 그러나 단순성 자체는 그리 멀지 않습니다.
나는 레딧에서 이것을 읽었습니다.
"유일한 설계 목표가 단순하다면 Plan9만큼 많은 사용자를 확보 할 수 있습니다."