리눅스 기초 2

ganadara·2022년 11월 1일
2

복습

목록 보기
2/49

새싹 인공지능 응용sw 개발자 양성 교육 프로그램 김기희 강사님 수업 정리 글입니다.

목차
1. 파일 및 디렉토리 링크
2. 파일검색 관련명령
3. 파일의 내용출력
4. 필터
5. 사용자관리
6. 권한관리
7. 파티션
8. yum
9. vi편집기

1. 파일 및 디렉토리 링크

유닉스나 리눅스 시스템에서 경로의 이름이 매우 길고 복잡하여 간단하게 이름을 붙여서 사용함으로써 작업의 효율성을 높일 수 있는데, 이렇게 기존 파일에 새로운 이름을 붙이는 것을 링크(link)라고 한다.

  • 링크종류
  1. 하드링크: 동일한 아이노드에 여러개의 이름을 부여하는 것
  2. 심볼릭링크: 링크를 아이노드가 아닌 파일이름에 붙친다. ex)윈도우즈에 바로가기

하드 링크 파일을 찾아갔을 때 그 위치에 데이터가 있으면 파일이고 데이터가 아닌 파일이 아닌 집합체면 디렉토리라고 구분한다. 파일과 디렉토리(directory)는 모두 아이노드(inode)를 가지고 있다.
디렉토리는 하드링크를 생성할 수 없다. 왜? 아이노드를 필요로 하는 것은 그 위치의 데이터를 참조하기 위해서이다. 그래서 하드링크는 디렉토리를 생성할 수 없다. 만약 경로를 바꿔야 한다면 파일및 디렉토리를 바꿔야 한다.

하나의 디스크가 있으면 파티션을 나눠야 한다. 디스크는 물리적 장치이다. 물리적 공간을 만든다. = 파티션, 논리적이다. 파티션마다 파일시스템을 생성하게 된다. 첫 번째 파일 두번재 파일의 파일시스템이 다를 수 있다. 서로 다른 기법을 사용할 수 있다.

  • 어제 만들어본 2개 파일 파티션
  1. root (root파티션,root,user,home) → 마운트 포인트 = 파티션, 참조할 방법은 이 파티션을 root에 연결을 한다. 파티션 안에 데이터가 보인다 = 마운트
  2. 가상메모리 파티션 (swap 파티션) → SWAP은 마운트 포인트가 없다. → 자동으로 가상메모리로 지정된다.

최상위 root는 파일시스템(filesystem)이라고 해도 된다. 파티션을 처음 설치할 때 root를 지정할 때 root밑에 모든 데이터를 root에 저장하겠다. root를 파티션을 연결하는 것을 마운트라고 한다. 해제할 때는 언마운트

명령어

  • 환경변수 echo
  • 파일이름 보기 cat
  • 경로확인 (p)wd

123456 이라는 data에 file1과 file2이라는 이름을 붙인 것이다. (아이노드)
파일을 삭제하는 것은 데이터를 삭제하는 것이 아닌 아이노드를 삭제하겠다.
경로를 바꾼다 = 파일명을 바꾼다.

2. 파일검색 관련명령

whereis 가 가장많이 쓰음, 메뉴얼까지보여준다
which
locate
find - 제일 중요, 파일검색

find

find [명령옵션] 검색경로 검색옵션
파일검색시 사용되는 명령. 순서를 지켜야 한다.

find 명령에서 사용가능한 옵션

gid n : 파일의 소유그룹의 번호가 n번인 파일을 검색한다.
uid n : 파일의 소유자 번호가 n번인 파일을 검색한다.
ipath pattern : 경로상에서 찾음(파일의 경로가 패턴과 일치하는 파일 검색)
name pattern : 파일명에서 찾음(파일명이 패턴과 일치하는 파일 검색)
inum n : 아이노드로 찾음(파일의 inode값이 일치하는 파일 검색)
nosuer : 소유그룹이 없는 파일을 검색한다.
perm = permission

3. 파일의 내용출력

파일의 내용을 출력하는 명령으로는 cat이 있다.

cat [옵션] 파일경로
tac는 역순으로 보여준다.

head [옵션] 파일경로
tail [옵션] 파일경로

시스템은 콘솔을 통해 출력하지만 이게 표준출력인지 에러출력인지 구분할 줄 알아야 한다.
사용자입장에서 정상메세지 에러메세지를 관리하기 위해서 redirection(방향바꾸기)을 이용할 수 밖에 없다.
출력할 때 정상출력 에러출력을 구분할 줄 알야 파일 log로 남길 수 있다. log 에러가 출력된 곳을 알려준다.

  • 입력 : 명령을 입력해야한다.
  • 출력 : 머신의 작업의 결과를 출력

4. 필터

less 파일의 내용을 분할해서 보여줌

필터표시 |

grep

파일의 내용을 검색할 수 있는 명령

#gerp [옵션] 패턴 파일

li 패턴이 포함되어있는 파일명만 출력한다.

[root@localhost ~]# grep -ni key$ /etc/ssh/sshd_config = key로 끝나는 것들을 검색해라

정규편식(regex)

리다이렉션을 통해 오류메세지와 정상메세지를 따로 처리하고 그 결과를 grep을 통해서 내가 원하는 결과만을 추출한다.

egrep

grep 보다 좀 더 많은 옵션 제공

#egrep[옵션] 패턴 파일

