728x90
이 글은 ASAC 06기를 수강하며 강의 자료 참고 및 추가 자료 수집을 통해 작성된 글입니다.
Shell 종류
- Bourne Shell (sh, 쉘 혹은 본쉘) : AT&T 벨 연구소의 스티븐 본 개발
- 쉘을 수행할때 :
#!/bin/sh= 상단에 셔뱅(shebang)을 추가한 뒤 스크립트를 작성(Batch File)
- 쉘을 수행할때 :
- Bourne-Again Shell (bash, 바쉘 혹은 배쉬) : GNU 프로젝트 일환 개발, 유닉스 계열 운영체제 기본 쉘
- Z Shell (zsh, 지쉘) : 커스텀이 자유로워 예쁜 테마를 가진 쉘을 사용할 수 있고, 인터렉티브가 훨씬 개선
- ZShell > Bash > Shell 순서로 최적화
- 루트 > 일반 > 게스트 계정 순서로 높은 권한
Bash 명령어
쉘 시작 or 설정 재로딩 명령어
source ~/.bashrc // 파일 수정 후 터미널을 껐다 켜는 대신, 설정 재로딩 명령어
쉘 설정 파일 경로
~/.bashrc // 공통 설정 파일. rc = runcommands
~/.bash_profile // 계정 설정 파일. 또는 ~/.bash_login, ~/.profile 순서.
쉘 종료 명령어
~/.bash_logout
쉘 수행
- 스크립트 앞에 #!/bin/sh (셔뱅)
ZSehll 명령어
쉘 시작 or 설정 재로딩 명령어
source ~/.bashrc // 파일 수정 후 터미널을 껐다 켜는 대신, 설정 재로딩 명령어
쉘 설정 파일 경로
~/.zshrc // 공통 설정 파일.
~/.zprofile // 계정 설정 파일. 또는 ~./zshenv
(기타) 히스토리 저장
~/.zsh_history
(기타) 세션 관리
~/.zsh_sessions
쉘 수행
- 스크립트 앞에 #!/bin/sh (셔뱅)
리눅스 명령어
기본 명령어 뒤에 -로 시작하는 옵션을 줄 수 있다.
기본 경로
- ~ : 유저의 디렉토리 위치
- / : 루트. 절대 경로의 경우 모두 루트로 시작한다.
- . : pwd와 동일함. 이를 통해 이동하는 경우를 상대 경로라고 한다.
파일 생성
touch 파일명
vi 파일명 // vi 에디터로 접속하여 바로 파일 쓰기 및 생성 가능.
vi 명령어
vi는 에디터
- 명령 모드 : 기본적으로 처음 들어가면 명령 모드. insert 모드에서
esc누르면 명령 모드로 전환- 한 글자 삭제 :
x누르면 커서 뒤 글자를 삭제 - 한 줄 삭제 (잘라내기) : 특정 행에서
dd누르면 해당 행을 삭제. 앞에 숫자가 붙으면, 현재 행으로부터 n개 행 잘라내기 - 한 줄 복사 : 특정 행에서
yy누르면 해당 행을 복사. 앞에 숫자가 붙으면, 현재 행으로부터 n개 행 복사 - 한 줄 붙여넣기 : 특정 행에서
p누르면, 바로 다음 행에 버퍼에 복사된 내용 붙여넣기 - 되돌리기 :
u누르면 직전 명령어 되돌리기. ctrl + z 역할 - 커서 한 줄 위로 :
k누르면 현재 행의 아랫 줄로 커서 이동 - 커서 한 줄 아래로 :
j누르면 현재 행의 윗 줄로 커서 이동 - 커서 오른쪽으로 :
l - 커서 왼쪽으로 :
h - 커서 있는 줄의 맨 앞으로 :
0 - 커서 있는 줄의 맨 뒤로 :
$ - 파일 맨 끝으로 :
G - n개 행 윗 줄로 :
숫자(n)- - n개 행 아랫 줄로 :
숫자(n)+
- 한 글자 삭제 :
- 입력 모드 :
i누르면, insert 모드로 전환 - 마지막행 모드 : 명령 모드에서
:로 시작하는 명령어 입력 후 엔터를 입력해야 한다.- 모두
:로 시작해야 한다. - 쓰기 :
w - 종료 :
q - 강제 종료 :
q! - 일반적으로
:wq를 많이 사용하여 쓰기(저장) 후 종료한다.
- 모두
vscode 에디터
code 파일명
해당 파일을 vscode로 열기
디렉토리 생성
mkdir 디렉토리명
새 디렉토리 생성
디렉토리 내 파일 or 디렉토리 조회
ls // 현재 디렉토리 내부 숨겨진 파일 혹은 디렉토리 제외 모든 이름 확인
ls -al // 옵션 : a = 모든 것. 숨겨진 파일 포함. l = 상세하게. 세부 권한 및 생성일 등을 확인할 수 있음
ll // = ls -al
ls 경로 // 굳이 특정 경로로 이동(cd)할 필요없이, 뒤에 경로를 적어주어서 해당 경로 하위 모든 파일 보기 가능
삭제
rm 파일명 // 파일 삭제. 파일 여러개 삭제 시 파일명 사이 공백 입력
rm -rf 디렉토리명 // 디렉토리 삭제 시, rm만으로는 되지 않는다. -rf 옵션 필요. r = recursive (재귀). f = force (강제)
복사
cp 기존파일명 새파일명 // 기존 파일을 새 파일로 복사
cp -r 기존디렉토리명 새디렉토리명 // 기존 디렉토리를 새 디렉토리로 복사. r = recursive (재귀)
cp는 원본이 바뀌지 않고, 복사만 진행된다.
이동 혹은 명칭 변경
mv 기존파일명 새로운경로 // 기존 파일을 새로운 경로로 이동시킨다. 혹은 명칭을 변경한다.
// 이미 존재하는 경로라도 덮어쓸 때 경고를 주지 않는다.
mv -r 기존디렉토리명 새로운경로 // 기존 디렉토리를 새로운 경로로 이동시킨다. 혹은 명칭을 변경한다.
mv -b 기존파일명 새로운경로 // 새로운 경로가 이미 존재하는 경로라면, 백업 파일 생성 (~로 끝나는 파일)
mv -i 기존파일명 새로운경로 // 새로운 경로가 이미 존재하는 경로라면, 사용자에게 덮어쓰기 여부를 물어봄
mv -f 기존파일명 새로운경로 // 만약 파일이 쓰기 보호되어 있는 경우, 덮어쓰기 강제
cp와 달리 mv는 원본이 바뀐다.
출력
echo 문자열 // 문자열 출력
echo 문자열 > 파일명 // 특정 파일로 문자열 덮어쓰기
echo 문자열 >> 파일명 // 특정 파일 맨 뒤에 문자열 붙이기
환경변수 출력 시 변수명 앞에 $붙여서 출력
세션 한정 환경변수 설정
export 변수명=값
세션에 한정된 환경변수 설정 (세션 종료 시 사라짐)
파일 출력
cat 파일명 // 파일 모든 line 출력
head -숫자 파일명 // 해당 파일의 앞에서부터 n개 행을 출력
tail -숫자 파일명 // 해당 파일의 뒤에서부터 n개 행을 출력. (출력은 앞->뒤 순서임)
tail -f 파일명 // 실시간 로그 확인하기. f = fetch
파이프
- 파이프 | : shift + . 연결되어 이어 수행. 앞선 명령어의 output을 파이프로 연결된 다음 명령어의 input으로 사용
문자열 중 특정 조건 검색
grep 문자열 // 문자열 중 특정 조건 검색
grep -E 문자열 // 정규 표현식 사용 검색
grep -i 문자열 // 대소문자 구분 없는 검색
grep -n 문자열 // 검색된 라인 넘버 표기
특정 문자열을 포함하는 파일 및 디렉토리 검색
ls -al | grep 문자열 // 전체 파일 및 디렉토리에서 특정 문자열을 포함하는 파일 및 디렉토리만 출력
권한 명령어
chmod 파일명 권한(Owner, Group, Other 순서)
- READ : 4
- WRITE : 2
- EXECUTE : 1
- chmod +x => 모든 권한을 준다. 앞에 대상 그룹이 적혀있지 않으면, 모든 그룹
- chmod a+x => all
- u : user
- g : group
- o : others
ex) chmod 700 => Owner에게 7권한(4+2+1 = 읽기, 쓰기, 실행 권한), Group과 Other에게는 모든 권한 없음
압축
tar -x 파일명 // 압축 풀기. extract
tar -c 파일명 // 압축하기. create
tar -xvf 파일명 // -v = verbose. 어떤 파일이 풀리는지 상세히 보기, -f = filename 지정
명령어 확장
여러 개의 명령어들을 다음 기호들을 사용해 이어서 명령어 확장을 수행할 수 있다.
&&: 명령어들을 독립적으로 수행.|파이프와 달리 앞 명령어 결과가 다음 명령어의 입력으로 들어가지 않음;: 앞 명령어가 실패해도, 다음 명령어 실행 (&&보다 완화된 연결)&: 앞 명령어와 다음 명령어 동시 실행||: 앞 명령어가 실패하면, 다음 명령어 실행
728x90
'ASAC' 카테고리의 다른 글
| [ASAC 06] GitHub 명령어 정리 (1) | 2024.09.27 |
|---|---|
| [ASAC 06] 세션과 JWT, CORS 관련 질문 정리 (0) | 2024.09.12 |
| [ASAC 06] CORS (1) | 2024.09.11 |
| [ASAC 06] HTTPS (1) | 2024.09.11 |
| [ASAC 06] 웹 저장소 (쿠키, 세션, 웹 스토리지) (4) | 2024.09.11 |