2021. 3. 5. 23:44ㆍComputer(인강)/시스템 프로그래밍
안녕하세요 bannavi 입니다^ㅅ^
오늘은 쉘로 시작하는 시스템 기본 프로그래밍 기본 첫번째시간입니다.
바로 시작해보도록 하겠습니다.
쉘(shell) : 사용자와 컴퓨터 하드웨어 또는 운영체제간 인터페이스
- 사용자의 명령을 해석해서, 커널에 명령을 요청해주는 역할
- 관련된 시스템콜을 사용해서 프로그래밍이 작성되어 있다.
-> 쉘은 하드웨어와 컴퓨터 사용자 간의 인터페이스 창구 역할을 한다! 라고 볼 수 있습니다.
쉘 종류
- 크게 분류해서는 터미널을 사용하는 CLI환경이 있고, 마우스를 사용하는 GUI환경이 존재합니다.
shell은 프로그램이 한개만 존재하는것이 아닙니다.
종류를 살펴볼까요?
1. Bourne-Again Shell(bash): GNU 프로젝트의 일환으로 개발됨, 리눅스 거의 디폴트임
2. Bourne Shell(sh)
3. C Shell(csh)
4. Korn Shell (ksh) : 유닉스에서 가장 많이 사용됨
쉘이란게 인터페이스다 보니, 각각의 쉘마다 명령의 차이가 존재하긴합니다.
하지만 리눅스를 대부분 따라한거긴 하기 때문에 리눅스의 전통적인 명령어는 대부분 유사합니다.
본 포스팅에서는 1번인 Bourne-Again Shell(bash) 의 사용법을 위주로 익혀보도록 하겠습니다^ㅅ^
리눅스 기본 명령어 정리
1) 리눅스 명령어는 결국 쉘이 제공하는 명령어
2) 리눅스 기본 쉘이 bash 이므로, bash에서 제공하는 기본 명령어를 배우는 것
UNIX는 다중 사용자를 지원하는 시스템
1) 다중 사용자 관련 명령어 알아보기
처음 배워볼 명령어는 whoami입니다
whoami: 로그인한 사용자 ID를 알려줌
자 이걸 실행해보기 전에 각자 aws환경에 접속해보시기 바랍니다.
whoami를 입력하고 enter를 치면 ubuntu가 나오네요
이 명령은 내가지금 누구니 하고 묻는것입니다.
passwd: 로그인한 사용자 ID의 암호 변경
- password의 축약어 입니다.
여러분은 아래처럼 안보일 확률이 높은데요, 이유는 여러분이 aws환경에 지금 접속하면, 처음에 운영체제를 다 세팅을 한 상태로 아마존이 만든 운영체제 리눅스 패키지를 썼었죠?(ubuntu기반) 그 운영체제는 ubuntu라는 id를 미리 만들어놓았는데,
이 id의 패스워드를 안만들었죠. 우리도 만든적이 없죠.
그래서 여러분이 passwd를 입력한다고 해서 아래와같은 화면이 똑같이 나오지 않을 수 있습니다.
뭐야 그럼 나는 어떻게 실습하라고..? 하시는 분들을 위해 준비했습니다
useradd와 adduser
- useradd는 사용자 기본 설정 자동으로 하지 않음
- adduser는 사용자 기본 설정을 자동으로 수행함
유저에드..? 아이게 뭔데..?ㅠㅠ
일단 pwd를 쳐보세요 여러분. 그럼 자기 현재의 디렉토리가 나옵니다.
그리고 기본 설정을 자동으로 수행하는 adduser를 입력해보세요 한번
아이디도 만들어볼까요?
이게 무슨뜻이냐면, 일반 사용자인 내가 아이디를 만드는데, 시스템에 새로운 사용자를 만든다. 새로운 사용자에 권한을 준다.
이 말이 어색하죠. 그래서 adduser를 사용하는 권한이 또 있다고 볼 수 있겠고요
adduser는 원래 다중 사용자 시스템에서 가장 슈퍼권한을 다 가진 아이디는 이름이 딱 정해져 있습니다.
바로 root라고 하는데요. 그래서 이 root라는 사용자가 되면 모든 권한을 쓸 수 있는데,
root라는 사용자는 이 adduser명령어를 쓸 수 있다. 뭐 이런 이야기 입니다.
엥 저는 ubuntu인데 어떻게 root라는 사용자로 이 시스템에 로그인을 해야되는건가요?
-> 사실 root라는 사용자로 이 시스템에 로그인해야되는게 맞는데요, 좀 다른 방법을 알려드리겠습니다
이를 위해서 다른 명령어를 알아야하는데요, 바로 아래에 있습니다.
바로 이 sudo라는 명령어 입니다.
sudo 명령어: root권한으로 실행하기
1. root 계정으로 로그인하지 않은 상태에서 root권한이 필요한 명령을 실행할 수 있도록 하는 프로그램
2. 기본 사용법
- sudo 명령어
- 사용 예 : sudo apt-get update
특정아이디들이 이 sudo라는 명령어를 쓸 수 있도록 설정을 해줄수가 있는데 그 부분은 조금 이따가 봐볼게용
그럼 먼저 이렇게 입력해볼까요>?
sodo adduser 여러분들의 아이디
요렇게요!
그럼 일종의 설정을 저렇게 주루룩 한 모습이 보여지는데요
home을 보면 home directory도 만들어진 모습이 보여지고있고요!
마지막 줄에 패스워드도 넣으라고 나오는데요 여러분이 원하시는 패스워드를 입력하세요
이 부분은 엔터를 눌러서 다 넘어가주시고요
마지막엔 Y를 입력해주시면 됩니다.
그 다음 이렇게 입력해줍니다
passwd는 어떤 아이디의 패스워드를 바꿔주는 명령인데요 이 명령을 함부로 실행하면 안되잖아요?
그래서 root권한이 있는 사용자만 실행을 할 수 있는데 그 root권한을 빌려올 수 있는 sudo라는 명령이 있죠
비밀번호를 치면 이렇게 바뀌지요
자자 비밀번호 바꾸는것까지 알아봤어요
다른 명령어도 알아볼게요
su : 사용자 변경
- 보통 su - 와 함께 사용
1) su root: 현재 사용자의 환경설정 기반, root로 변경
2) su - root: 변경되는 사용자의 환경설정을 기반으로, root로 전환
인데요 이걸 이해하기 위해서 다음을 볼게요
ls -al은 현재 디렉토리에 있는 파일 리스트를 나타내는 명령어 입니다.
엥? 갑자기 웬 ls -al 이라고 하실수도 있겠지만 일단 들어보세요...흠흠..
.은 숨은파일을 의미합니다.
(ls만 하면 숨김파일이 안나오고 ls -al을 하면 숨김파일까지 다 나온다고 합니다.)
자자 제가 방금 숨은 파일이라고 얘기를 했어요 그쵸.
su root 명령어를 사용하면 저 숨김파일이 현재 사용자것의 환경설정이 뜨겠죠!
그리고 su - root 명령어를 사용하면 저 숨김파일이 변경되는 사용자것의 환경설정이 뜰거에요
이제 su root와 su -root파일의 차이를 조금 아시겠나요..?! 그래도 초큼 감은 오시죠?
'Computer(인강) > 시스템 프로그래밍' 카테고리의 다른 글
파일 및 권한 관리 - 2 (0) | 2021.03.06 |
---|---|
파일 및 권한 관리 - 1 (0) | 2021.03.06 |
시스템 프로그래밍 시작 - 기본 구성 알아두기 (0) | 2021.03.05 |
리눅스 설치 with VMWare (0) | 2021.03.05 |
리눅스서버(EC2) IP 생성 및 접속 (0) | 2021.03.05 |