오늘은 명령어 위주로 배우다 끝낫네,,,
2학년 1학기에 운영체제를 배웠어서 어느정도 알고있는 내용이어서 복습이라 생각하고 가볍게 들었다ㅎ
가볍게 듣다 다 까먹었다는걸 바로 깨달았지만,,,
경로(path) - 원하는 디렉토리로 이동하거나 명령을 적용하는 디렉토리 위치를 결정하는 방법
경로 지정방법
절대경로 지정
항상 /루트(root) 로 부터 경로를 지정하는 방법
시작이 / 로 시작!
같은 디렉토리에 대한 경로가 항상 동일한 경로 지정
상대경로 지정
현재 디렉토리(위치)를 기준으로 경로 지정하는 방법
현재 디렉토리의 하위 디렉토리에 대한 경로 지정시 유리
경로 지정시 현재 위치를 기준으로 경로 지정 시작
상대경로 지정을 위한 특수 문자
. -> 현재 디렉토리
.. -> 위에 디렉토리
~ -> 로그인 사용자 홈디렉토리
~사용자 -> 특정 사용자 홈 디렉토리
얼마나 권한을 줄지 결정하는거!
사용자
Linux 사용자는 기본적으로 ID를 이용하여 식별
Linux kernel은 사용자 식별을 이름이 아닌 번호로!
사용자 식별 번호를 UID(user id)라고 함
UID는 커널에 의해서 임의로 부여된다. 정수형태로부여대고 0부터 시작
did 0번은 root번호!
UID확인 명령 -> id <사용자명> -> 지정 사용자 정보 출력 /. id - 현재 사용자 정보 출력
현재 사용자 ID 확인 명령 -> whoami
그룹
gid가 그룹 id임,
Liux 사용자는 여러 그룹에 소속될수있다
리눅스 사용자는 한개 이상의 그릅
본그룹과 구서구스=우
그룹이 있다면 그 룹에는 최소 한명 이상의 사람이 속해있다
gid 0은 루트 그룹
권한
파일에 대한 읽기 / 쓰기 / 실행 에 권한을 결정해야한다
읽기 권한 - 파일 내용 읽기 권한, 권한 부여 r,
쓰기 권한 - 파일 내용 쓰기 권한 w
실행 권한 - 파일 실행 권한 x , 실행권한이 없으면 바이너리 파일도 실행 못함
권한은 파일소유자((파일 생성한 사용자) 소유자 그룹 기타사용자에 대한 읽기쓰기 실행에 대한 권한 부여
파일 소유자: r w x
파일 소유자 그룹: r w x
기타 사용자: r w x
-권한에 대한 우선순위는 없다-
명령 형식
명령 [옵션][인수]
명령 - shell 내장 명령 및 외부 명령
옵션 (option) - 생략 가능
명령에 대한 부가 기능 추가
-옵션: 약자 형식의 옵션, 여러 옵션을 중첩해서 사용
—옵션: GNU옵션, 옵션 full name 사용, 옵션 여러 옵션 중첩이 불가능
ex) file —help
인수(argument) - 생략 가능
명령 수행에 필요한 추가 값
history - 쉘 명령 history 목록 출력 명령
file - 파일 형식 확인 명령
sudo - 관리자 권한 일시 획득 후 명령
su - -> 사용자 전환(switch user)
su - : 루트 유저, su - <사용자> : 일반유저
pwd -> 현재 위치에 대한 경로
whoami -> 사용자
man: 명령에 대한 메뉴얼 표시하는 명령
man<명령> -> man pwd 하면 리눅스 내에 있는 pwd관련 매뉴얼을 보여준다
man [매뉴얼 페이지]<명령> -> man 1 pwd
man 명령 종료: q키
페이지 종류
1 - 일반 명령어
2 - 시스템 호출
3 - c 표준 라이브러리 함수(libc)
4 - 특수 파일
5 - 파일 형식과 Conventions
6- 게임과 화면 보호기
7 - 기타
8 - 시스템 관리 명령과 데몬
dir 명령어: ls 명령과 같은 결과 출력, 색상 지정없이 출력하는거
vdir 명령어: ls -l 과 같은 결과 출력 색상지정없이 출력하는거
cd <디렉토리 경로> : 일로 이동
cd - : 바로 전경로로 이동 ->두개의 디렉토리를 번갈아갈때 이걸 쓰면 쉬움!
cd: 무조건 사용자 홈 디렉토리로 이동!
cd ~ 사용자명: 사용자 홈 디렉토리로 이동
mkdir 명령어 - 디렉토리 생성 명령어
새로 생성된 디렉토리에는 항상 . , .. 파일이 기본생성! -> 리눅스 파일 시스템 계층관리를 위해서 기본 생성
-p: 다중경로상의 중간 경로 디렉토리 생성 -> mkdir third/tmp가 가능!
rmdir명령어: 디렉토리 삭제 명령 -> rmdir second/tmp 해서 tmp부터 삭제해야한다!
기본으로는 한개씩만 삭제 가능!,
디렉토리가 비어있는 경우에만 삭제가능!! .(dot) ..(dot dot)만 있는거!
cp 명령어 : 파일 복사 명령 cp <원본파일><복사 파일명 or디렉토리명> / cp <원본파일명> … <복사파일 혹 디렉토리명>
원본 파일 여러개 복사도 가능
만약 한번 더 똑같이 복사 했어도 별 다른거 없음 이미 한거는 무시
-i: 파일복사시 같은 이름의 파일명에 대해서는 확인 메세지 출력 -> shell명령 공통옵션임
-r: 디렉토리 복사시 하위 디렉토리 포함 복사! -> shell명령 공통옵션임
mv 명령어 : 파일 이동/이름 변경 명령
mv<원본 파일명 > <새로운 파일명> - 이름
mv<이동파일명> <디렉토리명> - 이동
-f : 무조건 파일이 이동, 같은 이름의 파일이 있으면 덮어쓴다.
삭제(remove) 명령어
rm <삭제 파일명> -확인 없이 삭제, 삭제 되면 불가능
-i: 삭제할거냐 물어보기
-r:디렉토리 삭제
-f: 확인없이 삭제
-rf: 확인없이 그 디렉토리 전부 삭제 , 안에 내용 관심없음
whereis 명령어 : 명령어 위치 확인 - 명령어와 관련된 파일 위치도 표시 (연관된 파일들 다 나옴)
which 명령어 : 명령어 위치 확인
ls (list) [옵션] [파일명 또는 디렉토리] : 디렉토리 목록 확인
ls : 현재 디렉토리의 파일 목록 출력
—color: 파일 유형에 따라 색상을 다르게 해서 출력, 기본적으로 적용되어있는 옵션
-l (long): 파일 상세 정보 출력 -=> 중요!!
linux파일 구조
(drawer-xr-x 2 worker worker 4096 8월 5 15:52 Desktop(desktop만 블록노드))
(cry-r———- 2 root root 10, 237 8월9 14:13 loop4)
rwx-나오고 나오는 숫자는 하드링크 파일수를 의미 -> 하드링크는 파일 복사본
만약 root root라는 파일이 있으면 우리는 일반 사용자니까 기타 사용자로 분류!!
디랙토리 파일에 대한 실행 권한 -> 디렉토리로 이동 가능하다!!!
inode block + data block
indoeblock - 파일 정보 저장
inode번호 -> 파일 식별자! 이게 중요
(ls -il 을 해야만 inode의 번호를 볼수있다!!)
파일 유형 - d, - (일반 파일), l(심볼릭링크 파일),
c(캐릭터디바이스파일) ,
b(block디바이스 파일, 디바이스 파일은 파일 크기대신에 major minior 펴시)
,p(pipe파일)
파일 권한 - 소유자 그룹 기타
파일 소유자
파일 소유자그룹
파일 크기
파일 생성/ 수정 날짜 시간
data block -> 실제 데이터 저장 기본 4kb로 생성(4096)
데이터 추가로 인해 4kb 넘으면 새로운 data block생성 -> 새로 생성되도 inode번호가 추가로 주지는않음!
파일명은 디렉토리 파일에 저장(파일이 자기 이름을 안갖고 있는거 뿐)
-a: hidden파일을 포함한 모든 파일 출력 -> 주로 환경설정 파일들을 이렇게 만듦,굳이 보여줄 필요 없어서
.(dot)으로 시작하는 파일은 hidden파일들!
.(dot) - 자기자신
..(dot dot) - 부모 디렉터리 파일
-R :하위 디렉토리 모두 출력
-F: 파일 형식에 따라 파일명 끝에 문자 표시
/ - 디렉토리 파일
@ - 심볼릭 링크 파일
* 실행 가능 파일
rm, cp, mkdir, rmdir, mv, cd, ls -al 등 배웠으니까 한번씩 상황 가정해서 적어보면서 잊지말고 익숙해지자!
오늘 밥먹으면서 인공지능 기초 2강 듣고 파이썬 백준 풀자! + 구글까지 오늘 배운데까지 정리하기!