리눅스 기초 

(오라클 관리 실무 교재 참고) 


리눅스와 유닉스에서 가장 많이 사용되는 중요한 명령어들.

shell script 작성 및 운영과 관리에 관련된 명령어들 위주. 



[ 모든 유닉스 명령 대/소문자 구분. 기본적으로 소문자를 사용. 윈도우계열과 달리 확장자 개념이 없음, 0~255자까지가능 ]





- PATH

절대경로: 기준 /(루트)

상대경로: 기준 - 현재위치, ( :현재디렉토리 .. :상위디렉토리 ./ :하위디렉토리) ​        ./ 는 생략가능


- Shell Meta Character : 원래의 의미가 아닌 다른 특별한 의미를 가지는 문자


 문자

의미

예시

 (tilde)

 home directory

 ex) cd ~ , cd ~oracle(~사용자명)

 (asterisk)

 all (0~255사이의 모든 글자)

 ex) rm *.txt   ( .txt 포함되는 것을 모두 remove )

 (question)

 all (? 당 1 글자) 

 ex) rm ??.txt 2글자로된 .txt 포함된것을 remove )

 [ ] (squar brackets)

 괄호사이의 alleach 

 ex) [abc].sh (= a.sh , b.sh, c.sh) / [0-9] : 숫자전체

 (escape character)

 메타캐릭터 의미없앰​  

 ex) \*  (all의 의미가아닌 "*"문자자체의 인식)







기본 명령어 ( -옵션 )


 명령어

의미

