개발 R.I.P.

5/20 Dev.Feedback(CLI 명령어 정리)

편행 2021. 5. 20. 11:31
반응형

pwd(print working directory) 

현재 위치 확인

 

mkdir(make directories)

새로운 폴더 생성

 

ls(list)

특정 폴더에 포함된 파일 혹은 하위 폴더를 출력해줌

ls -a 숨겨져 있는 파일이나 목록을 전부 표현

ls -l 폴더나 파일의 포맷을 전부 표현

 

ls -al, ls -la처럼 한꺼번에 사용 가능

 

ls -l 을 하면 

drwxr-xr-x

-rw-r--r--

d / rwxr-xr-x
- / rw-r--r--

이런 형식을 보게 되는데

밑의 / 를 기준으로 두 개의 부분으로 나누어서 생각을 하면 좋다

 

먼저 / 기준 앞 부분은 타입을 구분해준다.

 

d 는 디렉토리(폴더)를 의미하고

- 는 파일을 의미한다.

 

/ 기준 뒤는 , 특정 파일 및 폴더에 접근할 수 있는 권한에 대해 보여준다.

 

'r'은 read의 약자로 읽기 권한을 의미한다. 파일 및 폴더안에 있는 데이터, 속성, 서브 폴더 등에 접근이 가능

'w'는 write의 약자로 쓰기 권한을 의미한다. 파일 및 폴더의 속성과 데이터를 변경할 수 있음

'x'는 execute의 약자로 실행 권한을 의미한다. 해당 파일을 실행하여 사용할 수 있음

'-'는 권한 없음을 나타낼 때 쓰인다.

 

즉 rwx 는 읽기 쓰기 실행 권한이 있는 것이고, r-x는 읽기 실행 권한은 있지만, 쓰기 권한이 없고, r--은 읽기만 가능한 것이다.

 

/ 기준 뒤인 권한 부분은 또 3가지로 분류할 수 있는데

 

drwxr-xr-x

-rw-r--r--

d / rwx | r-x | r-x
- / rw- |r-- | r--

| 기준으로 나누어보면,

첫 번째 부분은 파일 및 폴더를 소유하고 있는 유저가 가지는 접근 권한에 대해

두 번째 부분은 그룹을, 3번 부분은 다른 유저를 특정하고 있다.

 

분석을 해보자면,

drwxr-xr-x
디렉토리이며, 폴더를 소유하고 있는 사용자에게 읽기와 쓰기 그리고 실행권한이 있다.
그룹과 다른 유저에게는 읽기 실행 권한만 있다.

-rw-r--r--
파일이며, 폴더를 소유하고 있는 사용자는 읽기와 쓰기 권한이 있지만, 실행권한은 없다.
그룹과 다른 유저는 읽기 권한만 있다.

d / rwxr-xr-x
- / rw-r--r--

이런식으로 해석할 수 있다.

 

open . 

현재 위치를 GUI로 실행하는 명령어

 

cd(change directory)

폴더에 진입하는 명령어

 

touch

파일 생성하기

 

cat 파일명

파일의 내용을 출력

 

rm 파일 or 폴더명 (remove)

폴더나 파일 삭제하기

 

**명령어 옵션 -r , -f

-r 은 recursive의 약자로 특정 행동을 순환적으로 반복한다.

 

-f 는 force의 약자로 어떤 행위를 강제한다.

 

rm 명령어는 파일을 저장하고 있는 폴더를 삭제하지 못하는데, 이때 -r 옵션을 추가하면 파일을 저장하고 있는 폴더도 삭제 할 수 있다.

 

-f 명령어를 사용하면 보호되거나 존재하지 않는 파일도 강제로 삭제할 수 있다. 그런 이유로 -f 명령어를 사용하실 때는 각별히 주의해야 한다.

 

이 일과 관련하여 유명하게 있었던 사건이 토이스토리 2 사건이다.

https://www.insight.co.kr/news/336403

 

실수로 2년간 작업한 데이터 다 날려 개봉 취소될 뻔한 ‘토이 스토리 2’ 제작 비하인드

