본문 바로가기
IT 학습 공간 ::)

리눅스 기본 명령어 (Linux)

by 에스타롯사 2019. 4. 29.

안녕하세요 롯사입니다.

 

전 시간에 vmware 리눅스 가상화 서버를 구축한 포스팅에 이어서 리눅스 서버에서 직접적으로

 

사용하는 가장 기본 중에 기본인 명령어에 대해서 알아보는 시간을 갖도록 하겠습니다.

 

윈도처럼 리눅스도 GUI 환경이 지원되긴 하지만 기본적으로 현업에서는 보안적인 부분과

 

시스템 Resource를 고려하여 가볍고 simple하게 운영되는 서버들이 대부분입니다.

 

그렇기 때문에 명령어는 필수라고 할 수 있겠습니다.

 

 

Basic Command

ls / pwd / cd / cp / mv / mkdir / rmdir / rm / cat / touch / head / tail /


ls : 디렉터리와 파일의 목록을 출력.

구문 : ls [option] [directory/file]

옵션 : 

옵션 의미
-a, --all .을 포함 숨김 파일들을 포함한 모든 파일과 디렉터리를 표시합니다.
-l --format=long 지정한 디렉터리의 내용을 자세히 출력합니다.
-d --directory 지정된 디렉터리의 정보를 출력합니다.
-n --numeric 파일 및 디렉터리 정보 출력시 UID, GID를 사용합니다.
-F --classify 파일 형식을 알리는 문자를 각 파일 뒤에 추가 (ex. "*","/","@")
-R --recursive 하위 경로와 그 안에 있는 모든 파일들도 같이 나열합니다.

선택한 옵션에 따라서 출력되는 내용이 상이한 것을 확인 할수있습니다.


pwd 현재 내가 위치한 절대적인 경로를 출력

기본적인 현재 위치에 대한 절대경로를 출력해 줍니다.


cd : 원하는 디렉터리로 이동할 때 인자 값과 함께 사용

구문 : cd [인자 값]

옵션 :

인자값 의미
directory 이동하고 싶은 디렉터리 (ex. cd /home)
. 현재 디렉터리
.. 상위 디렉터리
~ 로그인 된 사용자의 홈디렉터리로 이동.
~계정명 지정된 계정의 홈디렉터리로 이동.
   

선택한 옵션의 인자값에 따라서 경로가 바뀌게 됩니다.


cp : 파일이나 디렉터리를 복사하는 명령어

구문 : cp [-option] [sources] [target]

옵션 :

옵션 의미
-i, --interactive 복사대상 파일이 있을 경우, 사용자에게 복사 여부 질문
-f, --force 복사대상 파일이 있을 경우, 사용자에게 확인없이 강제 복사
-r, -R, --recursive 디렉토리를 복사할 경우 하위 디렉토리와 파일을 모두 복사
-v --verbose 복사진행 상태를 출력한다.
-d, --no-dereference 심볼릭 정보를 그대로 유지하고 복사
-p, --preserve 원본 파일의 소유주, 그룹, 권한, 시간정보를 보존 하고 복사
-a, --archive 원본 파일의 속성, 링크정보들을 그대로 유지하고 복사

mv : 파일이나 디렉터리를 이동하거나 이름을 바꿀 때 사용

구문 : mv [-option] [sources] [target]

옵션 :

옵션 의미
-i, --interactive .bashrc에 alias 되어 있는 옵션, 파일이 있을 경우 사용자 확인
-u, --update 이동할 파일이 이동할 위치에 있는 파일보다 최근 파일일 경우 이동
-b, --backup 대상에 파일이 이미 있어, 지워지는 것을 대비해 백업파일을 생성
-f, --force 대상에 파일이 이미 있어도 사용자에게 어떻게 처리할지 묻지 않는다
-v, --verbose 파일 을 옮기는 과정을 자세하게 보여준다
-S, --suffix -b 옵션을 이용하여 백업파일에서 사용할 파일 이름 꼬리 문자 지정

 


mkdir 디렉터리를 생성하는 명령어

구문 : mkdir [-option] [directory name]

옵션 :

옵션 의미
-m, --mode 디렉토리 생성시 디렉토리의 기본 권한을 지정
-p, --parents 필요한 경우 상위 경로까지 생성
--help 도움말 표시
--version 버전 정보 표시

권한부여와 동시에 파일 생성과 상위 경로에 디렉터리가 생성되는것을 확인할수있습니다.

 


