실무에서 자주 사용하는 기본적인 리눅스 명령어들을 사용 예제와 함께 간단하게 정리해 보았다.
ls
해당 디렉터리에 존재하는 파일 목록을 보여주는 명령어
ls -a - 숨겨진 파일까지 포함하여 보여준다.
ls -l 혹은 ll - 맨 앞줄에 파일이나 디렉터리의 권한, 소유자, 갱신일 등을 자세히 확인할 수 있다.
chmod
리눅스의 파일이나 디렉토리의 소유 권한을 변경하는 명령어
user(owner)의 권한, group에 대한 권한, others에 대한 권한으로 구분 지어 각 대상에 대해 읽기(r), 쓰기(w), 실행(x) 권한을 부여할 수 있도록 설정하는 명령어이다. (r => 2^2=4, w => 2^1=2, x => 2^0=1)
※ 리눅스 명령어 실행 도중 permission denied 에러가 발생했다면, 파일의 권한을 확인하고 변경해 주어야 한다.
ll 명령어를 사용하여 파일 및 디렉토리의 권한을 확인한 뒤, chmod 755 test.txt 명령어 실행하여 권한 설정해준다.
chmod 755 파일명 - 파일의 소유 권한을 rwxr-xr-x로 변경
chmod -R 755 디렉토리 - 디렉터리 내 모든 하위 디렉토리 및 파일의 권한 변경
grep
파일 내 특정 문자열이 들어간 행을 찾아 출력하는 명령어
주로 log 파일에서 특정 날짜나 문자로 기록된 error 메시지를 찾거나 파일에서 원하는 내용을 찾을 때 가장 많이 사용한다. 여러 파일을 동시에 검색하거나 문자열을 이용해 근처 행까지 같이 출력하는 등 여러 옵션을 활용하여 사용할 수 있다.
grep -B 5 -A 5 "test" - 특정 문자가 포함된 행의 앞(before) 뒤(after)로 5줄 출력
grep "test 1" \| "test2" - 역 슬래쉬와(\) 파이프라인(|)을 사용하여 여러 문자열을 한 번에 검색
grep -v "abcd" test.txt - text.txt 파일에서 "abcd" 문자를 제외한 행만 출력. 불필요한 내용 지우고 싶을 때 유용
cat test.txt | grep "hello" - test.txt 파일 내용 중 "hello" 문자가 들어간 행만 출력
cat test.txt | grep "hello" | grep -v "bye" >> test2 - 리다이렉션(>>)을 이용해 최종적인 출력물을 test2 파일에 저장한다.
cat
파일 내용을 출력하는 명령어
cat > file1 - 리다이렉션(>)를 사용하면 기존에 있는 파일 내용을 지우고 새롭게 저장
cat >> file2 - 리다이렉션(>>)를 사용하면 기존 파일 내용 뒤에 연속해서 기록하고 저장
tail
파일의 마지막 부분을 출력하는 명령어. 가장 많이 사용하는 명령어
리눅스의 오류나 파일의 로그를 실시간으로 모니터링할 때 사용한다.
tail -f - 파일의 마지막 10줄을 실시간으로 계속해서 출력
cp
파일 복사 명령어
파일이나 디렉터리를 백업하기 위해 주로 사용한다.
cp file1 file2 - file1 파일을 복사하여 file2라고 저장한다.
cp -r dir1/ ./ - 디렉터리 전체를 복사. dir1 디렉터리를 복사하여 현재 위치(./)에 저장한다.
cp -r dir1/ backup$(date '+_%Y%m%d') - 날짜를 사용하여 백업 쉽게 할 수 있다. 명령어 실행 시 backup_20210327 디렉터리로 저장된다.
mv
파일 이동 명령어
mv file1 dir1/ - file1 파일을 dir1 디렉토리로 이동
mv dir1/ dir2/ - dir1 디렉터리를 dir2 디렉토리 라고 이름을 변경
mkdir
디렉토리 생성 명령어
rmdir
비어있는 디렉토리 삭제 명령어
pwd
현재 작업 중인 디렉터리 확인하는 명령어
cd
디렉토리 이동 명령어
cd / - 루트 디렉터리로 이동
cd .. - 상위 디렉터리로 이동
cd ~ - 자신의 홈 디렉토리로 이동
ln
하드 링크 혹은 심볼릭 링크를 생성하는 명령어
주로 원본 파일을 직접 사용하는 것과 같은 효과를 내도록 링크를 연결하는 심볼릭 링크를 사용한다. 계속 추가되는 이미지 혹은 다운로드하는 엑셀 파일 등 불필요하게 많이 생성되는 파일들을 심볼릭 링크를 걸어 사용하였다.
ln -s [원본 파일] [새로 만들 파일] - 심볼릭 링크 생성
rm [새로 만든 파일] - 심볼릭 링크 해제하는 명령어
touch
파일의 날짜 시간 정보(timestamp)를 변경하는 명령어
아무런 옵션 없이 사용하면 빈 파일을 생성한다.
touch file1 - 빈 파일 생성
touch -c app.wsgi - 현재시간으로 파일 날짜 정보 변경한다. apache 서버 restart 하지 않고 수정한 (간단한 static 파일 정도) 파일에 대해서만 update 하고 싶을 때 사용한다. 주로 L4 분리 작업하지 않고 서버에 반영할 때 사용한다.
curl
웹 request 테스트할 수 있는 명령어
특정 서버로 접속, 연결되는지 테스트하기 위해 주로 사용한다. HTTP, HTTPS, SCP, SFTP 및 FTP 등 지원되는 프로토콜 중 하나를 사용하여 데이터를 다운로드하거나 업로드할 수 있다.
curl -v http://www.google.com - v 옵션은 자세한 옵션을 출력
curl -d - HTTP Post data 테스트
ping
네트워크 상태를 점검하는 명령어
대상 서버 포트가 열려있는지 테스트하기 위해 사용한다. 일정 크기의 패킷을 대상 서버에 전송하고 대상 서버는 패킷을 수신하였다는 응답 메시지를 송신한다. 이를 통해 대상 컴퓨터가 작동하는지, 대상 컴퓨터까지 도달하는 네트워크 상태가 어떤지 파악할 수 있다.
ping www.google.com
netstat
네트워크 연결 상태, 라우팅 테이블, 인터페이스 상태 확인 명령어
netstat -atpn watch -n 2 -d "netstat -atpn | grep 7889 | grep ESTA | wc -l" - TCP 프로토콜 중에서(t), 상세정보까지(p), 호스트명 대신 IP 주소로(n) 모든 네트워크 연결 상태(a)를 보여준다. 2초마다 변경된 부분(d)의 라인수(wc -l)를 출력한다. 해당 포트에 연결된 수를 볼 때 사용한다. 접속자 수 파악에 용이하다.
netstat -nat - 웹서버 운영 중 많은 정보 중에서 자신의 웹서버 포트를 확인할 때 tcp 프로토콜의 정보만 출력
netstat -an | grep LISTEN - 그중 열린 포트만 확인
telnet
포트 오픈 확인 명령어
telnet 127.0.0.1(IP) 8080(port) - 해당 서버에 해당 포트가 열려 있는지 확인
df
리눅스 시스템 전체의 마운트 된 디스크 크기, 사용량, 남아있는 용량 등 확인하는 명령어
df -h -> 사람이 읽기 쉬운 형태(단위)로 출력
nslookup
원하는 도메인의 ip 확인
nslookup [도메인명] -> 해당 도메인의 공인 ip 정보를 출력
'Devlog > Linux' 카테고리의 다른 글
[Linux] 가장 최근 n개 파일만 남기고 삭제 (0) | 2022.06.07 |
---|---|
[Linux] 작업 스케줄러 Cron (0) | 2021.05.02 |
[Linux] vi 편집기 사용법 (0) | 2021.03.28 |