본문 바로가기
2CHAECHAE 학교생활/OSNW실습

[ OS/NW 실습 ] 3주차 - 리눅스 명령어

by 2CHAE._.EUN 2022. 9. 21.

[ 디렉토리와 파일 ]

 

1. 리눅스는 대소문자 구분함 ( 윈도우는 상관없음 )

2. 파일 또는 디렉토리 이름이 .으로 시작하면 숨김 파일이다.

3. 모든 작업은 ~$에서 한다. ( 이동 cd )

 


[ 리눅스 파일의 종류와 특징 ]

 

장치파일 : 리눅스에서는 하드 디스크나 키보드 같은 각종 장치도 파일로 취급한다.

→ 프로그래밍을 함수를 사용해서 처리할 수 있도록 하려고

 

< 디렉토리 계층 구조 >

 

리눅스는 mount 라는 개념이 존재해서 전체를 하나로 볼 수 있다. → 루트(/)부터 출발

* 윈도우는 하드웨어 장치별로 파일 시스템을 따로 만든다. ex) C,D 드라이브

 

mount : 디스크 같은 물리적인 장치를 특정 위치( 디렉토리 )에 연결시켜주는 것

 

① HOME 디렉토리 : 사용자는 모두 HOME 밑으로 생성이 된다. → 각 사용자들의 집이라 생각하면됨.

* 처음 리눅스에 접속했을 때 나오는 화면이 HOME 디렉토리이다.

* ~가 HOME 디렉토리를 의미한다.

 

* . : 현재 디렉토리

  .. : 부모 디렉토리

  / : 루트 디렉토리

* $ : 현재 사용자가 접속

   # : root 사용자가 접속

 

② bin 디렉토리 : bin 디렉토리 밑에 있는 파일들은 다 명령어이다. 

→ bin : 실행 파일 ( 명령 )을 가지고 있다.

 

③ etc 디렉토리 : 리눅스에 대한 모든 설정 파일이 들어있다. → 중요한 파일

일반 사용자가 etc 디렉토리 밑에 있는 파일에 대해서 read 하는 것은 가능하지만 write 하는 것은 불가능하다. 

→ permission denied 

* root 사용자일 경우 etc 디렉토리에 대해 write 권한이 있기 때문에 일반 사용자에서 작업을 해야한다.

 

④ tmp : 임시 파일이 들어있다. ( 쓰레기 값은 재부팅하면 모두 삭제 된다. )

 

⑤ lib : 라이브러리가 들어있다. 

 

< 경로명 >

 

① 절대 경로 : 루트부터 시작하는 경로

② 상대 경로 : 현재 디렉토리를 기준으로 시작하는 경로 

 


[ 사용자 관리 ]

 

사용자 관리는 root / 슈퍼 사용자가 하는 일이다. → 슈퍼 사용자는 권한이 있다.

 

* bash shell : 가장 많이 사용하는 shell

* 파일을 한 사람이 작업하더라도 모든 파일에는 그룹이 존재한다. ex) cat /etc/group

 


[ 리눅스 파일 / 디렉토리 명령어 ]

 

1. clear : 화면 clear

2. history : ↓,↑를 사용해서 전에 사용했던 명령어를 확인할 수 있다. 

* history는 shell이 관리한다. 

 

3. ls -F [ 디렉토리명 ] : 디렉토리에 있는 파일을 보여달라

 

* 디렉토리명을 검색할 때는 앞에 반드시 /를 붙여야한다. → /dev : root 밑에 있는 dev 파일을의미

  /를 붙여주지 않는다면 현재 디렉토리 밑에 있는 디렉토리를 의미해서 원하는 결과를 확인 못 할 수도 있다.

 

4. pwd : 현재 작업하고 있는 디렉토리 위치를 알려준다. ( print working directory )

* 내가 작업하고 있는 디렉토리는 작업 디렉토리 ( working directory )라고 한다. 

 

5. cd : 디렉토리 이동  → $ 앞은 working directory를 의미한다. 

* 다시 HOME 디렉토리로 이동하고 싶을 경우에는 cd만을 입력하면 된다.

 

6. ls : 디렉토리의 내용 출력

 

-a : all → 숨김 파일을 포함해서 출력 * 숨김 파일은 앞에 .이 붙여져 있다.

-l : long → 파일의 상세 정보를 출력한다.

* 리눅스는 모든 파일에 대해 소유자와 그룹이 존재한다. 

* ls 명령어은 옵션을 붙여서 사용이 가능하다. ( 순서는 상관 없다. )

* 링크 : 파일은 하나인데 이름이 여러 개일 경우

 

7. mkdir : 디렉토리 생성

* 생성한 디렉토리에서 ls -al을 입력하면 .와 .. 디렉토리 2개만 존재  → 현재 디렉토리와 부모 디렉토리

 

8. rmdir  : 디렉토리 삭제

* 디렉토리가 비어있지 않다면 삭제 불가능

 

