2018년 2월 19일 월요일

리눅스





1. 리눅스 OS의 구조 및 특징

  CentOS : RHELL 소스 코드로 빌드한 공개 무료 배포판
  Ubuntu : 학교나 가정에서 사용하기 쉽도록 만들어진 공개 무료 배포판
              CLI를 통하지 않고, 그래픽 데스크탑 환경에서 리눅스를 쉽게 사용할 수 있도록 함. 
  Mint : 홈 엔터테인먼트용으로 만들어진 공개 무료 배포판
  리눅스 OS 설치 방법
  VirtualBox-5.2.4-119785-Win
   Oracle_VM_VirtualBox_Extension_Pack-5.2.4-119785
  https://www.ubuntu.com/download/desktop
  하드디스크는 Ubuntu.vmdk파일로 만들어짐. 



2. 리눅스 OS 파일시스템 구조와 기능
 
리눅스 파일시스템 표준 계층구조(Filesystem Hierarchy Standard, FHS)

  / : 루트 디렉토리, 리눅스 시스템의 모든 내용을 "/" 디렉토리 하위에 위치한다. 
  bin : binary 모든 사용자가 사용하는 필수 명령어(windows/system32 폴더와 유사함)
  dev: 디바이스 파일
  etc : 구성파일
  home : 사용자, 프로젝트 데이터 보관
  lib : /bin, /sbin 하위 실행 파일이 사용하는 라이브러리 
  media, mnt : 임시마운트 포인트
  proc : PID(process id)가 관리되고 있다. 
  sbin : super user 명령어
  usr : usr/bin/ 외부에서 받은 실행파일
  var : 로그파일, 메일등을 저장하는 파일크기를 예측할 수 없는 파일 저장
  dev, proc, var는 in-memory directory로 power-off 하면 다 날라간다. 
  윈도우와 리눅스 파일 공유방법 : virtual box의 공유폴더 기능을 사용한다. 
  VM MANAGER -> 설정 -> 공유폴더 -> 추가 ->  (C:\linux\shared, 자동마운트 체크)
  윈도우 해당폴더에 파일을 추가한다음, ubuntu 터미널 media/Sh_shared 에서 파일 확인이 가능하다. 
  리눅스 운영체계의 특징
  - 멀티 유저, 멀티 태스킹 운영체제 (파일권한 관리가 중요하다!)
  - 유닉스와 호환가능
  - CUI(Command User Interface), GUI(Graphic User Interface) 지원
  - 하드웨어를 제외하고는 비용이 들지 않는다. 
  - 저가 가격대의 하드웨어 플랫폼 상에서도 동작한다. 



3. 리눅스 쉘 기초 커맨드 기능 및 활용

  리눅스 쉘

  쉘(shell)이란?
사용자가 입력한 모든 명령어를 읽어서 해석하고 이에 따른 입출력을 제어하는 명령어 인터프리터임. 
  ubuntu terminal 에서 명령어 ps로 쉘의 종류를 확인할 수 있다. => bash 쉘 사용


  쉘명령어

  명령어 뒤에 -를 붙여 옵션을 추가할 수 있다. 해당 명령어에 붙여 사용할 수 있는 옵션은 man 명령어를 사용하여
 매뉴얼 페이지에서 상세확인 가능하다. 
  "|" : pipe, 다중 명령어를 쓸 때 사용한다. 
  echo : 변수명을 출력, 쉘에서 변수는 대문자로 쓴다. 
  lsblk : list block devices
  df -h : report file system disk space usage 
  cd : change directory
  cd ~ : go to home directory
  cd .. : go to parent directory, . 는 current directory를 의미하고 ..는 parent directory를 의미한다. 
  pushd, popd : 다른 디렉토리 갔다가 현재 디렉토리로 바로 돌아오고 싶을때, 현재 디렉토리 저장하고 불러옴 
  pwd : print out current working directory
  ls : list directory contents
  ls -a : see hidden files 
  ls -R : 루트밑에 파일 다 보여주기. -R 옵션은 계속 반복한다는 의미이다. 
  which : shows the full path of commands
  type : Display information about command type
  cat : reads files 
  head coffee.txt : coffee.txt 파일의 처음 열줄만 읽어서 보여준다. 
  tail coffee.txt : coffee.txt 파일의 마지막 열줄만 읽어서 보여준다. 
  ps : shows the currently running processes
  ps -ef : 현재 시스템 전체에서 실행 중인 프로세스의 목록과 상태 
  su : switch user
  su - : login 
  su와 su- 는 완전히 다른 개념이며, 환경변수와 working directory에 영향을 준다. 
  mkdir : make directory
  rmdir : remove directory
  touch : make file
  cp : copy
  cp -r aa bb : aa디렉토리의 내용 전체를 새로운 디렉토리 bb로 복사함
  mv : move
  mv bbb dir1 => destination이 디렉토리이면 옮겨가고, 아니면 rename 된다. 
  rm : remove
  chmod : change mode, 파일의 사용권한을 변경함
  umask : user mask, 새 폴더 새 파일의 permission을 결정하는 값
  whoami : shows the current effective user ID
  id : display complete user information, 모든 user는 id가 있고, Root의 id는 0이다. 
  grep : 문자열 찾기
  grep -n three count.txt : count.txt 파일에 three라는 문자열을 검색하고 line number도 출력
  grep -v t count.txt : count.txt 파일에 t가 없는 문자열을 검색
  find : 디렉터리 위치 검색
  ps -ef | grep hello : 현재 실행 중인 전체 프로세스 중에서 그 이름이 hello인 프로세스를 확인
  kill : send signal to a process
  kill -l : show the list of kill signal

  1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP
 6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
 11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
 16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
 21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
 26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
 31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
 38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
 43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
 48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13    52) SIGRTMAX-12
 53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
 58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
 63) SIGRTMAX-1    64) SIGRTMAX 

 15) SIGTERM : 이 시그널을 받는 프로세스는 프로그램을 종료하기 전에 프로그램을 종료하는 처리를 수행할 수 있다.
