LINUX - DAY 1

BUMSOO·2024년 7월 23일







일반 - 고급 - 클립보드, 드래그앤 드롭 둘다 양방향

저장소 - 컨트롤러 :IDE - 다운로드 받은CD 설정

네트워크 어댑터1은 무조건 NAT

어댑터 2 - 호스트 전용 어댑터

위치 - 서울 , SOFTWARE SELECTION - server with GUI

INSTALLATION DESTINATION - 50G 하드디스크

이더넷 1 - ON 설정

configure - general - Automatically 설정

이더넷 2 - ON 설정

configure - general - Automatically 설정

IPv4 Settings - 고정주소 설정

Host name 설정

루트 AND 유저 계정 생성

루트 계정 비밀번호 설정

유저 계정 생성 및 비밀번호 설정


putty 를 통해 SSH로 서버 접속

현재 ip 주소 확인 명령어
ifconfig


가상화 플랫폼

가상화 플랫폼을 이용하면 윈도우 사용자가 하나의 pc내에서 시뮬레이션 또는 가상화된 다른 시스템을 실행할 수 있다.

  • VM WARE Workstation(유료)
  • Oracle VirtualBox(무료)
  • MS Hyper-V

호스트(HOST) OS(운영체제), 게스트(GUEST) OS

  • 호스트(HOST) OS : Oracle VirtualBox가 설치된 운영체제 (현재 윈도우)
  • 게스트(GUEST) OS : 가상머신 위에 설치되는 운영체제 (리눅스)

유닉스(UNIX)

  • 상용 소프트웨어
  • IBM AIX, HP-UX, Solaris, Dec Tru64 UNIX

Linux

  • 오픈소스 운영체제
  • 1991 Linus Toravlds(리누즈 토발즈)는 어셈블러로 리눅스 커널(kernel)를 만들었다.
  • UNIX -> MINIX -> Linux
  • kernel은 엔진이다(자동차엔진)
  • 리눅스 커널을 가져다가 더 좋게 개선해서 다시 인터넷에 올리는 작업을 반복하다 보니 리눅스가 유닉스보다 더 가볍고 안정적이게 되었다.
  • linux kernel + shell + GNU 유틸리니 + 개발도구 + X window 다양한 프로그램들을 묶어서 패키징 한 후 배포판이 만들어져 있다.
  • 상용(기술지원 비용 지불)
    • Red Hat Enterprise Linux(RHEL), SUSE LINUX, Oracle Linux
  • 비상용, 무료
    • Debian, Ubuntu, Fedora, CentOS, Oracle Linux

명령어

다른 계정으로 접속

# su - 유저명 : 해당 유저계정으로 이동
[root@linux-server ~]# su - itwill
# su - : root 계정으로 이동


\# - root 유저
$ - 일반 유저

이전 계정으로 되돌아 가는 방법

  • eixt : 이전 계정으로 돌아가기

리눅스 시스템 종료

  • root 사용자가 리눅스 시스템을 종료할 수 있다.

#init 0 : 런레벨
#shutdown -h now : 즉시 종료
#shutdown -h +5 : 5분 후에 종료
#shutdown -P +10 : 10분 후 종료(P : Poweroff)
#shutdown -r +22:00 : 오후 10시에 재부팅(r: reboot)
#shutdown -c : 예약된 셧다운 옵션 취소(c : cancel)
#shutdown -k +15 : 현재 접속한 사용자에게 15분 후 종료된다는 메시지를 보내지만 실제로는 종료되지 않습니다.

#halt
#poweroff

리눅스 시스템 재부팅

  • root 사용자가 리눅스 시스템을 재부팅할 수 있다.

#reboot
#init 6
#shutdown -r now

ls(list)

  • 디렉터리 안에 있는 파일이나 서브 디렉터리등 디렉터리의 내용을 보는 명령어

# ls / : 최상위 루트 디렉터리 확인
# ls /home : 특정한 디렉터리 확인
# ls -l : 현재 디렉토리의 목록을 자세히 나열한다.
# ls -a : 경로 안의 모든 파일을 나열한다.(숨김파일도 포함)
# ls -al : 경로안의 모든 파일을 자세히 나열한다.(숨긴파일 포함)
# ls -lr / : 이름을 기준으로 내림차순정렬
# ls -lS / : 파일의 크기순으로 내림차순 정렬
# ls -lSr / : 파일의 크기순으로 오름차순 정렬
# ls -lt / : 날짜 기준으로 내림차순 정렬
# ls -ltr / : 날짜 기준으로 오름차순 정렬


  1. 파일의 종류
    - : 일반파일
    d : 디렉터리
    ㅣ : 심볼릭 링크 파일(symbolic link file), 윈도우 바로가기와 비슷

  2. 파일 접근 권한 - 소유자, 그룹, 기타 사용자
    lrwxrwxrwx - 심볼링 링크 파일이면서 소유자 : rwx 권한 , 그룹 : rwx 권한, 기타 : rwx 권한
    r : 읽기 권한
    w : 쓰기 권한
    x : 실행 권한
    t : tmp 사용 권한

  3. 하드 링크의 개수
    drwxrwxrwt. 14 root root 4096 Jul 23 11:55 tmp
    14개의 하드링크 참조

  4. 파일 소유자

  5. 파일 속한 그룹

  6. 파일의 크기(바이트)

  7. 최종 갱신일

  8. 파일명(파일, 디렉터리, 심볼릭 링크)

