cat -n (행번호붙이기)
tail -3 마지막 3행 출력
행단위편집기
sed: 스트림 편집기, 파일의 내용을 일괄적으로 바꿔서 출력
화면단위 편집기
vi: 리눅스에서 일잔적으로 사용하는 화면편집기
쉘기능: 명령어 해석기 기능, 프로그래밍 기능, 사용자 환경 설정 기능
sh: 본쉘 $
csh: 빌조이#
ksh: 데이비드 콘$
bash: 브레인 폭스$
echo 화면 출력
변수의 값을 출력할때 변수 이름 앞에 $붙임
echo $SHELL
셸변수저장
SOME=test
export SOME=test
셸변수정의하고 환경변수로 변경
file = 파일의 종류 알려줌
chmod 파일이나 디렉터리의 접근 권한을 변경 (-R 하위 디렉터리까지 변경 가능)
SetUID: 맨 앞자리가 4 (파일이 사용자의 권한이 아니라 소유자의 권한으로 실행)
SetGID: 맨 앞자리가 2
ps -ef 사용전체 프로세스의 더 자세한 정보 출력 aux나 ef랑 비슷함
ps -ax 시스템에서 실행 중인 모든 프로세스 출력
UID: 프로세스를 실행한 사용자
PID 프로세스번호
PPID 부모 프로세스 번호
C CPU 사용량
STIME 프로세스 시작시간 날짜
TTY 프로세스가 실행된 터미널의 종류와 번호
TIME 프로세스 실행시간
CMD 실행되고 있는 프로그램명
pgrep 지정한패턴과 일치하는 프로세스 정보 출력
시그널
SIGHUP 1번 터미널과의 연결끊김
SIGINT 2번 인터럽트 CTRL + C
SIGQUIT 3번 CTRL + \
SIGKILL 9번 강제종료
SIGTERM 15번 Kill 명령
jobs 백그라운드 작업 모두 보여줌
atq 현재 사용자의 등록된 작업 목록을 보여줌. 슈퍼유저이루경우 모든 사용자의 작업 목록을 보여줌
atrm 지정된 작업번호 작업 삭제
crontab 정해진시간에 반복실행 (사용자의 crontab 파일 관리)
crontab -e 파일 생성하고 편집
crontab -l 파일 확인
crontab -r 파일 삭제
특수용도의 가상파일시스템
tmpfs temporary file system으로 메모리에.임시파일저장하고 재부팅시 기존내용이 없어짐
proc 커널의 현재 상태를 나타냄
마운트 파일시스템을 디렉터리 계층 구조의 특정 디렉터리와 연결하는 것
마운트 포인트 디렉터리 계층 구조에서 파일 시스템이 연결되는 디렉터리를 마룾트 포인트
*리눅스에서 시스템이 부팅될때 자동으로 파일 시스템이 마운트되게하려먄 /etc/fstab파일에 설정
* /etc/fstab 파일의 기능 파일 시스템의 마운트 설정 정보 저장
/etc/fstab 파일의 구조
장치명: 파일 시스템 장치명 ex) /dev/hda1 /dev/sda1 같이 특정디스크를 지정
mount -t 파일 시스템종류 : 파일 시스템 종류 지정
디스크 파티션 나누기: 파티션이랑 하나의 디스크를 독립된 영역으로 구분
디스크 전체를 하나의 파티션으로도, 여러 개의 파티션으로 나누어 사용할 수도 있음
fdisk 디스크의.파티션 생성,삭제, 보기 등 파티션 관리
fdisk -l 사용 가능한 파티션 종류 출력
파일시스템 생성: mkfs는 파티션에서 파일과 디렉터리를 관리하기 위한 구조를 만드든 것
mke2fs(리눅스개정판 확장시스템 파일 (ext2,3,4)를 만듬)
LVM 여러 디스크를 하나처럼 사용하기(디스크용량이 부족할때 하나로 합티기)
LVM은 독립적으로 구성된 디스크 파티션을 하나로 연결하여 하나의 파티션으로 사용할 수 있도록 해줌
구분 | 기능 | 명령 |
PV | PV생성 | pvcreate 파티션이름 |
PV상태확인 | pvscan | |
VG | VG 생성 | vgcreate VG명 파티션(PV명) 파티션2(PV2명) |
VG 활성화 (activate) | vgchange -a y VG명 | |
VG 비활성화 | vgchange -a n VG명 | |
VG 삭제 | vgremove VG명 | |
VG 정보 확인 | vgdisplay -v VG명 | |
VG에 PV 추가 (extend) | vgextend VG명 PV명 | |
VG에서 PV삭제 (reduce) | vgreduce VG명 PV명 | |
VG명 변경 | vgrename 기존 VG명 새 VG명 | |
LV | LV생성 | lvcreate -l PE 수 VG명 -n LV명 |
LV 삭제 | lvremove LV명 | |
LV 상태 확인 | lvscan | |
LV 용량확대 | lvextent -l + PE 수 LV명 | |
LV 용량 축소 | lvextent -l -PE 수 LV명 |
LVM 생성 과정 | |
기존 파일 시스템의 종류 변경: 83 -> 8e | fdisk |
PV 생성 | pvcreate |
VG 생성 | vgcreate |
VG 활성화 | vgchange -a y |
LV 생성 | lvcreate |
LV에 파일 시스템 생성 | mkfs, mke2fs |
LV 마운트 | mount |
df : 디스크의 남은 공간에 대한 정보 출력
df -t (파일 시스템 종류: 지정한 파일 시스템 종류에 해당하는 디스크의 사용량을 출력한다.
df -h (디스크 사용량을 알기 쉬운 단위 (GB, MB, KB 등)로 출력한다.
du 디스크 사용량 확인
e2fsck (리눅스의 확장 파일 시스템을 점검)
백업 슈퍼블록을 이용해 파일 시스템 복구
-파일 시스템의 기본 슈퍼블록에 문제가 있으면 해당 파일 시스템을 사용할 수 없음
슈퍼블록 중 하나를 사용하여 파일 시스템을 복구
백업 슈퍼블록의 위치 파악하기: dumpeffs (파일시스템의 정보를 출력)
Ch 8
우분투에서 systemd 서비스는 기존의 init 스크립트를 대체한 것으로 다양한 서비스를 동작
init 대신에 systemd로 대체
systemd의 장점
1) 소켓 기반으로 동작해 inetd와 호환성을 유지
2) 셸과 독립적으로 부팅이 가능
3) 마운트 제어 가능
4) fsck 제어 가능
5) 시스템 상태에 대한 스냅숏을 유지 등
****
systmectl (systemd를 제어함)
systemctl -t service (특정 종류의 유닛맛 출력)
systemd 데몬 : 대부분의 프로세스의 조상 프로세스 (pstree 명령으로 확인)
주요 데몬
crond : 주기적으로 실행하도록 예약 명령 실행
dhcpd: 동적으로 IP 주소를 부여하는 서비스 제공
httpd: 웹 서비스 제공
lpd: 프런트 서비스 제공
nfs: 네트워크 파일 시스템 서비스 제공
routed: 자동 IP 라우터 테이블 서비스를 제공
sshd: 원격 보안 접속 서비스 제공
ftpd: 파일 송수신 서비스 제공
ntpd: 시간 동기화 서비스 제공
deb: 데비안 우분투 계열에서 사용하는 패키지
RPM(Redhat Package Manager) 레드햇 계열, 리눅스에서 주로 사용
우분투 패키지 특성
1) 바이너리 파일로 구성되어 컴파일 필요 없음
2) 패키지 파일이 관련 디렉터리에 바로 설치됨
3) 패키지를 삭제할 때 관련된 파일을 일괄적으로 삭제할 수 있음
4) 기존 설치 패키지 삭제 안하고 바로 업그레이드 가능
APT명령으로 패키지 관리가 가능
apt -get (패키지 관리)
dpkg (데비안 패키지 관리 명령어)
파일 아카이브: 파일을 묶어서 하나로 만든 것
tar(tape archive)명령은 원래 여러 파일이나 디렉터리를 묶어서 이동식 저장 장치에 보관하기 위해 사용하는 명령, 다른 시스템과 파일 주고받거나, 백업을 하기 위해 여러 파일이나 디렉터리를 하나의 아카이브 파일로 생성하거나 기존 아카이브 파일을 추출하기 위해 사용
tar 파일과 디렉터리를 묶어 하나의 아카이브 파일을 생성
tar cvf (아카이브 생성) / tar tvf(아카이브 내용 확인하기) / tar xvf (아카이브 풀기) / uvf(아카이브 업데이트) / rvf(아카이브에 파일 추가하기)
gzip - 파일 압축
gzip -d (파일 압축 해제)
gzip -v (파일 압축 정보 화면에 출력)
zcat(압축 파일 내용 보기)
gunzip(gzip으로 압축된 파일의 압축을 푼다)
bzip2(파일 압축) / bzcat(압축파일 내용 보기) / bunzip2(bunzip2로 압축된 파일 압축 풀기)
컴파일러 설치: C 언어로 작성한 프로그램 컴파일하기 위해서는 C 컴파일러가 필요, 리눅스에서 사용하는 C컴파일러는 GNC C 컴파일러로 패키지 이름이 gcc (설치해야함)
make makefile~~~~~
---
ch10
리눅스는 다중 사용자 시스템이므로 사용자를 구별하고 사용자에게 적절한 자원을 할당해주는 방법 필요
사용자계정은 사용자가 시스템에 접근할 수 있는 유일한 방법
/etc/passwd -> 사용자 계정 정보가 저장된 기본 파일
한행에 사용자 한 명에 대한 정보 기록, 콜롬(:)으로 구분되는 일곱 개의 항목으로 구성
로그인 ID : x : UID : GID : 설명 : 홈 디렉터리 : 로그인 셸
2) x = 사용자 암호를 저장하던 항목(/etc/shadow 파일에 별도로 보관)
7) 로그인 셸: 사용자의 로그인 셸을 지정, 우분투에서는 배시 셸(/bin/bash)을 기본 셸로 사용
/etc/shadow파일
1) 사용자 암호에 관한 정보를 별도로 관리하는 파