
리눅스는 오픈 소스 운영 체제(OS)로, 자유롭게 수정 및 배포할 수 있습니다. 유닉스는 1969년에 개발된 상용 OS로, 주로 서버와 워크스테이션에서 사용됩니다. 주요 차이점은 유닉스는 폐쇄형 상용 소프트웨어인 반면, 리눅스는 커뮤니티 기반으로 발전한 자유 소프트웨어라는 점입니다. 리눅스는 유닉스의 철학과 구조를 기반으로 하여 강력한 보안성과 안정성을 제공합니다.
원격 접속을 위한 방법으로 SSH(Secure Shell) 외에도 다양한 프로토콜과 도구가 있습니다:
우분투에서 유저를 관리하는 방법을 학습했습니다. 새로운 유저를 추가하려면 adduser 명령어를 사용하고, 비밀번호를 설정하려면 passwd 명령어를 사용합니다. 예를 들어:
sudo adduser newuser
sudo passwd newuser
또한, 유저에게 특정 권한을 부여하거나 그룹에 추가할 수 있습니다.
우분투에서 파일 및 디렉토리 권한을 관리하는 방법을 학습했습니다. chmod 명령어를 사용하여 권한을 설정하고, chown 명령어를 사용하여 소유자를 변경할 수 있습니다. 예를 들어:
sudo chmod 755 /path/to/directory
sudo chown user:user /path/to/directory
또한, sudo를 통해 관리자 권한으로 명령어를 실행할 수 있습니다.
우분투에 코틀린 개발 환경을 설정하는 방법을 학습했습니다. 자바 개발 키트(JDK)를 설치한 후, SDKMAN을 사용하여 코틀린을 설치합니다:
sudo apt-get install openjdk-11-jdk
curl -s https://get.sdkman.io | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install kotlin
이후, 코틀린 코드를 컴파일하고 실행할 수 있습니다.
crontab은 리눅스에서 주기적으로 명령어를 실행하기 위한 스케줄링 유틸리티입니다. crontab -e 명령어로 편집기를 열어 작업을 추가할 수 있습니다. 예를 들어, 매일 자정에 스크립트를 실행하려면 다음과 같이 설정합니다:
0 0 * * * /path/to/script.sh
쉘 스크립트는 명령어를 모아 놓은 스크립트 파일로, 반복적인 작업을 자동화하는 데 사용됩니다. 보통 #!/bin/bash로 시작하며, 다양한 명령어와 제어 구조를 포함할 수 있습니다. 예를 들어:
#!/bin/bash
echo "Hello, World!"
위 스크립트는 "Hello, World!"를 출력합니다.
시스템 모니터링은 CPU, 메모리, 네트워크 사용량을 실시간으로 확인하고 관리하는 과정입니다. 주요 도구로는 mpstat, free, iperf3 등이 있습니다. 예를 들어, CPU 사용량을 모니터링하려면:
mpstat 1 3
메모리 사용량을 확인하려면:
free -h
네트워크 성능을 테스트하려면:
iperf3 -s # 서버 모드
iperf3 -c <server_ip> # 클라이언트 모드
서버의 리소스를 효과적으로 관리하기 위해서는 모니터링과 조절이 중요합니다. stress 도구를 사용하여 인위적으로 CPU와 메모리 사용량을 증가시키고, 서버의 성능을 테스트하는 방법을 학습했습니다. 예를 들어:
stress --cpu 8 --timeout 60
이 명령어는 8개의 CPU 코어를 60초 동안 100% 사용합니다. 이를 통해 서버의 한계를 파악하고, 적절한 대응 방안을 마련할 수 있습니다.