리눅스에서 실행할 명령어들을 작성해서 저장하는 파일이다. 예를 들어 date와 ls를 명령어를 파일에 같이 넣어서 새로운 명령어로 만들어버리면 한번에 date와 ls를 한번에 실행이 가능하다.
또한 조건문이나 반복문을 기술해서 사용할 수 있게끔 하는 것이다. 이렇게 하면 복잡하고 반복되는 것을 쉽게 처리가 가능하고 파일로 제작되어 다른 사람과 공유가 가능하다.
작성과정에는
이 있다.
먼저 셔뱅이란 어떤 셀을 선택하겠다는 의미로 사용하명 #!으로 표기한다. #!뒤에 사용할 셀의 경로를 적어주면된다. 우리는 bash를 사용하니 bash의 경로를 셔뱅뒤에 적어주면된다.
셔뱅을 적은다음 사용할 명령어들을 적어주면 된다.
root@345d3756f1ff:/# cat homels.sh
#!/bin/bash
ls -l // 목록보기
echo End Shell Script // 원하는 문구 출력
출력과 목록보기를 한번에 할 명령어를 만들었다.

모든 권한에 x가 없는 것을 확인 할 수 있다. 이렇게 되면 명령어를 만들어도 실행을 할 수 없으니 권한을 주어야한다.
root@345d3756f1ff:/# chmod +x homels.sh
root@345d3756f1ff:/# ls -l home*
-rwxr-xr-x 1 root root 40 Feb 26 00:23 homels.sh
x가 모두 생겼고 이제 사용이 가능하다. (+x만 하면 모든 권한에 x가 생긴다.)
실행할때는 만든 파일의 경로를 입력해주면 사용이 된다.
root@345d3756f1ff:/# ./homels.sh
total 84
drwxr-xr-x 1 root root 4096 Feb 20 20:43 bin
drwxr-xr-x 2 root root 4096 Apr 24 2018 boot
drwxr-xr-x 5 root root 360 Feb 26 00:14 dev
drwxr-xr-x 1 root root 4096 Feb 21 02:03 etc
drwxr-xr-x 1 root root 4096 Feb 21 01:31 home
-rwxr-xr-x 1 root root 40 Feb 26 00:23 homels.sh
drwxr-xr-x 1 root root 4096 May 23 2017 lib
drwxr-xr-x 2 root root 4096 May 30 2023 lib64
drwxr-xr-x 2 root root 4096 May 30 2023 media
drwxr-xr-x 2 root root 4096 May 30 2023 mnt
drwxr-xr-x 2 root root 4096 May 30 2023 opt
dr-xr-xr-x 245 root root 0 Feb 26 00:14 proc
drwx------ 1 root root 4096 Feb 26 00:23 root
drwxr-xr-x 5 root root 4096 May 30 2023 run
drwxr-xr-x 1 root root 4096 Feb 20 20:43 sbin
drwxr-xr-x 2 root root 4096 May 30 2023 srv
dr-xr-xr-x 11 root root 0 Feb 26 00:14 sys
drwxrwxrwt 1 root root 4096 Feb 20 21:01 tmp
drwxr-xr-x 1 root root 4096 May 30 2023 usr
drwxr-xr-x 1 root root 4096 May 30 2023 var
End Shell Script
root@345d3756f1ff:/#
명령어를 실행하니 경로의 목록과 "End Shell Script"라는 말이 출력되었다.
이번에는 변수를 이용해서 위의 과정을 해보자.
"변수=값"의 형태이고 사용할때는 "$변수"로 사용하면된다.
주의점
변수정의시 대입연산자 앞뒤로 공백이 있으면 안되고 에러가 난다.
"hello world"를 셀 변수에 넣고 echo로 출력해보자.

