모든 Mac 및 Linux 사용자가 알아야 할 10 가지 Unix 명령

GUI는 훌륭합니다. GUI 없이는 살고 싶지 않을 것입니다. 그러나 Mac 또는 Linux 사용자이고 운영 체제 (및 키 입력)를 최대한 활용하려면 Unix 명령 줄에 익숙해 져야합니다. 포인트 앤 클릭은 한두 번 무언가를해야 할 때마다 훌륭합니다. 하지만이 작업을 여러 번 반복해야하는 경우 명령 줄이 구세주입니다.

명령 줄은 컴퓨터의 전체 성능을 보여주는 창입니다. GUI의 제약에서 벗어나고 싶거나 원격 컴퓨터를 프로그래밍하거나 관리하는 것이 미래에 있다고 생각한다면 Unix 명령 줄을 배우는 것이 당연합니다.

Unix 명령이 마법의 주문처럼 보이거나 시스템의 신비한 내부가 당신의 이해를 넘어서는 것처럼 보이더라도 걱정하지 마십시오. 배우기가 그렇게 어렵지 않으며,이 기사에서는 시작하는 데 필요한 10 가지 필수 명령을 제공합니다. 머지 않아 그 비밀스러운 문자열은 제 2의 천성이 될 것입니다.

셸 기본 사항

Unix 명령 줄 셸은 Microsoft Windows (cmd 또는 PowerShell)의 명령 창과 거의 동일합니다. 아래에서 살펴볼 명령은 Linux, Darwin (MacOS의 기반), FreeBSD, 심지어 Git Bash 또는 Windows 10의 새로운 Bash 셸과 같은 Windows를 포함한 모든 Unix 계열 시스템에서 작동합니다. 옵션과 출력은 다양합니다. 약간이지만 이해하는 데 문제가 없어야합니다.

먼저 터미널 창이라고도하는 셸을 열어야합니다. 종종 유닉스 배포판은 이것을 관리 또는 시스템 메뉴에 넣습니다. MacOS에서는 응용 프로그램> 유틸리티> 터미널에서 터미널을 찾을 수 있습니다. 실행하면 다음과 같은 내용이 표시됩니다.

MacOS 10.11의이 화면은 GUI에있는 대부분의 셸에서 일반적입니다. 창 상단에 셸 유형,이 경우 Bash (MacOS 및 대부분의 Linux 배포판의 기본 셸인 Bourne Again Shell) 및 창 크기가 표시됩니다. 창 안에는 시스템의 이름 ( Mercury), 현재 작업 디렉토리의 이름 (여기서는 ~사용자의 홈 디렉토리의 약어 인 물결표) , 사용자의 이름을 표시하도록 구성된 프롬프트 가 있습니다. 마지막으로 프롬프트 기호 ($). 파일 시스템에서 이동하거나 시스템에서 다른 사용자가되면 (예 : 관리 명령을 실행하기위한 루트 또는 수퍼 유저) 프롬프트가 변경됩니다. 프롬프트에이 정보가 표시되므로 컴퓨터의 위치와 사용자를 쉽게 알 수 있습니다.

Unix 셸에는 Bourne과 C 셸이라는 두 가지 주요 특징이 있다는 것을 아는 것이 좋습니다. Bourne과 회사는 원래 AT & T Unix에서 파생되었으며 C 쉘은 University of California at Berkeley 및 BSD Unix에서 파생되었습니다. 일반적으로 Bourne 및 C 쉘 파생물은 터미널에서 대화식 작업에 적합합니다. POSIX 표준 셸인 Korn 셸은 스크립트라고하는 셸에서 자신의 프로그램을 작성하는 데 사용하려는 것입니다. 이 자습서의 예제에는 Bash 셸을 사용합니다.

쉘 환경

Unix 명령 줄 작업에 대해 이해해야 할 첫 번째 사실 중 하나는 쉘이 자체 환경에서 작동한다는 것입니다. 셸 환경을 제어하는 ​​방법을 이해하는 것은 명령 줄에서 효율성을 높이는 데 중요한 부분입니다. 다음 env명령을 사용하여 환경을 살펴 보겠습니다 .