pwd(print working directory)

  • 현재 디렉터리의 절대경로를 출력
    [itwill@linux-server ~]$ pwd
    /home/itwill -- 예시

cd(change directory)

  • 디렉터리 이동하는 명령어

절대경로(absolute path)

  • 루트 디렉터리에서 시작해서 목적지 디렉터리까지 경로를 의미한다

상대경로(relative path)

  • 현재 자신의 위치, 즉 현재 디렉터리에서 목적지를 향하는 경로를 의미한다.

# cd .. : 상위 디렉터리 이동, 상대경로
# cd - : 이전 디렉터리로 이동
# cd . : 현재 디렉터리로 이동
# cd / : 최상위 디렉터리로 이동
# cd home/ : 홈 디렉터리로 이동, 상대경로
# cd /home/itwill : 절대경로로 이동
# cd : 사용자 홈디렉터리로 이동
# cd ~ : 사용자 홈디렉터리로 이동
# cd $HOME : 사용자 홈디렉터리로 이동
# cd ./Documents/ : 현재 디렉터리의 Documents 디렉터리로 이동(상대경로)

mkdir

  • 디렉터리 생성하는 명령어

# mkdir dir1 : 현재 디렉터리 아래에 /dir1 이름의 디렉터리 생성
# mkdir -p dir3/dir4 : 현재 디렉터리 아래에 dir3 디렉터리 생성하면서 dir4 서브 디렉터리까지 생성(p는 Parents의 약자)

rmdir

  • 디렉터리를 삭제하는 명령어
  • 디렉터리 안에 내용이 없을 경우에만 삭제 가능하다.

# rmdir dir5 : 현재 디렉터리 아래에 있는 dir5를 삭제함

rm

  • 파일이나 디렉터리를 삭제하는 명령어

# rm -r dir3 : dir3 디렉터리 안에 모든 파일과 모든 디렉터리를 삭제
# rm -ri dir1 : dir1 디렉터리 안에 모든 파일, 디렉터리 삭제시 물어보면서 삭제할 때 사용
# rm -rf dir1 : dir1 디렉터리 안에 모든 파일, 디렉터리 삭제시 물어보지 않고 그냥 삭제
# rm timezone* : 이름이 timezone으로 시작하는 파일/디렉토리 전부 삭제

touch

  • 파일의 용량이 0인 파일을 생성하는 명령어
  • 기존 파일의 수정 날짜 정보를 최신 날짜로 변경할 때 사용하는 명령어

# touch a.txt : 용량 0인 txt 파일 생성
# touch 옛날파일 : 최신생성 날짜로 변경된다.

clear

  • 화면 내용을 지우는 명령어

# clear

cat

  • 파일안에 내용 보기(미리보기)

# cat v.txt : v파일 안에 내용 미리보기
# cat -b v.txt : 라인번호 출력 내용 미리보기(공백줄 무시)
# cat -n v.txt : 라인번호 출력 내용 미리보기(공백줄 표시)

nl

  • 파일안에 내용을 출력하면서 라인번호까지 출력하는 명령어
  • cat -b와 동일하다

# nl v.txt

less

  • 파일의 내용을 한 화면에 보여주는 명령어
  • 옵션
    • q: less 명령어를 종료하는 명령어
    • -N : 출력번호를 보여줌

# less /etc/passwd : 한화면에 파일 내용을 보여줌
# less -N /etc/passwd : 한화면에 파일 내용을 보여주면서 출력번호도 같이 보여줌

more

  • 파일의 내용을 한 화면에 보여주는 명령어

# more /etc/passwd : 한 화면에 etc 아래 passwd파일 미리보기로 보여줌

enter key : 한해 아래로 이동 명령어
b : 한행 위로 이동 명령어
q : more 명령어를 종료하는 명령어
= : 현재 위치의 행번호를 표시

  • 파일의 앞부분 출력, 기본값 10

