Linux 명령줄 치트 시트
Linux는 POSIX 및 Unix를 기반으로 하는 무료로 사용하고 자유롭게 배포할 수 있는 Unix 계열 운영 체제입니다. 멀티 사용자, 멀티 태스킹, 멀티 스레드 및 멀티 CPU를 지원하는 운영 체제입니다. 주요 Unix 도구, 애플리케이션 및 네트워크 프로토콜을 실행할 수 있으며 32비트 및 64비트 하드웨어를 모두 지원합니다. Unix의 네트워크 중심 설계 철학을 계승한 Linux는 안정적인 멀티 사용자 네트워크 운영 체제입니다.
시스템
| uname | Linux 시스템 정보 표시 |
| uname -r | 커널 버전 정보 표시 |
| uptime | 시스템 가동 시간 표시(평균 부하 포함) |
| hostname | 시스템 호스트 이름 표시 |
| hostname -i | 시스템의 IP 주소 표시 |
| last reboot | 시스템 재부팅 기록 표시 |
| date | 현재 시스템 날짜 및 시간 표시 |
| timedatectl | 시스템 시계 조회 및 변경 |
| cal | 현재 달력의 월과 일 표시 |
| w | 시스템에 현재 로그인한 사용자 표시 |
| whoami | 로그인 ID 표시 |
| finger username | 사용자에 대한 정보 표시 |
하드웨어
| dmesg | 부팅 메시지 표시 |
| cat /proc/cpuinfo | CPU에 대한 세부 정보(모델, 코어, 공급업체 등) 표시 |
| cat /proc/meminfo | 하드웨어 메모리에 대한 세부 정보(총 메모리, 사용 가능한 메모리 등) 표시 |
| lshw | 시스템 하드웨어 구성에 대한 정보 표시 |
| lsblk | 블록 장치 관련 정보 표시 |
| free -m | 시스템의 빈 메모리와 사용 중인 메모리 표시(-m 플래그는 MB 단위) |
| lspci -tv | PCI 장치를 트리 다이어그램으로 표시 |
| lsusb -tv | USB 장치를 트리 다이어그램으로 표시 |
| dmidecode | BIOS의 하드웨어 정보 표시 |
| hdparm -i /dev/xda | 디스크 데이터에 대한 정보 표시 |
| hdparm -tT /dev/xda | 장치 xda에서 읽기 속도 테스트 수행 |
| badblocks -s /dev/xda | 디스크에서 읽을 수 없는 블록 테스트 |
사용자
| id | 활성 사용자의 세부 정보(uid, gid, 그룹 등) 표시 |
| last | 시스템의 마지막 로그인 내역 표시 |
| who | 시스템에 로그인한 사용자 표시 |
| groupadd “admin” | “admin” 그룹 추가 |
| adduser “Sam” | Sam 사용자 추가 |
| userdel “Sam” | Sam 사용자 삭제 |
| usermod | 사용자 정보 변경/수정에 사용 |
파일
| ls -al | 파일 목록 표시 - 일반 파일, 숨김 파일 및 권한 포함 |
| pwd | 현재 디렉토리 경로 표시 |
| mkdir ‘directory_name’ | 새 디렉토리 생성 |
| rm file_name | 파일 삭제 |
| rm -f filename | 파일 강제 삭제 |
| rm -r directory_name | 디렉토리 재귀적 삭제 |
| rm -rf directory_name | 디렉토리 강제 및 재귀적 삭제 |
| cp file1 file2 | file1의 내용을 file2로 복사 |
| cp -r dir1 dir2 | dir1을 dir2로 재귀적으로 복사. dir2가 없으면 생성 |
| mv file1 file2 | file1의 이름을 file2로 변경 |
| ln -s /path/to/file_name link_name | file_name에 대한 심볼릭 링크 생성 |
| touch file_name | 새 파일 생성 |
| cat > file_name | 키보드 입력으로 파일 생성 |
| more file_name | 파일 내용 출력 |
| head file_name | 파일의 처음 10행 표시 |
| tail file_name | 파일의 마지막 10행 표시 |
| gpg -c file_name | 파일 암호화 |
| gpg file_name.gpg | 파일 복호화 |
| wc | 파일의 바이트, 단어 및 행 수 출력 |
| xargs | 표준 입력에서 명령 실행 |
프로세스
| ps | 현재 활성 프로세스 표시 |
| ps aux | grep ’telnet' | ’telnet’ 프로세스 ID 검색 |
| pmap | 프로세스의 메모리 맵 표시 |
| top | 실행 중인 모든 프로세스 표시 |
| kill pid | 지정된 pid로 프로세스 종료 |
| killall proc | proc이라는 이름의 모든 프로세스 종료/중지 |
| pkill process-name | 프로세스 이름으로 신호 보내기 |
| bg | 백그라운드에서 일시 중지된 명령 재개 |
| fg | 백그라운드 명령을 포그라운드로 가져와서 재개 |
| fg n | 작업 n을 포그라운드로 가져오기 |
| lsof | 프로세스가 연 파일 목록 표시 |
| renice 19 PID | 프로세스를 매우 낮은 우선순위로 실행 |
| pgrep firefox | Firefox 프로세스 ID 찾기 |
| pstree | 프로세스를 트리 모델로 시각화 |
파일 권한
| chmod octal filename | 파일 권한을 8진수로 변경 |
| chmod 777 /data/test.c | 소유자, 그룹 및 모든 사용자(서버에 접속 가능한 다른 사용자)에게 rwx 권한 설정 |
| chmod 755 /data/test.c | 소유자에게 rwx, 그룹 및 모든 사용자에게 r-x 설정 |
| chmod 766 /data/test.c | 소유자에게 rwx, 그룹 및 모든 사용자에게 rw- 설정 |
| chown owner user-file | 파일 소유권 변경 |
| chown owner-user:owner-group file_name | 파일 소유자와 그룹 소유자 변경 |
| chown owner-user:owner-group directory | 디렉토리 소유자와 그룹 소유자 변경 |
네트워크
| ip addr show | IP 주소 및 모든 네트워크 인터페이스 표시 |
| ip address add 192.168.0.1/24 dev eth0 | 인터페이스 eth0에 IP 주소 192.168.0.1 할당 |
| ifconfig | 모든 네트워크 인터페이스의 IP 주소 표시 |
| ping host | 서버/PC와의 연결을 확인하기 위해 ICMP 에코 요청 전송 |
| whois domain | 도메인 이름에 대한 자세한 정보 검색 |
| dig domain | 도메인의 DNS 정보 검색 |
| dig -x host | 도메인 역방향 조회 수행 |
| host google.com | 도메인 이름의 IP 조회 수행 |
| hostname -i | 로컬 IP 주소 표시 |
| wget file_name | 온라인 리소스에서 파일 다운로드 |
| netstat -pnltu | 모든 활성 수신 대기 포트 표시 |
압축/아카이브
| tar -cf home.tar home | ‘home’ 디렉토리에 대해 home.tar라는 이름의 아카이브 파일 생성 |
| tar -xf files.tar | 아카이브 파일 “files.tar” 압축 해제 |
| tar -zcvf home.tar.gz source-folder | 소스 폴더에서 압축된 tar 아카이브 생성 |
| gzip file | .gz 확장자로 파일 압축 |
패키지 설치
| rpm -i pkg_name.rpm | rpm 패키지 설치 |
| rpm -e pkg_name | rpm 패키지 제거 |
| dnf install pkg_name | dnf 도구를 사용하여 패키지 설치 |
소스 설치(컴파일)
| ./configure | 시스템을 확인하여 프로그램을 빌드하는 데 필요한 소프트웨어 확인. Makefile 생성 |
| make | 프로그램 컴파일 |
| make install | 컴파일 후 바이너리 파일을 기본/수정된 경로에 설치 |
검색
| grep ‘pattern’ files | 파일에서 지정된 패턴 검색 |
| grep -r pattern dir | 지정된 디렉토리 내에서 패턴을 재귀적으로 검색 |
| locate file | 파일의 모든 인스턴스 찾기 |
| find /home/ -name “index” | /home 폴더에서 ‘index’로 시작하는 파일 이름 찾기 |
| find /home -size +10000k | 홈 폴더에서 10000k보다 큰 파일 찾기 |
로그인
| ssh user@host | 지정된 사용자를 사용하여 호스트에 안전하게 연결 |
| ssh -p port_number user@host | 지정된 포트를 사용하여 호스트에 안전하게 연결 |
| ssh host | 기본 22번 포트를 통해 시스템에 안전하게 연결 |
| telnet host | 기본 23번 포트를 통해 호스트에 연결 |
파일 전송
| scp file1.txt server2/tmp | server2의 /tmp 디렉토리에 file1.txt를 안전하게 복사 |
| rsync -a /home/apps /backup/ | /home/apps 디렉토리의 내용을 /backup 디렉토리와 동기화 |
디스크 사용량
| df -h | 마운트된 시스템의 여유 공간 표시 |
| df -i | 파일 시스템의 빈 inode 표시 |
| fdisk -l | 디스크 파티션, 크기 및 유형 표시 |
| du -sh | 현재 디렉토리의 디스크 사용량을 사람이 읽을 수 있는 형식으로 표시 |
| findmnt | 모든 파일 시스템의 대상 마운트 포인트 표시 |
| mount device-path mount-point | 장치 마운트 |
디렉토리 이동
| cd .. | 디렉토리 트리 구조에서 한 단계 위로 이동 |
| cd | 디렉토리를 $HOME 디렉토리로 변경 |
| cd /test | 디렉토리를 /test 디렉토리로 변경 |