리눅스 기본설명 & 명령어

Linux/Linux (CentOS) 2018. 6. 19. 15:21

# 리눅스의 특징

 

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

설정

트랙백

댓글