System/Linux

리눅스 기초 명령어

Kaget 2020. 4. 23. 20:16

리눅스 명령어 형식

command [-단일 문자 옵션] [--다중 문자 옵션]

 

 

디렉터리의 표현

/ : 최상위 root 디렉터리 (절대 경로 표현의 기준)
./ : 현재 디렉터리 (상대 경로 표현의 기준 : 생략 가능)
../ : 현 디렉터리의 상위 디렉터리
~/ : 각 사용자의 홈 디렉터리

 

 

cd [이동할 디렉토리명]

디렉터리를 이동하는 명령어, 보통 옵션이 없이 사용한다.

 

 

pwd
현재 위치한 디렉터리를 절대 경로 표현법으로 출력한다.

 

 

rmdir [삭제할 디렉토리명]
지정한 디렉터리를 삭제한다.
디렉터리가 비워져 있는 경우만 삭제 가능하다.

 

 

mkdir [옵션] [생성할 디렉토리명]
지정한 디렉터리를 생성한다.
생성된 디렉터리는 생성한 유저의 소유가 된다.
-옵션

  • -p, --parents
    (필요하다면 생성하고자 하는 상위의 디렉터리까지 생성한다.)

 

 

ls [옵션]
현재 디렉터리의 목록을 출력한다.
-옵션

  • -a, --all : 숨겨진 파일의 목록까지 출력
  • -l : 파일에 대한 정보를 자세히 출력
  • -R : 하위 디렉터리의 내용까지 출력
  • -h : 사람이 이해하기 쉽도록 파일의 크기를 출력
  • -k : kb단위로 파일의 크기 출력
  • -i : 파일의 inode 번호를 같이 출력 (고유번호)

 

 

리다이렉트
표준 입출력 지시자

 

> : 표준 출력 지시자

  • command > 파일 : 명령 결과를 파일로 저장

>> : 추가 표준 출력 지시자

  • command >> 파일 : 명령 결과를 파일에 추가

< : 표준 입력 지시자

  • command < 파일 : 파일의 내용을 명령의 입력 값으로 사용

 

 

cat [옵션] [출력 대상 파일]
-옵션

  • -n : 행 단위 번호
  • -b : 공백 라인을 제외하고 행 단위 번호

파일의 입출력 제어
# cat [< 입력 파일 > 출력 파일]

  • 기본 입력 파일 : 키보드
  • 기본 출력 파일 : CRT

입력 파일의 경우 < 기호 생략 가능
>> : 출력 파일이 존재하는 경우 내용 추가
# cat a.txt  -> a.txt 내용을 화면에 출력
# cat < a.txt > b.txt -> a.txt 내용을 b.txt에 출력(복사)

 

 

echo [환경변수 | 문자열]
환경 변수나 입력 내용을 출력
리다이렉트를 이용하면 파일을 생성할 수도 있다.
ex)
# echo $HOME
# echo '$HOME'

# echo "$HOME" 은 화면에 환경변수 내용이 아닌 $HOME을 출력한다.

$를 쓰지 않으면 문자열을 출력한다.

 


env
모든 환경 변수를 출력한다.

 

 

cp [옵션] 원본 파일 복사 파일명
파일이나 디렉터리를 복사한다.
-옵션

  • -a : 원본의 속성유지
  • -r : 하위 디렉터리나 파일 모두 복사
  • -f : 강제 실행
  • -p : 파일의 소유와 권한 등을 보존한 채 복사
  • -u : 새 파일 덮어쓰기 금지

cp -arfp 원본 파일 복사 파일명

이렇게 옵션을 한 번에 다 줘서 사용하는 것이 좋다.

 

 

mv [옵션] 원본 파일 이동 파일명
파일이나 디렉터리를 이동한다.
-옵션

  • -f : 강제 실행
  • -b : 파일이 덮어 쓰일 경우 백업 파일을 생성한다.
  • -d : 디렉터리 삭제
  • - i : 삭제 전 일일이 삭제 여부 확인
  • -v : 삭제 파일 만들기

mv 명령어를 통해 파일명을 변경할 수 있다.

 

 

rm [옵션] 대상 파일
파일이나 디렉터리를 삭제한다.
-옵션

  • -f : 강제 실행
  • -r : 대상 중에 디렉터리가 있는 경우 디렉터리도 삭제

 

 

ln [옵션] 원본 파일 링크 파일
link 파일 생성 (symbolic(soft), hard)
-옵션

  • -s : soft link 생성 (디렉터리의 경우 soft link만 가능)
  • -f : 대상이 존재하는 경우 지우고 link파일 생성

유닉스는 디렉터리에도 하드 링크가 가능하지만 하지 않는 것이 좋다.

 

-하드 링크와 소프트 링크의 차이점
실제 파일인 a.txt가 하드디스크의 저장공간을 가리키고 있을 때
링크 파일인 b.txt가 소프트 링크 파일이라면 a.txt 파일을 가리키고 
하드 링크라면 하드디스크의 저장공간을 가리킨다.

 

