본문 바로가기

OS-서버/리눅스-유닉스

리눅스 명령어 모음

반응형

 

< 파일 이동 or 이름 변경 > 

 

# mv [출발지] [목적지] 

 

 

mv ReadMe.txt /home/test/

ReadMe.txt 파일을 /home/test 디렉토리로 이동시킨다.

 

 

이름을 바꿀 때도 사용된다.

mv ReadMe.txt WriteMe.txt

원본의 이름이 WriteMe.txt로 바뀐다.

 

 

 

< 리눅스 버전 확인하기 >

 

# cat /etc/*release

=====================

CentOS Linux release 7.2.1511 (Core) 

NAME="CentOS Linux"

VERSION="7 (Core)"

ID="centos"

ID_LIKE="rhel fedora"

VERSION_ID="7"

PRETTY_NAME="CentOS Linux 7 (Core)"

ANSI_COLOR="0;31"

CPE_NAME="cpe:/o:centos:centos:7"

HOME_URL="https://www.centos.org/"

BUG_REPORT_URL="https://bugs.centos.org/"

 

CENTOS_MANTISBT_PROJECT="CentOS-7"

CENTOS_MANTISBT_PROJECT_VERSION="7"

REDHAT_SUPPORT_PRODUCT="centos"

REDHAT_SUPPORT_PRODUCT_VERSION="7"

 

CentOS Linux release 7.2.1511 (Core) 

=====================

 

 

< 설치 명령어 >

 

 

설치하고자 하는 유틸리티는 *net-tools*라고 가정한다.

* net-tools : 네트워크와 관련된 명령어모음 패키지 - ifconfig & netstat  etc...

 

<레드햇계열>

 yum -y install net-tools

 rpm -Uvh http://....

 

 rpm 옵션 

 U : 패키지 설치 /업그레이드

 v : 설치과정 확인

 h : 설치진행과정을 화면에 출력

 

 yum은 rpm과는 다르게 의존성있는 파일까지 모두 다운한다. 

 

 <데비안계열>

apt-get update - 패키지 최신화 

apt-get -y install net-tools

 

 

 

 <페도라> (페도라22부터는 yum 대신 dnf를 씁니다)

 dnf -y install net-tools

 

 

 

 

 

< 방화벽 명령어 >

 

<< 방화벽 규칙 추가 >>

 

firewall-cmd --permanent --zone=public --add-port=80/tcp

80/tcp 포트를 개방한다.

 


<< 방화벽 규칙 제거 >>

 

firewall-cmd --permanent --zone=public --remove-port=80/tcp

 


 

 

<< 방화벽 재시작 >>

 

firewall-cmd --reload 또는 systemctl restart firewalld

 

firewall-cmd --state

 현재 방화벽의 상태

 (동작중인지 확인)

 

firewall-cmd --zone=public --list-all

    (방화벽에 설정된 규칙을 확인)

 

 

< 사용했던 명령어 기록 보기 >

 

history 

 

 

< 터미널 폰트 크기 바꾸기 >

 

기본 폰트로 바꾸기 - setfont

 

특정 폰트로 바꾸기 - setfont 폰트명-규격   

                         ex )   setfont sun12x22

 

 

< gcc 컴파일 >

 

      gcc -o  실행파일 소스

ex ) gcc -o test test.c

 

 

 

< 마운트 >

 

     

     마운트를 할 디렉토리를 만들어준다(/mycdrom/)

      

      mount  /dev/cdrom /mycdrom/

      
      /dev/cdrom은 시디롬정보를 담고있는 파일이다.
     
 
     마운트를 할 때 아래와 같은 문구가 뜰 수도 있다.

     mount : block device /dev/cdrom is write-protected, mounting read-only

      마운트 시키면 읽기 권한이 발생한다는 내용이다.
      저 오류가 발생하지 않게 하려면 -o ro( read-only ) 옵션을 사용한다.
       
 
      마운트해제는 
      umount /mycdrom/
      
      CD 꺼내기는 eject - cd 잘 안나올 때 이거 쓰면 열리기도 함.. 
     HW적으로는 CD ROM 고무링 문제이므로 옆에 조그마한 구멍같은거 쑤시면 열림.
 
      ※ 주의
         마운트가 된 디렉토리에서 마운트 해제 작업을 하면 사용중이기 때문에
         해제 되지않아서 오류메시지가 뜬다.
      
    
   

 

 

 

 

