Linux는 RedHat 계열 - Fedora, CentOS, RedHat
=>GNOME desktop(그래픽 바탕화면)
Debian 계열 - Debian, Ubuntu
=>KDE desktop(그래픽 바탕화면)
하지만 Flavor에 제한적인 것이 아니라 필요에 의해서 Debian 계열에서 GNOME을 설치해서 사용할 수 있다.
/etc/inittab 파일에서 runlevel을 조절한다.
0~6까지 있는데 CLI(3), GUI(5), shutdown(0), reboot(6), root 패스워드 변경 등은 1에서 수행한다.
runlevel 6(graphic)으로 Linux를 설치하면 runlevel 3이 자동으로 설치된다.
<- CLI(3)가 먼저 설치된 뒤 GUI(5)에서 필요로하는 패키지(package)를 추가로 설치해서 상호 변환이 가능하다. init 3하면 CLI로 가고, init 5하면 GUI로 간다.
=>CentOS 7에서는 multi-user.target가 3
graphical.target가 5이다.
systemctl get-default 해서 현재 사용중인 runlevel을 알아볼 수 있고
systemcty set-default multi-user.target 해서 3으로 변경할 수 있다.
Network에 관련된 명령어는
CentOS에서 /etc/sysconfig/network-interfaces/ifcfg-ens33
/etc/resolv.conf DNS 설정
/etc/hostname hostname 설정
/etc/hosts에서 IP-hostname 설정
/etc/selinux에서 보안 설정
Ubuntu에서는 /etc/network/interfaces
/etc/hostname hostname 설정
/etc/hosts에서 IP-hostname 설정
VMware Tools가 잘 설치되지 않으면
https://packages.vmware.com/tools/releases/에서 최신의 VMware Tools ISO 파일을 다운받아서 설치할 수도 있다.
Windows에서는 파일을 다운받아서 설치하면 되고,
Linux CentOS에서는 yum –y install open-vm-tools-desktop이나 open-vm-tools 해주고
Ubuntu에서는 apt-get –y install open-vm-tools-desktop이나 open-vm-tools 해준다.
centos 사용자에서
su - root는 root 사용자의 home directory인 /root로 이동하면서 사용자가 root로 변경된다.
su root(OR su)는 현재 centos 사용자의 home directory인 /home/centos에서 사용자만 root로 변경한 것이다.
[centos@localhost ~]$는 centos 사용자가 localhost라는 호스트_명에서 자신의 홈 디렉터리(~를 보고 판단, /home/centos)에 있는 것이다. 일반 사용자는 $ 프롬프트이고
[root@localhost ~]#는 root 사용자가 localhost라는 호스트-명에서 자신의 홈 디렉터리(~로 판단, /root)에 있는 것이다. root 관리자는 # 프롬프트이다.
[root@localhost centos]#는 root 사용자가 localhost라는 호스트_명에서 남의 홈 디렉터리(centos로 판단, /home/centos)에 있는 것이다.
=>홈 디렉터리는 해당 사용자가 다운로드, 파일/디렉터리를 생성하는 등의 작업이 자동으로 이뤄지는 곳, 원격에서 특정 사용자가 로그인해서 서버와 연결되면 자동으로 자신의 홈 디렉터리로 들어가게 된다.
Ubuntu에서는 NetworkManager라는 기능이 있는데 이는 호스트_머신이 위치를 이동하면 자동으로 해당 위치의 IP 주소를 가져와서 사용되게 해주는 편리한 기능이다.
하지만 서버 등은 고정 IP 주소가 필요하므로 이 기능을 없앨 필요가 있다.
=>/etc/resolvconf/resolv.conf.d/base 파일에 고정 IP를 지정한다.
CentOS에서는 SELinux(SEcurity Linux)를 설정해 주어야 한다. 이것은 이 서버에 접속하는 클라이언트는 이 서버에서 지정하는 보안 레벨과 일치해야 접속이 가능하게 된다.
Booting에 관여하는
MBR(Master Boot Record) 파티션과 부팅 정보가 들어 있는 GRUB2 파일을 미리 백업해두어야 한다. 부팅과정을 통제하는 GRUB는 보통 파티션의 처음 512K Byte에 있는 1st track & 1st sector에 설치되는데 이곳을 MBR(Master Boot Record)이라고 한다. 이 MBR을 백업해두면 시스템에 문제가 있을 때 복구할 수 있다.
MBR은 446byte의 BootStrap과 64bytes의 Partition table, 그리고 2bytes의 Signature 해시코드로 구성된다.
=>사용하는 도구는 fdisk -l은 파티션 정보를 보이고 파티션해주는 도구이고,
dd는 USB/HDD를 복사해주는 도구이다.
sfisk는 파티션을 복사해주는 도구이다.
fdisk와 parted 도구는 파티션해주는 도구이다.
=>파티션(partition)은 저장공간(USB, HDD)을 데이터를 저장하게끔 분할하는 것이고
포맷(format)은 파티션 된 공간에 데이터를 저장하게 만들어 주는 것이다.
따라서 파티션을 먼저 한 뒤에 포맷(mkfs -t format target)을 수행한다.
root 사용자는 일반 사용자-centos, paul 사용자의 홈 디렉터리에 들어가서 작업할 수 있다.
하지만 일반 사용자들끼리-centos, paul 사용자는 서로 다른 홈 디렉터리에 들어가거나 볼 수 조차 없다.
USB/HDD 등 외부 저장장치를 Linux에서 사용하려면
1) Linux 시스템에 물리적으로 부착한 뒤
2) partition > format 하고
3) mount point를 생성하고
4) 외부 저장장치를 mount 해서 Linux에서 인식시킨 뒤 사용하게 한다.
5) 사용이 끝나면 umount 해서 내린다.
BTRFS(BeTteR File System) 파일시스템
BTRFS[betterFS로 읽음] 파일 시스템은 IBM에서 제안했고 Oracle에서 Linux를 위한 파일 시스템으로 개발해서 사용하고 있다. Linux 커널이 지원하는 55개의 파일 시스템은 대부분 특정 포맷에만 적용되고 현재 대부분 Linux에서 사용하고 있는 ext3과 ext4 파일 시스템은 16TB의 하드디스크까지만 지원한다.
하지만 BTRFS(BeTteR File System) 파일 시스템은 16EB까지 지원하고, 매우 빠르게 파일 시스템을 생성하며, 데이터와 메타 데이터의 체크썸, 스냅샷, 그리고 온라인으로 문제해결이 가능하다.
이 BTRFS와 다음의 XFS 파일 시스템에서는 마운트 포인트에서 일반적으로 디렉터리 생성 시 보이는 lost+found 디렉터리가 자동으로 생성되지 않는다는 것도 참고적으로 알아두자.
XFS(Extended File System) 파일시스템
XFS(eXtended File System) 파일시스템은 SGI(Silicon Graphics Inc.)에서 IRIX 운영체제를 위한 파일시스템으로 개발해서 사용하고 있다. 위의 BTRFS 파일 포맷처럼 16EB까지 지원해주고, 안정적이며, 고성능의 실행속도를 보이면서도 매우 스케일러블(scalable: 확장성)하고, 64 bits 저널링(journaling: 오류 자동 복구)과 디스크 디프라그(defrag)를 지원한다. CentOS 7.0 부터 디폴트 파일시스템으로 채택되어 있다.
find /usr/share/doc -name '*.pdf' -exec cp {} /BTRFS \;
이것은 /usr/share/doc 디렉터리 아래에 있는 모든 ~.pdf 확장자를 가지는 파일들을 찾아서 {}안에 넣고 이들을 /BTRFS 디렉터리에 cp(복사) 해준다. \;는 문장을 끝내는 ;이 부호라는 의미이다. \를 Escape letter(이스케이프 문자)라고 부른다. ex) \t, \n
Linux에서의 실행파일은 *.bin이다. Windows에서의 실행파일은 *.exe, *.bat, *.com이다. Windows의 대표적인 실행파일 *.exe를 Linux에서 실행시킨다면 wine이라는 프로그램을 사용하면 된다.
Linux에서 dependencies(종속성)이 나오는데
이는 메인 A 프로그램이 실행되기 위해서 필요로 하는 b, c, ... 등의 파일들을 말한다.
예전에는 A 프로그램을 실행하기 위해서 일일이 b, c, ...를 찾아서 설치해 주었지만
최근에는 CentOS에서는 yum, Ubuntu에서는 apt-get(OR apt) 명령어로 한 번에 A가 설치되면서 거기에 필요로 하는 종속파일 b, c, ...를 함께 설치해서 A가 자연스럽게 실행되게 해준다.
Linux에서 부팅 시
/etc/inittab 파일은 런레벨 설정이 들어 있는데
<= runlevel 3, runlevel 5 설정대로 실행된다.
/etc/fstab 파일은 자동으로 블록장치(HDD/USB/DVD)를 마운트 해주고
<= mount /dev/sdb1 /SDB1식의 명령어가 없어도 부팅 시 자동으로 마운트되게 해줌
/etc/(rc.d/init.d)/rc.local 파일은 부팅되기 전에 실행되어져야 할 설정이 들어 있다.
<= 시스템이 부팅되기 전에 AV(Anti Virus), disk quota, backup, ntp, ...등을 설정해두면 이들을 모두 수행한 뒤 시스템이 부팅된다!!
부트로더(BootLoader)
CentOS에서 디폴트 부트로더는 GRUB(GRand Unified Bootloader)인데 부팅하고자 하는 운영체제를 선택하고 특수 파라미터나 지시를 커널에게 보내서 어떻게 CentOS가 부팅되어야 하는지를 통제한다. 시스템에 여러 커널이 존재하면 가장 최신의 커널이 맨 위에 표시되고 디폴트 커널이 되어서 자동으로 부팅된다. GRUB는 이전의 LILO를 대신한 것이다.
BootLoader
부팅 시 GRUB 파일의 내용을 불러올리는데 GRUB(GRand Unified Bootloader)로써 부팅하고자 하는 운영체제를 선택하고 특수 파라미터나 지시를 커널에게 보내서 어떻게 CentOS가 부팅되어야 하는지를 통제한다. 시스템에 여러 커널이 존재하면 가장 최신의 커널이 맨 위에 표시되고 디폴트 커널이 되어서 자동으로 부팅된다. GRUB는 이전의 LILO를 대신한 것이다. 최근에는 GRUB2가 나와 있다. 내용은 콘솔에서
cat /boot/grub/grub.conf 하면 볼 수 있다.
root (hd0,0),
kernel ~ , 그리고
initrd ~ 세 줄을 복사해서 파일로 가지고 있어야 나중에 문제 발생 시 복구할 수 있다.
디렉터리 이동에서
cd ., cd ~ 하면 현재 디렉터리 이동이고(이동 없음)
cd ../ 하면 하나 상위 디렉터리 이동이다.
cd ../../ 하면 두개 상위 디렉터리 이동이다.
/etc/rc.d/를 보면 runlevel 별 폴더가 있다. 그중에서 하나를 선택해서 들어가면
/etc/rc.d/rc5.d로 가보면 S~~, K~~식으로 보인다. 여기서 S~~는 시작 의미이고,
K~~는 끝내는 의미이다. runlevel 5에서 init 3해서 runlevel 3으로 간다면
K~~가 실행되어 현재 runlevel 5를 끝내고, /etc/rc.d/rc3.d에서 S~~가 시작되어 runlevel 3을 시작시킨다.
shutdown -r은 리부팅 <- shutdown -r now
shutdown -h는 시간에 꺼줌 <- shutdown -h 12:03/now 점심시간이에요
Linux 서버에 원격에서 접속할 때에는 putty.exe, superputty.exe, xshell.exe, securecrt.exe 등이 있다(이들 도구로 telnet, ssh, rlogin으로 연결한다) 이들은 모두 CLI로 연결되는 것이고, remote desktop, vnc 등은 GUI로 연결시켜 준다.
=>하지만 최신 머신에서는 rlogin 등 원격에서 접속해오는 r(remote)~ 도구는 비활성화 되어 있다.
Linux