이제 모든 환경 변수를 이해하는 것에 대해 걱정하지 마십시오. 이미 몇 가지 변수를 인식해야합니다. 예를 들어, SHELL=/bin/bashBash 셸을 사용하고 있다고 알려줍니다. HOME=/Users/nunez사용자의 홈 디렉토리 위치를 지정합니다. 환경 변수를 변경하거나 만들 수 있으며 자주 그렇게합니다. 다음은라는 환경 변수를 설정하고 FOO그 값을 표시 하는 예입니다 .

보시다시피 규칙에 따라 변수를 대문자로 입력합니다. 명령에서 환경 변수를 사용할 때 우리가 환경 변수를 참조하는 방법에 특히 유의하십시오 $. 는 $변수의 값을 사용할 수있는 명령 인터프리터 알려줍니다. 이 없으면 위 $echo명령은 변수의 이름 인 FOO.

Unix 명령

사용하는 셸에 관계없이 셸에 명령을 입력 할 때마다 Unix 프로그램이 실행됩니다. 유닉스 디자인 철학은 한 가지를 잘 수행하는 프로그램을 만들고 유용한 작업을 수행하기 위해 함께 연결 (또는 "파이프")하는 것입니다. / etc 디렉토리에있는 파일 수를 세는 간단한 예제를 살펴 보겠습니다 (나중에 / etc 디렉토리로 이동하는 방법을 살펴 보겠습니다).

이 명령 시퀀스는 파이프와 옵션이라는 두 가지 중요한 개념을 보여줍니다. ls합니다 (동등 명령 dir윈도우의 명령) 디렉토리, 그리고 내용을 표시합니다  wc(단어 수) 단어의 수입니다. 그들 사이에 수직 막대가 보이십니까? 그것이 파이프 캐릭터입니다. 파이프는 첫 번째 명령의 출력을 가져 와서 두 번째 명령에 대한 입력으로 보냅니다. 파이프로 서로 연결하여 Unix에서 원하는 수의 명령을 함께 연결할 수 있습니다.

두 번째로 주목할 점은 각 명령에 제공되는 옵션입니다. Unix에서 옵션은 일반적으로 단일 대시 문자로 시작됩니다 -. 이러한 명령 줄 옵션은 명령의 동작을 변경합니다. 이 예에서 -l 옵션 ls은 "긴"형식으로 디렉토리 내용을 출력하는 것을 의미 하고 –l옵션 wc은 단어 대신 "줄"을 세는 것을 의미합니다. 영어로이 명령을 읽을 수 있습니다.

현재 디렉토리의 줄 수를 나열한 다음 단어 개수 프로그램으로 보내 줄 수를 계산합니다.

종종 이러한 명령 줄 옵션은 환경에 설정된 기본값을 재정의합니다. 명령이 영구적으로 작동하는 방식을 변경하려는 경우 로그인 할 때 환경 변수를 자동으로 설정할 수 있습니다. 많은 명령을 사용하면 옵션을 단일 문자열로 결합 할 수 ls -la있지만 다른 명령은 그렇지 않습니다. 매뉴얼 또는“맨 페이지”(아래에서 설명)를 확인하여 명령의 모든 옵션에 대해 배울 수 있습니다.

명령 줄 옵션을 배우고 사용하는 것은 Unix 명령 줄에서 효율성을 높이는 데 큰 역할을합니다. 일부 명령에는 문서가 수십 페이지에 걸쳐 실행되는 너무 많은 옵션이 있습니다. 지금 걱정하지 마십시오. 주어진 작업을 수행하는 데 몇 가지 옵션 만 필요하며 많은 옵션은 셸 언어로 프로그램을 작성할 때만 사용됩니다.

매뉴얼

명령 줄과 환경의 기본 사항을 이해하면 시스템에 대해 더 깊이 파고들 수 있습니다. 시작하는 첫 번째 장소는 매뉴얼입니다.

Unix의 좋은 점 중 하나는 문서의 높은 품질입니다. 사용자, 시스템 관리자 및 소프트웨어 개발자를위한 문서가 있습니다. man명령을 사용하여 문서에 액세스합니다 . 매뉴얼의 매뉴얼을 읽는 것부터 시작하겠습니다 ( man man명령 줄에 입력 ).

