리눅스 기본 명령어 정리

조찬영·2024년 2월 13일
0
post-thumbnail

명령어를 정리해보자

사실 리눅스 기본 명령어를 블로그에 정리할 생각은 없었고 개인 학습 페이지에 따로 정리하려고 했다.

하지만 개발 스터디에 참여하면서 의외로 리눅스 기본 명령어에 대해서 물어보시는 분들이 꽤 계셨다. (사실 나도 잘 모르지만)
하지만 명령어를 말로 설명하려하니 참 애매하고 어렵다는 느낌을 받았다.

그래서 블로그에 기본 명령어들을 정리하고 비슷한 상황에서 내 블로그 링크를 공유함으로서 더 알찬 질답의 시간을 보내려한다!


01. ls

list segments의 약자로 현재 위치의 디렉토리 및 파일 목록을 나열한다.

# ls			-> 현재 위치의 디렉토리 및 파일 목록 나열
# ls -l  		-> 파일들의 상세 정보(권한,소유,생성일자) 표시 
# ls -a 		-> 숨김 파일 포함 나열 
# ls -t			-> 최신 파일순으로 나열  
# ls -rt 		-> 오래된 파일순으로 나열
# ls -F 		->  파일의 타입을 나타내는 문자열 표시 (/ 디렉토리 * 실행파일,@ 심볼릭 링크)
# ls -R 		-> 하위 디렉토리까지 포함하여 나열 (주의해서 사용할 것!)
# ls -l *.text 	-> 'text'확장자명을 가진 파일만 나열 

조합하여 사용 가능하다.

ls -al ,ls -alF ...


02. cd

Change Directory 의 약자로서 디렉토리를 이동할 때 사용됩니다.

# cd					-> 현재 사용자의 홈 디렉토리로 이동 
# cd .. 				-> 상위 디렉토리로 이동 
# cd /dir				-> 절대경로로 이동 
# cd ../usr/local		-> 상위 디렉토리의 /usr/local로 이동

03. pwd

Print Working Directory 의 약자로서 현재 경로를 나타낸다.

# pwd 		-> 현재 경로 표시 

04. mkdir

Make Directory 의 약자로 디렉토리를 생성하는 명령어입니다.

# mkdir <디렉토리>		->  디렉토리 생성
$ mkdir test 			-> `test` 이름을 가진 디렉토리 생성

05. rm

ReMove 의 약자로 파일 또는 디렉토리를 삭제합니다.

# rm test.txt 		-> test 파일 삭제
# rm -r 			-> 하위 디렉토리까지 포함하여 삭제 (-r -> recursive 재귀적)
# rm -f 			-> 삭제 확인 메시지없이 삭제 (-f -> force 강제적)
# rm -rf test 		->  `test` 디렉토리 및 하위 디렉토리 바로 삭제 
# rm -rf test/*		-> `test` 디렉토리 안의 파일 및 디렉토리 삭제 

06. cp

CoPy 의 약자로 파일 또는 디렉토리를 복사하며 복사된 파일은 복사한 사용자의 소유가 된다.
즉, 사용자는 해당 파일에 대한 읽기 권한이 있어야 한다.

# cp test1.txt test2.txt 				-> test1 파일을 test2 로 copy 
# cp -r directory1 directory2			-> 하위 디렉토리 포함하여 cop	

07. mv

MoVe의 약자로서 파일 이름을 변경하거나 다른 디렉토리로 변경할 때 사용됩니다.

# mv mysql mariadb		-> 디렉토리명을 mysql에서 mariadb로 변경 
# mv mariadb /usr/local	-> mariadb 디렉토리를 /usr/local로 이동 
# mv a b c d 			-> a,b,c 파일 d 디렉토리로 이동 

08. cat

conCATenate 의 약자로서 파일의 내용을 확인하거나 출력할 때 사용합니다.

# cat test.txt		-> test.txt 의 내용을 출력 

09. touch

파일을 생성하거나 날짜와 시간을 업데이트할 때 사용됩니다.

# touch log				-> log 파일 생성
# touch log 			-> log 파일이 이미 존재 할 경우 날짜를 현재 시각으로 업데이트
# touch -c log			-> log파일의 날짜를 현재 시각으로 업데이트
# touch -r log1 log2 	-> log2의 날짜를 log1 과 동일하게 업데이트

10. echo

문자열을 화면에 출력하거나 삽입할 때 사용 (문자열 특화)

# echo hello world			-> 'hello world` 출력
# echo hello > test.txt		-> test.txt 텍스트 파일을 hello 문자열 포함하여 생성
# echo world >> test.txt	-> test.txt 텍스트 파일에 'world'문자열 추가 삽입
# echo $JAVA_HOME			-> 패스로 지정된 경로를 문자열로 출력 

11. file

파일의 종류를 출력합니다.

# file /dev/sr0		-> block special (CD/DVD 장치)
# file test.txt		-> ASCII text

12. ss

socket statistics의 약자로서 리눅스 시스템에서 네트워크 소켓에 대한 상세한 정보를 표시하는 데 사용됩니다.

# ss 		-> 모든 소켓 정보를 요약하여 표시
# ss -t		-> TCP 소켓 정보
# ss -u		-> UDP 소켓 정보
# ss -l		-> listen 상태 포트 확인
# ss -p 	-> 프로세스 표시 
# ss -n		-> 호스트,포트, 사용자 명 표시 

# ss -tln	-> tcp 에서 listen 중인 포트 정보 출력 

13. tail

텍스트 형식으로 지정된 파일을 화면에 출력합니다.

# tail -5 catalina.out 		-> 마지막 5행만 출력
# tail -f catalina,out		-> Ctrl+c 누르기 전까지 마지막 행 내용을 계속 출력
  • echo 명령어는 주로 특정 문자열을 출력할 때 사용
  • tail 명령어는 파일의 내용, 로그 기록을 확인할 때 사용

14. find

파일 또는 디렉토리를 찾을때 사용된다.

# find {디렉토리} -name '*.cfg'		-> 디렉토리에서 확장자명 'cfg' 파일을 찾는다

15. ps

현재 실행중인 프로세스 목록을 보여준다.

# ps aux 또는 ps -ef 		-> 실행중인 모든 프로세스 조회
# ps -ef | grep 'test'	  	->  'test'문자열 포함한 프로세스 조회
# ps --sort size 			-> 메모리 사용량에 따라 정렬

16. kill

프로세스 중지 명령입니다.
종종 포트 충돌이 일어날 때 프로세스를 강제 종료하기위해 사용했던 것 같습니다.

# kill -9 {pid}		-> 종료할 pid를 입력하여 해당 프로세스를 종료시킵니다.
  • pid 란 process ID 이며 ss,netstat, ps 명령어들로 알 수 있습니다.

16. grep

grep은 정규식 패턴에 일치하는 파일, 디렉토리를 찾는 명령어입니다.
find,cat,ps 등 주로 다른 명령어와 혼합되어 사용됩니다.

# cat /path | grep '패턴'			-> path 경로에서 패턴에 맞는 파일 내용 출력
# find /path | grep '패턴' 		    -> path 경로에 패턴에 맞는 파일 찾기

17. clear

터미널 화면을 깔끔히 clear 시킵니다.

# clear 		-> 화면 정리 (clear)

이것으로 리눅스 학습을 위해 기초적인 명령어들을 정리해보았다.
17개의 기초적인 명령어임에도 생각보다 많은 에너지를 쏟게 되었다..
책을 만드시는분들 정말 리스펙합니다!

profile
보안/응용 소프트웨어 개발자

0개의 댓글