웹 호스팅 서버에 들어가면 가장 많이 쓰는 명령어 중에 하나가 sudo일겁니다. mkdir, cp등은 많이 봤지만 sudo는 대체 뭐지 했던 기억이 있어서 기록을 남겨봅니다.
sudo
는 “Superuser Do”의 약자로, 일반 사용자가 관리자(root) 권한이 필요한 명령어를 일시적으로 실행할 수 있도록 해주는 명령어입니다.
- 왜 필요할까요? 리눅스는 보안을 중요하게 생각하기 때문에, 일반 사용자가 시스템의 중요한 설정을 함부로 변경하거나 시스템 파일에 접근하는 것을 막습니다. 하지만 때로는 소프트웨어를 설치하거나 시스템 설정을 변경하는 등의 관리자 권한이 필요한 작업을 수행해야 할 때가 있습니다. 이때
sudo
명령어를 사용하면, 미리 설정된 사용자만이 일시적으로 관리자 권한을 얻어 작업을 수행할 수 있게 됩니다. - 어떻게 사용하나요? 관리자 권한이 필요한 명령어 앞에
sudo
를 붙여서 실행합니다. 예를 들어, 새로운 소프트웨어를 설치하려면 다음과 같이 명령어를 실행할 수 있습니다. Bashsudo apt update sudo apt install <패키지 이름>
이때, 처음sudo
명령어를 실행하면 비밀번호를 입력하라는 메시지가 나타납니다. 자신의 사용자 계정 비밀번호를 입력하면, 해당 명령어가 관리자 권한으로 실행됩니다. 일정 시간 동안은 비밀번호를 다시 입력하지 않아도sudo
명령어를 사용할 수 있습니다. - 주의할 점:
sudo
명령어는 강력한 권한을 부여하기 때문에, 신중하게 사용해야 합니다. 함부로 사용하거나 알 수 없는 명령어를sudo
로 실행하면 시스템에 심각한 문제를 일으킬 수 있습니다.
sudo
외에 중요한 리눅스 명령어들:
리눅스에는 정말 많은 유용한 명령어들이 있지만, 그중에서도 특히 자주 사용되고 중요한 몇 가지를 소개해 드릴게요.
- 파일 및 디렉토리 관리:
ls
: 현재 디렉토리의 파일 및 하위 디렉토리 목록을 보여줍니다. 다양한 옵션을 사용하여 상세 정보, 숨김 파일 등을 확인할 수 있습니다. (ls -al
,ls -h
등)cd
: 현재 작업 디렉토리를 변경합니다. (cd ..
,cd ~
등)pwd
: 현재 작업 디렉토리의 절대 경로를 보여줍니다.mkdir
: 새로운 디렉토리를 생성합니다. (mkdir <디렉토리 이름>
)rmdir
: 빈 디렉토리를 삭제합니다.rm
: 파일 또는 디렉토리를 삭제합니다. (rm <파일 이름>
,rm -r <디렉토리 이름>
– 주의해서 사용해야 합니다!)cp
: 파일 또는 디렉토리를 복사합니다. (cp <원본> <대상>
,cp -r <디렉토리 원본> <디렉토리 대상>
)mv
: 파일 또는 디렉토리를 이동하거나 이름을 변경합니다. (mv <원본> <대상>
)touch
: 빈 파일을 생성하거나 파일의 접근/수정 시간을 업데이트합니다.cat
: 파일의 내용을 화면에 출력합니다.less
: 파일 내용을 페이지 단위로 끊어서 보여주며, 탐색 기능을 제공합니다.head
: 파일의 처음 몇 줄을 보여줍니다. (head -n <숫자> <파일 이름>
)tail
: 파일의 마지막 몇 줄을 보여줍니다. (tail -n <숫자> <파일 이름>
,tail -f <파일 이름>
– 실시간으로 로그를 확인할 때 유용합니다.)find
: 특정 조건에 맞는 파일이나 디렉토리를 검색합니다. (매우 강력한 명령어입니다!)chmod
: 파일 또는 디렉토리의 권한을 변경합니다.chown
: 파일 또는 디렉토리의 소유자를 변경합니다.
- 시스템 정보 및 관리:
ps
: 현재 실행 중인 프로세스 목록을 보여줍니다. (ps aux
,ps -ef
등)top
또는htop
: 시스템의 실시간 자원 사용량 (CPU, 메모리 등)과 프로세스 정보를 보여줍니다.df
: 디스크 공간 사용량을 보여줍니다. (df -h
)du
: 디렉토리별 디스크 사용량을 보여줍니다. (du -sh <디렉토리 이름>
)free
: 메모리 사용량을 보여줍니다. (free -h
)uname
: 시스템 정보를 보여줍니다. (uname -a
)uptime
: 시스템이 얼마나 오랫동안 실행되었는지, 현재 사용자 수, 시스템 부하 등을 보여줍니다.date
: 현재 시스템 날짜 및 시간을 보여주거나 설정합니다.history
: 이전에 실행했던 명령어 목록을 보여줍니다.shutdown
또는reboot
: 시스템을 종료하거나 재부팅합니다. (sudo shutdown -h now
,sudo reboot
)systemctl
: 시스템 서비스를 관리합니다 (시작, 중지, 재시작, 상태 확인 등). (sudo systemctl status <서비스 이름>
,sudo systemctl start <서비스 이름>
)
- 네트워킹:
ip addr
또는ifconfig
: 네트워크 인터페이스 정보를 확인합니다.ping
: 특정 호스트에 네트워크 연결이 가능한지 확인합니다. (ping <호스트 주소>
)netstat
또는ss
: 네트워크 연결, 라우팅 테이블, 인터페이스 통계 등을 보여줍니다.ssh
: 원격 서버에 안전하게 접속합니다. (ssh <사용자 이름>@<호스트 주소>
)scp
: 원격 서버와 파일을 안전하게 복사합니다. (scp <원본> <대상>
)
- 패키지 관리 (배포판에 따라 다름):
apt
(Debian, Ubuntu): 패키지 설치, 제거, 업데이트 등을 관리합니다. (sudo apt update
,sudo apt install <패키지 이름>
,sudo apt remove <패키지 이름>
)yum
또는dnf
(Red Hat, CentOS, Fedora): 패키지 설치, 제거, 업데이트 등을 관리합니다. (sudo yum update
,sudo dnf install <패키지 이름>
,sudo dnf remove <패키지 이름>
)pacman
(Arch Linux): 패키지 설치, 제거, 업데이트 등을 관리합니다. (sudo pacman -Syu
,sudo pacman -S <패키지 이름>
,sudo pacman -R <패키지 이름>
)