728x90

실행했을 때

원하는 저장공간에 

오늘 날짜로 파일명이 만들어지는

스크립트

 

 

순서는 이렇게..

 

mkdir 폴더생성

vi 실행파일.sh

스크립트 적기

실행권한설정

실행하기

 

 

 

스크립트

 

date 날짜띄우는명령어 YYMMDD 변수에 담아줘

(date_log로 폴더가 저장됐으면 하는 )원하는 경로 DIR_LOG 변수에 담아줘

변수사용해 오늘날짜 뜨는 파일명 FILE_NAME 라고

 

만약에 DIR_LOG가 이 디렉토리아니면(저 경로에 date_log없으면)

실행

DIR_LOG 만들어

파일내용안에 date날짜 넣어

 

아니면 (만약 저 경로에 date_log있으면)

"이름같은폴더가 있음" 뜨게 해

끝.

 

#!/bin/bash

YYMMDD=`date +"%y%m%d"`
DIR_LOG="/home/`whoami`/date_log"
FILE_NAME="Date_${YYMMDD}.txt"
if [ ! -d $DIR_LOG ]
then
   mkdir $DIR_LOG
   `date > ${DIR_LOG}/${FILE_NAME}`
else
   echo "이름이 같은 폴더가 이미 있음."
fi

 

 

 

 

특수문자  >,<,>> 는 입출력의 방향바꾸는 특수문자

명령1>파일이름
(파일의 내용을 명령1로 바꿉니다.)

명령1>>파일이름 
(파일의 내용에 명령1을 추가합니다)
https://hack-cracker.tistory.com/26

쉘 스크립트 if문 옵션 -d

파일조건
[-d file] file이 디렉토리이면 참이다
https://webstone.tistory.com/79

 

 

에러 해결

처음에 

DIR_LOG="/home/`whoami`/date_log"

이렇게 하니까 안나옴

syusmm 내계정넣어주면 나오는데.

 

`whoami`는 현재 사용자의 이름을 출력하는 명령어

 

 

안됐던 이유

 

 

root에서 

/home/`whoami`/ 찾으려하니까 안나오는 거임

 

 

나와서 이렇게 보면

home안에 계정들 있지

 

 

 

 

syusmm 계정에서는 실행 가능!

 

 

 

다시 해보면

syusmm계정에서

실행(은 되지만 이미 있다고뜸)

 

root로 가면 안됨

 

 

sudo는 현재 계정에서 단순히 root의 권한만 빌리는 것

su는 현재 계정에서 root계정으로 전환하는 명령어

 

su는 root계정의 환경변수를 가져오지 않고 현재 계정의 환경변수를 사용하게 될 것이고

su -는 root계정의 환경변수까지 모두 가져와 root계정에 접근하게 되는 것.

https://jootc.com/p/20170122130

 

 

 

 

+ 안됐던 이유2

실행권한 설정이 안되어있었음

 

권한 설정

r읽기

w쓰기

x실행

 

소유자에게 실행권한 부여함

chmod u+x file.txt 

리눅스 권한설정

숫자로 한번에 권한 변경해도 됨
chmod 000 test.c
사용자, 그룹, 다른사용자의 모든 권한을 제거한다.
chmod 777 test.c
사용자, 그룹, 다른사용자의 모든 권한을 추가한다.
chmod 700 test.c
사용자에게만 모든 권한을 준다.
chmod 744 test.c
사용자에게는 모든 권한을 주고, 그룹, 다른 사용자에게는 읽기 권한만 준다

744라는 숫자는 이렇게 해석할 수 있다.

사용자
r w x
4 + 2 + 1 = 7

그룹
r - - 
4

다른 사용자
r - - 
4
https://withcoding.com/103
https://nachwon.github.io/shell-chmod/

 

 

 

 

 

728x90
728x90

 

상황: 

우분투 연결안된 비주얼코드창에서 마리아db연결하겠다고 삽질하고 있었던 것을 깨닫

 

마리아db 이미 깔려있고 리눅스창에서 작업해야되는거니까 mysql 워크벤치 연동은 의미없다는 것을 깨닫

 

비주얼코드 우분트연결 창 켜서 