9. cat : 파일의 내용을 출력한다. ex) cat /etc/hosts, cat /etc/passwd

* 127.0.0.1 : localhost( 자신의 호스트 주소 )를 의미

→ 모든 컴퓨터의 IP 주소는 다르기 때문에 127.0.0.1이라는 자기 자신을 의미하는 IP 주소가 존재한다.

 

10. more : 한 페이지씩 파일의 내용을 출력한다. ( 스페이스로 페이지 넘기기 가능 )

 

11. tail : 파일의 뒷 부분 일부만 출력

     head : 파일의 앞 부분 일부만 출력

 

12. cp : 파일이나 디렉토리를 복사 

 

cp [ source ] [ destination ]

 

ex) cp /etc/hosts text1 → /etc/hosts에 있는 내용을 text1으로 복사한다.

 

① cp 파일 파일 : 확장자가 같으므로 그대로 복사가 된다.

② cp 파일 디렉토리 : 디렉토리 안에 똑같은 이름의 파일이 생성이 된다.

 

디렉토리가 복사될 경우 원본 디렉토리 밑에 있는 내용도 모두 복사가 된다.

-r : recursive → 디렉토리를 복사할 경우 -r 옵션을 사용해야한다.

 

cp -r [ source 디렉토리 ] [ destination 디렉토리 ]

 

13. mv : 파일을 이동하거나 이름을 변경한다. ( rename )

 

mv 파일 [ 이동할 디렉토리 ]

mv [ 기존 파일 ] [ 변경할 이름의 파일 ]

 

14. rm : 파일이나 디렉토리를 삭제한다. 

 

rm [ 삭제할 파일 / 디렉토리 ]

 

* 디렉토리를 삭제할 경우 안에 파일이 존재하면 삭제가 되지 않는다. → -r 옵션 사용

-r : 디렉토리 안에 파일이 존재할지라도 상관없이 다 삭제해버린다.

 

15. 링크 : ln

 

링크는 기존에 존재하던 데이터에 이름만 추가로 붙이는 것이다. → 명령어를 실행하면 하드 링크 수가 증가한 것을

확인할 수 있다.

 

ln [ 기존 데이터 ] [ 새로운이름 ]

 

 

링크 파일을 삭제해도 기존 파일은 그대로 남아있고 삭제한 만큼 하드 링크 수도 줄어들어 있다.

 


[ 사용자 관리 명령어 ]

 

1. who : 사용자 로그인 정보 확인하기

2. w : 현재 시스템을 사용하는 사용자의 정보와 작업 정보를 출력

3. whoami : UID 확인하기

4. su : 사용자 변경

ex) 일반 사용자에서 잠시 root 계정으로 전환할 때

      일반 사용자 → root → exit → 일반 사용자

 

5. sudo : root 계정만이 수행할 수 있는 특정 작업을 일반 사용자가 할 수 있도록 권한을 부여

→ 슈퍼 사용자 권한으로 수행하라는 의미

 

사용자 관리는 일반 사용자가 할 수 없기 때문에 sudo를 사용해서 권한을 높여줘야 한다.

 

6. useradd : 사용자 추가

 

-s : 기본 셸 지정

-m : 홈 디렉토리 생성

 

sudo useradd -s /bin/bash -m -d /home/SW7505 SW7505

 

사용자가 제대로 추가됐는지 확인하는 방법으로는 ls -l 과 tail /etc/passwd를 확인해보면 된다.

 

* 사용자를 추가하고 추가된 사용자로 바로 로그인을 하기 위해서는 패스워드를 입력해야한다.

sudo passwd를 사용해서 새로운 사용자에 대한 패스워드를 지정해줘야지 로그인이 가능하다. 

 

sudo passwd SW7505

 

* sudo adduser + 사용자 처럼 옵션없이 명령어를 사용할 경우 옵션에 대한 모든 값을 물어본다. 

 

7. usermod : 사용자 모드 변경

 

sudo를 사용할 수 있는 계정은 제한되어 있으므로 sudo를 할 수 있는 계정으로 등록을 해줘야한다.

→ sudoers 파일에 계정을 추가해주면된다. 

 

즉, sudo 권한이 있는 사용자가 sudo 권한이 없는 사용자를 등록해주면 된다. 

 

sudo usermod -aG sudo SW7505

 

등록을 해주고 cat /etc/group의 sudo 그룹을 확인해보면 새로 등록된 사용자를 확인할 수 있다.

 

새로 등록된 사용자 계정은 서버 종료 후 다시 접속해야한다.

 

8. userdel : 사용자 삭제

 

-f : 삭제할 사용자가 접속 중일지라도 강제로 삭제한다.

-r : 삭제할 사용자의 홈 디렉토리와 메일 디렉토리를 모두 삭제

 

sudo userdel -rf SW7505

 

tail /etc/passwd를 확인해보면 삭제한 사용자는 확인할 수 없다.