셸 | Shell
사용자가 하드웨어의 시스템 자원 or 운영체제의 기능을 사용할 수 있도록 도와주는 인터페이스로 사용자의 명령을 해석해서 커널에 요청해주는 역할을 합니다. 이러한 리눅스 환경의 셸의 명령들은 관련된 시스템 콜을 사용해서 프로그래밍이 되어있기 때문에 사용할 수 있는 명령어들이 정의되어 있습니다.
마이크로소프트사의 윈도우즈에서 사용되는 셸(GUI)의 경우는 이미 윈도우즈(운영체제)에서 만들어져 나온 프로그램들을 사용하는것이기 때문에 따로 변경할 수 없지만 리눅스 환경의 셸의 경우 원하는 프로그램을 선택할 수 있고 이는 리눅스 환경의 셸에는 다양한 종류가 있다는 의미입니다.
그 밖에 Bourne Shell(sh), C Shell(csh) 등 이 있습니다.
다중 사용자를 지원하는 유닉스를 기반으로 리눅스를 만들었기 때문에 리눅스의 셸 또한 다중 사용자를 지원하며 이러한 다중 사용자에 관련된 명령어들을 보겠습니다.
# whoami
: 로그인한 사용자 ID를 알려줍니다.
# passwd
: 로그인한 사용자 ID의 암호 변경
# useradd
: 신규 사용자 등록 | 사용자 기본 설정을 자동으로 하지 않음
# adduser
: 신규 사용자 등록 | 사용자 기본 설정을 자동으로 수행함
# su
: 사용자 변경
su root
: 현재 사용자의 환경설정을 기반으로 root 사용자로 변경su -root
: 변경되는 사용자의 환경설정을 기반으로 root 사용자로 변경# sudo
: root 권한으로 명령어을 실행함
# pwd
: 현재 디렉토리를 알려줍니다.
# cd
: 디렉토리를 이동할 때 사용합니다.
cd ~
: home 디렉토리로 바로 이동cd ..
: 전 디렉토리로 이동# ls
: 현재 디렉토리의 목록을 출력해 보여줍니다.
ls -al
: 현재 디렉토리의 숨김 파일까지 포함해서 출력해 보여줍니다.숨김 파일을 보는 방법: 각 파일마다 소유자, 소유자의 그룹, 모든 사용자에 대해 읽고, 쓰고, 실행하는 권한 설정 그리고 소유자 접근에 대한 권한 정보는 indoe에 저장됩니다.
1 | 3 | 3 | 3 으로 읽으면 되며, 앞의 칸은 파일일 경우 -
, 디렉토리일 경우 d
, 2번째 칸은 소유자 권한, 3번째 칸은 그룹의 권한, 4번째 칸은 기타사용자의 권한입니다.
- rwx rw- r-x |
---|
권한 | 대표문자 | 파일일 경우 | 디렉토리일 경우 |
---|---|---|---|
읽기 | r | 읽기, 복사 | ls 명령어 가능 |
쓰기 | w | 수정 | 파일 생성 가능 |
실행 | x | 실행 | cd 접근 가능 |
# chmod
: 파일의 권한 변경
문자를 사용한 방법은 아래와 같음
누구에게 | 주는지, 빼는지 | 어떤 권한을 |
---|---|---|
u 사용자 | + 더하기 | r 읽기 |
g 그룹 | - 빼기 | w 쓰기 |
o 기타 | = 설정 | x 실행 |
a 전부 |
ex) chomd g+rx text.c
그룹 사용자에게 읽기, 쓰기 권한을 추가한다.
ex) chomd u=rwx, g=rw, o=rx test.c
사용자에겐 전부다, 그룹에게는 읽고 쓰기를, 기타에게는 읽기와 실행을 준다.
숫자를 사용한 방법은 아래와 같음
r = 4 | w = 2 | x = 1 |
---|
ex) rwxrwxrwx
= 777
ex) r-xr-x-rx
= 555
ex) r--------
= 400
ex) rwx------
= 700
chmod 400 mysecurity.pem
: 소유자에게만 읽기 권한을 줍니다.
주로 사용하는 옵션으로 chmod -R 777 directory
를 사용해서 특정 폴더의 하위 폴더를 포함해서 777 옵션을 설정합니다.
# chown
: 소유자 변경
# cat
: 파일의 목록을 터미널 환경에서 확인합니다.
# head/tail
: 파일의 목록을 각각 10줄씩 앞부분/뒷부분만 출력해서 보여줍니다.# more
: 파일의 목록은 한 화면에 볼 수 없을 때 사용하면 넘겨가면서 확인할 수 있습니다.
# rm
: 파일 혹은 폴더를 삭제하는 명령어입니다.
# rm -rf
: 해당 명령어로 하위 디렉토리를 포함한 모든 파일을 강제로 삭제할 수 있습니다.