9) SIGKILL : 프로세스를 바로 강제종료한다. 
  kill -9 -1 : 중지시킬 수 있는 모든 프로세스를 중지시킴
  리눅스에서 파일의 특징
  리눅스에서 모든 것은 파일로 표현하며, 모든 파일 이름은 대,소문자를 구분함. 
  DAC(discretionary access control) : 리눅스 보안 매커니즘으로 모든 file에는 owner, group,  permission이 있다. 
  파일 소유권과 허가권 제어 명령어 활용
  r: read, w: write, x: execute
  permission에 따라서 명령어를 실행할 수 있고, permission denied 될 수 있다. 
  cd 명령어는 x(execute) 권한이 없으면 실행할 수 없고, ls 명령어는 r(read) 권한이 없으면 실행할 수 없다. 
  grep 명령어는 r(read) 권한이 있어야 한다. 
  mkdir 명령어로 새로 디렉토리를 만든다음, ls -l 명령어로 해당 디렉토리의 default permission을 확인할 수 있다. 
  기본 perssion을 변경하고 싶으면 umask 값을 변경하면 된다. 

  ex)
 inux@ubuntu:~/lab$mkdir dir4
 linux@ubuntu:~/lab$ls
 a.c  b.c  coffee.txt  count.txt  dir1  dir2  dir3  dir4  filecheck.txt
 linux@ubuntu:~/lab$ ls -ld dir4
 drwxrwxr-x 2 linux linux 4096  2월  9 09:54 dir4  // rwxrwxr-x 권한은 8진수로 775 : default permission
 linux@ubuntu:~/lab$ umask
 0002

 => directory full permission 은 777이며, -002 해서 775 가 default directory permission이 되었다. 
  rwt : 내가 쓴 것만 지울 수 있는 권한. 
  사용자 제어 관련 명령어 활용
  adduser : 사용자추가 
  useradd : 사용자 계정 생성
  사용자 권한 제어 
  사용자의 기본 디렉토리는 home 밑에 있다. 
  리눅스 리다이렉션
  >' : 출력을 특정 위치로 옮김
  ex)
터미널을 새로 연다음 tty 하면
linux@ubuntu:~$ tty
 /dev/pts/18
구터미널에서
linux@ubuntu:~/lab$ tty
 /dev/pts/4
 linux@ubuntu:~/lab$ ls -l > /dev/pts/18
하면 새 터미널에 출력된다. 



4. 리눅스 vi 편집기 동작 및 사용
  vi편집기
  vi의 3가지 모드 
  1. 들어가면 바로 명령모드 
  2. :q, :x, :wq :exit 모드 
  3. a, o, I 키 입력모드 
  vi편집기 안에서 shell 명령어를 다 사용할 수 있다. 명령어 안에 ! 를 붙이면 된다. 



5. 기타 내용
  Samba 사용하기, Samba를 사용하면 공유폴더가 필요없다. 
  Samba : standard Windows interoperability suite of programs for Linux and Unix
  sudo apt-get install samba
 linux@ubuntu:/etc/samba$ ls
 gdbcommands  smb.conf  tls
 linux@ubuntu:/etc/samba$ sudo vi smb.conf
 [sudo] password for linux:

맨 밑에
[linuxshare]
 path=/home/linux
 browseable=yes
 writeable=yes
 only guest=no
 public=no
 create mask=0644
 directory mask=0755
를 붙이고 :wq 를 입력하고 나온다.

linux@ubuntu:/etc/samba$ sudo smbpasswd -a linux
 New SMB password:
 Retype new SMB password:
 Added user linux.

리눅스가 삼바 그룹에 들어감


  linux@ubuntu:/etc/samba$ sudo /etc/init.d/samba restart
 [ ok ] Restarting nmbd (via systemctl): nmbd.service.
 [ ok ] Restarting smbd (via systemctl): smbd.service.
 [ ok ] Restarting samba-ad-dc (via systemctl): samba-ad-dc.service.

삼바를 실행한다.

linux@ubuntu:/etc/samba$ ifconfig
 Ip를 확인한다
 윈도우 탐색기에서 해당 IP 폴더로 접속한 다음에 linux ubuntu 계정으로 로그인한다

 그러면 path=/home/linux 이 파일들을 확인할 수 있다.

윈도우에서 파일을 만들고 리눅스에서 확인을 하면 아래와 같다.

linux@ubuntu:~/lab$ ls -l share.txt
 -rw-r--r-- 1 linux linux 0  2월  9 14:12 share.txt
  리눅스에서 절대로 마스킹 시키지 못하는 시그널 3개!
  1. 9번 SIGKILL : 마스킹하게 되면 프로세스가 무한정 돌아가게 될 수 있어서 절대로 마스킹할 수 없다. 
  2. ctrl+s : 일시정지
  3. ctrl_q : 다시시작




댓글 없음:

댓글 쓰기

javascript - SQL 예약어 제거

  <script language="javascript"> //특수문자, 특정문자열(sql예약어) 제거 function checkSearchedWord(obj){ obj.value = obj.value+&quo...