< tar >

 

     tar : 아카이브를 만들거나 풀 때 사용하는 명령어

   

 

     << 옵션 >>
 
-c --create 
새로운 아카이브를 생성한다.
 
-x --extract
아카이브에 묶인 파일이나 디렉토리를 풀어준다.
 
-f --file  
아카이브 파일의 이름을 지정해 주는 옵션. 
 
-v --verbose 
아카이브에 추가되거나 풀리고 있는 파일의 이름을 화면에 보여준다.
"ls -l" 과 같은 형식으로 파일을 보려면 v를 두번 써준다.
 
-t --list
아카이브의 내용(묶인 파일이름)을 보여준다.
 
 
 
     << 묶기 ( create ) >>

    $ tar cvf  생성 파일명.tar  대상 파일명(또는 대상 디렉토리)

 

   ※ tar 명령으로 파일을 묶을 때는 디렉토리 단위로 묶습니다. 

 

     << 풀기 ( extract ) >>

    $ tar xvf  생성 파일명.tar 

 

     > test.tar.gz 풀기

       tar zxvf test

     
  

 

 

 

 

< ftp >

 

      ftp 서버ip

   

     만약 서버의 포트를 입력하려고 할 때

     ftp를 실행한 후

 

     ftp) open ip port 

     


   [예시]

     ftp) open 123.123.123.123 3000

 

 

 

< wget , curl >

 

  wget http://url...

  해당 url로부터 파일을 다운받는다.

 

  > wget을 통해 ftp(id/pw 존재) 서버에 있는자료를 가져올 때 

 

 # wget --ftp-user=USERID --ftp-password=PASSWORD

  ftp://123.123.123.123:3000/read.txt

 

 > wget을 전체 웹 사이트 긁어오기 

   -r(recursive) - 하위디렉토리에 있는 것들을 모두 긁어온다.

   --adjust-extension - 내용 유형에 따라 파일 이름 (html 또는 css)에 적절한 확장자를

                               추가한다.

   # wget -r --adjust-extension http://url...

 

WGET 완벽정리 -  http://swstyle.tistory.com/23    


 

 

 cURL은 url을 전송하는 명령으로 wget과 유사한 기능을 가지고 있다.

 wget은 대용량인 파일 다운로드를 지원하는 반면 

 curl은 단일 파일 전송에 적합하게 설계되었다.

 

 > curl을 통해 공인ip사이트에서 ip얻어오기

# curl http://ipinfo.io/ip

123.123.123.123

 
<옵션>
(L : 해당 사이트 주소가 바뀌어서 redirect 되면 추적해서 다운로드한다.  
O : 파일 다운로드, [없으면 html 파일이 다운로드 된다]
 
 

 

 

 

< SElinux(리눅스에 적용된 보안 시스템) on/off >

 

setenforce 0 (selinux 끄기)

setenforce 1 (selinux 켜기) 

 

<<영구적으로 끄기>>

# vi /etc/selinux/config 

SELINUX=disabled

 

 

 

< 데몬설정 - systemctl >

 

# systemctl stop  : 데몬 종료

# systemctl start : 데몬 시작

# systemctl restart : 데몬 재시작

# systemctl status : 데몬 상태 확인

# systemctl enable : 부팅시 자동 시작

# systemctl disable : 부팅시 .. X

# systemctl is-enabled : enabled 동작 확인 

# systemctl is-active : 현재 동작상태인지확인

# systemctl list-units : 등록된 서비스 확인

 

 

< crontab - 예약작업(일정 시간 마다 명령 실행) >

 

 

 << 옵션 >>

 

-e  [ cron 편집창 ]

-l   [ cron 리스트 ]
-r  [ cron 스케줄 삭제 ]
 
-편집창-
* * * * * [실행할 명령어]
 
첫 번째 필드 : 분(0-59) 
두 번째 필드 : 시(0-23)
세 번째 필드 : 일(1-31)
네 번째 필드 : 월(1-12)
다섯번째 필드: 요일(0-6) [sunday = 0]
 

 

ex) 
 
1. 5분마다 date 기록  
 */5 * * * * * date >> date.log 2>&1
 
2. 30분, 새벽 1시와 낮 12시, 모든 일, 모든 월, 모든 요일 
/var/www/html에 존재하는 모든 log 파일 삭제
 