rmdir : 디렉터리 삭제하는 명령어 (파일 삭제 불가, 하위 디렉터리 존재 시 삭제 불가)

구문 : rmdir [-option] [directory]

옵션 : 

옵션 의미
-p, --parents 상위 경로도 지운다.
--help 도움말 표시
--version 버전 정보 표시


rm : 파일 및 디렉터리를 삭제하는 명령어(삭제 권한 필요)

구문 : rm [-option] [directory / file]

옵션:

옵션 의미
-f, --force 파일/디렉터리 삭제시 사용자에게 처리여부 묻지 않는다
-r,-R, --recursive 일반 파일이면 그냥 지우고, 디렉터리를 포함한 하위,파일 모두 삭제
-v, --verbose 파일 지우는 정보를 보여준다
--version 버전 정보를 보여준다


cat : 텍스트 파일 내용을 표준 출력장치로 출력하는 명령어

구문 :

형식 내용
cat /etc/[ file ] 파일의 내용 출력
cat /etc/[ file ] > /[ newfile ] 기존 파일의 내용을 다른 파일에 입력하기 [덮어쓰기]
cat >> /[ file ] 기존 파일에 내용 추가하기 [내용추가]

쉽게 생각해서 꺽쇠 한개는 > 덮어쓰기 이고 꺽쇠 두개는 >> 내용 추가라고 생각하시면 됩니다.


touch : 크기가 0인 새로운 파일을 생성하거나 시간 정보를 변경하는 명령어

파일이 존재하지 않을 경우 크기가 0 byte 인 새로운 파일을 생성합니다.
파일이 존재할 경우 수정 시간을 명령어를 사용한 시점으로 변경합니다.

0 byte 의 새로운 파일 생성과 시간 time 변경된 것을 확인 할 수 있습니다.


head : 파일의 내용을 출력

파일의 내용중 처음부터 아래로 10줄의 정보를 출력해서 보여줍니다.
head 명령어만 사용시 기본값인 위에서 10줄을 출력해서 보여줍니다.

구문 : head [ -option ] [ filename ]

옵션 :

옵션 의미
-c, --bytes=[-]K 각 파일의 처음부터 K bytes 까지를 출력한다. ‘-’를 붙일 경우 각 파일의 마지막 K bytes를 출력합니다.
-n, --lines=[-]K 각 파일의 처음 10개 행 대신 처음부터 K번째 행까지 출력한다. ‘-’를 붙일 경우 각 파일의 마지막 K 번째 행을 출력합니다.
-q, --quiet, --silent 파일의 이름을 header에 출력하지 않습니다.
-v, --verbose 항상 파일의 이름을 header에 출력한다


tail : 파일의 내용을 출력

파일의 내용중 마지막부터 위로 10줄 출력
tail 명령어만 사용시 기본값인 아래에서 10줄 출력

구문 : head [ -option ] [ filename ]

옵션 :

옵션 의미
-c, --bytes=K 줄 단위가 아니라 bytes 단위로 파일의 마지막 부분을 출력한다. -c +K 와 같이 입력하면 파일의 시작부터 K번째 bytes까지 출력한다.
-f, --follow[={name|descriptor}] 파일의 마지막부터 10줄을 출력해주고 종료되지 않은채 표준입력을 읽어 들인다. -f, --follow, --follow=descriptor 모두 동일한 의미를 가지기 때문에 어느 것을 사용해도 상관없다.
-F 파일 변동 시 실시간으로 출력하되 로그파일처럼 특정 시간이 지난 후 파일이 변하게 되면 새로운 파일을 오픈하여 출력한다.
n, --lines=K K 값을 입력할 경우 마지막 10줄 대신 마지막에서 K 번째 줄까지 출력한다.
-q 파일의 이름을 header에 출력하지 않는다.
-s -f 옵션과 함께 사용하며, N초(default 1.0)의 시간 간격마다 파일에 새로운 줄이 추가되었는지 검사한다.
-v 항상 파일의 이름을 header에 출력한다.


여기까지 리눅스의 기본적인 명령어 일부에 대해서 알아봤습니다.

 

명령어에 따라서 사용되는 옵션의 종류가 다양하기 때문에 의미만 정확하게 파악하고 조금씩

 

사용해보시면 금방 익숙해질 수 있을 거라 생각됩니다.

 

많이들 열공하시고요 환절기 감기 조심하세요 ^^

 

다음 시간엔 vi 편집기에 대해서 포스팅해보도록 하겠습니다.