하드 링크는 실제 파일을 만드는 것과 비슷해서 잘 쓰지 않는다.
파일을 관리할 때 똑같은 파일이 두 개가 생기면 관리하기 힘들기 때문이다.

 

 

more 파일
화면 출력을 화면 단위로 제어
출력되는 내용이 많아서 화면을 넘어가는 경우 사용

 


|
앞쪽 명령의 결과를 뒤쪽 명령의 입력 값으로 이용

ex) # ls –al | more

 

 

grep

출력 문자 열중에 원하는 단어나 글자가 들어있는 라인만 출력하고자 할 때 이용한다.(필터링)
ex) # ls –al | grep [필터링 문자열]

 

 

head, tail
파일의 일부분을 출력. 각각 앞 뒤에서 10 라인씩 출력
-옵션

  • -n : 지정한 라인만큼 출력
  • -c : 지정한 byte 만큼 출력
  • -f : tail에서만 사용, 실시간 추가되는 내용도 출력
    주로 log 정보 확인 시 사용한다.

 

 

find 검색경로 옵션 옵션에 대한 값
파일 시스템에서 조건에 만족하는 파일을 검색한다.
-옵션

  • -name : 파일명으로 검색 (와일드카드 문자 사용)
  • -perm : 특정 퍼미션을 가진 파일을 검색
  • -empty : 크기가 0인 파일 검색
  • -user 지정한 사용자가 소유한 파일
  • -group 지정한 그룹이 소유한 파일
  • -nouser 소유자가 없는 파일
  • -nogroup 그룹 소유자가 없는 파일
  • -type 검색하고자 하는 파일의 종류 지정
    b(block), c(char), d(dir), l(slink). f(regular)
  • -mount 마운트 된 파일 시스템만 검색

-name 옵션 사용 시 에러가 발생하면 문자열을 '로 감싸준다.

 

 

tar [옵션] [압축 파일명] [대상] 
여러 개의 파일을 하나의 파일로 압축한다. 단 용량은 줄어들
지 않는다. 용량을 줄이기 위해서는 gzip을 이용하거나 특별
한 옵션을 이용한다.
-옵션

  • -c : 압축
  • -x : 풀기
  • -v : 작업내용을 출력
  • -z : gzip를 이용 압축(압축해제)
  • -j : bzip2 이용
  • -f : 파일명을 지정
  • -p : 퍼미션 유지

보통은 압축할 때는 cvfz 옵션을 한 번에 다 주고

압축을 풀 때는 xvfz 옵션을 모두 준다.

이때는 -를 붙이지 않는다.

 

 

clock [옵션] 
리눅스 시스템에 탑재된 BIOS의 시간을 출력하거나 변경한
다.
-옵션

  • -r : BIOS의 시간을 읽어 표준 출력으로 출력한다.
  • -w : BIOS의 시간을 시스템의 시간으로 변경한다.
  • -s : BIOS의 시간으로 시스템의 시간을 변경한다.

 

 

date [+포맷] 
지정한 포맷으로 시스템의 날짜를 출력한다.
-포맷(시간)

  • 시 : %H(00..23), %I(01.. 12), %k(0.. 23), %l(1.. 12), %p(AM, PM)
  • 분 : %M(00..59)
  • 초 : %S(00..59)
  • 시간 : %r(hh12:mm:ss AM), %T(hh24:mm:ss), %X (로케일)
  • 기타 : %s (1970년 1월 1일 이후 경과된 초)

 

-포맷(날짜)

  • 년 : %Y(YYYY), %y(yy)
  • 월 : %m(01..12), % B(January.. December), %b(Jan.. Dec)
  • 일 : %d(01..31)
  • 요일 : %A(Sunday .. Saturday), %a(Sun.. Sat), %w(0.. 6)
  • 기타 : %D(mm/dd/yy), %x(로케일), %j(00.. 365)

 

 

rdate [옵션] [시간 제공 서버 주소] 
인터넷상에 제공되는 서버로부터 시간 정보를 받아 시간을 출
력하거나 시스템의 시간을 재설정한다.
-옵션

  • -p : 타임 서버로부터 제공된 시간을 출력한다.
  • -s : 타임 서버로부터 제공된 시간을 이용 시스템의 시간을
    재설정한다.

 

 

stat 파일

파일의 시간 정보를 출력한다.

 

 

리눅스 파일의 타임스탬프

  • atime
    - 파일에 마지막으로 접근한 시간
    - 시스템이나 응용프로그램이 마지막으로 파일에 접근한 시간
  • ctime
    - 파일의 퍼미션 등 속성이 변경된 시간.
  • mtime
    - 파일의 내용이 마지막으로 수정된 시간
    - mtime이 수정되면 ctime도 수정된다.

 

 

touch [옵션] 파일 
파일의 시간 정보를 현재 갱신한다. 파일이 없으면 빈 파일을
생성한다.
-옵션

  • -t [YYYYMMDDhhmi] : 임의의 시간으로 변경
  • -a : 최근 사용 시간 변경
  • -m : 파일의 최근 수정 시간 변경
  • -r [file] : 지정한 파일과 동일한 시간으로 변경
  • -c : 파일을 생성하지 않는다.(존재하지 않을 때)