예시

 man(manual)

 도움말 페이지

 ex) man cp ( cp 명령어에 대한 도움말)

 ls(list)

 파일이나 디렉토리안에 있는 목록

 ex) ls /etc/*.conf 

( etc디렉토리안에 .conf가 포함된 파일 목록보기)

 -a(all) : 숨긴 파일(파일이름 .으로시작)까지 포함

 -l(long) 권한, 소유자, 크기, 수정된 시간등의 상세 정보까지 표시

 -S(size) : 용량이 큰순서로 / -r : 용량이 작은 순서로 

 -h(human) :  사람이 보기편한 단위(kb,mb,gb)로


 mkdir(make directory)

 디렉토리 생성    

 ex) mkdir /test/dir1 (/test 디렉토리 안에 ​dir1 디렉토리생성)

 -p : 나열하는 디렉토리를 한꺼번에 모두 생성                           ex) mkdir -p /test/dir1/dir2/dir3  (상위디렉토리 한꺼번에 생성)


 rmdir(remove directory)

 디렉토리 삭제

 삭제할 디렉토리안에 아무것도 없어야 삭제가능해서 잘안씀(rm -r) 

 cd(change directory)

 디렉토리 이동

 

 pwd(print working directory)

 현재 작업중인 디렉토리 이름

 

  touch 

 용량이 0인 파일생성 

 ex) touch -t 05011230 a.txt (날짜를 5월10일12시30분으로 변경)

 -t 날자변경     

           

 cp(copy)

 파일복사

 ex) cp /test/a.txt  /test/dir1/aa.txt 

  (/test디렉토리의a.txt파일을 /dir1디렉토리안에 

    aa.txt로 이름변경후복사)

  -i : 복사할 대상이 이미 존재할경우, 덮어쓸지에 대한 여부질문

 -r : 복사원본에 디렉토리있을경우, 디렉토리까지 복사 (Linux에서는 -a로도 사용가능)

 -v : 복사되는 파일의 이름표시

 -p : 생성날짜, 권한등 원본파일의 정보와 똑같이 설정 

원본파일을 대상파일로 복사할때 생성날짜, 권한등은 대상파일에 맞게 다시 설정됨 (엄밀히 다른파일) )


 숨김파일(.)은 모든작업(복사, 이동, 삭제등)에서 제외됨     ex)  cp /test/.a.txt   /test3 (그래서 직접작업해야함) 

             cp /test/*  /test3 (.a.txt파일(숨김파일)은 복사되지않음)

 mv(move)

 파일이름 변경하거나  (원본)

 

  -i 덮어쓸지에 대한 여부질문


  rm(remove) 

 파일이나 디렉토리 삭제 

 rmdir과 다르게 디렉토리안에 파일있어도 삭제가능

  -f : 묻지않고 강제로 삭제

 -r : 하위디렉토리도 삭제                                        ex) rm -fr /test/*  (/test 디렉토리 안에있는 하위디렉토리와 파일 모두삭제)

 cat(concatenate)

 용량 적 text파일의 내용을 화면에 출력(내용이길경우 마지막페이지만 보임)

 more

 1page가 넘는 문서의 내용을 화면에 출력(page단위) 스페이스바(다음page), 엔터(다음줄),back키(이전page),-ctrl+c(종료)

 head 

 문서 첫 ~줄을 화면에 출력

 ex) head +10 a.txt

 tail

 문서의 마지막 ~줄을 화면에 출력  

 ex) tail -10 a.txt  

 -f : 파일에 내용이 추가되는 것을 실시간으로 계속 볼수있음 (log파일 조회할때 많이 사용됨)


 wc(word count)

 특정문서나 결과물에서 

 단어 수, 줄 수, 등을 세어

 ex) wc -l a.txt    (a.txt파일의 줄수 출력) 

  ln(link)

  링크생성 (윈도우의 아이콘생성 하는 개념과동일) 

 

 hard link - 원본변경시 반영안됨(또하나의 원본을 생성)            ex) ln file1  file2  (file1에대한 hard link (file2) 생성) 

 soft link  - 원본변경시 반영됨(윈도우의 바로가기아이콘기능)      ex) ln -s file1  file3 (file1에 대한 soft link (file3) 생성) 


 alias

 별칭부

  ex) ​alias cp='cp -i' (cp명령어 사용시 자동으로 cp -i로 적용)  

   현재 설정되어있는 alias해제 : unalias cp  /  alias만 입력 : 현재 설정된 alias 목록이 출력

  <, <<

  표준입력(키보드) 방향 변경  

 

  >, >>

  표준출력(모니터) 방향 변경   

 

 

>    : 출력결과를 덮어씀                        ex) ​ls -l /test  >  c.txt  (출력결과를 모니터에 출력하지않고 c.txt파일에 덮어씀)

>>  : 출력결과를 추가 


 |(pipe)

 명령어의 결과를 다음 명령어의 

 입력으로 결과전달 (종속적)

  ex) ls /etc/*.conf   |   wc -l (확장자conf인파일의 개수를 알고싶을때)

     a ; b ;  c ;  는 명령어 a, b, c가 단독적으로 실행(독립적)


 tar

 여러개의 파일을 하나로 거나 반대로 어줌.( unix는 압축 별도로 필요, linux는 압축까지 지원)

 -c(compress) : 여러개의 파일을 하나로 만들어주는 기능

-x(extract) : 묶여있는 파일을 풀어줌 (풀리는 위치(?))        ex) tar xvf tar1.tar

-t : 묶음 풀기전 미리 내용확인

-f : 저장될 파일명 지정

-v(view) : 작업수행과정 화면으로 보여줌             ex) tar cvf tar1.tar   /tar (/tar디렉토리에 tar1.tar로 파일묶기)

-z : tar + gzip(압축프로그램)                           ex) tar zcvf tar2.tar.gz  /tar (/tar디렉토리에 tar2.tar.gz로 압축하기)

-j : tar + bzip2(압축프로그램) 


 find

 파일의 이름, 소유자, 크기, 권한등의 속성으로 조건 검색 

 ex) find /test -name  '*.sh'

 -name :  파일이나 디렉토리의 이름으로 검색

-user : 소유자이름으로 검색

-newer : 기준되는 파일의 날짜 전/후에 생성되거나 수정된 파일검색

-perm : 주어진 권한으로 검색

-size :  주어진 크기로 검색                  ex) find /test -size +5k -size -10k  (/test 디렉토리에서 size가 5k~10k사이인 파일검색)

                                                                     

 grep

 파일의 내용으로 검색

 

 -i : 대소문자 구분안함

-l : 패턴이 있는 파일 이름만 출력, 라인은 출력하지 않음

-n : 출력하는 각 라인 앞에 라인 번호를 붙임   ex) grep -li 'Admin' /etc/* (대소문자 구분없이 모든파일중 'Admin'포함파일명 검색)

-v : 패턴이 없는 라인만 출력 (grep의 반대)

-c : 패턴이 있는 라인의 개수

-w : 패턴과 맞는 단어가 독립적인 경우만 출력

 @  find grep를 사용해 조건1개를 추가(정규식)해 검색할때

   ^  : 패턴으로 시작하는 line출력                 ex) ' ^a '  (= aaaa, aa, aaa, a.. 등) ->grep  '^a'  /test/a.txt 

   $ : 패턴으로 끝나는 line출력                    ex) a$ '

   . :  점 하나당 1글자                              ex) grep 'a..d' /test/a.txt (전체글자수4글자인것중 첫번째가 a,마지막d인것)

   * :  * 기호 이전의 문자가 0회 이상반복        ex) abc*    (c가 0번이상 반복 : ab, abc, abccc등)

  ] : 패턴에 해당하는 한 문자                    ex) ' [pP]attern '

   [^] : 패턴에 해당하지 않는 한 문자             ex) ' [^a] 

  /< >/ : 패턴 단어로 시작 또는 끝나는  line출력  

 

 @  egrep(확장정규식) :  조건2개로 검색하는 방법 

+  : + 이전의 문자가 1회이상 반복        ex)  ' [a-z]+bcd ' (a~z중 한문자로 시작하고 bcd로 끝나는 단어가있는 line출력

|   : 또는                                     ex)  ' aa | bb '         (aa나 bb가 포함된 line 출력)  

    ( )  : ( 또는 )                              ex)  ' do(es | ing)+ '   (does나 doing이 포함된 line 출력)




 


  




사용자관리 명령어


서버에 접속해 작업을 하기위해서는 계정과 권한이 있어야하고,사용자를 생성하려면 먼저 그 사용자가 소속될 그룹이 먼저 생성되어 있어야 함)


 명령어

의미

예시

 groupadd

 새로운 그룹(팀)을 생성 - 부서

 ex) groupadd -g 500 admin     (GID지정 안하면 OS가 자동으로 지정해줌)

 groupmod

 그룹이름이나, 번호수정

 ex) groupmod -g 501 -n sales admin2

 groupdel

 그룹삭제 

 ex) groupdel sales 

 유닉스계열OS에서 현재 서버내에 생성 그룹정보 /etc/group 에 모두저장돼있고 ,​사용자 정보 /etc/passwd에 모두저장)


 useradd

새 일반 사용자 계정생성


-u :  UID 지정. 유닉스에서의 주민등록번호     (※ uid : 0번 (root) 중복되면 안됨)

-g :  GID 지정. (-g 주그룹, -G 보조그룹)       (※ gid:14번(sysadmin) - root와 동일한 권한가짐 중복되면 안됨)

-d : 홈디렉토리 지정.

-s : shell 지정.                                  ex) useradd -u 600 -g admin -d /home/user1 -s /bin/bash -c test_add   user1

-c : 설명                                              (옵션을 주지 않으면 자동으로 생성됨)

 서버에서 새로운 사용자를 생성할때마다 /etc/skel 디렉토리에 있는 모든 파일들은 새 생성된 사용자 홈디렉토리로모두복사됨

              ( 새계정이 생성될때마다 어떤 사항을 공지하고 싶을경우, /etc/skel 디렉토리에 해당파일을 넣어두면 자동으로 복사되어 편리함 )


 사용자 정보 /etc/passwd 에 모두저장  root : 1 5 root /root : /bin/bash  ( x :/etc/shadow저장되어있다는 뜻)

                                      ( 계정 암호 UID GID 사용자설명 홈디렉토리 사용shell경로)


 id

 현재 접속해 있는 계정정보

 

 passwd

 사용자의 암호변경  

 ex) passwd  계정명 ( 계정명을 쓰지 않으면 현재계정의 암호변경)

 새계정이 생성되면 암호 /etc/shadow 파일에 암호화되어 저장됨   ex) root $123YSF~~~01:   ( : 암호 : ) 


 usermod

 사용자 정보수정 

  -o, -l 만다르고 useradd 옵션과 동일

 -u uid -o : uid 중복해서 사용가능                                            

-l :  이름변경                                                          ex) usermod -l 변경이름 원래계정


 userdel 

 사용자계정만 삭제 

 

 -r 홈 디렉토리까지 삭제                                                 ex) userdel -r 계정명