> Hello World !!!

     

@syaku

리눅스 유닉스 맥 터미널 명령어 정리

Linux, Unix, Mac 터미널 명령어 정리

일반 명령어

# 버전
$ cat /etc/issue

# 프로그램 찾기
$ whereis tomcat

# 실시간 모니터링
$ top
$ sar

# 하드웨어 용량 확인
$ df -h
$ du -h
$ du -s
# 현재폴더 용량 체크 du -h --max-depth=1 .
$ du -hs


# 하드웨어 정보 조회
$ lshw -C processor
$ lshw -C memory
$ free

# 실행중인 프로세서
$ ps -ef | grep java | grep tomcat

# 마운트 및 저장공간 정보
$ df
$ cat /proc/mounts

# 장치를 마운트 시킬 떄
$ mount -t <파일 시스템 타입> <장치 파일> <마운트 포인트>
# 마운트 해제 시
$ umount <장치 파일, 마운트 포인트>

# Service : CentOS 6.x
$ service 서비스 start
$ service 서비스 status

$ sudo chkconfig --list service

0 시스템 중단(Halt)
1 텍스트 기반의 단일 사용자 모드(single user mode)
2 사용되지 않음(사용자가 지정 가능)
3 텍스트 기반의 다중 사용자 모드
4 사용되지 않음(사용자가 지정 가능)
5 X 윈도 기반의 다중 사용자 모드(로그인도 X 윈도에서 이뤄짐)
6 시스템 리부팅

# CentOS 7.x 사용할 수 있음
# 서비스 상태확인
$ systemctl is-enabled 서비스.service
# 서비스 사용
$ systemctl enable 서비스.service
$ systemctl start 서비스.service
$ systemctl status sshd.service
# 서비스 목록
$ systemctl list-unit-files --type=service

사용자 및 그룹 관리

# 사용자 접속 로그
$ last <계정>

# 사용자 목록
$ cat /etc/passwd
$ useradd test
$ echo '1234' | passwd --stdin test
$ userdel -r test

# root 권한
$ visudo
계정 ALL=(ALL:ALL) ALL

# 그룹목록
$ cat /etc/group
# 그룹 사용자 추가
$ sudo gpasswd -a (사용자) (그룹)

$ chmod -R 777 target

# 소유권 변경
$ chown -R user:group path
$ chown user path
$ chown :group path

# 경로에 대한 소유권정보 보기
$ namei -om /home/test/www

tar, tar.gz 압축

$ tar -cvf tar명 압축경로 --exclude 제외폴더
$ tar -xvf tar명 --exclude 제외폴더

$ tar -cvf tar명 압축경로 압축경로 압축경로 압축경로

$tar -zcvf tar.gz명 압축경로 --exclude 제외폴더
$tar -zxvf tar.gz명 --exclude 제외폴더

# Exiting with failure status due to previous errors 에러 발생시 sudo 로 압축.

네트워크

# ping 설치 우분투
$ apt-get update && apt-get install -y iputils-ping

$ netstat -ntl
$ netstat -atlpvn

# 해당 포트를 사용하는 프로그램 확인
$ netstat -anp | grep LISTEN | grep :포트번호

$ sudo lsof -i :80

# 방화벽 목록과 80 포트 추가
$ iptables -nL

$ sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$ sudo service iptables save

$ sudo vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

$ sudo service iptables start

# http://stackoverflow.com/questions/6795350/nginx-403-forbidden-for-all-files
$ chcon -Rt httpd_sys_content_t 서비스폴더

# http://serverfault.com/questions/566317/nginx-no-permission-to-bind-port-8090-but-it-binds-to-80-and-8080
# 만약 포트를 사용할 수 없는 경우 사용가능한 포트 확인 후
$ semanage port -l | grep http_port_t

# 포트등록 8090 사용 설정
$ semanage port -a -t http_port_t  -p tcp 8090

# 포트등록 8090 제거
$ semanage port -m -t http_port_t -p tcp 8090

# 방화벽 추가 centos 7
$ sudo firewall-cmd --permanent --zone=public --add-port=20000-20010/tcp

방화벽 Centos 7

https://www.manualfactory.net/10153

firewall-cmd --state

firewall-cmd --reload

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

firewall-cmd --add-service=ftp
firewall-cmd --remove-service=ftp

firewall-cmd --permanent --zone=public --add-port=21/tcp
firewall-cmd --permanent --zone=public --remove-port=21/tcp

$ sudo firewall-cmd --permanent --zone=public --add-port=20000-20010/tcp

ssh

$ ssh -p 포트 -l 계정 호스트

$ scp -P 포트 폴더및파일 계정@호스트:복사될경로

ssh 접속 정보 관리하기

http://www.oracloud.kr/post/ssh_config/

$ cd ~/.ssh
$ touch config
$ vim config

Host git
      HostName git.aintop.co.kr
      Port 18280
      User git
Host portal
      HostName portal.aintop.co.kr
      Post 18280
      User portal

# 소유자만 읽을 수 있도록 수정.
$ chmod 740 ./config

성능 테스트

https://blog.lael.be/post/4279

$ apt-get install sysbench

# CPU 테스트
$ sysbench --test=cpu --cpu-max-prime=20000 run

# memory Read Test
$ sysbench --test=memory --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=read run

# memory Write Test
$ sysbench --test=memory --memory-block-size=1K --memory-scope=global --memory-total-size=100G --memory-oper=write run

# 디스크 테스트
$ sysbench --test=fileio --file-total-size=8G prepare
$ sysbench --test=fileio --file-total-size=8G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run

# 테스트가 끝났으면 테스트 파일 지우기
$ sysbench --test=fileio --file-total-size=8G cleanup

yum 옵션 https://www.lesstif.com/pages/viewpage.action?pageId=6979667#yum%EC%A3%BC%EC%9A%94%EC%82%AC%EC%9A%A9%EB%B2%95%EB%B0%8F%EA%B3%A0%EA%B8%89%EC%82%AC%EC%9A%A9%EB%B2%95(history%EA%B4%80%EB%A6%AC,plugin%EC%82%AC%EC%9A%A9,%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98undo%EB%93%B1)-install

맥 전용

# 해당 포트 검색
$ lsof -i :8080
$ lsof -i -P | grep -i "listen"

# 터미널에서 현재 경로의 파인터 열기
$ open .