폴더만들어서 안에 로그인되는 코드넣어놓고 작업시작

npm i

디비 생성

 

역시 같은 에러.

이 오류에 경우

 

1. 비번 틀렷을 경우

2. 권한설정이 안됐을 경우.

3. 기타 등등 있대서

 

비번은 바꿔주고 확인해봤으니 아니고

 

 

 

비번바꾸기

use mysql;

사용자와 비밀번호 출력하기

select user, password from user;

abc 사용자의 비밀번호를 1234로 설정

update user set password=password('1234') where user='abc';

변경 사항 적용

flush privileges;

 

 

 

 

 

 

권한설정이 문제인가 해서

 

mariadb 계정 권한설정

MariaDB [mysql]> grant all privileges on *.* to 'test'@'localhost' with grant option; Query OK, 0 rows affected (0.002 sec)

https://94mogi.tistory.com/7

바꿔봤는데도 안됐음 

 

 

우분투 파일 권한 설정

이 문젠가 싶어서 그것도 해봄 

하위폴더까지 다 권한줌

[root@~/]# chmod 755 -R /폴더명

777도 해봄(이거는 보안상 위험할 수 있대서 다시 755로 바꿨다, 물론 에러 원인은 아니었지만)

 

(이거 개념 나중에 참고하삼 https://withcoding.com/103)

연산자 설명 배리 굿https://nachwon.github.io/shell-chmod/

 

[Shell] chmod - 파일 및 폴더의 권한 설정

chmod 셸 명령어는 파일 또는 폴더의 권한을 변경할 때 사용한다.

nachwon.github.io

 

 

여전히 같은 에러 뜸

 

이번에는 계정이 문젠가 싶어서 

기존계정 삭제하고 다시 만들어봄

 

 

 

mariadb 계정 삭제

 

use mysql

DROP USER '계정'@'접속대역';

 

새로 만들고

권한설정도 하고

 

플러그인이 문제인가 싶어서 해봄

MariaDB [mysql]>  update user set plugin='mysql_native_password' where user='mariatest';

확인

MariaDB [mysql]> select user,host,plugin from mysql.user;

 

 

이걸로 해봤는데도 안됨

 

 

 

 

 

혹시나해서 비밀번호 초기화 해봄

(및 보안강화를 위한 설정명령어, 라고 함.)

 

sudo mysql_secure_installation

이후에 우분투 켜서 다시 접속하려는데 안됨

mysql -u root -p

sudo mysql

이거 둘다 안됨

 

 

 

 

mariadb들어갈때 

sudo mysql해서 들어가는데 

에러뜸

 

 

새로운 에러 등장~~

에러 

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

 

 

 

service mysql start 

sudo su-로 들어가서 하니까 시작되고

나와서

sudo mysql하니까 접속됨

 

 

 

들어와서 db생성 실행해보니

 

역시 안되고

 

 

엇 생각해보니까

이 mariadb 포트가 3307인데 

config에 포트 추가로 넣은거 걍 아무거나 넣어본거였거든

 

똑같은 포트번호 3307으로 해봄

 

 

 

 

와우 

생성잘됨

 

 

삽질2 포트번호가 달라서 그랬던거임

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

생각해보니까 이 에러도

 

전에 mariadb깔고 실행할때 떴던 에러인데

기존에 깔려있는 mysql이 3306포트를 써서 mariadb량 겹쳐서 위에 에러가 떴거든

그때 mariadb포트를 3307으로 바꿔줌

(mariadb설치시 위 에러해결 이거 참고하슈 : https://codecoco.tistory.com/58?category=524414

 

 

 

db안에 회원가입한거 잘들어왔나 확인

 

응잘들어옴 로그인도 잘됨

 

 

 

mariadb

로그인하기 db생성하기 

 

끝~~

 

 

(아근데 로그인하는 코드자체 제로초보고 다 따라한거라 나중에 해봐야겠다...

혼자 해보려다가 잘안됐음.. 여기서 시간 많이 먹긴함ㅋ)

 

 

728x90
728x90

 

1) MariaDB 접속
# mysql -u root -p
Enter password: 패스워드 입력

2) Database 리스트 확인
$ show databases;

2-1) 없다면 생성
$ create database DB명;

 