2년 동안 제작한 데이터 90%가 손실돼 세상의 빛을 보지 못할 뻔한 ‘토이 스토리 2’의 제작 비하인드가 재조명되고 있다.

www.insight.co.kr

rm -rf를 리눅스에 입력하여 2년간 작업한 모든 작업물을 날릴 뻔 했던 것....

 

mv(move)

폴더나 파일의 이름을 변경, 또는 폴더나 파일의 위치 옮기는 명령어

mv 뒤에는 순서대로 [폴더나 파일의 이름] [도착 폴더의 이름]를 입력해야 한다. (대괄호 생략하고 띄어쓰기만!)

 

cp(copy)

폴더나 파일을 복사하는 명령어

cp를 사용하는 경우에는, cp [원본 파일 이름] [복사할 파일 이름]을 입력해야 한다.

 

 

CLI에서의 경로 이동을 자유롭게 사용하기 위해 경로에 대한 개념을 정리할 필요가 있다.

 

절대 경로와 상대 경로

절대 경로 

  • pwd로 확인할 수 있다.
  • 절대 경로는 기준점으로부터의 절대적인 위치를 나타내는데, 이 기준점을 루트폴더(/)라고 한다. 절대 경로는 특정 폴더나 파일이 루트폴더로부터 어떤 폴더로 진입하는 경우 만날 수 있는지 나타낸다.

상대 경로

  •  현재 위치를 기준으로 상대적으로 파악
  • 상대 경로는 특정 폴더 또는 파일의 위치를 현재 위치를 기준점으로 나타낸다. 현재 위치한 폴더는 점(.)으로 표현하고, 상위 폴더는 두 개의 점(..)으로 표현한다.
  • (.)은 현재 위치한 폴더를 (/)는 폴더 내부를 가리킨다. (./)는 "현재 폴더 내부의 ~" 라는 의미를 갖고있다.
    즉 (./폴더명) 을 입력하면 현재 폴더 내부의 폴더를 가리키는 것이고,
    cd ./폴더명 을 입력하면 현재 폴더 내부의 폴더로 이동한다는 명령어가 입력되는 것이다.
  • cd ..는 상위 폴더로의 이동을 의미한다.

sudo

관리자 권한을 획득하는 명령어

 

echo 

프롬프트 상에 문자열을 출력해주는 명령어, 파일을 간단하게 만들 때도 유용하게 사용

쉘 프로그램 수행 중에 진행상황을 화면 상에 공유할 때도 사용한다.

~/Users/apple $ echo hello\nworld

hello world

~/Users/apple $ echo 'hello\nworld'

hello world

echo 명령어 뒤에 나오는 단어는 문자열로 출력 되는데, 이렇게 인용 부호가 추가 되어도 결과 값은 동일하게 나온다.

 

echo 명령을 이용해서 여러 라인의 메시지를 출력하기 위해서는 -e 옵션과 함께 문자열 중간에 특수문자 중 줄 바꿈 문자인 \n 을 사용하면

된다.

~/Users/apple $ echo -e hello\\nworld

hello
world

echo 명령어 > [file name]

명령어의 텍스트로 구성된 파일이 생성된다.

~/Users/apple $ echo -e hello\\nworld > hello
~/Users/apple $ cat hello

hello
world

cat 명령어를 이용해 hello 파일을 확인해보면, echo 명령의 결과로 화면에 출력되는 문자열이 hello라는 파일에 저장되어 있는 걸 볼 수 있다. 

 

~/Users/apple $ echo -e hello\\nworld > hello
~/Users/apple $ cat hello

hello
world

~/Users/apple $ echo love > hello
~/Users/apple $ cat hello

love

echo 명령어 > 기존 파일명을 입력하면 기존에 저장되어 있던 텍스트를 새로운 명령어로 변경할 수 있다.

 

기존 내용을 유지하면서 파일에 새로운 문자열을 추가하고 싶을 땐, >>기존 파일명을 입력하면 된다.

~/Users/apple $ echo -e hello\\nworld > hello
~/Users/apple $ cat hello

hello
world

~/Users/apple $ echo love >> hello
~/Users/apple $ cat hello

hello
world
love
반응형