본문 바로가기
Linux

[리눅스 커맨드라인] Part1. Shell 학습 - 1

by _avocado_ 2021. 1. 21.
'리눅스 커맨드라인 완벽 인문서' 의 내용을 정리하였습니다.

1. 쉘이란 무엇인가?

- 명령어를 운영체제에 전달하여 실행시키는 프로그램 (ex. 프롬프트, bash, zsh)

 

명령어 히스토리: 직전에 입력했던 명령어들을 쉘에서 위아래 화살표를 눌러 확인할 수 있다.

 

명령어 마우스로 복사하기: 복사할 부분 선택후(드래그 or 더블클릭) 마우스 휠을 눌러서 붙여넣기 가능

 

명령어

 

date: 현재 시간과 날짜를 표시한다.

 

cal: 현재 날짜의 달력을 표시한다.

 

df: 디스크 정보와 사용가능한 디스크의 용량을 확인한다.

 

free: 메모리 사용현황 확인한다.

 

exit: 터미널 종료

 

2. 파일 시스템 탐색

- 계층적인 디렉토리 구조를 가지고 있다.

 

- 최상단 디렉토리를 root 디렉토리라고 한다.

 

● 현재 작업 디렉토리 확인: pwd

 

● 현재 디렉토리에 있는 파일 및 디렉토리 확인: ls

 

절대경로와 상대경로

 

- 절대경로: root 디렉토리부터 경로를 표시한 것 (/home/usr/bin)

 

- 상대경로: 현재 디렉토리를 기준으로 경로를 표시한 것(./usr/bin 현재 home 디렉토리에 있다고 가정)

 

● 원하는 디렉토리로 이동하기: cd 원하는경로

cd 사용법

cd: home 디렉토리로 이동

cd -: 이전 작업 디렉토리로 이동

cd ~유저이름: 해당 유저의 home 디렉토리로 이동

 

파일명

 

1. 숨김파일은 이름앞에 '.' 이 붙어있다. (ex. .zshrc)

 

2. 대문자와 소문자를 구별한다.

 

3. 파일확장자가 정해져있지 않다.

 

4. 파일명에 마침표(.), 하이픈(-), 언더라인(_), 공백이 사용가능하다. (단, 공백은 사용하지 않는것이 편리하다.)

 

3. 시스템 살펴보기

● 디렉토리의 목록(파일, 디렉토리) 확인하기: ls

ls 사용법

ls: 현재 디렉토리의 목록 확인

ls 디렉토리: 입력한 디렉토리의 목록확인(여러 디렉토리 입력가능, 한칸씩 공백을 두고 입력)

 

명령어 옵션과 명령 인자

 

명령어 -옵션 명령인자 순으로 사용

 

-> ls에서 -l은 속성까지 알려줌, -t는 수정시간에 따른 결과로 정렬해줌

 

ex) ls -l: 속성을 보여줌, ls -lt: 속성을 보여주고 수정시간에 따라 정렬

 

long 옵션: --를 붙인 명령 옵션, 맨뒤에 붙인다.

ex) ls -lt --reverse: 속성, 수정시간에 따른 정렬 후 역순으로 출력

 

● ls 의 옵션 목록

옵션 long 옵션 설명
-a --all 모든 파일보기, 숨김 파일도 보여준다.
-d --directory 현재 디렉토리의 정보를 보여준다.(목록이 아닌 현재 디렉토리 자체)
-F --classify 종류에 따라 이름뒤에 특수문자를 붙인다. 디렉토리:/, 실행파일:*
-h --human-readable -l과 함께 사용하여 용량을 보기편하게 바꿔준다.(4096->4K)
-l   상세 정보를 보여준다.
-r --reverse 출력 결과를 역순으로 정렬한다.
-s   파일을 크기 순으로 정렬한다.
-t   파일을 수정시간 기준으로 정렬한다.

 

ls 자세히 보기 정보

 

ex) -rwx-r-xr-x 1 root root 4096 1 18 20:25 filename.txt