설명서는 8 개의 섹션으로 나뉘며, BSD / Linux / Mac 또는 System V 유형의 Unix를 사용하는지에 따라 약간 다릅니다. 각 섹션에 대한 소개를 읽는 것으로 시작하는 것이 도움이되며, 다음과 같은 주문으로이를 수행 할 수 있습니다 man -s 1 intro. 이는 섹션 1에서 "intro"라는 매뉴얼 페이지를 찾는 것을 의미합니다.

찾고있는 명령이 확실하지 않은 경우 -f-k옵션을 시도해 볼 수 있습니다. 는 이름을 알고 있으면 명령의 기능을 알려주고 하나 이상의 키워드를 기반으로 관련 명령의 이름을 나열합니다. 두 옵션 모두 기본 제공 데이터베이스 (구성된 경우, 일반적으로 포함됨)를 검색하고 모든 일치 항목을 반환합니다. 예를 들어은 문자열로 시작하는 매뉴얼 페이지를 표시합니다 .man –f command man –k hint man –k bzerbz

파일 시스템

Unix 파일 시스템은 운영 체제의 핵심이기 때문에 많은 명령이 있습니다. 우리는 이전에 그들 중 하나를 보았습니다 : ls, 디렉토리의 파일을 나열합니다 :

ls명령은 가장 자주 사용되는 명령 일 수 있으며 출력을 조정할 수있는 많은 옵션이 있습니다. 즉시 알고 싶은 한 가지 옵션은 ls -a(모두 나열)입니다. 이렇게하면 기본적으로 숨겨져있는 "도트"파일 (이름이 점이나 마침표로 시작하는 파일 또는 디렉토리)이 표시됩니다. 이러한 파일 또는 디렉토리는 일반적으로 Unix 시스템에 대한 구성 정보 또는 로그 파일을 포함합니다. 예를 들어 .bash_history 파일은 명령 줄에 입력하는 모든 명령을 기록합니다.

즉시 필요한 다른 명령은 cd디렉토리를 변경하는 데 사용 하는 명령입니다. 이것은 Windows의 동일한 명령과 유사하지만 중요한 차이점이 있습니다. Unix에서는 모든 드라이브 (장치)가 단일 드라이브로 나타납니다. Windows에서는 E :로 표시되는 외장 하드 드라이브에 사진이있을 수 있지만 Unix에서는 해당 드라이브가 / home / user / pictures 일 수 있습니다. Unix 시스템의 모든 파일은 / (루트 디렉토리)로 시작하는 경로를 통해 액세스되며 필요에 따라 파일 시스템의 다른 지점에 다른 하드 드라이브를 마운트 할 수 있습니다.

파일 시스템을 돌아 다니기 전에 필요한 또 다른 명령을 소개하겠습니다. pwd(작업 디렉토리 인쇄). 증가하는 파일 시스템에서 길을 잃을 수있는 위치가 많기 때문에이 명령을 사용하면 현재 위치를 빠르게 확인할 수 있습니다. 디렉토리를 시스템 구성 파일이 보관 된 위치로 전환하고 위치를 확인하겠습니다.

cd인수없이 명령을 사용 하여 홈 디렉토리로 빠르게 돌아갈 수 있습니다. 또 다른 팁 : ~는 Bash와 C 쉘 모두에서 홈 디렉토리를 참조하는 바로 가기로 사용할 수 있습니다. 

이 시점에서 파일 시스템을 이동하고 디렉토리의 내용을 나열하는 방법을 알고 있습니다. 이제 우리는 그 안에 저장된 파일을 읽을 방법이 필요합니다. 요즘 대부분의 시스템에는 이에 대한 less명령이 있습니다. less페이지별로 파일을 표시하고 Vi 명령을 사용하여 탐색 할 수 있습니다 (누르면 j아래 k로 이동, 위로 이동, h도움말보기, q파일 종료).

다음을 입력하여 / etc / passwd 파일에있는 내용을 살펴 보겠습니다 less /etc/passwd.

