: 컴퓨터를 조작하기 위한 입력과 출력
입력 소스(Input source) : 컴퓨터에 새로운 명령을 전달하는 모든 소스로 마우스, 키보드, 카메라, 마이크 등
출력 소스(Outut surce) : 화면(시각적 출력), 스피커(청각적 출력), 스마트홈으로 연결한 전구나 가전제품 등
: 키보드의 입력을 확인하고 편집할 수 있는 한 줄의 공간
프롬프트에 입력한 명령어를 실행하려면 Enter
키를 누르면 된다.
-
를 이용해 옵션을 입력했다고 컴퓨터에 전달한다.-
뒤에 오는 옵션의 순서는 기능에 영향을 미치지 않는다.
-h
--help
각 명령어에 포함된 옵션은 명령어 이름만 입력하거나 -h 또는 --help와 같은 옵션을 통해 확인할 수 있다.cp cp -h cp --help
pwd
(print working directry) : 현재 위치(경로)를 확인할 수 있는 명령어
pwd
명령어를 치면 컴퓨터는 현재 작업 중인 폴더의 위치를 출력한다.pwd
를 실행하면 /Users/[사용자명]
이 출력된다.mkdir
(make directories) : 폴더를 생성하는 명령어
mkdir myNewFolder # myNewFolder라는 폴더를 생성한다.
폴더 또는 파일의 이름에 공백이나 특수문자가 있으면 앞에 백슬래시
\
를 붙여 적용한다.mkdir my\ new\ folder # my new folder 라는 폴더를 생성한다.
ls
: list
특정 폴더에 포함된 파일이나 하위 폴더 리스트를 출력하는 명령어
ls
를 실행했을 때 :
ls
의 옵션-l
(all) : 숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 출력한다.
-a
: 폴더나 파일의 포맷(format)을 전부 표현한다.
ls -l
을 실행했을 때 :
drwxr-xr-x 2 jieunchun staff 64 9 1 09:23 myNewFolder # 폴더
-rw-r--r-- 1 jieunchun staff 42 8 11 17:28 .zprofile # 파일
여기서 가장 왼쪽에 출력되는 글자가 d
로 출력된 경우 폴더를 나타내고, -
로 출력된 경우 파일을 나타낸다.
open .
: macOS에서 현재 위치를 GUI로 실행하는 명령어
open .
을 실행했을 때 :
cd
(change directory) : 프롬프트에서 상호작용하는 폴더를 다른 폴더로 변경하는 명령어
cd Desktop # 데스크탑 폴더에 진입한다.
cd .. # 상위 폴더로 진입한다.
cd / # 루트 폴더로 진입한다.
cd
명령어를 통해 진입할 수 있지만, 파일은 진입할 수 없다.touch [file_name]
: 파일을 생성하는 명령어
touch memo.txt # memo.txt 라는 텍스트 파일을 생성한다.
cat [file_name]
: 파일의 내용을 터미널에 출력하는 명령어
cat memo.txt # 파일의 내용인 myemail@gmail.com이 출력된다.
CLI에서 파일의 내용을 수정하려면 어떻게 해야할까?
➡️ CLI에서 텍스트를 편집할 수 있도록 CLI 전용 텍스트 편집기가 있다.
CLI 텍스트 에디터
- vim(vi)
완전 초보를 위한 Vim- emacs
- nano
rm
(remove) : 폴더나 파일을 삭제하는 명령어
rm
으로 삭제한 폴더나 파일은 휴지통을 거치지 않고 삭제된다.rm
은 단일 파일만 삭제할 수 있다.rm memo.txt # memo.txt를 삭제한다.
rm
의 옵션-r
(recursive) : 폴더를 지울 때 사용하는 옵션
-f
(force) : 질문을 받지 않고 지울 때 사용하는 옵션
rm -rf myNewFolder # myNewFolder를 삭제한다.
mv [file_name] [folder_name]
(move) : 폴더나 파일을 이동할 때 사용하는 명령어
mv memo.txt myNewFolder/ # memo.txt를 myNewFolder로 이동한다.
폴더나 파일의 이름을 변경하는 데에 사용할 수도 있다.
mv [file_name] [file_name]
mv memo.txt myMemo.txt # 파일명을 memo에서 myMemo로 변경한다.
컴퓨터가 폴더나 파일을 옮기는 방법
- 파일을 잠시 저장한다.
- 원래 위치에 있는 파일을 삭제한다.
- 도착 폴더에서 1에서 저장해둔 내용으로 새로운 파일을 생성한다.
mv
에 입력하는 파일의 원래 위치와 도착 폴더의 위치가 같고, 이름만 다른 경우, 컴퓨터는 파일을 삭제하고 새롭게 생성하는 대신 파일의 이름만 변경한다.cp [file_name] [file_name]
(copy) : 폴더나 파일을 복사하는 명령어
cp memo.txt memo2.txt # memo.txt를 복사해 memo2.txt를 생성
폴더를 복사하기 위해 명령어 cp
를 사용하려면, 명령어 rm
으로 폴더를 삭제할 때처럼 메세지가 출력된다. 따라서, 폴더를 복사하려면 옵션을 이용한다.
r
(recursive) : 폴더를 복사할 때 사용하는 옵션
f
(force) : 질문을 받지 않고 복사할 때 사용하는 옵션
cp -rf myNewFolder mySecondFloder # myNewFolder를 복사해 mySecondFloder 생성
컴퓨터가 폴더나 파일을 복사하는 방법
- 파일을 잠시 저장한다.
- 원래 위치에 있는 파일을 삭제한다.
- 도착 폴더에서 1에서 저장해둔 내용으로 새로운 파일을 생성한다.
pwd
로 확인할 수 있다./
)를 기준으로 한다./Users/jieunchun/Desktop/myNewFolder # 루트폴더(/)에 폴더 jieunchun이 있다.
~/
= /Users/[username]/
: 루트 폴더(/
)로부터 사용자 폴더(username)까지의 경로를 축약한 형태~/Desktop/myNewFolder # 위의 경로와 같다.
.
: 현재 폴더..
: 상위 폴더/
: 폴더 내부를 의미./
: 현재 폴더보다 아래의 폴더로 진입 (.
은 현재 폴더, /
은 폴더 내부)cd ./myNewFolder # 현재 폴더보다 아래의 myNewFolder로 진입한다.
mv memo.txt ../ ../ # memo.txt는 상위 폴더로 2번 이동시킨다.
컴퓨터의 운영체제에는 사용자와 관리자가 있다.
관리자 권한이 생긴 이유
과거의 Windows에는 사용자가 없었고, 항상 관리자 권한으로 실행되었다.
때문에 악성코드가 삽입된 프로그램이 어떠한 안전장치도 없이 설치되거나, 시스템 설정을 변경하는 프로그램들로 인해 프로그램이 충돌하여 시스템이 마비되고 블루스크린이 뜨곤 했다. 사용자를 이런 것들로부터 보호하고자 사용자 계정과 사용자 계정 컨트롤이 만들어졌다.
: 사용자가 모르는 사이에 시스템 설정을 변경하는 악성코드가 실행될 때, 접근 권한을 막아 사용자를 보호한다.
루트 폴더(/
) : 관리자 권한 영역으로 사용자 권한으로는 어떠한 폴더나 파일도 생성하거나 변경, 삭제할 수 없다.
➡️ 루트 폴더에서 명령어 mkdir
을 이용해 폴더 test를 생성하면, Read-only file system
이라는 에러가 나온다.
whoami
: 현재 로그인된 사용자를 확인하는 명령어
명령어 whoami
로 확인할 수 있는 사용자는 폴더의 형태로 존재하는데, 이는 Users/
폴더에서 username 폴더를 확인할 수 있다.
사용자 권한은 username 폴더 내에서만 자유롭게 사용할 수 있다. 반면, 관리자 권한을 이용하면 다른 사용자 폴더에도 영향을 끼칠 수 있고, 시스템 자체에도 접근이 가능하다.
sudo
(substitute user do) : 사용자 환경에서 관리자 권한을 획득하는 명령어
mkdir justMkdir # 사용자 권한으로 justMkdir 폴더를 생성한다.
sudo mkdir sudoMkir # 관리자 권한으로 sudoMkdir 폴더를 생성한다.
sudo
를 이용해 생성한 폴더의 소유자는 루트이다. (= 관리자의 권한으로 생성되었다는 뜻)ls -l
: 특정 폴더나 파일이 사용자의 소유로 생성되었는지, 관리자의 소유로 생성되었는지 확인할 수 있다.정리
- 관리자 권한은 사용자가 프로그램을 설치, 변경 또는 삭제하는 권한을 차단하여 시스템을 안전하게 보호한다.
- 사용자는 주어진 권한만 사용할 수 있으며, 프로그램을 설치, 변경 또는 삭제하기 위해서는 관리자 권한을 획득하여야 한다.