30 1,12 * * * rm -f /var/www/html/*.log
 

 

 

< rsync - 서버간 동기화(백업) >

 

 

<< 옵션 >>

 

-a 아카이브 모드

-v 백업진행과정 보기

-z 압축해서 전송

-P 전송과정 보기

 


rsync(remote 

synchronization)는

증분백업 기능을 제공한다.

증분백업이란 전체 백업 또는 변경된 사항을 선택적으로 백업하는 방식이다. 


 

ex)

 

1. orign 디렉토리에 있는 파일들을 backup 디렉토리로 동기화한다.

 

# rsync -av /orign/ /backup

 

만약 orign 디렉토리안에 파일이 수정되거나 삭제가 일어나면 

변경된 부분만 동기화 시켜준다. 

 


 

2. A와 B 서버간의 동기화.  

(B서버의 /rsync/ 디렉토리를 A서버의 /orign/ 디렉토리로 동기화 )

 

B서버 IP : 192.168.0.61

계정 : jim0316

 

# rsync -azP /orign/ jim0316@192.168.0.61:~/rsync/

 

A서버의 orign 디렉토리 변경사항이 원격지에 있는 상대 서버에 rsync 디렉토리에 적용된다.

 


 

< chown - 파일 소유주 변경 >

 

사용법 chown [ -옵션 ] [ 소유자 ] : [ 그룹 ] [ 파일명 ]

 

<< 옵션 >>

-R 하위폴더에 모든 파일들도 적용한다.

 

ex) file1을 user1 소유주의 group1로 변경 
   # chown user1:group1 file1


 

< awk - 필드 단위 패턴 검색 >

사용법 awk [-f 프로그램파일] [-F 필드구분자] ["패턴{액션}"] [처리할 파일명]


 

ex) awk -F: '{print $1,$2,$4}' ./text.txt


text.txt
a:b:c:d
e:f:g:h
i:j:k:l


출력값
a b d
e f h
i j l

 

< zip 압축 >

 

< 비프음 제거 >

1. Bash Shell 사용 시 명령어 오입력 비프음 제거

 

setterm -blength 0

 

setterm은 터미널의 속성을 설정하는 명령어로써

blength [0-2000] : 마이크로 초 단위로 벨 시간을 지정한다. 기본값은 0이다.

 

 

대신 위 방법은 리눅스를 종료할 때와 로그인 화면에서는 비프음이 난다.

 

 

2. 스피커 드라이버 제거 

 

modprobe -r pcspkr

 

위 명령을 치면 PC 스피커 드라이버를 막아서 리눅스 사용하는 내내 소리가 나지 않는다.

 

 

< 화면 지우기 >

1. clear

2. ctrl + l (명령어 history에 안남음)

 

< 로그 보기 >

https://blog.naver.com/tkdldjs35/221113470421

 

< 리눅스 비트 확인 >

uname -m

 

 

< 파일 특정 행 지우기 >

1. 제거

sed '/1.2.3.4/d' ip.txt > tmp_ip.txt

ip.txt 파일에서 1.2.3.4 텍스트를 찾은 행을 모두 삭제하고 나머지 결과값을 tmp_ip.txt에 저장

 

2. 적용

cat tmp_ip.txt > ip.txt

 

 

 

 

자동 업데이트 끄기 >

백그라운드로 새로운 패키지를 자동 업데이트하는 기능을 끄는 법.

systemctl disable dnf-makecache.service

 

systemctl disable dnf-makecache.timer

 

 

런레벨 관리 >

● Single Mode (Run-Level 1)

응급 부팅 및 시스템 복구 시에 사용됨.

# systemctl rescue

 

 

● Multi-user Mode (Run-Level 3)

TUI(Text User Interface) 환경을 제공함.

# systemctl isolate multi-user.target

# systemctl isolate runlevel3.target

 

 

● Graphical Mode (Run-Level 5)

GUI(Graphic User Interface) 환경을 제공함.

# systemctl isolate graphical.target

# systemctl isolate runlevel5.target

 

 

● Run-Level 기본값 설정

set-default 옵션을 사용하여 Run-Level 기본값을 설정한다.

get-default 명령어로 현재의 Run-Level을 확인한다.

 

# systemctl set-default multi-user.target

# systemctl get-default

multi-user.target

 

 

 

< 파일 시스템 만들고 레이드 구성 >

● 리눅스 파일 시스템 만들기

 

◎ 파티션 초기화

fdisk /dev/sdb

 

u  - 파티션 생성

그 후 계속 엔터 - 기본 값으로 다 설정.

w로 저장.

 

◎ 파일 시스템 만들기

mkfs -t ext4 /dev/sdb1 

 

◎ 마운트 포인트 지정

mkdir /data1

mount /dev/sdb1 /data1

 

◎ 자동 마운트

vi /etc/fstab에 들어가서

맨 끝에다가 아래 내용을 추가한다.

/dev/sdb1 /data1 ext4 defaults 0 0

 

 

● 리눅스 레이드 구성

fdisk로 일일이 파티션을 지정 해줄 필요 없다.

파티션 정보를 덤프파일로 뜨고 덮어씌우는 sfdisk 명령어를 입력하면 된다.

 

레이드를 구성하기 위해서 

첫 번째 드라이브는 fdisk에서 t옵션을 주고 

id(hex) 값을 fd로 설정헌다.

 

 

◎ sfdisk(디스크 파티션 테이블을 백업하거나 복사한다)

 

sfdisk -d /dev/sdc > /tmp/sdc.dmp

 

$ sudo sfdisk -d /dev/sda > sda-table

파티션 테이블을 파일로 복사

 

$ sudo sfdisk /dev/sda < sda-table

파일로부터 파티션 테이블을 복구

 

$ sudo sfdisk -d /dev/sda | sfdisk /dev/sdb

디스크에서 다른 디스크로 파티션 테이블 복사

 

◎ 레이드 구성

$ mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1

mkfs ext4 /dev/md0 

mdadm --detail /dev/md0 

 

// sdb와 sdc를 레이드(md0)로 구성하고 장치 내역을 출력한다.

 

 

 

< CUI 환경에 텍스트기반 웹브라우저 설치하기 >

yum -y install lynx

lynx google.com

 

 

< nslookup 설치 >

yum -y install bind-utils

 

 

< 화면 보호기 끄기 >

▷ 일시적인 꺼짐 방지 - 재부팅하면 초기화됨.

$ sudo xset s off

$ sudo xset -dpms

$ sudo xset s noblank

 

▷ 영구 적용

$ sudo vi /etc/lightdm/lightdm.conf

 

[SeatDefaults]

xserver-command=X -s 0 -dpms

 

 

< 파일 찾기 >

updatedb

locate sample.txt 

updatedb를 통해서 파일 색인.  

그 후 locate 명령을 통해 이름만으로 파일 찾기.

 

 

< root 로그인 허용 >

 

auth.log는 사용자 로그인이나 사용된 인증방법 같은 시스템 인증 정보가 기록되어

root 로그인 실패 이유를 가늠해볼 수 있다.

# tail -f /var/log/auth.log

 

※ root 접속 허용

# vi /etc/ssh/sshd_config

 

# PermitRootLogin probibit-password

PermitRootLogin yes

 

# service ssh restart

# service ssh status

 

# ssh localhost

 

root 권한으로 ssh 서비스에 로그인 가능 여부 확인.

 

 

 

< alias(명령어 별칭) >

특정 명령어를 다른 명령어의 이름으로 대채하여 사용할 수 있는 유용한 기능이다.

명령어가 너무 길다면 alias를 사용하는 것이 좋다.  

 

# alias [별칭]=[적용할 대상 명령어]  

 

1. vi가 열릴 때 자동으로 set nu가 설정되도록 한다.

# alias vi="vi -c \"set nu\""

 

2. 바탕화면 이동하는 별칭 d를 만든다.  

alias d="cd /root/Desktop" 

d를 실행하면 바탕화면으로 이동된다.
 

 

 

< 실행중인 서비스 목록 조회 >

service --status-all

 

ex) service --status-all | grep "apache"

+로 조회되면 해당 서비스는 on인 상태이다.

 

 

 

< 특정 텍스트가 존재하는 파일 검색 >

해당 디렉토리에서 "hi everyone" 텍스트가 존재하는 모든 파일 검색하기

ls -al | grep -R "hi everyone"

 

 

< 명령어 반복 실행 >

2초마다 특정 명령을 수행한다.

watch ls -al

 

 

 

 

 

 

 

반응형