3) 기본으로 생성되어 있는 mysql 데이터베이스를 사용한다
$ use mysql;



4) mysql의 user 테이블에서 이미 생성된 계정 확인
$ select host, user from user;



출처: https://postitforhooney.tistory.com/entry/MySql-Mariadb-MYsql-사용자-권한주기-및-확인 [PostIT]

 

이렇게 해서

우분투 안에 마리아디비 설치해서 이렇게 계정있는데

 

 

얘를 어떻게 nodejs랑 연결하나..

 

 

mysql이랑 같은거면 그 창으로 볼 수 없나..mysql했던것처럼 npx sequelize db:create 하면 db생성되나..

 

 

https://postitforhooney.tistory.com/entry/MySql-Mariadb-MYsql-%EC%82%AC%EC%9A%A9%EC%9E%90-%EA%B6%8C%ED%95%9C%EC%A3%BC%EA%B8%B0-%EB%B0%8F-%ED%99%95%EC%9D%B8

 

[MySql] Mariadb, MYsql 사용자 권한주기 및 확인

 # MariaDB에 사용자 권한주기 1) MariaDB 접속 # mysql -u root -p Enter password: 패스워드 입력 2) Database 리스트 확인 $ show databases; 2-1) 없다면 생성 $ create database DB명; 3) 기본으로 생성되..

postitforhooney.tistory.com

 

로그인 프론트하는것도 계속 모듈못찾길래

이전에 해놓은 nodebird 코드 가져다가 했지만 역시 모듈못찾음

일단 mariadb와 nodejs 연결이전에 확인 어떻게 하는지부터 봐야겠음

 

 

 

 

 

헷갈리는거

 

기존에 깔아둔 

mysql이랑 mariadb같은거임?

mysql workbench에는 mariadb에서 생성된 db애들 없던데?

 

 

 

 

헷갈려서 찾아보기로 함

 

  • MySQL : 오라클에서 관리하는 오픈소스 데이터베이스, 하지만 2중 라이선스로 커뮤니티, 엔터프라이즈 2가지 버전이 존재(커뮤니티 버전에서는 일부 기능이 제한됩니다) 
  • MariaDB : MariaDB재단에서 관리하는 오픈소스 데이터베이스, GPL(General Public License) v2 라이선스로 자유로운 사용 가능

라고 함. 출처: https://mentha2.tistory.com/42 [행궁동 데이터 엔지니어]

 

MySQL Workbench(워크벤치)를 이용한 MariaDB 테이블 생성

MySQL WorkBench(워크벤치)를 이용한 MariaDB 테이블 생성 방법입니다. MySQL과 MariaDB는 다른 DBMS(Database Management System)인데 MySQL용 Workbench로 MariaDB 테이블을 생성한다니 좀 이상하죠? MariaDB는..

mentha2.tistory.com

 

오 그리고

기존에 깔아둔 MySQL WorkBench(워크벤치)에서 mariaedb쓸 수 있다고 함

 

 

 

 

해보니까 

밑에와 같은 코드글있는 test.sql 생성됨

 

 

이 코드 줄을 우분투에 깔린 마리아db에 넣어주니까

오 생성됐다

 

 

엥 마지막은 에러뜨네

 

 

그래도 필드안까지 떠.

 

 

그래도 이건 여전히 우분투창으로 확인하는거고

워크벤치에서 어떻게 보나..

 

 

 

흠...읽다가https://ing-yeo.net/2020/02/study-nodejs-database-mariadb/

 

 

 

 

https://docs.microsoft.com/ko-kr/azure/mariadb/connect-workbench

 

빠른 시작: MySQL Workbench 연결 - Azure Database for MariaDB

이 빠른 시작에서는 Azure Database for MariaDB에서 데이터를 연결하고 쿼리하는 데 MySQL Workbench를 사용하는 단계를 제공합니다.

docs.microsoft.com

이거보면서

워크벤치에서

database 눌러서

새 연결connections으로 만들어봤음

 

 

생기긴 했는데

된걸까?

 

오 된거네

우분트 마리아db에서 만든 거

이안에 생성됨

 

 

 

 

 

 

권한설정하면 된다길래

 

 

 

