Ubuntu 서버 세팅 명령어

Caleb·2022년 9월 30일

Ubuntu

목록 보기
2/2

개인 공부 목적 정리
참고사이트 (감사합니다!!)

1.초기 설정

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

2. 유용한 명령어

  • 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 : 기본 셀 정보 확인

3. 사용자 추가 및 관리

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 [사용자이름][그룹이름] - 그룹에 사용자 추가

3. 접근 권한 설정

  • sudo chown (-R) [소유자 이름]:[그룹 이름] [폴더 이름]
    => 폴더의 소유자, 그룹 소유권 변경 # -R: 하위 파일에도 모두 적용
  • sudo chmod (-R) xxx [폴더 이름]
    => 해당 폴더의 권한 변경 # xxx: 소유자, 그룹, 일반 사용자 순서 (000, 770, ...)


출처 : https://itworld.gmax8.com/25


4. Anaconda

1) 사이트

https://www.anaconda.com/products/distribution

2) 서버에 이미 Anaconda 설치된 경우 - 경로 설정

whereis conda
vi ~/.bashrc
마지막 줄에 export PATH=[conda 경로]:PATH추가후:wqex)exportPATH=/home/ubuntu/anaconda3/bin/:PATH 추가 후 :wq ex) export PATH=/home/ubuntu/anaconda3/bin/: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 [기존 가상환경이름] : 가상환경 복제


5. github

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


6. 쥬피터 노트북

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 입력해서 접속함


7. KoBERT, KoELECTRA 실행환경 구축

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


8. MySQL

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() # 접속 종료

profile
개발꿈나무

0개의 댓글