passwd 파일은 Unix 시스템의 사용자 계정과 함께 사용자 및 그룹 ID 번호, 홈 디렉토리, 해당 명령 또는 쉘 경로를 나열합니다. 그러나 MacOS에서는 passwd에서 시스템 서비스 계정 만 찾을 수 있습니다. 인간 사용자는 MacOS 시스템 환경 설정의 사용자 및 그룹에서 구성되기 때문입니다.

디스크 공간

디스크 공간 부족은 몇 년이 걸릴 수있는 점진적인 프로세스이지만 여전히 경계를 늦출 수 있습니다. 여유 공간을 확인하고 디스크를 차지하는 파일을 판별하는 데 사용할 수있는 두 가지 명령이 있습니다. du(디스크 사용량) 및 df(디스크 여유 공간). 둘 다 -h옵션 (사람이 읽을 수 있음)을 취합니다 . 디스크가 얼마나 가득 차 있는지 확인하려면 다음 df명령을 사용하십시오 .

지금은 %iusedmounted on열에 중점을 둡니다 . 이것은 내 홈 디렉토리가 92 % 찼음을 보여 주므로 아마도 정리해야합니다. 하지만 모든 공간이 어디에 사용되고 있는지 어떻게 알 수 있습니까? 그 이유 du는 다음과 같습니다.

이 예에서는 출력을 처음 10 줄로 제한하는 주문을 사용했습니다. 그렇지 않으면 du쉽게 파악할 수없는 컴퓨터의 모든 디렉토리가 나열됩니다. 이 목록에서 각 디렉토리에서 사용하는 공간을 볼 수 있습니다. 또한 몇 개의 명령을 연결하여 공간 사용량에 따라 상위 10 개 디렉토리를 나열하는 스크립트를 쉽게 구성 할 수있는 방법을 볼 수 있습니다. 출력을 정렬하는 데 필요한 명령은 물론 sort명령입니다.

MacOS 버전은 의 사람이 읽을 수있는 출력을 sort처리 할 수 없기 때문에 디스크 사용량을 메가 바이트로 표시 du하는 -m옵션을 du사용했습니다 ( -g또는 -k옵션을 사용하여 기가 바이트 또는 킬로바이트로 표시). -n-r옵션 sort종류의 출력 수치와 역순으로, 가장 큰 디렉토리 목록의 상단에 나타납니다 있도록.

수퍼 유저, su 및 sudo

많은 명령이 시스템 관리와 ​​관련됩니다. man -s 8 intro그들에 대한 소개를 입력하십시오 . 여기에서 시스템 관리를위한 하나의 필수 명령을 제공하겠습니다 su.. 이것은 "수퍼 유저"를 의미하며 관리 사용자 또는 루트 계정을 나타냅니다. 시스템에 속한 모든 파일은이 사용자가 소유하며 관리를 수행하려면이 사용자가되어야합니다.

관련 명령을 sudo사용하면 단일 명령에 대한 수퍼 유저가 될 수 있습니다. sudo대신 왜 사용 su합니까? 모범 사례는 루트 사용자로 뛰어 다니지 않고 우연히 복구 할 수없는 피해를 입힐 수있는 권한을 가지고 있기 때문입니다. 당신은 항상 일반 사용자로서 할 수있는 모든 것을하고 필요할 때만 슈퍼 사용자가되기를 원할 것입니다. 수퍼 유저 권한을 얻는 정확한 방법은 Unix 배포판에 따라 다릅니다. suMacOS에서 어떻게 작동 하는지 살펴 보겠습니다 .

어? 암호를 올바르게 입력했음을 확신합니다. 여기에서 발생한 것은 현재 내 사용자 인 nunez에게에 대한 권한이 없다는 것 su입니다. 일부 Unix에서는 사용자가 wheel그룹 에 있어야하고 다른 시스템 (MacOS 포함)에서는 사용자가 sudoers파일 에 있어야 함을 의미 합니다.

에 추가 nunez하여 마무리하겠습니다 sudoers. 그러면 명령 줄에서 파일을 편집하는 맛을 볼 수 있습니다. 파워 유저는 Emacs와 Vi 편집자들의 찬사를 부르며 시도 해보길 권하지만 여기서는 Nano를 사용할 것입니다. Nano는 배우고 사용하기 쉬우 며 MacOS 및 많은 Linux 배포판에는 이미 설치된 상태로 제공됩니다.