명령줄은 Linux 서버 관리의 핵심입니다. 초보자이든 숙련된 시스템 관리자이든 명령줄 관리의 기본을 이해하는 것은 Ubuntu Server를 효율적으로 관리하는 데 매우 중요합니다. 이 글에서는 파일, 디렉터리, 서버 환경을 관리하기 위한 필수 명령, 도구, 기법을 다루며 Linux 명령줄을 심층적으로 소개합니다.
이전 글:
01. Ubuntu Server 소개 – SysOSX: AI & Cloud
02. 첫 Ubuntu Server 설정 방법: 초보자 가이드 – SysOSX: AI & Cloud
명령줄을 배워야 하는 이유
Linux 명령줄은 터미널 을 통해 액세스할 수 있으며 운영 체제와 상호 작용하는 강력한 도구입니다. 그래픽 인터페이스와 달리 명령줄은 다음과 같은 이점을 제공합니다:
- 속도:GUI 인터페이스보다 명령을 사용하면 작업을 더 빠르게 수행할 수 있습니다.
- 유연성:스크립트를 사용해 프로세스를 자동화하고 복잡한 작업을 수행하세요.
- 제어:더 깊은 시스템 기능에 액세스하고 문제를 효과적으로 해결하세요.
Ubuntu Server에서 명령줄 액세스
Ubuntu Server 설치에는 기본적으로 그래픽 인터페이스가 포함되어 있지 않으므로 모든 상호 작용은 터미널을 통해 이루어집니다. 명령줄에 액세스하는 일반적인 방법은 다음과 같습니다:
1. 로컬 콘솔을 통한 직접 액세스
Ubuntu Server에 로그인하면 터미널 인터페이스가 표시됩니다.
2. SSH를 통한 원격 액세스
Secure Shell(SSH)을 사용해 서버에 원격으로 액세스하세요:
ssh username@server_ip
초보자를 위한 필수 Linux 명령
1. 파일 시스템 탐색
Linux 파일 시스템 계층 구조를 이해하는 것은 파일과 디렉터리를 관리하는 데 매우 중요합니다.
현재 디렉터리 보기: pwd
현재 작업 디렉터리를 표시합니다:
pwd
디렉터리 내용 나열: ls
현재 위치의 파일과 디렉터리를 나열합니다:
ls
옵션:
ls -l: 권한, 소유권, 크기가 포함된 자세한 목록.ls -a: 숨김 파일 포함(.로 시작하는 파일).
디렉터리 변경: cd
다른 디렉터리로 이동합니다:
cd /path/to/directory
예:
cd ..: 한 단계 위로 이동합니다.cd ~: 홈 디렉터리로 이동합니다.
2. 파일 및 디렉터리 관리
디렉터리 만들기: mkdir
새 디렉터리를 만듭니다:
mkdir directory_name
예: 하위 디렉터리 구조를 만듭니다.
mkdir -p /home/user/documents/projects
설명:
-p옵션은 상위 디렉터리가 존재하지 않을 경우 이를 만듭니다(예:documents와projects).
디렉터리 제거: rmdir
빈 디렉터리를 삭제합니다:
rmdir directory_name
예:
rmdir /home/user/old_directory
파일 복사: cp
파일이나 디렉터리를 복사합니다:
cp source_file destination_file
예: 파일을 새 디렉터리로 복사합니다.
cp /home/user/file.txt /home/user/backup/file.txt
전체 디렉터리를 복사하려면:
cp -r /home/user/documents /home/user/backup/documents
파일 이동 또는 이름 바꾸기: mv
파일을 이동하거나 이름을 바꿉니다:
mv old_name new_name
예: 파일 이름을 바꿉니다.
mv file.txt renamed_file.txt
파일을 다른 디렉터리로 이동:
mv /home/user/file.txt /home/user/backup/
파일 삭제: rm
파일이나 디렉터리를 삭제합니다:
rm file_name
예: 파일을 삭제합니다.
rm /home/user/file.txt
디렉터리와 그 내용을 삭제하려면:
rm -r /home/user/old_directory
경고:rm 를 사용할 때는 실수로 삭제하지 않도록 주의하세요.
3. 파일 보기 및 편집
파일 내용 보기: cat
파일 내용을 표시합니다:
cat file_name
예:
cat /etc/hostname
파일 내용을 페이지 단위로 보기: less
파일 내용을 스크롤하면서 볼 수 있습니다:
less file_name
예:
less /var/log/syslog
파일 만들기 또는 편집: nano
초보자에게 친숙한 텍스트 편집기:
nano file_name
예: 새 파일을 만들거나 기존 파일을 편집합니다.
nano /home/user/new_file.txt
파일에서 텍스트 검색: grep
파일에서 특정 문자열을 검색합니다:
grep "search_term" file_name
예: 로그 파일에서 오류 메시지를 찾습니다.
grep "error" /var/log/syslog
4. 시스템 관리 명령
디스크 사용량 확인: df
디스크 공간 사용량을 표시합니다:
df -h
옵션:
-h: 사람이 읽기 쉬운 형식.
메모리 사용량 확인: free
메모리 사용량을 표시합니다:
free -h
시스템 프로세스 모니터링: top
실행 중인 프로세스와 시스템 리소스 사용량을 표시합니다:
top
대안:
htop: 더 사용하기 쉬운 프로세스 모니터(다음 명령으로 설치:sudo apt install htop).
서비스 관리: systemctl
시스템 서비스를 제어합니다:
sudo systemctl status service_name
sudo systemctl start service_name
sudo systemctl stop service_name
sudo systemctl restart service_name
종료 또는 재부팅: shutdown
서버를 종료하거나 다시 시작합니다:
sudo shutdown now # Immediate shutdown
sudo shutdown -r now # Immediate restart
5. 파일 권한 및 소유권
Linux는 파일과 디렉터리에 대한 액세스를 제어하기 위해 권한 모델을 사용합니다.
파일 권한 보기: ls -l
파일 권한을 자세한 형식으로 표시합니다:
ls -l
파일 권한 변경: chmod
파일 권한을 수정합니다:
chmod 644 file_name
파일 소유권 변경: chown
파일 소유권을 변경합니다:
sudo chown new_owner:new_group file_name
6. 파일 검색 및 찾기
파일 찾기: locate
locate 명령은 기본적으로 설치되어 있지 않습니다. 먼저 설치하세요:
sudo apt update
sudo apt install mlocate
데이터베이스를 업데이트하세요:
sudo updatedb
파일을 검색하세요:
locate file_name
파일 찾기: find
기준에 따라 파일을 검색합니다:
find /path -name "file_name"
7. 네트워킹 명령
네트워크 연결 확인: ping
호스트와의 연결을 테스트합니다:
ping google.com
열린 포트 확인: ss
netstat 명령은 더 이상 사용되지 않으며 기본적으로 설치되어 있지 않습니다. 대신 ss 를 사용하세요. 최신 대안입니다:
ss -tuln
설명:
-t: TCP 연결을 표시합니다.-u: UDP 연결을 표시합니다.-l: 수신 대기 중인 포트를 표시합니다.-n: 숫자 주소와 포트를 표시합니다.
원격 연결 테스트: curl
URL에서 데이터를 가져옵니다:
curl http://example.com
명령줄 관리를 위한 실용적인 팁
1. Tab 자동 완성 사용
Tab 를 누르면 명령이나 파일 이름을 입력하는 동안 경로 또는 명령이 자동 완성됩니다.
2. 기록 명령 사용
이전에 실행한 명령에 액세스하세요:
history
기록에서 특정 명령을 실행하세요:
!number
3. 출력 리디렉션
명령 출력을 파일에 저장하세요:
command > output_file
4. 명령 연결
여러 명령을 순차적으로 실행하세요:
command1 && command2
예제 워크플로: 웹 서버 설정
기본 명령을 사용해 웹 서버를 설정하는 단계별 가이드입니다. 다음 지침에 따라 사용자 지정 웹사이트를 구성하고 기본 Apache 페이지가 대체되는지 확인하세요.
1. 시스템 업데이트
시스템을 최신 상태로 유지하는 것은 보안과 안정성에 필수적입니다. 다음 명령을 실행하여 모든 패키지를 업데이트하고 업그레이드하세요:
sudo apt update && sudo apt upgrade -y
2. Apache 설치
Apache 웹 서버를 설치하세요:
sudo apt install apache2 -y
설치가 완료되면 Apache가 실행 중인지 확인하세요:
sudo systemctl status apache2
다음과 같은 상태 메시지가 표시되어야 합니다: Active: active (running).
3. 웹사이트용 디렉터리 만들기
웹사이트 파일을 저장할 디렉터리를 만드세요. 이 예에서는 이름이 mywebsite 인 디렉터리를 만들겠습니다:
sudo mkdir -p /var/www/mywebsite
4. 권한 설정
Apache가 웹사이트 파일에 액세스할 수 있도록 올바른 소유권과 권한을 설정하세요:
sudo chown -R www-data:www-data /var/www/mywebsite
sudo chmod -R 755 /var/www/mywebsite
5. 샘플 HTML 파일 만들기
간단한 index.html 파일을 추가하여 웹사이트 홈페이지로 사용하세요:
sudo tee /var/www/mywebsite/index.html > /dev/null << EOF
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome to My Website</h1>
</body>
</html>
EOF
이렇게 하면 “Welcome to My Website”라고 표시되는 기본 페이지가 만들어집니다.
6. 가상 호스트 구성
사용자 지정 웹사이트를 제공하려면 Apache용 새 가상 호스트 구성 파일을 만드세요:
sudo nano /etc/apache2/sites-available/mywebsite.conf
다음 내용을 파일에 붙여넣으세요:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/mywebsite
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Ctrl+O 를 눌러 파일을 저장하고 종료한 뒤, Ctrl+X 를 누르세요.
7. 웹사이트 활성화
새 가상 호스트 구성을 활성화하세요:
sudo a2ensite mywebsite.conf
웹사이트가 확실히 제공되도록 Apache의 기본 사이트 구성을 비활성화하세요:
sudo a2dissite 000-default.conf
변경 사항을 적용하려면 Apache를 다시 로드하세요:
sudo systemctl reload apache2
8. 연결 테스트
다음을 실행하여 웹사이트가 작동하는지 확인하세요:
curl http://localhost
사용자 지정 index.html 파일의 HTML 콘텐츠가 표시되어야 합니다:
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome to My Website</h1>
</body>
</html>
또는 브라우저를 열고 http://<your-server-ip> (으)로 이동하여 웹사이트를 확인하세요.
문제 해결
기본 Apache 페이지가 계속 표시되거나 문제가 발생하는 경우:
- 사이트가 활성화되어 있는지 확인하세요
구성이 활성 상태인지 확인하세요:
ls /etc/apache2/sites-enabled/
mywebsite.conf이(가) 표시되어야 합니다. 그렇지 않다면 다음을 사용해 활성화하세요:
sudo a2ensite mywebsite.conf
- Apache 로그 확인
로그에서 오류를 찾으세요:
sudo tail -f /var/log/apache2/error.log
- Apache 다시 시작
문제가 계속되면 Apache를 다시 시작하세요:
sudo systemctl restart apache2
결론
Linux 명령줄을 마스터하는 것은 Ubuntu Server를 효과적으로 관리하는 데 필수적입니다. 이러한 명령을 배우고 연습하면 서버 환경을 관리하고, 문제를 해결하고, 관리 작업을 효율적으로 수행하는 데 자신감을 갖게 됩니다.
다음 단계: 사용자 및 권한 관리
명령줄 관리의 기본에 익숙해지면 서버 관리에서 다음으로 중요한 단계는 사용자, 그룹, 권한 을 이해하는 것입니다. 사용자 계정과 액세스 제어를 제대로 관리하는 것은 보안을 유지하고 승인된 사람만 서버의 중요한 파일과 리소스에 액세스하거나 수정할 수 있도록 하는 데 필수적입니다.
다음 글에서는 “사용자 및 권한 관리”에서 다음 내용을 다룰 예정입니다:
- 사용자 계정을 만들고, 수정하고, 삭제하는 방법.
- 효율적인 액세스 제어를 위한 그룹 관리.
- 파일 및 디렉터리 권한 이해(읽기, 쓰기, 실행).
- 권한 상승을 위한
sudo와 같은 고급 도구 사용. - Ubuntu Server에서 사용자 계정을 보호하기 위한 모범 사례.
보안 및 액세스 관리를 강화할 수 있는 실용적인 인사이트를 기대해 주세요!
14 thoughts on “03.Mastering the Linux Command Line for Ubuntu Server”