Programming-[Base]/OS-Unix, Linux, Ubuntu

1. Unix의 기본 - 1-1. Unix의 역사, CLI의 기초 사용방법( ls, cd)

컴퓨터 탐험가 찰리 2020. 7. 3. 17:56
728x90
반응형

1. Unix의 발전 역사와 GUI,CLI의 개념

많은 운영체계가 있고, 보통 Windows나 macOS를 사용하지만 그외에도 Android, iOS, Linux, Ubuntu, ChromeOS 등이 있다. 보통 개발자의 환경은 Windows나 macOS가 아닌 다른 운영체제일 수 있으므로, 우리는 적어도 command 정도는 알아야 원하는 작업을 해낼 수 있다. 그리고 앞서 언급한 대부분의 OS가 UNIX 라는 OS에서 기원했기 때문에, 대부분 command가 비슷해서 배우는데 큰 어려움이 없다.

 

Unix는 1970년대 초반 벨연구소의 켄 톰슨과 데니스 리치의 주도로 개발되었다. C언어로 작성되어 수정해서 다른 컴퓨터에 적용하기 편했고, 많은 변형이 이루어지다보니 "POSIX"라는 Unix 표준이 만들어지기도 했다.

그러나 Unix를 활용하기 위해서는 벨연구소의 회사인 AT&T에 수수료를 지불해야 했다. 이를 극복하기 위해 Free Software Foundation이란 곳에서 "Unix의 코드를 한 줄도 사용하지 않고 만든 Unix와 유사한 운영체제를 만들"고자 했다. 이 Software가 GNU 이다. 여기서 운영체제의 핵심 부분인 Kernel 부분이 잘 완성되지 않고 있었는데, 핀란드의 학생이였던 Linus Torvalds가 kernel을 완성하게 되었다. 이에 따라 사람들은 완성된 OS를 GNU/Linux라고 부르게 되었다.

 

Computer를 사용하는 방식은 기존 Windows와 같이 Graphic적으로 사용하는 방식인 GUI(Graphical User Interface)과 직접 명령어를 기입하여 사용하는 방식인 CLI(Command Line Interface)이 있다.

CLI는 GUI가 나오기 전의 방식인데다, 사람이 보기 불편한 문제가 있는데, 그럼에도 불구하고 CLI를 사용하는 이유는 아래와 같다.

 

1. Graphic에 대한 연산이 필요없으므로 Computer가 더 빠르게 구동될 수 있다.

2. GUI에서 많은 단계들을 거쳐야하고, 실수를 할 확률이 높은 반면, CLI는 명령어를 직접 입력해줘야 하기 때문에 구동방식이 명확하고 정확할 수 있게 된다.

 

2. 기본 command line, 사용방법

Ubuntu에서는 Terminal 창을 Ctrl+Alt+T의 단축키로 실행할 수 있다.

 

clear: terminal의 모든 내용을 지움

date : 현재 날짜와 시각 표시

cal: 달력을 표시

 

인자, 옵션

Command 뒤에 인자(argument)나 옵션을 추가함으로써 구체적인 명령을 할 수 있다.

ex) cal 1 2020 이라고 치면, 1 2020이 인자가 되어 2020년 1월 달력이 출력되게 된다. cal -y 라고 하면 올해의 모든 월의 달력을 출력하게 되는데, 이것을 옵션이라고 한다. 보통은 하이픈이 붙은 것을 옵션이라고 한다.

※ cal -j 옵션을 쓰면 1월 1일을 기준으로 오늘이 몇 번째 날인지를 알려준다.

>>> comman에 대한 공식 매뉴얼은 "man command이름"을 입력하면 출력할 수 있다. 매뉴얼 off는 "q"키를 통해 가능하다.

 

3. Directory(폴더 위치)

~(Tilde) : 현재 폴더의 위치를 나타낸다.

 

pwd(Print the name of Working Directory) : 현재 폴더의 위치를 출력하는 command

 

cd(Change Directory) : 경로를 이동하는 command

>>>대, 소문자를 구분한다.

>>> 경로 입력 시 절대 경로로 입력하면 경로 주소 전체를 입력해야 하지만, 상대경로의 경우 './'을 입력함으로써 경로 이동이 가능하다. 보통 사용자마다 프로그램의 설치 경로가 다르기 때문에, 상대경로로 지정해주는 것이 프로그램의 호환성에 좋다.

ex) 절대경로: home/user/programming는 상대경로(/home/user에 현재 위치한 경우) : ./programming로 표현 가능함.

 또는 '../'를 입력하면 현재 경로를 포함하는 부모 디렉토리의 경로를 나타낸다.

 ex) /home/user/documents로 /home/user/programming에서 이동하는 경우 : ../documents 입력

>>> 'cd -'를 입력하면 이전에 위치했던 디렉토리로 이동할 수 있다.

>>> 'cd ~' 입력 시 사용자의 home 디렉토리로 이동하며, 'cd ..' 입력 시 상위 폴더로 이동이 가능하다.

         'cd /' 입력 시 시스템의 최상위 디렉토리(root)로 이동할 수 있다.

          'cd .' 현재 디렉토리, 'cd ..' 상위 디렉토리 로 이동

 

ls(list) : 현재 디렉토리에 있는 자식 파일들의 목록을 출력해준다.

>>> -l 옵션(long listing format) : 'list -l' 이라고 입력하면, 자식 파일들의 이름뿐 아니라 크기, 수정날짜 등 상세 정보를 표시해준다. 

특정 파일을 지정해서 그것의 상세 정보를 보고 싶다면, ls -l '파일이름' 이라고 입력해주면 된다.

>>>-a 옵션(all) : 'list -a' 이라고 입력하면, 숨겨진 파일들의 이름도 모두 표시해준다. '-al' 또는 '-la' 라고 옵션을 입력하면, -a, -l 옵션을 모두 사용하여 숨겨진 파일 및 전체 파일의 상세 내용을 출력해준다.

>>>-d 옵션(directory) : 특정 디렉토리 자체의 정보를 출력해준다. -d 옵션도 -l, -a 옵션과 함께 사용될 수 있다. ex) -ld

 

ls -l 명령어로 파일들을 조회하면, 각 파일의 맨 앞에 '-' 또는 'd'라고 표시되어 있는 것을 확인할 수 있다.

'-' : 일반적인 파일을 의미한다.

'd': 디렉토리를 의미한다.

 

※이외에도 'c' : 캐릭터 장치 파일, 'b' : 블록 장치 파일, 's' : 소켓, 'p' : 파이프, 'l' : 심볼릭 링크 등의 파일 형식이 있다.

 

 

 

 

728x90
반응형