리눅스 기본명령
리눅스 구성 요소
커널
- 운영체제의 핵심기능 담당
- CPU, 메모리, 디스크, 네트워크 등 하드웨어와 프로세스 관리
추가 프로그램
- 문서작성, 게임, 웹브라우저 등 다양한 용도에 사용되는 응용프로그램
'쉘'
- 사용자가 텍스트 형식으로 명령을 입력할 수 있는 인터페이스 제공
- 주어진 명령을 실행하여, 명령의 실행 결과를 화면을 통해 보여주는 응용 프로그램
X 윈도우 시스템
- Linux( 및 Unix) 운영체제에서 GUI (Graphical User Interface) 를 사용할
수 있게 해주는 응용프로그램
파일, 디렉토리, 계층구조
루트 디렉토리(/)
절대경로
- 루트에서 특정 파일에 이르는 디렉토리와 파일명
현재 또는 작업 디렉토리
- 쉘이 현재 작업중에 위치한 디렉토리
- 상대경로: 현재 디렉토리에서 시작하여 나타낸 경로
특수 디렉토리
.
: 현재 디렉토리
..
: 부모(상위) 디렉토리
홈 디렉토리
디렉토리 관련 명령
pwd
: 현재 작업중인 디렉토리
cd
: 현재 디렉토리를 주어진 디렉토리로 변경
ex. cd /
: 루트 디렉토리로 현재 디렉토리를 변경
cd
, cd ~
: 홈 디렉토리로 현재 디렉토리를 변경
ls 명령
ls -a
: 감춰진 파일을 포함한 디렉토리 내의 모든 파일을 보여줌
ls -l
: 각 파일의 정보를 상세하게 보여줌
디렉토리 생성 및 삭제
mkdir
: 주어진 이름의 디렉토리 생성
mkdir -p
: 부모 디렉토리를 포함하여 다양한 디렉토리 생성
rmdir
: 주어진 이름의 디렉토리 삭제
파일 명령
Linux 파일
- 파일명은 대소문자 구분
- 모든 것은 파일로 간주하여 처리 가능
- 디렉토리도 파일의 한 종류
- 하드웨어 장치도 파일처럼 다룰 수 있음
파일 관리 명령
file
: 파일의 종류를 알려줌
touch
: 파일의 시간 속성 변경 및 존재하지 않는 파일에 대해서는 비어있는 파일 생성
- touch -t
: 파일의 시간 속성 변경
ex. touch -t 202001010301 file1
rm
: 파일 삭제
rm -i
: 대화형으로 사용자에게 묻고 파일 삭제 수행
rm -rf
: -r은 하위 디렉토리도 삭제. -f는 디렉토리 내에 파일이 존재하더라도 삭제.
cp
: 파일 복사
cp -r
: 재귀적으로 하위 디렉토리 및 그 안의 파일들도 복사
cp -i
: 대화형으로 복사 실행
mv
: 파일 이동, 파일 이름 바꾸기
rename
: 정규식을 사용하여 파일 이름 변경 가능
파일 내용 보기 명령
head
: 텍스트 파일의 앞 일부 라인 보여줌
tail
: 텍스트 파일의 끝 일부 라인 보여줌
cat
: 파일의 전체 내용을 표준출력에 출력함
more
, less
: 파일의 내용을 화면 크기 단위로 보여줌
Linux 파일 시스템 계층구조
Linux 파일 시스템
- Linux는 '/'로 표시되는 루트 디렉토리 (root를 최상위로 하는 트리 형의 계층적 구조를 가지는 파일시스템을 사용)
- 디렉토리 자체도 파일의 한 종류
- 리눅스는 시스템의 '모든 것'이 '파일 형태'로 접근 가능
바이너리 디렉토리들
실행 가능한 바이너리(기계어 명령들 ex. cat, mv) 파일들을 유지하는 디렉토리들
/bin
/sbin
- 시스템 설정에 사용하는 바이너리 파일들을 주로 포함
- 프로그램 실행을 위해선 root 권한이 필요한 경우多
/lib
- 바이너리 파일들이 사용하는 라이브러리 파일들이 존재
/opt
- 선택적인 (optional) 소프트웨어들이 주로 설치되는 곳
시스템 설정 관련 디렉토리들
/boot
/etc
- 시스템 설정관련 파일들 포함
- etc/skel/
데이터 디렉토리들
/home
- 각 사용자의 홈디렉토리가 /home 의 서브디렉토리로 생성됨
/root
/srv
- cvs, rsync, ftp, www 관련 데이터 디렉토리
/mnt
- 임시로 사용되는 파일시스템의 마운트(물리적인 장치를 특정 위치에 연결시켜 주는것) 위치
/tmp
- 임시로 사용하는 파일들을 저장하기 위한 디렉토리
- 시스템이 재시동하면 자동 삭제
메모리상에 만 존재하는 디렉토리들
저장장치에 기록되지 않고 시스템 동작시에만 존재하는 디렉토리들
/dev
- 커널에 의해 인식된 하드웨어들을 파일처럼 보여주는 디렉토리
- 물리적인 하드웨어 장치의 유형별로 파일 이름 부여
- /dev/tty 또는 /dev/pts: GUI 상의 터미널 또는 콘솔에게 부여되는 파일들
- /dev/null: 이 파일에 추가되는 모든 데이터는 곧바로 사라짐
/proc
- 동작중인 CPU 및 프로세스 관련 정보 보여줌
- 파일들의 크기는 0이나 cat 명령을 수행하면 관련된 정보를 보여줌
ex. cat /proc/cpuinfo
/sys
- 동작중인 리눅스 Kernel관련 정보를 파일 형태로 제공하는 디렉토리
/Usr 디렉토리
- usr은 Unix System Resources를 의미
- 리눅스의 공유 데이터 파일들을 주로 포함
/usr/bin
리눅스 명령에 해당하는 프로그램들
/usr/include/
C 프로그램을 위한 헤더 (header) 파일들
/usr/lib/
라이브러리 파일들
/usr/local/
전통적으로 Linux(또는 Unix) 운영체제의 일부가 아닌 자체적으로 개발한 프로그램들을 설치하던 디렉토리
/usr/share/
특정 하드웨어와 관계없는 읽기 전용의 파일들이 위치
/usr/src/
커널 소스 파일들이 위치함
/var 디렉토리
- 다양한 크기의 log, cache, spool 데이터 파일들이 위치하는 곳
- 프로그램별로 서브디렉토리를 가지는 경우가 흔하다
/var/log/
- 프로그램 동작시 로그 메시지들을 저장하는 곳
- Debian (Ubuntu 포함 계열은 /var/log/syslog 파일에 시스템 로그가 저장
/var/spool/
프린터 또는 Email 과 같이 비동기 작업을 위해 데이터 파일을 임시 저장하는 디렉토리
/var/lib/
응용프로그램별로 자신의 상태 정보를 기록하는 용도로 사용하는 디렉토리
/var/lock/
파일에 대한 동시접근을 제어하기 위한 잠금 파일들이 위치하는 디렉토리