# head /etc/passwd : passwd 파일의 앞 10줄만 보여줌
# head -2 /etc/passwd : passwd 파일의 앞 2줄만 보여줌

tail

  • 파일의 뒷부분 출력, 기본값 10

# tail /etc/passwd : passwd 파일의 뒤 10줄만 보여줌
# tail -2 /etc/passwd : passwd 파일의 뒤 2줄만 보여줌

man

  • 명령어에 메뉴얼 보기

# man ls : ls 명령어에 대한 메뉴얼 보기

timedatectl

  • 현재 date, timezone 확인

# timedatectl

# timedatectl list-timezones : os가 가지고 있는 timezone 리스트

# timedatectl set-timezone "대륙/도시" : 현재 timezone을 변경, 단 root계정 패스워드를 알아야 함

date

  • 현재 날짜 정보 출력

# date

cal

  • 현재 월의 날짜 정보를 달력 형태로 출력

# cal

# cal month year : 요청 년도의 요청 월 달력 확인

/# clar year : 요청 년도 전체 달력 확인

redirection

  • 화면에 출력되는 결과를 파일로 저장하는 명령어

# ls -al > output_ls : ls -al에 출력되는 리스트를 output_ls 디렉터리에 저장
# ls -al / >> output_ls : root directory에 있는 리스트를 output_ls에 추가한다.

> 파일이 없으면 생성한다. 만약 파일이 있다면 기존 데이터값에 덮어 쓴다.
>> 파일이 없으면 생성한다. 만약 파일이 있다면 기존 데이터에 append 하게 추가한다.

wc

  • 파일안의 단어의 갯수 또는 라인수를 출력하는 명령어

# wc output_ls
예시 ) 44 398 2140 output_ls

44는 1번, 398은 2번, 2140은 3번

1 : 라인수
2 : 단어 수
3 : 문자(글자) 수

라인수
# wc -l output_ls

단어수
# wc -w output_ls

글자수
# wc -c output_ls

grep

  • 파일안에 포함된 특정 단어나 구문을 검색하는 명령어
  • 검색시에 대소문자 구분 한다.

# grep 'Asia/Seoul' timezone_names :timezone_names 파일에서 Asia/Seoul가 포함된 단어를 검색한다.
# grep 'Asia' timezone_names > asia : timezone_names 파일에서 Asia가 포함된 단어를 redirection 한다.
-i : 대소문자 구분 없이 검색
# grep -i 'asia' timezone_names
# grep -i 'itwill' /etc/passwd : passwd 디렉터리에서 itwill을 포함하는 단어 검색

cp

  • 현재 디렉터리에 파일 복사
    # cp ex1.txt ex3.txt :현재 디렉터리에 ex1.txt의 내용을 ex3.txt에 복사후 생성

  • 다른 디렉터리에 파일 복사
    # cp ex1.txt ./test1 : test1 디렉터리에 ex1.txt 파일 복사(상대경로)
    # cp ex2.txt /home/itwill/test1 : test1 디렉터리에 ex2.txt 파일 복사(절대경로)

  • 다른 디렉터리에 새로운 이름으로 파일 복사
    # cp ex3.txt ~/test2/new.txt : test2 디렉터리에 new.txt 파일로 복사(상대경로)

  • -v : 파일 복사하는 내용을 화면 출력
    # cp -v *.txt ~/test2 : test2 디렉터리에 전체 txt 파일을 복사하는 화면 출력

  • 다른 디렉터리에 있는 전체 파일을 다른 디렉터리로 복사
    # cp -v ./test2/. ./test3

  • -r : 기존 디렉터리의 값을 새로운 디렉터리를 만들면서 복사
    # cp -rv ./test3 ./test4 : test4라는 디렉터리를 만들면서 test3 디렉터리 내용 복사

  • -i : 복사할 파일 이름이 이미 존재하는 경우 사용자에게 덮어 쓰기 여부를 확인하고 수행한다.
    # cp -iv ./test3/ex1.txt ./test4

  • -b : 복사될 파일 이름이 이미 있는 경우 백업 파일을 생성한다.
    # cp -bv ./test3/ex1.txt ./test4

  • -a : 원본 파일의 속성 정보까지 모두 복사
    # cp -av ./test3/ex1.txt ./test4/ex_new.txt

  • 백업 디렉터리 생성
    # cp -rav ./test3 ./backup : backup 디렉터리에 전체 복사
    # cp -rav ./test3 ./backup$(date '+_%Y%m%d%H%M%S') : 백업 디렉터리 이름을 만들때 현재 날짜를 기록하는 습관을 가져야 한다.

0개의 댓글