간단한 명령어들 과 CLI의 정의를 알아보자 🔥
컴퓨를 조작하기 위해서 다양한 입력이 필요하다. 컴퓨터에 새로운 명령을 전달하는 모든 소스가 입력 소스다. 컴퓨터엔 입력과 출력이 존재하는데 화면을 보기위해 마우스를 사용하고 메시지를 입력하기 위해 키보드를 사용한다.
위와 같은 담당이 입력 소스 (Input Source)라고 하고 키보드 마우스와 카메라, 마이크도 해당된다. 반대로 프로그램에 의해 모니터에 화면을 나타내거나, 음악을 재생하면 소리를 스피커로 전달하여 사용자가 인식 할 수
있도록 하는일을 출력이라고 한다. 시각적 출력을 담당하는 모니터, 청각적 출력을 담당하는 스피커를 출력 소스 (Output Source)라고 한다.
컴퓨터를 조작하기 위한 입력과 출력을 간단하게 I / O (Input / Output)라고 표기하며, 아이오
라고 읽는다. 리눅스의 터미널은 키보드의 입력과 모니터의 출력으로 모든 작업을 할 수 있다.
리눅스 터미널은 GUI
가 개발되 이전부터 컴퓨터를 조작하기 위해 사용되었기 때문에 GUI
가 할 수 있는 모든 작업들은 CLI
로 할 수 있다.
키보드의 입력을 확인하고 편집할 수 있는 한줄의 공간을 의미한다
man
( Manual )각 명령어의 설명과 옵션들을 보여준다. 보여주는 창을 나갈 땐 :q
를 이용해서 나가면 된다.
man pwd
pwd
( Print Working Directory )현재 디렉토리의 경로를 출력한다.
pwd
cd
( Change Directory )PATH
경로에 해당하는 디렉토리에 이동한다. 아규먼트가 없다면 사용자의 홈 디렉토리로 이동한다. -
을 사용하면 이전 경로로 돌아간다
cd path/to/foo (foo 디렉토리로 이동)
cd path/to/bar (bar 디렉토리로 이동)
cd - (다시 foo 디렉토리로 이동)
ls
( List )PATH
경로에 해당하는 디렉토리 / 파일 정보를 보여준다. PATH
아규먼트를 주지않으면 현재 디렉토리 정보를 보여준다.
a
옵션 : 숨겨진 파일을 포함한 모든 파일을 보여준다.l
옵션 : long format
을 사용해서 더 자세한 정보를 보여준다.가장 왼쪽에 출력되는 두 글자 d
와 -
를 확인할 수 있다. 여기서 d
로 출력된 경우는 폴더를, -
로 출력된 경우는 파일을 나타낸다.
mkdir
( Make Directory)디렉토리를 생성한다. 여러 경로를 한꺼번에 줘서 여러 디렉토리를 한꺼번에 만들 수 있다. 폴더 또는 파일의 이름에 공백이나 특수문자가 있다면 백슬래시\
를 이용해 적용해야한다.
mkdir PATH1 PATH2 ...
open
터미널의 위치를 GUI
의 탐색기(파인더)로 열 수 있다.
open . (현재 위치를 파인더로 열기)
touch
( Touch File )경로에 해당하는 파일을 생성한다.
touch file.txt
cat
( concatenate )해당하는 파일들의 내용을 출력한다. 파일이 여러 개인 경우 내용을 모두 붙여서 출력한다.
cat app.js
less
해당하는 파일을 페이지 단위로 나눠서 보여준다.
단축키 :
space
or f
b
G
g
head
, tail
해당하는 파일의 처음 또는 마지막 10줄을 출력한다. n
옵션을 이용해서 줄 단위 조절이 가능하다.
head -n 4 hello.txt (처음 4줄 출력)
tail -n 5 hello.txt (마지막 5줄 출력)
mv
( Move )디렉토리 또는 파일을 이동하거나 이름을 변경한다. 두 번쨰 아규먼트가 이미 존재하는 디렉토리의 경로일 경우 SOURCE_PATH
에 해당하는 디렉토리 / 파일을 그 안으로 이동하고, 그렇지 않으면 DEST_PATH
로 이름을 변경한다. i
옵션 : 이동 / 이름 변경을 할 때 똑같은 이름의 디렉토리 및 파일이 있으면 덮어씌워지는데. 확인을 하면서 mv
명령어를 사용하려면 i
옵션을 사용하면 된다.
mv [-i] SOURCE_PATH DEST_PATH
mkdir bye # bye 폴더를 생성합니다.
touch bye.txt # bye.txt 파일을 생성합니다.
mv bye.txt bye/
ls
# bye 폴더만 출력됩니다.
cd bye
ls
# bye.txt 파일이 출력됩니다.
cp
( Copy )디렉토리 또는 파일을 복사한다. 두 번째 아규먼트가 이미 존재하는 디렉토리의 경로일 경우 첫 번째에 해당하는 디렉토리 / 파일을 그 안으로 복사하고 그렇지 않으면 두 번째 아규먼트 라는 이름으로 복사한다.
r
옵션 : 디렉토리를 복사할 때는 꼭 r
옵션을 써야한다.i
옵션 : 복사할 때 똑같은 이름의 파일이 있으면 바로 덮어씌워지기때문에 확인을 하면서 하기위해 i
옵션을 사용한다.cp [-ri] SOURCE_PATH DEST_PATH
ls
# helloWorld.txt 가 출력됩니다.
cp helloWorld.txt hiComputer.txt
ls
# helloWorld.txt hiComputer.txt 가 출력됩니다.
rm
( Remove )폴더나 파일을 삭제한다.
rm [-rif] PATH1 PATH2 ...
r
옵션 : 디렉토리를 삭제할 때는 꼭 r
옵션을 사용해야 한다.i
옵션 : 복사할 때 각 파일을 정말 지울 것인지 물어본다.f
옵션 : 지울 것인지 절대 확인하지 않고 바로 지운다.clear
프롬프트 적힌 글들을 정리해 깔끔하게 정리해준다.
sudo
권리자 권환을 획득할 수 있다.
mkdir justMkdir
sudo mkdir sudoMkdir
password: # 타이핑을 해도 출력이 없기에 비밀번호가 출력되지 않더라도, 입력이 정상적으로 이뤄지고 있다.
ls
# justMkdir sudoMkdir helloWorld.txt hi.txt
위 차이점은 sudo 를 사용해 폴더를 만들었을때 폴더의 소유자가 root로 지정된다. 즉 권리자 권한으로 생성되었다는 뜻이다.
반면 sudo 를 사용하지않고 만든 폴더는 사용자 소유의 폴더 이다 ls -l
을 이용해 차이점을 확인 할 수 있다.
권리자 권한은 사용자가 프로그램을 설치, 변경 또는 삭제하는 권한을 차단하여 시스템을 안전하게 보호한다.
사용자는 주어진 권한만 사용할 수 있으며, 프로그램 설치, 변경 또는 삭제하기 위해서는 권리자 권한을 획득해야 한다. 사용자가 권리자 권한을 일시적으로 획득하는 명령어는 sudo
다.