항목 설명
-rwx-r-xr-x 항목의 정보와 접근권한을 알려준다. 앞 첫 번째 값은 파일일 경우 -, 디렉토리일 경우 d로 표시된다. 그 다음으로 오는 3개씩 소유자, 소유그룹, 그외 사용자의 권한을 나타내며 순서대로 r: 읽기, w:쓰기, x: 실행을 나타낸다.
1 하드 링크수를 나타낸다. (자세한 설명은 뒤에)
root 파일 소유자의 이름
root 파일 소유 그룹의 이름
4096 파일의 크기
1 18 20:25 파일의 최종 수정 시간
filename.txt 파일 이름

 

● file 파일명: 간단한 파일의 정보를 알려준다.

 

● less 파일명: 텍스트 파일을 볼 수 있다.

 

와일드 카드

파일명으로 검색시 문자의 패턴을 입력하는 방법(정규표현식과 비슷하다.)

와일드카드 매칭 문자
* 모든 문자(개수 상관X)
? 모든 한 개의 문자 
[문자셋] 문자셋에 포함된 문자 중 하나
[!문자셋] 문자셋에 포함되지 않은 문자 중 하나
[[:class:]] class 에 포함된 문자 중 하나

class

문자 class 매칭 문자
[:alnum:] 모든 알파벳 문자와 숫자
[:alpha:] 모든 알파벳 문자
[:digit:] 모든 숫자
[:lower:] 모든 소문자
[:upper:] 모든 대문자

ex)

 

*.log -> 확장자가 log인 모든 파일

 

[abc]* -> a, b, c로 시작하는 모든 파일

 

[[:digit:]xy].??? -> 숫자 or x, y로 시작하는 확장자가 3개 문자가 오는 파일

 

● mkdir 디렉토리이름: 디렉토리를 생성한다. (여러개 생성시 띄어쓰면 된다.)

 

● cp A B: A를 B로 복사한다.

cp 사용법

cp file1 file2 : file1을 file2라는 이름으로 복사한다.

cp file1 dir/file2 : file1을 dir에 있는 file2라는 이름으로 복사한다.(경로를 지정가능)

cp file1 file2 dir : file1,2를 dir로 복사한다.

cp dir1/* dir2 : dir1에 있는 모든 파일을 dir2에 복사한다. (dir2가 존재해야 한다.)

cp -r dir1 dir2 : dir1을 dir2라는 이름으로 복사한다. (dir2가 없다면 생성한다.)

cp 옵션

옵션 설명
-a, --archive 파일, 디렉토리의 소유자, 권한정보까지 복사(기본: 복사하는 사용자의 이름으로 복사)
-i, --interactive 파일을 덮어쓰기전에 확인 메세지를 띄운다. 없을시 그냥 덮어씀
-r, --recursive 디렉토리를 복사할 때 사용, 안의 내용까지 모두 복사
-u, --update 없는 파일, 수정된 파일만 복사
-v, --verbose 복사 완료 확인 메세지를 띄운다.

 

● mv A B: A를 B로 변경한다.(경로를 변경하거나 이름을 변경한다.) A는 사라진다.

mv 사용법

mv file1 file2 : file1을 file2라는 이름이로 바꾼다. file2가 있다면 덮어쓴다.

mv file1 file2 dir : file1,2를 dir 로 이동한다. (dir은 존재해야 한다.)

mv dir1 dir2 : dir1과 모든 내용물을 dir2로 이동한다. dir2가 없다면 생성한다.

mv 옵션

옵션 설명
-i, --interactive 덮어쓰기 전 확인 메세지를 띄운다.
-u,--update 없는 파일, 수정된 파일만 옮길때 사용된다.
-v, --vervose 이동 완료 메세지를 띄운다.

 

● rm A: A를 삭제한다. (여러개 입력가능)

rm file1 : file1을 삭제한다.

rm -r dir1 : dir1의 하위 내용까지 모두 삭제한다.

rm -f file1 : file1을 삭제한다. file1이 없어도 실행된다.

댓글