사실 리눅스 기본 명령어를 블로그에 정리할 생각은 없었고 개인 학습 페이지에 따로 정리하려고 했다.
하지만 개발 스터디에 참여하면서 의외로 리눅스 기본 명령어에 대해서 물어보시는 분들이 꽤 계셨다. (사실 나도 잘 모르지만)
하지만 명령어를 말로 설명하려하니 참 애매하고 어렵다는 느낌을 받았다.
그래서 블로그에 기본 명령어들을 정리하고 비슷한 상황에서 내 블로그 링크를 공유함으로서 더 알찬 질답의 시간을 보내려한다!
list segments의 약자로 현재 위치의 디렉토리 및 파일 목록을 나열한다.
# ls -> 현재 위치의 디렉토리 및 파일 목록 나열
# ls -l -> 파일들의 상세 정보(권한,소유,생성일자) 표시
# ls -a -> 숨김 파일 포함 나열
# ls -t -> 최신 파일순으로 나열
# ls -rt -> 오래된 파일순으로 나열
# ls -F -> 파일의 타입을 나타내는 문자열 표시 (/ 디렉토리 * 실행파일,@ 심볼릭 링크)
# ls -R -> 하위 디렉토리까지 포함하여 나열 (주의해서 사용할 것!)
# ls -l *.text -> 'text'확장자명을 가진 파일만 나열
조합하여 사용 가능하다.
ls -al ,ls -alF ...
Change Directory 의 약자로서 디렉토리를 이동할 때 사용됩니다.
# cd -> 현재 사용자의 홈 디렉토리로 이동
# cd .. -> 상위 디렉토리로 이동
# cd /dir -> 절대경로로 이동
# cd ../usr/local -> 상위 디렉토리의 /usr/local로 이동
Print Working Directory 의 약자로서 현재 경로를 나타낸다.
# pwd -> 현재 경로 표시
Make Directory 의 약자로 디렉토리를 생성하는 명령어입니다.
# mkdir <디렉토리> -> 디렉토리 생성
$ mkdir test -> `test` 이름을 가진 디렉토리 생성
ReMove 의 약자로 파일 또는 디렉토리를 삭제합니다.
# rm test.txt -> test 파일 삭제
# rm -r -> 하위 디렉토리까지 포함하여 삭제 (-r -> recursive 재귀적)
# rm -f -> 삭제 확인 메시지없이 삭제 (-f -> force 강제적)
# rm -rf test -> `test` 디렉토리 및 하위 디렉토리 바로 삭제
# rm -rf test/* -> `test` 디렉토리 안의 파일 및 디렉토리 삭제
CoPy 의 약자로 파일 또는 디렉토리를 복사하며 복사된 파일은 복사한 사용자의 소유가 된다.
즉, 사용자는 해당 파일에 대한 읽기 권한이 있어야 한다.
# cp test1.txt test2.txt -> test1 파일을 test2 로 copy
# cp -r directory1 directory2 -> 하위 디렉토리 포함하여 cop
MoVe의 약자로서 파일 이름을 변경하거나 다른 디렉토리로 변경할 때 사용됩니다.
# mv mysql mariadb -> 디렉토리명을 mysql에서 mariadb로 변경
# mv mariadb /usr/local -> mariadb 디렉토리를 /usr/local로 이동
# mv a b c d -> a,b,c 파일 d 디렉토리로 이동
conCATenate 의 약자로서 파일의 내용을 확인하거나 출력할 때 사용합니다.
# cat test.txt -> test.txt 의 내용을 출력
파일을 생성하거나 날짜와 시간을 업데이트할 때 사용됩니다.
# touch log -> log 파일 생성
# touch log -> log 파일이 이미 존재 할 경우 날짜를 현재 시각으로 업데이트
# touch -c log -> log파일의 날짜를 현재 시각으로 업데이트
# touch -r log1 log2 -> log2의 날짜를 log1 과 동일하게 업데이트
문자열을 화면에 출력하거나 삽입할 때 사용 (문자열 특화)
# echo hello world -> 'hello world` 출력
# echo hello > test.txt -> test.txt 텍스트 파일을 hello 문자열 포함하여 생성
# echo world >> test.txt -> test.txt 텍스트 파일에 'world'문자열 추가 삽입
# echo $JAVA_HOME -> 패스로 지정된 경로를 문자열로 출력
파일의 종류를 출력합니다.
# file /dev/sr0 -> block special (CD/DVD 장치)
# file test.txt -> ASCII text
socket statistics의 약자로서 리눅스 시스템에서 네트워크 소켓에 대한 상세한 정보를 표시하는 데 사용됩니다.
# ss -> 모든 소켓 정보를 요약하여 표시
# ss -t -> TCP 소켓 정보
# ss -u -> UDP 소켓 정보
# ss -l -> listen 상태 포트 확인
# ss -p -> 프로세스 표시
# ss -n -> 호스트,포트, 사용자 명 표시
# ss -tln -> tcp 에서 listen 중인 포트 정보 출력
텍스트 형식으로 지정된 파일을 화면에 출력합니다.
# tail -5 catalina.out -> 마지막 5행만 출력
# tail -f catalina,out -> Ctrl+c 누르기 전까지 마지막 행 내용을 계속 출력
파일 또는 디렉토리를 찾을때 사용된다.
# find {디렉토리} -name '*.cfg' -> 디렉토리에서 확장자명 'cfg' 파일을 찾는다
현재 실행중인 프로세스 목록을 보여준다.
# ps aux 또는 ps -ef -> 실행중인 모든 프로세스 조회
# ps -ef | grep 'test' -> 'test'문자열 포함한 프로세스 조회
# ps --sort size -> 메모리 사용량에 따라 정렬
프로세스 중지 명령입니다.
종종 포트 충돌이 일어날 때 프로세스를 강제 종료하기위해 사용했던 것 같습니다.
# kill -9 {pid} -> 종료할 pid를 입력하여 해당 프로세스를 종료시킵니다.
grep은 정규식 패턴에 일치하는 파일, 디렉토리를 찾는 명령어입니다.
find,cat,ps 등 주로 다른 명령어와 혼합되어 사용됩니다.
# cat /path | grep '패턴' -> path 경로에서 패턴에 맞는 파일 내용 출력
# find /path | grep '패턴' -> path 경로에 패턴에 맞는 파일 찾기
터미널 화면을 깔끔히 clear 시킵니다.
# clear -> 화면 정리 (clear)
이것으로 리눅스 학습을 위해 기초적인 명령어들을 정리해보았다.
17개의 기초적인 명령어임에도 생각보다 많은 에너지를 쏟게 되었다..
책을 만드시는분들 정말 리스펙합니다!