리눅스 기초
(오라클 관리 실무 교재 참고)
리눅스와 유닉스에서 가장 많이 사용되는 중요한 명령어들.
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) | 대괄호사이의 all, each | 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 : x : 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 계정명 |
'linux' 카테고리의 다른 글
[명령어] - 3. Process / RPM / Cron 관리 (0) | 2016.03.08 |
---|---|
[명령어] - 2. 권한 / 디스크 관리 (0) | 2016.03.08 |
[VMware] RHEL4_Update2_AS_x86, RHEL5_x86 설치 (0) | 2016.03.08 |
[VMware] RHEL3_Update6_WS_x86 설치 (0) | 2016.03.08 |
[강의] 리눅스 서버구축 (0) | 2015.11.24 |