쉘이란?
쉘은 명령, 프로그램 및 쉘 스크립트를 실행할 수 있는 인터페이스인 명령줄 인터프리터입니다. 쉘은 커널과 분리된 별도의 프로그램으로 여러 종류가 있다. 쉘 스크립트는 실행할 Unix 명령을 쉘에 알려주는 스크립트 파일입니다. 쉘에 대해 공부해야 하는 이유는 간단히 말해서 쉘이 많이 사용되기 때문입니다. 쉘 명령어를 사용하는 유닉스와 리눅스가 인터넷 서버 시장의 대부분을 점유하고 있으며, 맥OS, 우분투, iOS, 안드로이드 등 윈도우가 아닌 운영체제도 유닉스를 기반으로 하고 있다.
쉘 명령
비밀번호: 현재 디렉토리 위치를 보여줍니다.
ls: 파일 및 디렉토리 목록을 표시합니다.
- ls – 숨김 파일 표시 안 함
- ls -a – 모든 숨김 파일 표시(.로 시작하는 파일)
- 목록에서 파일을 실행하려면 ./(파일 이름)
CD: 디렉토리를 이동할 때 사용합니다.
- 시디~ – 사용자의 홈 디렉토리로 이동
- CD . – 현재 디렉터리로 이동(이동 안함)
- CD .. – 다음 상위 디렉토리로 이동
- cd(경로) – 지정된 경로로 이동
mkdir: 디렉토리를 생성합니다. 뒤에 이름을 넣으면 현재 위치에 그 이름으로 디렉토리를 생성합니다.
rm: 파일이나 디렉토리를 삭제할 때 사용합니다.
스도
- Linux는 여러 사용자가 하나의 OS에 액세스하여 사용하는 다중 사용자 시스템입니다. 그러나 일반 사용자 권한으로는 수행할 수 없는 명령이 종종 있으며 이러한 경우 수퍼유저 권한이 사용됩니다. 특히 sudo는 짧은 시간 동안만 권한을 빌리기 때문에 명령을 내리는 사용자는 현재 사용자입니다. 따라서 기록을 남기는 작업을 수행할 때 사용자 이름이 남습니다.
- sudo 명령을 사용할 때 필요한 아이디와 비밀번호는 일반 사용자의 것입니다. (단, sudo를 사용할 수 있는 사용자는 sudoers에 포함되어야 합니다.)
- sudo 접두사가 붙고 그 뒤에 다른 명령이 옵니다.
- sudo -s / sudo su – 슈퍼유저 권한이 일시적이 아닌 지속적으로 필요한 경우 루트 계정을 반영구적으로 빌릴 수 있습니다.
- sudo -s홈 디렉토리를 현재 사용자에게 전달하고 현재 계정의 환경 변수를 루트에 전달합니다.
- 스도 수홈 디렉토리를 /root로 만들고 환경 변수를 루트 상태로 변경합니다.
비앤빔
바이(뷔sual editor)는 텍스트를 동시에 표시하고 편집할 수 있는 텍스트 편집기입니다. 정력(바이 나중증명됨)은 Vi의 업그레이드 버전으로, Vi보다 가독성 향상 등의 기능이 더 많이 추가된 것을 알 수 있다.
Vi에는 명령 모드, 삽입 모드 및 콜론 모드의 세 가지 모드가 있습니다.
- 명령 모드: vi 명령을 통해 vi를 시작하는 경우 화살표 키를 사용하여 커서를 실행 모드로 이동합니다.
- 삽입 모드: 명령 모드에서 i 또는 a 키를 통해 입력 모드로 이동하여 코드 또는 텍스트를 수정하고 esc 키를 통해 되돌아갑니다. 영어/한국어는 스페이스+쉬프트 키를 눌러 변경할 수 있습니다.
- 콜론 모드: 명령 모드에서 : 키를 눌러 콜론 모드를 켤 수 있으며 여기에서 vi가 종료됩니다.
- 저장, 종료
- :큐 – 그만두다
- :큐! – 저장하지 않고 강제종료
- :우 – 구하다
- :wq – 저장 및 종료 (ZZ같은 기능)
- 커서를 이동
- 승 – 다음 단어의 첫 글자로 이동
- 비 – 이전 단어의 첫 글자로 이동
- G – 마지막 행으로 이동
- 지우는 것
- 엑스 – 커서 위치의 문자 삭제
- 엑스 – 커서 앞의 문자 삭제
- dw – 커서를 포함하여 뒤의 단어 삭제
- DB – 커서 앞의 단어 삭제
- 일 – 커서가 위치한 라인 삭제
- 복사
- ~이다 – 커서를 포함하여 뒤의 단어 복사
- yb – 커서 앞의 단어 복사
- yy – 커서가 위치한 줄 복사
- 반죽
- 피 – 커서 뒤에 붙여넣기
- 피 – 커서 앞에 붙여넣기
- 찾다
- / (끈) – 처음부터 문자열 찾기
- ? (끈) – 뒤에서 끈 찾기
- N – 뒤로 검색
- N – 정방향 검색
- 바꾸다
- :%s/이전/신규 – 각 줄에서 old의 첫 번째 항목을 찾아 new로 바꿉니다.
- :%s/이전/신규/g – 오래된 것을 모두 새것으로 교체
- 실행 취소/다시 실행
- 유 – 실행 취소
- 컨트롤 + R – 재실행
- 등
- :CD – 현재 디렉토리 출력
배쉬 대 Zsh
bash는 Linux용 표준 셸이며 sh 셸을 기반으로 1989년에 만들어졌습니다. 이전 버전에 비해 스크립팅 언어로서의 기능이 크게 향상되었으며 bash 사용자는 작업을 자동화하는 프로그램을 작성할 수 있습니다. zsh는 bash 등장 직후의 쉘로, 동일한 sh 쉘을 기반으로 하고 있으며, Oh My Zsh라는 온라인 플랫폼을 기반으로 zsh 기반의 플러그인과 테마 등의 확장 기능을 선보였습니다. Mac은 Catalina 이후 기본 쉘로 zsh를 사용합니다.
두 셸에서 제공하는 공통 기능은 Z 명령(개발자가 자신의 디렉터리를 추적할 수 있습니다.), 자동 완성, 자동 수정(오타 수정 등), 색상 사용자 정의 등. zsh가 bash와 다른 점은 사용자가 쉽게 커스터마이징할 수 있고, 셸을 최신 상태로 유지하는 자동 업데이트 기능이 있으며, 다양한 도구를 사용하여 확장성이 높다는 점에서 유연성이 뛰어납니다. 한편 배쉬는 루프 및 조건부 구성, 물결표 및 중괄호 확장, 앨리어싱과 같은 기능이 있습니다. (개인적으로는 커스터마이징을 위해 zsh를 사용합니다.)
쉿
chsh는 사용자의 로그인 쉘을 변경합니다. chsh 명령을 실행하면 shell 속성의 현재 값과 사용 가능한 shell 목록이 표시되고 수정을 위한 프롬프트가 표시됩니다. chuser 권한으로 다른 사용자의 로그인 쉘을 변경할 수도 있습니다.
.bashrc 및 .zshrc
.bashrc 또는 .zshrc는 로그인할 때마다 또는 로그인한 경우 터미널을 열 때마다 bash 또는 zsh가 실행되는 셸 스크립트입니다. OS를 설정할 때 bashrc 또는 zshrc는 CLI 또는 터미널이 구성되는 방식을 결정하고 실행합니다. 위에서 설명한 vi를 통해 수정할 수 있습니다.코드 ~/.zshrc)) Mac OS에서는 환경 변수 설정으로 인해 예상보다 자주 수정되는 셸 스크립트입니다.
원천
bash/zsh의 내장 명령어로 쉘 초기화 파일(~/.bash_profile, ~/.zshrc) 수정 시 로그오프나 로그인 없이 현재 쉘 세션에 설정을 반영하기 위해 사용한다. 소스 ~/.zshrc파일의 경로를 다음과 같이 지정하면 셸 설정이 반영됩니다.
.프로필
로그인할 때마다 로그인 셸에서 실행되고 현재 로그인한 사용자에게 적용되는 설정을 포함하는 스크립트입니다. (bash의 경우 .profile에 환경 설정을, bashrc에 별칭 설정을 저장하는 것이 좋습니다.)
chmod
첫째, Linux에서 파일로 할 수 있는 세 가지 작업이 있습니다.
- 아르 자형ead – 파일에 저장된 데이터 읽기(r)
- 승rite – 파일에 데이터 쓰기(w)
- 이자형엑스ecute – 파일 실행(x)
모든 사용자가 Linux 파일을 수정할 수 있는 경우 어느 시점에서 파일의 데이터가 변경되고 파일이 모두 사라질 수 있습니다. 따라서 Linux에서 각 파일에 대한 읽기, 쓰기 및 실행 권한을 설정할 수 있습니다. 이때 사용자는 자신이 가진 권한의 종류에 따라 파일을 소유한 사용자(user), 특정 그룹에 속한 사용자(group), 기타 사용자(other)로 분류할 수 있다. 이 3개의 권한과 3명의 사용자에 대한 설정을 통해 방법그것은 말한다. 모드를 변경할 수 있는 명령 chmod오전. (채널앤지 모드e) 그래서 chmod는 파일의 권한을 변경하는 역할하는 것을 생각할 수 있습니다
chmod chmod (옵션) (모드) (파일) 나는 이렇게 사용한다
옵션 종류로는
- -V – 모든 파일에 모드가 적용된 출력 진단 메시지
- -에프 – 오류 메시지를 출력하지 않음
- -씨 – 기존 파일 메시지가 변경된 경우에만 진단 메시지 출력
- -아르 자형 – 지정된 모드를 파일 및 디렉토리에 재귀적으로 적용
모드의 종류로는
- 유, 지, 오, 아 – 소유자(u), 그룹(g), 다른 사용자(o), 모두(a)
- +, -, = – 현재 모드에 대한 추가(+), 제거(-), 할당(=) 권한
- r, w, x – 읽기 권한, 쓰기 권한, 실행 권한
- 에스 – 실행 시 사용자 또는 그룹 지정(setuid, setgid)
이러한 모드가 있습니다 사용자 – 권한 변경 – 권한 순서대로 배치하십시오. 예를 들어, 파일을 소유한 사용자에 대한 읽고 쓰기 허가 정해진이렇게 하려면 (mode) 대신에 u=rw를 넣어야 합니다. 현재 권한이 어떻게 설정되어 있는지 확인하려면 원하는 디렉터리에서 ls -l명령어로 확인 가능
촌
이 명령은 파일 또는 디렉토리의 소유자를 변경합니다.
- chown(소유자가 될 사용자)(디렉토리 또는 파일 경로) – 소유자 변경
- chown (사용자):(그룹) (디렉토리 또는 파일 경로) – 소유자, 그룹 변경
- chown -R (사용자):(그룹) (디렉토리 또는 파일 경로) – 재귀적으로 하위 디렉터리로 변경
- chown -h (소유자가 될 사용자) (디렉토리 또는 파일 경로) – 심볼릭 링크(Windows의 바로 가기와 유사한 원본 파일을 가리키는 링크)도 소유자를 변경합니다.
- chown -h(소유자가 될 사용자)(디렉토리 또는 파일 경로) – 모든 디렉토리의 심볼릭 링크 변경
인
Linux/unix 시스템에는 두 가지 유형의 링크가 있습니다. 하드 링크는 기존 파일의 다른 이름으로 생각할 수 있는 링크입니다. 단일 파일에 대해 둘 이상의 하드 링크를 만들 수 있습니다. 다른 파일 시스템이나 파티션의 디렉토리 및 파일에 대한 하드 링크를 만들 수 없습니다. 소프트 링크는 Windows의 바로 가기와 같이 원본 파일을 가리키는 간접 링크입니다. 소프트 링크인 심볼릭 링크는 다른 파일 시스템 또는 파티션의 디렉토리 및 파일에 대해 생성될 수 있습니다. ln은 파일 간의 링크를 생성하는 명령입니다. 기본적으로 ln 명령은 하드 링크를 만듭니다. 심볼릭 링크를 생성하려면 옵션을 추가해야 합니다. 엘n은 성공하면 출력을 생성하지 않고 0을 반환합니다.
- ln(소스 파일)(링크 이름) – 하드 링크 생성
- ln -s(소스 파일)(링크 이름) – 심볼릭 링크 생성
- ls -l(링크 이름) – 링크가 성공적으로 생성되었는지 확인
- 심볼릭 링크를 삭제하려면 연결 해제 또는 링크 제거
- 링크 해제(링크 이름)
- rm(링크 이름)
참조:
https://studymake.240
https://studymake.239
https://www.leafcats.com/168
https://velog.io/@zeesoo/Linux-vi-%ED%8E%B8%EC%A7%91%EA%B8%B0-%EC%82%AC%EC%9A%A9%EB%B2 %95-%EB%B0%8F-%EB%AA%85%EB%A0%B9%EC%96%B4
https://codingboycc.91
https://sunlightmedia.org/ko/bash-%EB%8C%80-zsh/
https://www.ibm.com/docs/ko/aix/7.2?topic=c-chsh-command
https://www.si.edu/tbma/resource/method-maintaining-bashrc-file-across-multiple-workstations-using-homebrew-and-github#:~:text=A%20bashrc%20file%20is%20shell ,터미널%20앱%20보기%20%20동작합니다.
https://www.lesstif.com/lpt/linux-source-129008724.html
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sdrock&logNo=221508545540
https://recipes4dev.175
https://www.lesstif.com/lpt/linux-chown-93127453.html
https://jjeongil.1408