
~/.bashrc : 인터랙티브 셸(일반 터미널) 설정~/.bash_profile : 로그인 셸 설정# 전체 보기
alias
# 임시 등록
alias ll='ls -al'
unalias ll
# 영구 등록
echo "alias ll='ls -al'" >> ~/.bashrc && source ~/.bashrc
type ls
type -a cd echo exit
set # 현재 셸 변수 모두 보기
set -o noclobber # 기존 파일 덮어쓰기 방지
set +o noclobber
shopt # 옵션 목록
shopt -s globstar # ** 패턴 재귀 활성화
shopt -u globstar
printenv # 전체
printenv PATH # 특정 키
export MY_VAR="Hello"
unset MY_VAR
# 영구 등록
echo "export MY_VAR='Hello World'" >> ~/.bashrc && source ~/.bashrc
vim test.sh
#!/bin/bash
echo 'ohgiraffers directory'
cd /home/ohgiraffers
ls -l
chmod +x test.sh
./test.sh # 현재 디렉토리에서 실행
source ./test.sh # 현재 쉘에서 실행(셔뱅 무시)
# 시스템 공용
sudo mv test.sh /usr/local/bin/ && chmod +x /usr/local/bin/test.sh
test.sh
# 사용자 폴더 사용
mkdir -p ~/scripts && mv test.sh ~/scripts/
echo 'export PATH=$HOME/scripts:$PATH' >> ~/.bashrc && source ~/.bashrc
# 한 줄 여러 명령
echo "Hello"; echo "World"
# 줄바꿈
echo "긴 명령어입니다. \
줄바꿈으로 가독성 ↑"
# 주석
# 이 줄은 실행되지 않습니다.
# 변수
name="Ohgiraffers"
echo "Hello, $name" # 큰따옴표: 변수 확장 O
echo 'Hello, $name' # 작은따옴표: 변수 확장 X
# 명령 치환
today=$(date)
# 스크립트 인자
# $1, $2 ... / 개수: $# / 전체: $@, $*
# if
read -p "숫자: " n
if [ "$n" -gt 10 ]; then echo "10 초과"; else echo "10 이하"; fi
# 숫자: -eq -ne -gt -lt -ge -le
# 문자열: = != -z -n
# 파일: -e -d -f -r -w -x
# for
for x in A B C; do echo $x; done
# case
read -p "색상: " c
case $c in red) echo R ;; blue) echo B ;; *) echo ? ;; esac
# while
i=1; while [ $i -le 3 ]; do echo $i; i=$((i+1)); done
# 함수
hello(){ echo "안녕하세요, $1님!"; }
hello "Ohgiraffers"
sudo apt update && sudo apt upgrade
sudo apt install mariadb-server mariadb-client
sudo mysql_secure_installation
# root 비번 설정, 익명 삭제, root 원격 금지, test DB 삭제, 적용
sudo mariadb -u root -p
-- 계정/DB/권한
CREATE USER 'master'@'%' IDENTIFIED BY 'master';
CREATE DATABASE menudb;
GRANT ALL PRIVILEGES ON *.* TO 'master'@'%';
FLUSH PRIVILEGES;
-- 확인
SHOW DATABASES;
USE mysql; SELECT Host,User FROM user;
SHOW GRANTS FOR 'master'@'%';
SELECT Host,User FROM mysql.user;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mariadb';
FLUSH PRIVILEGES;
sudo apt-get install -y net-tools
ifconfig # inet 주소 확인
sudo ufw allow 3306/tcp # MariaDB 포트 오픈
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
# bind-address = 0.0.0.0 로 설정
# 재시작 (환경에 따라 명령 다를 수 있음)
sudo service mysqld restart # 또는
# sudo service mariadb restart / sudo systemctl restart mariadb
server-id, log_bin 등) → 재시작sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
sudo service mysqld restart
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'slave';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
-- File(예: mysql-bin.000009), Position(예: 2060)
server-id) → 재시작sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
sudo service mysqld restart
STOP SLAVE;
CHANGE MASTER TO
MASTER_HOST='마스터_IP',
MASTER_PORT=3306,
MASTER_USER='master',
MASTER_PASSWORD='master',
MASTER_LOG_FILE='mysql-bin.000009',
MASTER_LOG_POS=2060;
START SLAVE;
SHOW SLAVE STATUS\G -- 터미널
-- HeidSQL 등 GUI에선: SHOW SLAVE STATUS;
UPDATE mysql.user SET super_priv='N' WHERE user <> 'root';
FLUSH PRIVILEGES;
-- 클라이언트 재접속 권장
주의
MASTER_LOG_FILE/POS는 Master의 실제 값으로 설정- 서버마다
server-id는 고유해야 함- 방화벽/네트워크/계정 권한 점검 필수