근데 아직 안됨요

 

 

 

 

 

암호화된 비번보고

그게 비번인줄 알고 쉬운거로 바꿔보려함ㅋㅋㅋ(https://brunch.co.kr/@artiveloper/21)

 

MariaDB 비밀번호, 권한 설정

데이터베이스 초기 비밀번호, 권한 설정 | MySQL이나 MariaDB 는 초기 설치 시, 루트 계정의 비밀번호 세팅을 해줘야한다. 3가지 방법이 있다. 1.  root 계정 접속 후, mysql database 의 user table 에서 비

brunch.co.kr

https://www.codingfactory.net/11437

 

 

 

 

 

내 프로젝트 창에 이거 깔고..

npm i mariadb

하고 

에러나는거 일단 주석처리해놓음

npm start

 

 

https://gollumnima.github.io/posts/nodeJS_4

 

 

허선생님과 함께하는 Maria DB로 데이터 만들기와 Node.js에서 적용 - 둘둘`s dooreplay!

Maria db 설치하기 brew install mariadb 명령어로 설치! 서버 시작 : mysql.server start 서버 멈춤 : mysql.server stop 실행중인 서버 상태확인 : mysql.server status 접속 : mysql -uroot 스크롤을 내리면 나오는 캡쳐들이

gollumnima.github.io

이거 해보기..

 

아.

생각해보니까

지금까지 비주얼코드에서 mariadb쓰려고 했음

 

내가 해야되는거는 리눅스에서 작업해야되는건데!!!

 

리눅스 우분투로 로그인코드 복사해서 넣어주고 다시 시작!!

728x90
728x90

우분투 vscode연동

https://ropiens.tistory.com/156

 

WSL2 Ubuntu VScode 연동

들어가기에 앞서 윈도우에서 리눅스를 가상환경을 지원해주기 시작하면서 컴퓨터에 듀얼부팅과 같은 불편한 작업이 없어져서 좋아졌지만, 안타깝게도 우리가 눈앞에 마주한 것은 검은색 바탕

ropiens.tistory.com

 

https://evandde.github.io/vscode-wsl/

 

 

 

 

vscode에서 작업하는 법

 

 

 

 

오픈폴더눌러서

 

내 계정으로 

이부분 놓쳤었는데 알려줌..후..

728x90
728x90

멀티 스크립트 작성하기

 

홈계정 들어가서 

/home/내계쩡

 

디렉토리 만들어

mkdir 이름

 

주석은 표시 안돼

빈베이스에 쓴다 이말임 걍

날짜 뜨고

whoami  

(로컬 시스템에 현재 로그온 사용자에 대 한 사용자, 그룹 및 권한 정보를 표시 합니다. 매개 변수 없이 사용 하는 경우 whoami 현재 도메인 및 사용자 이름을 표시 합니다.)

 

cat 으로 쓴거 확인

 

아직 색이 흰색임

 

 

권한설정해줘야함 

색바뀌었어

 

위에꺼랑 비교해보면 

x생김

실행가능해진거야~~

 

 

이렇게 할 수도 있음 

x추가로 생김

이제 그룹사용자도 가능하고 외부유저도 사용가능

 

(나 rwx 여기 개념 다시 봐야겠다잉 3개로 끊어서 뭐시기였는지 기억이 안나)

 

 

실행해보면

 

 

echo

에코써서 우리가 어떤 명령어 쓰고 싶었는지 보기 편하게

 

 

문자내 따옴표는

 

작은 따옴표 쓰고 싶으면

"let's play"

큰 따옴표 쓰고 싶으면

'"what"'

 

이렇게 반대걸로 감싸주면 됨

 

 

 

변수처럼 쓰는법 

(근데 나는 person 이거 비어서 나오던데...아무것도 안넣어서 그런거임?)

 

 

 

 

 

 

아까 readPERSON

이런 식으로 메모리..사용..

램 사용

필요한 만큼 메모리를 할당받아서 거기에 이름붙여서 사용하고 있ㅇㅁ

사용할때는 달러 표시 붙여서 메모리 주소에 있는값을 출력하도록하는 문법임...음 뭔소리인지 모르겠니?

 

야야 이후에는 이것좀 보자 야

https://judo0179.tistory.com/114

 

Shell Script 변수

본 문서는 https://www.tutorialspoint.com/ 에서 제공하는 UNIX / LINUX 쉘 튜토리얼을 참고했다. Extended Shell Scripts 쉘 스크립트를 수행할 작업과 시기를 알려주는 필수 구성요소가 필요하다. 대부분의 쉘..

judo0179.tistory.com

 

 

 

읽기 전용으로 한 변수는 수정도 안되고 unset도 안됨요

 

 

 

변수 종류 이렇게 네가지 있음

쉘에서 지정한 모든 변수는 기본적으로 전역변수

지역변수 쓰고 싶으면 로컬이라는 키워드를 써야 지역변수가 됨

 

환경변수라는거는 쉘스크립터를 통해서 작성된 프로그램이

우리가 동작시켯을 때 잘되기 위해서 사용되는 변수

 

 

헤이 이거봐유

https://devpouch.tistory.com/125

 

[linux] 환경변수 설정, 확인 및 해제 명령어

리눅스 환경변수를 적용하기 위해서는 크게 일시적으로 적용하는 방법과 영구적으로 적용하는 방법으로 나뉜다. 아래 내용은 bash 쉘 기준으로 작성되었다. 리눅스 환경변수 일시 적용 $ export 환

devpouch.tistory.com

윈도우에서도 환경변수 설정하는거 있었자나

 

컴 피씨에 속성. 고급시스템설정

리눅스도 환경설정이 있다는거 ~~

 

 

 

 

 

 

변수의 값을 이런식으로 넣을 수 있을까?

 

 

이렇게 붙여야 값이 전달 된다

변수의 띄어쓰기 때뭉네 안됏어

 

 

 

 

연산자로 

 

 

 

명령어 안에 넣기

변수에다가 명령어 저장

어쩌구저쩌구 

ls -al 실행돼서 값들 나옴

 

728x90
728x90

커널kernel과 사용자간의 다리역할

사용자가 시스템에 로그인 시 각 사용자에게 설정된 쉘이 부여

 

쉘종류

쉘 확인하기 

echo $SHELL

대문자로 해야됨요

 

bash shell 예약 변수

 

리눅스 쉘은 

xterm에서 구동된다

bash shell프롬프트 구성

 

리눅스 환경에서는 사용자마다 다른 쉘을 지정할 수 있다

 

쉘확인해보기

echo $SHELL

cat /etc/shells

 

어떤 쉘이 쓰고있나 확인 etc 안에.

여기 있는 걸로 골라서 바꿔 쓸 수 있다는 뜻임

 

쉘 바꾸기

chsh  (체인지 쉘)

바꿀애를 저렇게 넣어주면 됨

현재는 bash를 쓰지만 

dash로 바꾸고 싶으면 

/bin/dash

 

창 껐다가 켜야 적용됨

다시 켜서

 

dash는 앞에 애들이 안보이는 쉘

 

다시 바꿔서 원래꺼 쓰자~~

 

 

 

에러 

su: failed to execute /bin/bash/: Not a directory

나도 해보는데 이상하게 하고 나서 

sudo su - 가 안됐음

 

bash로 바꾸긴 했는데 (지금보니까 입력한 /bin/bash는 문제가 없는데 이전에 잘못넣었나봄 )

이제 슈퍼모드로 쓸라고 했는데 안돼

su 안돼

 

해결어떻게 했냐

sudo vi /etc/passwd

들어가면 

안에 계정 잔뜩 보임

 

거기 보니까 루트에 bash옆에 슬래시 있었음

i로 수정모드로 슬래시 지워줌

 

 

그러니까 잘됨~~

 

 

쉘 여러 명령 사용

 

쉘 한주에 255자까지 가능 명령어.

복잡한 명령어를 만들어놓은걸

쉡스크립트 만들어 놓으면 반복해서 사용할수 있다

 

;

여러 명령어 쓸때 세미콜론; 으로 구분함

성공,실패와 관련없이 전부 실행

명령1; 명령2;

 

 

&&

 

실패하면 그 뒤 명령어는 실행하지 않음

 

 

 

 

 

 

728x90

+ Recent posts