centOS 다운
위 링크들어가서 미러 사이트 하나를 선택하여 iso 파일을 받아줍니다.
세 개중에 하나를 선택 후,
10기가바이트짜리 iso짜리를 받아줍니다.(카이스트가 제일 빠른것 같습니다.)
vmware player 설치
위 링크를 설치하여 vmplayer를 설치해줍니다.
전부 next하시면 됩니다.
설치가 완료되면
이렇게 화면이 뜹니다.
Create a New Virtual Machine을 클릭하여 실습에 사용할 가상 머신을 만들어 줍니다.
추후에 설정을 하기 위해 나중에 운영체제를 선택하는 옵션을 선택합니다
저희는 리눅스 공부를 할 것이니
리눅스를 선택해주고
centOS 8버전을 선택해줍니다.
용량은 50기가바이트로 설정해줍니다.
커스터마이즈 하드웨어를 누르면 이렇게 하드웨어 설정을 할 수가 있는데
저는 프린트를 제거하고 램을 2기가로 변경 후 완료했습니다.
그러면 이렇게 하나의 가상 컴퓨터가 만들어졌습니다.
가상머신에 운영체제를 설치하기 위해 이 버튼을 클릭해줍니다
CD/DVD를 누르고 아까 다운 받은 centOS ISO 파일을 선택해줍니다
창을 닫고 가상머신을 실행시켜줍니다.
그러면 설치준비화면이 뜨는데 I를 누르고 엔터를 눌러 첫번째 옵션으로 설치해줍니다.
설치가 끝나면
언어 선택화면이 뜨는데 한국어를 고르고 계속을 눌러줍니다.
설치 목적지를 선택하여 파티션 설정을 해줍니다.
사용자 정의를 선택하고
/boot 512-> swap2048->root 공백(나머지 전부) 순서로 선택해줍니다
완료를 누르고,
root 계정의 비밀번호를 설정해줍니다.
모두 완료 후 계속을 누르고 설치가 진행되고
이렇게 설치가 완료가 됩니다.
시스템을 재시작하여
라이센스 정보를 선택하고 vmware player는라이센스 키가 없기 때문에 바로 설정완료를 합니다.
설정완료를 누르고
새로운 사용자 user를 추가해줍니다.
그러면 잠시 후
가상화면이 나오고 실습을 진행할 수 있는 터미널 창을 사용할 수 있습니다.
이렇게 환경구축은 마무리 됩니다.
복사 붙여넣기가 상대적으로 쉬운 window terminal에서 실습하기 위한 방법입니다
❓user 생성하는 이유 : root는 admin이기 때문에 노출이 되면 안됩니다. 따라서 실습에 사용할 새로운 사용자 user를 만들어줍니다.
리눅스는 윈도우와 다르게 확장자라는 개념이 없음
ex) hwp ====> text
2.1 why❓ 리눅스 계열은 파일의 속성을 읽어서 프로그램을 동작 시키기 때문
터미널에서 ALT + F3을 누르면 GUI 인터페이스를 해제할 수 있습니다.
리눅스는 멀티유저 운영체제 시스템입니다. ALT + F4 ~ F7를 누르면 추가로 유저를 로그인할 수 있습니다.
콘솔 화면에서 tty를 입력하면 /dev/tt3 라고 출력되는데, tty뒤에 숫자는 ALT + F4 ~ F7로 어디에 로그인 했는가에 따라 달라집니다.
su - "id"(공백은 root)는 switching user로 로그인 된 사용자를 변경할 수 있습니다.
윈도우는 장치를 연결하면 마운트포인트가 드라이브로 설정되어 있지만, 리눅스는 연결하면 디렉토리 단위로 설정됩니다.
change directory로 디렉토리의 이동을 하는 명령어
경로의 기준은 두 가지가 있음
[root@localhost ~]# cd /etc/rc.d/init.d
pwd는 현재 위치한 경로를 절대경로로 표시해줌
[root@localhost init.d]# pwd <--- pwd 는 현재 위치한 경로를 절대로 보여주는 명령어
/etc/rc.d/init.d
[root@localhost init.d]# cd ../../rc3.d
. : 현재 디렉토리
.. : 상위 디렉토리
모든 디렉토리는 자신과 상위 디렉토리를 가리킴
방금 전 디렉토리로 이동하는 옵션
지정된 사용자 홈디렉토리로 이동하는 옵션
cd ~만 입력하면 현재 로그인한 사용자의 홈디렉토리로 이동
cd 만 입력해도 현재 로그인 사용자의 홈디렉토리로 이동
따라서 cd "공백" = cd ~
디렉토리의 파일이나 디렉토리를 확인하는 명령어
[root@localhost ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg
다양한 옵션이 있다
대표 옵션들
자세한 내용을 출력
[root@localhost ~]# ls -l
합계 8
-rw-------. 1 root root 1220 2월 14 07:02 anaconda-ks.cfg
-rw-r--r--. 1 root root 1447 2월 14 07:12 initial-setup-ks.cfg
-rw-------. | 1 | root | root | 1220 | 2월 14 07:02 | anaconda-ks.cfg |
---|---|---|---|---|---|---|
퍼미션(권한),파일(또는 디렉토리)에 ACL(access control list) 가 선언되어있는지 유무 표현 .은 선언되지 않음 | 링크카운트(파일의 default 링크카운트는 1 디렉토리의 default 링크카운트는 2) | 소유자(여기선 그룹과 이름이 같지만 다른 정보 ) | 그룹 | 파일크기(byte 단위로 표기 ) | 수정 시간(ls -l 명령어 뒤에 기본적으로 t 생략됨 수정시간을 나타냄 ls -lt = Modify time, ls -lut Access time, ls -lct = Change time(메타데이터 변경) 보통 이걸 줄여서 mac TIME 이라함) | 파일이름 |
숨겨진 파일이나 디렉토리도 보여줌
root@localhost ~]# ls -a
. .bash_history .bashrc .cshrc .local .tcshrc
.. .bash_logout .cache .dbus
inode 정보 확인
[root@localhost ~]# ls -i
67157636 anaconda-ks.cfg 67934214 initial-setup-ks.cfg
속성 확인
[root@localhost ~]# ls -F
anaconda-ks.cfg initial-setup-ks.cfg 공개/ 다운로드/ 문서/ 바탕화면/ 비디오/ 사진/ 서식/ 음악/
역순으로 출력 (ls 명령어의 기본은 알파벳 순서다.)
하위 디렉토리까지 출력
[root@localhost ~]# ls -lR /root
/root:
합계 8
-rw-------. 1 root root 1220 2월 14 07:02 anaconda-ks.cfg
-rw-r--r--. 1 root root 1447 2월 14 07:12 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 6 2월 14 07:16 공개
drwxr-xr-x. 2 root root 6 2월 14 07:16 다운로드
drwxr-xr-x. 2 root root 6 2월 14 07:16 문서
drwxr-xr-x. 2 root root 6 2월 14 07:16 바탕화면
drwxr-xr-x. 2 root root 6 2월 14 07:16 비디오
drwxr-xr-x. 2 root root 6 2월 14 07:16 사진
drwxr-xr-x. 2 root root 6 2월 14 07:16 서식
drwxr-xr-x. 2 root root 6 2월 14 07:16 음악
/root/공개:
합계 0
/root/다운로드:
합계 0
/root/문서:
합계 0
/root/바탕화면:
합계 0
/root/비디오:
합계 0
/root/사진:
합계 0
/root/서식:
합계 0
/root/음악:
합계 0
지정 경로에 있는 최상위 디렉토리만 출력
파일이 수정된 시간 기준으로 정렬하여 출력
파일 크기 순으로 정렬하여 출력
파일 크기를 K, M, G 단위로 표시
파일종류 확인하기
[root@localhost ~]# file /etc/passwd
/etc/passwd: ASCII text
cat은 파일의 내용을 확인
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
cat은 스크롤의 한계가 있어 끝자락의 내용만 볼 수 있음
긴 파일을 한 페이지씩 보여주는 명령어(종료는 q)
[root@localhost ~]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
프로세스 결과를 후행 프로세스의 입력으로 넣어주는 pipeline(|)과 자주 사용합니다
[root@localhost ~]# ls -al /etc | more
합계 1376
drwxr-xr-x. 139 root root 8192 2월 14 09:11 .
dr-xr-xr-x. 17 root root 224 2월 14 06:45 ..
-rw-------. 1 root root 0 2월 14 06:47 .pwd.lock
-rw-r--r--. 1 root root 208 2월 14 06:45 .updated
-rw-r--r--. 1 root root 4536 4월 26 2020 DIR_COLORS
more는 위에서 아래로 이동하면서 읽을 수 있지만,
less는 위에서 아래, 아래에서 위로 둘 다 이동이 가능
[root@localhost ~]# less /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
.............
문서의 머리(head)부분을 출력
n옵션으로 출력하고 싶은 라인 수를 출력 가능 (default = 10)
[root@localhost ~]# head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
문서의 꼬리(tail)부분을 출력
n옵션으로 출력하고 싶은 라인 수를 출력 가능 (default = 10)
파일의 내용을 실시간으로 감시할 수 있음
(로그를 확인할 때 유용)
[root@localhost ~]# tail -f -n 5 /var/log/messages
Feb 14 12:38:43 localhost systemd[1]: firewalld.service: Succeeded.
Feb 14 12:38:43 localhost systemd[1]: Stopped firewalld - dynamic firewall daemon.
Feb 14 12:38:43 localhost systemd[1]: Starting firewalld - dynamic firewall daemon...
Feb 14 12:38:44 localhost systemd[1]: Started firewalld - dynamic firewall daemon.
Feb 14 12:38:44 localhost firewalld[9200]: WARNING: AllowZoneDrifting is enabled.
This is considered an insecure configuration option.
It will be removed in a future release.
Please consider disabling it now.
테스트 시 다른 터미널에서 systemctl restart firewalld 같은 시스템 명령을 하면 log 파일이 생성되고 생성되는 과정을 지속적으로 모니터링 할 수 있다.
전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어
fgrep | grep | egrep |
---|---|---|
정규표현식을 사용하지 않음 | 정규표현식 사용 | 정규표현식과 확장표현식 사용 |
대/소문자 무시
파일 당 패턴이 일치하는 라인의 갯수 출력
# grep -c root /etc/passwd
2
검색 결과 출력 라인 앞에 라인 번호 출력
grep -n root /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin
0 byte 파일 생성
[root@localhost ~]# touch aaa
[root@localhost ~]# ls -l aaa
-rw-r--r--. 1 root root 0 2월 14 12:07 aaa
기존에 존재하는 파일 또는 디렉토리를 touch 하면 현재 시간으로 동기화 해줌
[root@localhost ~]# echo hi
hi
[root@localhost ~]# echo hi > bbb
[root@localhost ~]# cat bbb
hi
[root@localhost ~]# echo haha > bbb
[root@localhost ~]# cat bbb
haha
// > 는 덮어쓰기 >> 는 추가
[root@localhost ~]# echo hi >> ccc
[root@localhost ~]# cat ccc
hi
[root@localhost ~]# echo haha >> ccc
[root@localhost ~]# cat ccc
hi
haha
[> , >> 0 표준 입력 1 표준 출력 2 표준에러 fd 이해]
2>&1
0< 표준 입력
1> 표준 출력
2> 표준 에러
Ex) 명령어 실행 중 에러는 2>dev/null 로 보내기[root@localhost ~]# grep -l umask /etc/* 2> /dev/null /etc/bashrc /etc/csh.cshrc /etc/login.defs /etc/profile