개인 공부 목적 정리
참고사이트 (감사합니다!!)
1) 패키지 업데이트
sudo apt update
sudo apt upgrade -y
sudo reboot
2) 기본 패키지 설치
sudo apt install tree -y
sudo apt install unzip -y
sudo apt-get install vim
sudo apt-get install gcc
sudo apt-get install build-essential
sudo apt-get install python3-pip
- nvidia-smi : NVIDIA 정보 조회
- history : 명령어 로그 조회 # echo $HISTFILE 명령어를 통해 파일 위치 확인 후 조회할 수도 있음
- clear : 화면 정리
- cat /etc/issue : ubuntu 버전 조회
- whereis [패키지] : 찾고자 하는 패키지 위치 조회
- top : 스레드 현황 조회
- top -b -n 1 | grep zombie : 숫자만 간략히
- ps -ef | grep defunct | grep -v grep : 좀비스레드 조회
- sudo kill -9 / -15 [PID] : 좀비쓰레드 죽이기 # 9: 일반 종료, 15: 강제 종료
- df -h : ubuntu 남은 용량 확인
- sudo du -sh [파일 경로] : 디렉토리 파일 별 용량 조회
- last : 시스템 접속 기록 조회 (로그인 & 로그아웃)
- uname -n : 호스트 이름 출력
- grep [사용자이름] /etc/passwd : 기본 셀 정보 확인
1) 사용자
- cat /etc/passwd : 전체 사용자 조회
- sudo useradd [사용자이름] : 추가 세팅을 직접해야 함
- sudo adduser [사용자이름] - 경로 생성부터 비밀번호 설정까지 편하게 할 수 있음
- sudo deluser [사용자이름] - 사용자 삭제 (사용자가 접속중인 경우 삭제 불가)
- sudo usermod -aG sudo [사용자이름] : 해당 사용자에 관리자 권한 부여 (not in sudoers 오류 해결)
- sudo whoami : 내가 관리자 권한을 가지고 있는지 알 수 있음
- vi /etc/group에서 sudo 그룹 사용자 삭제
2) 그룹
- cat /etc/group - 현재 등록된 그룹 조회
- groupadd (-g GID) [그룹 이름] - 그룹 추가하기 # -g: 원하는 그룹 번호 지정
- groupmod -n group-2 group-1 - group-1 -> group-2로 변경
- sudo usermod -a -G [그룹 이름][사용자 이름] - 그룹에 사용자 추가
- sudo usermod -g / -G [그룹 이름][사용자 이름] - 사용자 그룹 변경 # -g: 기본 그룹 변경, -G: 추가 그룹 변경
- sudo usermod -L [사용자이름] - 사용자 패스워드에 Lock을 걸어 로그인을 제한
- sudo usermod -U [사용자이름] - 사용자에 걸린 Lock을 해제
- sudo usermod -d [사용자이름] - 홈디렉토리 변경
- sudo gpasswd -A [사용자이름][그룹이름] - 사용자에 그룹의 관리자 권한 부여
=> root 사용자가 특정 사용자에 그룹의 관리자 권한을 부여한 경우, 해당 사용자로 로그인 후
- gpasswd [그룹이름][패스워드] - 그룹의 패스워드 설정
- gpasswd -a [사용자이름][그룹이름] - 그룹에 사용자 추가
- sudo chown (-R) [소유자 이름]:[그룹 이름] [폴더 이름]
=> 폴더의 소유자, 그룹 소유권 변경 # -R: 하위 파일에도 모두 적용- sudo chmod (-R) xxx [폴더 이름]
=> 해당 폴더의 권한 변경 # xxx: 소유자, 그룹, 일반 사용자 순서 (000, 770, ...)

