검색결과 리스트
Linux에 해당되는 글 30건
- 2018.06.19 리눅스 기본설명 & 명령어
글
리눅스 기본설명 & 명령어
# 리눅스의 특징
1. 권한을 갖는다 . - (소유권 , 허가권)
2. 다중 사용자 환경을 지원한다. - 멀티유저 모드 및 멀티 테스킹 지원
3. 대/소문자를 구분한다.
4. 확장자는 무관하고 파일명의 일부로 사용한다. - 윈도우 확장자 개념과는 다르다
# 리눅스 프롬프트의 구조
1. 프롬프트란 - 명령어를 입력받아 실행될수 있는 상태
2. 리눅스 프롬프트
- 관리자 : [root@localhost ~]#
- 사용자 : [user@localhost ~]$
- [, ] : 프롬프트의 구분 기호
- @ : 계정명과 서버 이름의 구분기호
- localhost : 서버의 이름(HostNAME)
- ~ : 경로의 마지막 경로명을 출력
- #,$ : 계정상태 출력 (# 관리자, $ 유저)
# 명령어 [-옵션][서브옵션] [파일/디렉터리]
ifconfing : ip 확인
pwd : 현재 위치 출력
cd : 현재 디렉터리 변경
~ : 틸다 | 틸드 접속한 계정의 홈 디렉터리
cd ~ : 접속한 계정의 홈 디렉터리로 변경
cd ~계정명 : 지정한 계정의 홈 디렉터리로 변경
cd ~- : 이전 디렉터리로 변경
clear : 화면 청소
ls : 작업중인 디렉터리의 목록 출력
ls -a : .(숨김)을 포함한 모든 디렉터리의 파일 및 디렉터리 출력
ls -l : 지정한 디렉터리의 내용을 자세히 출력
ls -n : 파일 및 디렉터리의 정보 출력시 UID,GID(소유권)을 사용
ls - R : 하위 경로와 그 안에 있는 모든 파일들도 같이 출력(recursiv)
ls -lF : 형식을 알리는 문자를 각 이름뒤에 추가
없다 : 파일(허가권 맨앞이 ~)
/ : 디렉터리 명칭 뒤에 /가 붙는다.(허가권 맨앞이 d)
->,@ : symbolic link file(바로가기) 사본 -> 원본 (허가권 맨앞이 l
허가권 모두가 활성화)
* : 파일에 *이 붙으면 실행파일
ls -d : 디렉터리의 정보 출력
cp : 파일이나 디렉터리를 복사
- 사용 형식 : cp [option] 원본파일 사본파일
- 원본파일명을 그대로 복사할 경우 복사할 경로에 원본파일명을 생략가능
- 원본파일명을 복사할 때 원본파일명을 바꿔서 복사할 수 있음
- 생성날짜와 시간을 복사 할 수 없음(-p 옵션을 사용하면 원본파일 그대로 복사 할 수 있음)
- 디렉터리를 복사할 때 파일처럼 복사할수 없음 (-r 옵션을 사용하면 디렉터리를 복사 할 수 있음)
- -a : 원본 파일의 속성 , 링크 정보들을 유지하며 복사
mv : 파일이나 디렉터리를 이동
- 사용형식 : mv [option] 원본파일 목적지
- 원본 파일이 이동하는 것이므로 조심해서 사용해야 함
- 파일이나 디렉터리 이름을 바꿀 때 사용
- 생성 날짜와 시간이 변경되지 않음
mkdir : 디렉터리 생성
-mkdir [option] 디렉터리
- option p : 필요하다면 상위 디렉터리까지 생성
rmdir : 디렉터리 삭제
-rmdir [option] 디렉터리
- option p : 필요하다면 상위 디렉터리까지 삭제
rm : 파일이나 디렉터리를 삭제 (삭제시 대답은 y,n)
- rm [option] 파일 or 디렉터리
- option f : 물어보지 않고 진행 (강제 삭제)
- option r : 디렉터리 삭제
touch : 파일 생성
- touch [option] 파일명
- option c : 현재 시간으로 파일 생성 파일명이 있을시 무시
- option r : 지정한 파일의 시간으로 변경(ex) touch -r AA BB(aa 시간을 bb 시간으로)
- option t : YY:MM:SS (파일의 접근/수정시간을 원하는 시간으로 변경)
- option m : 파일이 수정된 시간을 현재시간으로
cat : 파일의 내용 입/출력 및 생성.
- 출력 : cat /etc/passwd
- 입력 : cat /etc/passwd > /testfile
- 생성 : cat > ./test => 내용입력 => ctrl + d (정상종료) , ctrl + c (강제종료) ,ctrl + z(강제정지)
- 추가 : cat >> ./test => 내용입력 => ctrl + d
- 병합 : cat ./a ./b > ./c
find : 파일찾기
-find [경로] [-옵션] [이름]
-find . -name "파일명" -exec 명령어 {} \;
- ex : find / -user root -perm /4000 2> /dev/null
vi : 파일 수정
- vi [파일명]
- gg , [[ : 문서의 맨 처음
- G , ]] : 문서의 맨 마지막
- $ : 문장의 끝
- ^,0 : 문장의 마지막
- l : 그 행의 맨 앞으로
- A : 그 행의 맨 뒤로
- o : 밑칸의 공간
- O : 빈행생성 -> insert
- s : 글자 없애기 -> insert
- S : 행 내용 삭제 -> insert
- L : 화면의 끝
- r : 커서의 딱 한단어 바꿔줌
- backspace : 이전으로 돌려줌
- x : delete -> backspace
- X : backspace
- dd : 행 삭제
- 숫자 + dd : 숫자만큼 삭제
- yy : 행을 복사
- 숫자 + yy : 숫자만큼 복사
- p : 오른쪽에 붙여넣기
- P : 왼쪽에 붙여넣기
- d+w: 단어 삭제
- d+$, D, 숫자+x 오른쪽 삭제
- d+E : 단어의 맨 끝으로.
- d+L : 화면의 끝까지 지움
- d+G ]] : 끝까지 지움.
- u : 되돌리기
- U : 행에서 되돌리기
- m + a~z, A~Z 총 52개의 책갈피.
- ' +a~z, A~Z 책갈피로 이동
- ''-> 마지막 위치로 이동
- /찾는이름, 다음으로 넘어갈때 n, 이전으로 돌아갈때 N
- ?찾는이름, 다음으로 넘어갈때 N, 이전으로 돌아갈때 n
- :set(se) nu -> 행의 번호 출력
- :set(se) nonu -> 행의 번호 없앰.
- :[범위]s/[기존문자]/[새로운문자]
- ex) :5s/passwd/itbank -> 5번째 행의 passwd를 itbank로 치환.
- :20,23s/PASS/Tiger -> 20~23행의 PASS를 Tiger로 치환.
- :%s/MIN/silver -> 문서 전체(%) 치환.
- :62s/i/a/g -> 62번째 행의 i를 모두 a로 치환. --> g : 행의 중복 문자를 치환.
- :.!ifconfig -> 현재 위치에 ifconfig 명령어 실행.
- ctrl=^ 이라고 할때,
- ^wn=창을 수평 나누기
- ^ww=창 간 이동
- ^wo=커서가 있는 창을 제외한 모든 창 닫기
- :e file -> 파일열기
- :enew -> 빈문서열기
- :[n]r file -> 편집중인 문서의 n라인 다음줄 부터 file의 내용 삽입
- :[n]r! cmd -> 편집중인 문서의 n라인 다음줄 부터 cmd의 결과 삽입
- :n -> 커서를 n행으로 변경
* 사용자계정관련
- 생성 : useradd 계정명
- 수정 : usermod 계정명
- 삭제 : userdel 계정명(-r 옵션 사용시 완전삭제)
- 생성 및 수정 옵션 : -p 패스워드, -u UID, -g GID, -c 코멘트, -d 디렉토리, -s 쉘, -mk 뼈대경로
- 비밀번호 : passwd (관리자는 뒤에 계정명 입력하여 계정 비밀번호 변경가능)
- /etc/passwd -> 계정명:UID:GID:코멘트(닉네임):/home/계정명:/bin/bash
- /etc/shadow
- /etc/group
- /etc/gshadow
- /home/->$HOM
- /var/spool/mail/
* useradd - D 명령어
- 위치 :/etc/default/useradd
- GROUP=100 : -g
- HOME=/home : -b
- INACTIVE=-1 : -f
- EXPIRE= : -e
- SHELL=/bin/bash : -s
- SKEL=/etc/skel
- CREATE_MAIL_SPOOL=yes
* 그룹관련 명령어
- 생성 : groupadd 그룹명(-g 그룹번호)
- 삭제 : groupdel 그룹명
- 계정 그룹 확인 : id 계정명
* linux shells(# call /t /etc/shells)
- /bin/sh : 최초로 개발된 쉘(bourne)본쉘, 복구 기본쉘
- /bin/bash : 리눅스에서 가장 많이 사용하고 있는 쉘, 오픈소스 기본응용쉘(bourne-again shell)
- /sbin/nologin: 로그인 되지 않는것, 시스템 쉘
- /bin/csh : C 쉘, C language 전용 기능쉘
- /bin/tcsh : 확장 C쉘, tomcat(java)확장 기능쉘
* chmod 권한변경
- 실행 : chmod [옵션]+[8진수 숫자] [파일명] [--추가옵션]
- 옵션 : u = user, g = group, o = other, a = all
- ▽권한값 표(r=읽기, w=쓰기, x=실행)
[파일속성][소유자][그 룹][타 인]
d,b,c,-,l 4 2 1 4 2 1 4 2 1
- r w x r w x r w x
* chown 소유권변경
- 실행 : chown [소유자]:[그룹] [경로]
- 옵션 : -R 하위폴더 전부 소유권 변경
* 특수소유권 관련
- Set UID 4777 rws rwx rwx
- Set GID 2777 rwx rws rwx
- Set Bit 1777 rwx rwx rwt
* UMASK
- 파일 및 디렉터리 생성시 기본적으로 적용될 사용권한.
- 폴더 777, 파일 666으로 시작.
- 사용 umask 0000, 확인 umask -s
* acl 접근 제어 목록
- 확인 : getfacl /dir/file
- 설정 : setfacl -m u,g,o:user:perm /file/dir
- 하나씩 삭제 : setfacl -x u,g,o:user /file/dir
- 초기화 : setfacl -b /file/dir
* 압축하기
- gzip, bzip2, xz : 용량 절약, 원본 유지가 안됨, 단일파일만 가능
- tar : tar [option] [archiving-file_name.tar] [source]
- tar 옵션 : c=생성, v=과정출력, z=gzip 압축 및 해제, f=파일 이름 지정, x=해제
- 압축(ex) : tar cvzf /파일명.tar.gz /압축경로
- 해제(ex) : tar xvzf /파일명.tar.gz -C /해제위치
* rpm
- 확인 : rpm -qa | grep [패키지명]
- 설치 : rpm -ivh [--nodeps] [패키지명... .rpm]
- 삭제 : rpm -e [패키지명]
* rpm공식(유의사항)
- 모든 작업은 반드시 동일한 버전이어야 한다.
- 의존성 오류(Failed dependencies)를 절대 무시 하지 말자
- 의존성을 제기한 패키지를 먼저 작업한다.
- 가급적 의종선 무시(--nodeps)를 사용하지 말자
- 'lib'로 시작하고 중간에 '.so'가 있는 경우는 무시해도 된다.
- 디렉터리로 시작하는것들(/usr/bin/)은 패키지가 아니므로 무시한다.
- 대표 패키지 부터 작업한다.
- 나머지는 화면에 보이는 순서대로 작업한다.
*yum
- 업데이트 : yum [-y] update
- 설치 : yum [-y] install [패키지명][*]
- 삭제 : yum [-y] remove [패키지명][*]
- 삭제는 yum을 사용하지 말고 rpm으로 삭제하세요. 의존성 관련 pkg 삭제 우려있습니다.
- 유의사항1 : 인터넷이 되야 사용가능
- 우의사항2 : 설치파일명과 비슷한 이름이 없는 곳에서 명령어 실행
* HDD & 파티션
- 작업 = 순차적, 삭제 = 역순
- primary partition MAX = 4, extended partition MAX = 1, Logical partition MAX = 무한대
- 4개 이상 파티션을 나눌 경우 프라이머리 파티션 한 개를 익스텐디드 파티션으로 잡은 후 익스텐디드 파티션 내에 로지컬 파티션으로 나눔.
* 시스템 종료 - shutdown -h now / init 0 / halt / poweroff
* 시스템 재시작 - shutdown -r now / init 6 / reboot
* fdisk
- fdisk [옵션] [디스크]
- 보기 : fdisk -l
- 생성 : fdisk [디스크] => n
* 포맷
- mkfs.xfs [디스크]
- mkfs -t xfs [디스크]
* 마운트
- mount [장치] [디렉터리]
- umount [장치] or [디렉터리]
- 확인 : mount, df -h
- 유의사항1 : mount point는 임의의 디렉터리여야 한다.('사용자' 및 '시스템'과 관련된 디렉터리를 mount point로 지정해서는 절대 안된가.)
- 유의사항2 : umount 명령시 경로는 현재 마운트된 디렉터리만 아니면 어떤곳이던 상관없다.
- 유의사항3 : 한개의 파티션은 반드시 한개의 mount point만 사용한다.
- 유의사항4 : 마운트시 작업할 대상은 반드시 파티션(primary, logical)만 대상이 된다.
- 유의사항5 : 하드디크스와 확장 파티션(extended)은 작업 대상이 될수 없다.
* 분실된 비번 재설정
1. 부팅시 or 재부팅시 grub mode에서 최신 kernel을 선택후 'e'를 누른다.
2. 방향키로 linux16까지 간후 'end'키를 눌러 앞쪽에 있는 'rhgb'까지 지운 후 init=/bin/bash를 입력, 앞의 'ro'를 'rw'로 변경 후 ctrl+x를 눌러 부팅시킨다.
3. passwd 명령어를 실행하여 비밀번호 변경
4. exec /sbin/init 로 재부팅한다.
* grub에 암호 설정
1. vi /etc/grub.d/00_header 후 파일 최하단 안에 아래와 같이 설정
cat << EOF
set superusers="grubadmin"
password grubadmin 1234
EOF
2. grub2-mkconfig -o /boot/grub2/grub.cfg 실행
3. 재부팅 후 확인
/usr/lib/systemd/system/ctrl-alt-del.target
* 프로세스 관련
- 확인 : ps -ef, top, pstree -pn
UID PID PPID C STIME TTY TIME CMD
사용자 Process Parent CPU Start Terminal 작업시간 명령어
ID PID Time
1 4 6 2 3 5 4
- 설명 : (1)사용자가 (2)시간에 (3)으로 접속 후 (4)명령어로 동작한시간이 (5)만큼이고 이때 CPU점유율은 (6)만큼이다.
- 끄기 : kill [PID], 접속자 끄기 : killall -u [현재 접속한 계정명]
* 접속자 관련
- 확인 : who, 자세히 : w
- 내계정 확인 : whoami
* /etc/inittab
- 실행 : init [숫자]
- init 0 : /lib/systemd/system/runlevel0.target -> poweroff.target
- init 1 : /lib/systemd/system/runlevel1.target -> rescue.target
- init 2 : /lib/systemd/system/runlevel2.target -> multi-user.target
- init 3 : /lib/systemd/system/runlevel3.target -> multi-user.target
- init 4 : /lib/systemd/system/runlevel4.target -> multi-user.target
- init 5 : /lib/systemd/system/runlevel5.target -> graphical.target
- init 6 : /lib/systemd/system/runlevel6.target -> reboot.target
- 정상 부팅상태
확인 : systemctl get-default
설정 : systemctl set-default TARGET.target
- 안전모드
확인 : ls -l /etc/systemd/system/default.target
설정 : ln -sf /lib/systemd/system/target.target /etc/systemd/system/default.target
clear
그래픽 : ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
* IP(internet protocol)
- Ipv4 = 4 x 8bit = 32bit, Ipv6 = 8 x 16bit = 128bit
- 고정(network-ID), 유동(host-ID)
- A class 0.0.0.0 ~ 127.0.0.0 ~ 127.255.255.255 (256x256x256 = 16,777,216개)
└ subnetmask = 255.0.0.0, prefix = /8bit
- B class 128.0.0.0 ~ 191.0.0.0 ~ 191.0.255.255 (256x256 = 65,536개)
└ subnetmask = 255.255.0.0, prefix = /16bit
- C class 192.0.0.0 ~ 223.0.0.0 ~ 223.0.0.225 (256개)
└ subnetmask = 255.255.255.0, prefix = /24bit
* 실제(static)
- 192.168.1.0 = network-ID
- 192.168.1.1 ~ 192.168.1.253 = HOST
- 192.168.1.254 = G/W(Gateway)
- 192.168.1.255 = B/C(Broadcast)
* vmware(DHCP)
- 192.168.1.0 = network-ID
- 192.168.1.1 = DHCP
- 192.168.1.2 = G/W(Gateway)
- 192.168.1.3 ~ 254 = HOST
- 192.168.1.255 = B/C(Broadcast)
'Linux > Linux (CentOS)' 카테고리의 다른 글
쉘스크립트 (0) | 2018.07.04 |
---|---|
패키지 관리 (0) | 2018.07.04 |
프로세스 (0) | 2018.07.04 |
사용자 그룹 (0) | 2018.07.03 |
디스크 추가 및 관리 (0) | 2018.07.03 |