리눅스 사용시 자주 사용하는
명령어를 기록해놓는 공간
1. Port 개방
$ iptables -nL
- 방화벽 설정 정보 확인
$ iptables -I INPUT 1 -p tcp --dport 6006 -j ACCEPT
- 특정포트 외부에서 접속할 수 있도록 열기
- 외부에서 들어오는(INBOUND) TCP 포트 6006 연결을 허용한다는 의미
- 재부팅 시 초기화
$ iptables -L -v
- 설정 조회
$ vi /etc/iptables/rules.v4
- 재부팅시 초기화되지 않으려면 스크립트 파일에 명시해야한다
2. Nvidia-smi 실시간 정보확인
$ watch -d -n 0.5 nvidia-smi
- watch로 실시간 변동 정보 확인 가능
- '-d' 옵션 업데이트 시 하이라이트 정보 표시
- '-n' 몇 초 단위로 업데이트 되는지 설정 (현재는 0.5초 간격)
3. CPU 코어 갯수 확인
- CPU 코어 전체 개수
$ grep -c processor /proc/cpuinfo
- 물리적인 CPU 수
$ grep ^processor /proc/cpuinfo | wc –l
- CPU당 물리 코어 수
$ grep 'cpu cores' /proc/cpuinfo | tail –1
4. 특정 폴더 아래 파일 갯수 확인
$ find . -type f | wc -l
- 현재 폴더 이하 파일 갯수 확인
$ find ./test/ -type f | wc -l
- TEST 폴더 이하 파일 갯수 확인
5. 백그라운드 실행 ( nohup 사용법 )
$ nohup python 실행파일이름.py &
- 프로세스 백그라운드 실행 명령어
- 실행하면 해당 폴더에 nohup.out 파일 생성
$ ps -ef | grep 실행파일(python)
- 데몬 형식으로 실행 중
# 로그 데이터 확인
$ vi nohup.out
# 로그 데이터 실시간 확인
$ tail -f nohup.out
- 백그라운드로 실행 중인 로그 데이터 확인
6. SHELL 실행 시 설정한 PATH 유지
$ vi ~/.bashrc
export PATH (추가 해주기)
7. 원격 서버에서 파일/폴더 가져오기/보내기
- 원격 서버에 있는 파일/폴더 현재서버로 가져오기
$ scp -r 원격서버IP:/이동할/파일의/경로/입력 [현재서버에 옮길 위치 입력]
# 위 명령어를 치는 위치로 가져오고 싶을 때는 [] 위치에 . 만 입력해주면 된다
8. CURL 요청 테스트
curl -X POST -H "Content-Type: application/json" -d "{요청보내는 키값}" http://IP주소:포트/요청주소
- 요청보내는 키값에는 json 형태로 키값이 입력된다
- 특수문자를 구분하는 \ 구분자를 사용해야한다 (예를들면, 쌍따옴표 앞에 표시해준다)
# {\"departdone\": \"2019-08-28\", \"userinfo\": 6, \"lognum\":2}" >> 이런 형태로 작성해줘야한다.
9. 리눅스 mount / unmount
- 리눅스에서 특정 하드웨어 장치를 어떤 위치에 연결해주는데 이런 과정을 마운트라고 한다.
# 마운트 시킬 때
$ mount -t <타입> <장치파일> <마운트포인트>
# 마운트 해지 시
$ umount <마운트포인트>
- 클라우드에서 제공하는 마운트의 경우는 해당 명령어를 주기 때문에 복사해서 그대로 사용하면 된다
<Trouble Shooting>
1) mount 시 에러 발행 : for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount. helper program
$ sudo apt install nfs-common
- 위 패키지 설치 하면 마운트 된다.
2) umount /mnt 시 에러 발생 : "device is busy"
$ apt install -y fuser
$ fuser -mv <the directory of a mount point>
- 위와 같이 하면 mount가 바로 해지된다.
10. Ubuntu 패키지 파일(.deb) 설치 및 제거
- 설치
$ dpkg -i [패키지_이름]
- 설치 상태 확인
$ dpkg -s [패키지_이름]
- 삭제 (관련 설정 파일 포함)
$ dpkg -P [패키지_이름]
- 삭제 (관련 설정 파일 제거)
$ dpkg -r [패키지_이름]