root@345d3756f1ff:/# vi hello.sh
root@345d3756f1ff:/# chmod +x hello.sh
root@345d3756f1ff:/# ./hello.sh
hello world
잘 출력된다.
셀변수에 date같은 일반 명령어도 넣어서 사용이 가능하다.
curdate=`date +%Y-%m-%d`
echo $curdate
변수에 명령어를 넣을때 역따옴표를 넣어주어야한다.
결과
root@345d3756f1ff:/# ./var.sh
2024-02-26
소스와 버전을 관리해주는 툴이며 이것을 통틀어 형상관리라고 한다. 업로드하면 버전별 파일 이력이 남으면 과거버전으로 돌아갈 수 있는 장점이 있다.
깃은 pc에 문서를 저장하는 "로컬 저장소(GIT)"만들고 인터넷에 올릴 "원격 저장소(Github)" 총 2개를 만든다. 자신의 컴퓨터에도 파일을 저장하고 원격에 그것을 올려 다른 사람과 공유가 가능하다. 원격과 로컬의 파일 이력은 같아야한다. 그래야 파일 충돌이 발생하지 않는다.
git 홈페이지에서 windows용 64bit를 다운받으면되고, 설치 창이 뜨면 모두 next 해주면된다.
깃허브도 토커처럼 초보자를 위해 gui를 지원한다.

깃허브 데스크탑 사이트에 들어가서 위 버튼을 누르고 다운로드받으면된다.
우측 위의 +버튼을 누르면 새로운 repository를 만들 수 있다.
다음과 같은 화면이 뜨는데 해당 설명에 맞춰서 원하는 설정을 맞춰주면 되고, readme파일은 해당 repository를 설명하는 파일이다. 다 했으면 "Create repository"를 눌러주면된다.
원격과 로컬을 결과적으로 일치시키는 작업을 통해 팀원들의 작업의 상황을 파악할 수 있고, 파일 충돌을 방지할 수 있다.

위 버튼을 눌러 GitHub에 있는 저장소를 pc에 Git으로 만들 수 있다.
만들어지면 다음과 같은 화면이 나타난다.
"show in explorer" 로칼저장소를 확인하는 버튼이고 "view on GitHub"는 깃허브를 확인하는 버튼이다.
로컬저장소에 새로운 텍스트파일을 만들었더니 changed file에 새로운 파일이 생겼다.
하지만 추가햇다고 모든 파일을 github에 올리진 않는다. 여기서 확정을 해야 올라간다.
택스트를 적는 곳에 팀원들이 파일의 내용을 알수있는 주석을 적어줄 수 있고, 밑에 "commit to main"버튼을 누르면 확정이 된다.

확정된 파일은 추가된 파일목록에서 사라지며, push origin을 누르면 GitHub에 올라가게된다.
"view on GitHub"를 눌러 확인해보니 파일이 잘 올라갔다.
폴더도 같은 방법으로 올리면 된다.
로컬 저장소에서 파일 삭제하면
다음과같이 데스크탑에서 변동사항이 생긴다. 나머지 절차인 커밋과 push는 파일 올리기와 똑같다.
폴더도 똑같이 하면된다.
삭제하면 안되는 파일을 삭제했을때 복구하는 방법을 알아보자.
복구는 history 탭에서 할 수 있다.
복구를 원하는 파일에 오른쪽클릭을해서 "Revert changes im commit"을 눌러주면 "Fetch origin"이 "Push origin"으로 바뀐다. 그걸 눌러주면 복구가 완료된다.
텍스트 파일이 복구되었다.
GitHub에서 repository의 settings에 들어간다. 가장밑에 dangerous zone에 delete를 해주고 절차를 따라 해주면된다.
pull을 이용하여 다른 팀원이 올린 파일을 당겨올 수 있다. 만약 파일을 올릴거라면 내 로칼저장소에 다른 사람이 원격저장소에 올린파일을 다 다운 받았는지를 먼저 확인하고 다 다운 받았으면 올려야한다. 아니면 파일충돌이 발생할 수 있다.
데스크탑에 Repository탭의 pull로 팀원이 올린 파일을 내려 받으면 된다.
로칼 저장소에도 파일이 잘 내려온 것을 확인 할 수 있다.
Git파일안에 또 Git파일을 만들면 에러가 발생한다.