출처 : https://itworld.gmax8.com/25
1) 사이트
2) 서버에 이미 Anaconda 설치된 경우 - 경로 설정
whereis conda
vi ~/.bashrc
마지막 줄에 export PATH=[conda 경로]:PATH
source ~/.bashrc # 파일 업데이트
conda --version # 잘 동작하는지 확인
3) 없는 경우
0)의 사이트에서 관련 파일을 다운로드하고, 서버에 업로드
4) 가상환경 관련 명령어
conda env list : 가상환경 조회
conda create -n [가상환경이름] python=[버전] : 가상환경 생성
conda activate [가상환경이름] : 가상환경 활성화
conda deactivate : 가상환경 비활성화
conda remove --name [가상환경이름] --all : 가상환경 삭제
conda list --export > [경로/파일명.txt] : 지정한 경로에 가상환경에 설치된 라이브러리들을 파일로 저장
conda env export -n [가상환경이름] > [가상환경이름.yml] : 가상환경의 이름과 패키지들을 추출
conda env create -f [가상환경이름.yml] : 추출한 가상환경을 가지고 새로운 가상환경 생성
conda create -n [새로운 가상환경이름] --clone [기존 가상환경이름] : 가상환경 복제
1) git 설치 및 초기 설정
sudo apt-get install git-core # git 설치
git --version # git 버전 확인
git config --global user.email [github 이메일주소] # ex) A@naver.com
git config --global user.name [github 사용자이름] # ex) A
git config -l # git config 정보 확인
2) git 연동
cd [github와 연동할 디렉토리]
git init # 새로운 git 로컬 저장소로 지정
3) git-lfs설치
sudo apt install curl
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get -y install git-lfs
sudo apt update
sudo apt -y install git-lfs
1) 설치
pip install jupyter notebook
jupyter notebook --generate-config : 환경파일 생성
jupyter notebook password : 비밀번호 설정
2) 접속
jupyter notebook --ip=[ip주소] --port=[포트번호] --allow-root
=> ip주소는 보통 0.0.0.0 입력해서 접속함
pip install tensorflow-gpu 2.4.0
pip install keras
pip install environment_kernels
pip install pandas
pip install scikit-learn
conda uninstall pytorch
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c p
pip install transformers
git clone https://github.com/monologg/KoELECTRA.git
pip install git+https://git@github.com/SKTBrain/KoBERT.git@master
1) 설치
sudo apt install mysql-server -y : mysql 설치
sudo ufw allow mysql : 외부 접속 기능 설정 (포트 3306 오픈)
sudo systemctl start mysql : Mysql 실행
sudo systemctl enable mysql : Mysql 접속 허용
sudo service mysql stop : MySQL 서버 중지
sudo service mysql start : MySQL 서버 실행
2) 사용자, 테이블, 데이터베이스 조회
sudo /usr/bin/mysql -u root -p (or) sudo mysql -u root -p : mysql 서버 접속 (비밀번호: ubuntu 접속 비밀번호)
SHOW DATABASES; : 데이터베이스 조회
SELECT DATABASE(); : 현재 사용중인 데이터베이스 조회
SELECT user, host from mysql.user; : 사용자 조회
USE [데이터베이스명]; : 사용중인 데이터베이스 변경
SHOW TABLES; : 데이터베이스에 추가되어 있는 테이블 조회
DESC [테이블명]; : 테이블의 스키마 조회
SHOW PROCEDURE STATUS; : 프로시저 조회
3) 데이터베이스, 테이블, 사용자 생성
# root@localhost 비밀번호 설정
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new-password';
CREATE USER '[사용자이름]' identified by '[비밀번호]'; : mysql 사용자 생성
- '[사용자 이름]'@'%': 모든 원격지에서 접속 가능
- '[사용자 이름]'@'192.168.%': 특정 ip에서 접속 가능
ALTER USER '[사용자이름']@[server명] IDENTIFIED BY '[비밀번호]'; : 사용자 비밀번호 변경
DROP USER [user명]@[server명]; : mysql 사용자 삭제
4) Python과 연동
conda install pymysql # python에서 MySQL 접속을 위한 툴 설치
# python 파일 실행, MySQL 접속
$ conn = pymsql.connect(host='호스트명', user='사용자명', password='비밀번호', db='데이터베이스이름', charset='utf8')$ curs = conn.cursor() # 커서 생성
$ sql = 'sql 구문;' # 실행할 SQL문 작성
$ curs.execute(sql) # SQL문 실행
$ curs.fetchall() # SQL 문이 SELECT, DELETE, INSERT 등인 경우 실행
$ conn.close() # 접속 종료