[abcd] : a or b or c or d 중 하나
[^a-z] : []안에 포함된 문자를 제외한 모둔 문자
(com;net;org) = comet 또는 conet 둘 중 하나
((com);(net);(org)) = com or net or org

5. 사용자관리

리눅스는 다중 사용자 시스템. 다중 사용자 시스템은 사용하기 전에 인증을 받아야 한다 = 로그인
새로운 사용자 추가도 가능해야 한다.

사용자계정의 추가

useradd[옵션]추가할계정

-d path : 사용자 계정의 홈 디렉토리를 지정한다.
-m : 홈 디렉토리를 생성하겠다
-M : 홈 디렉터리 말고 다른 계정을 만들겠다.
-s shell_path : 계정이 사용할 쉘을 지정한다. 다양한 쉘이 있을 수 있고 문법이 다를 수 있다. 쉘을 경로를 줘야 한다.
sudo = root의 권한을 사용, wheel이라는 그룹에 포함된 유저만이 사용가능한 명령

hash

암호화를 하게되면 암호화된 데이터가 나온다. 다시 복호가 가능하다. 하지만 보안에 취약해서 단방향 암호화하면 해시코드가 나온다. 해시함수에 의해 해시코드가 만들어짐.
예를 들어 1234암호를 암호화하면 암호화데이터와 해시코드가 나온다. 나온 해시코드와 2345의 해시코드와 비교했을 때 같은 사람이라면 로그인가능.
자바에서 내부에 데이터가 들어갈 때 어디로 저장될 지 정할 때 들어올 객체의 해시코드를 가지고 어디에 저장될 지 HashMap. HashSet 을 가지고 판별한다.

group

그룹추가
groupadd

그룹삭제
groupdel

; 세미콜론

ex) ls; ls /etc/ssh

ls 실행하고 ls /etc/ssh 실행하라

6. 권한관리

서버용 운영체제는 클라이언트용 운영체제와는 달리 디렉토리 및 파일에 사용자 별로 다른 사용권한을 부여할 수 있는데 이것을 permission이라 한다.

다중서비스시스템에는 파일의 소유권이 있다. 파일및 디렉토리에 권한을 설정할 줄 알아야한다.
1. 소유권 설정 2. 권한 설정
머리 아프면 ROOT를 사용하면 된다.

chmod

chmod -R옵션 : 대상이 디렉토리인 경우 디렉토리에 포함된 모든 하위 디렉토리 및 파일에 동일하게 적용된다.

ex)
[root@localhost ~]# chmod a+x nafile
모두에게 실행할 수 있는 권한을 주라

[root@localhost ~]# chmod u=rwx,g=rx,o= nafile
[root@localhost ~]# ls -l nafile
-rwxr-x---. 1 root root 0 11월 1 15:08 nafile

chmod u=rwx,g=rx,o= nafile
!ls = 마지막 실행했던 ls명령을 다시 실행해

  • rwx : read write execute
  1. 소유자의 권한
  2. 소유그룹의 권한
  3. 소유자도 아니도 소유그룹도 속하지도 않은 기타 사용자의 권한

사용자는 반드시 그룹에 속하게 되어있다. 계정을 만들면 소유자 이름과 동일한 그룹을 만들고 그 계정이 그 그룹에 반드시 속하게 되어 있다 = 소유그룹
소유자와 소유그룹에 속하지 않은 사용자를 기타로 구분한다.

  • 권한은 8진수 숫자나, 정해진 특정 특정 문자로 나타낼 수 있다.

7: rwx
6: rw
5: r-x
4: r--
0: ---

7. 파티션

디스크 파티션(Disk partition) 작업은 하드 디스크 드라이브의 기억 공간을 "파티션"이라 알려진 별도의 데이터 영역으로 분할하는 것을 만들다.

파티션이 무엇인지만 알아두기
vi편집기 : 파일을 편집하기 위해서 사용

8. yum

yum은 RPM기반의 시스템을 위한 자동 업데이터 겸 패키지 설치/제거 도구이다.

YUM [옵션][명령][패키지]

9. vi 편집기

크게 3가지 모드가 있다. 이것만 알기

esc누르면 편집모드, insert 입력모드

  1. 입력모드: 입력모드의 전환하기 위해서 insert키를 누른다. esc누르면 편집모드로 돌아간다.
  2. 편집모드: 검색, 패턴을 찾는다, 찾은 패턴을 다른 문자로 치환 등등
  3. 명령모드: 명령모드 전환은 : 이다. 하단에 프롬포트가 생기고 프롬포트를 통해 명령을 입력하고 편집모드로 돌아올려면 esc누르면 된다. 명령 → 입력(불가)

yum이 어딘가에 있는 package 저장소를 모아둔 곳인 repository가 있고 repository의 목록을 보여주는 것이다. 즉, package가 아닌 repository 목록을 보여준다.

명령어

yumlist = 패키지목록만 보여줌
yumlistupdate= 업데이트 가능한 패키지 목록을 보여줌
yum list installed = 설치되어 있는 것들만 보여준다.
openssh : 공용라이브러리
yum install 패키지명
yum remove 패키지명 = 제거할 때
yum localinstall 패키지명 = 자료를 인터넷에서 다운받을 때 소스, rpm(package)파일을 받으면 rpm명령을 통해서 받을 수도 있지만 yum명령을 통해 받을 수도 있다.
yum은 네트워크가 없으면 못씀 , 네트워크가 안 되면 rpm을 써야 한다.

profile
DL 공부중

0개의 댓글