2023.05.25 - [공부/유닉스] - [Unix] 유닉스 이론과 실습: 디렉토리 다루기 (1)
2023.05.25 - [공부/유닉스] - [Unix] 유닉스 이론과 실습: 파일 다루기 (2)
3. 배시 셸 활용하기
- 셸 기본 사용법 익히기
- 셸의 종류와 변경
- 종류
- 본 셸
- sh
- 콘 셸
- ksh
- C 셸
- csh
- 배시 셸
- bash
- 본 셸
- 특징
- 현재 사용 중인 셸의 종류 보는 법
- 프롬포트 모양 확인
- $: 본 셸, 콘 셸, 배시 셸
- %: C 셸
- 프롬포트 모양 확인
- 자신의 login shell이 무엇인지 확인하고자 할 때
- echo $SHLL
- 현재 셸: bash 셸
- 결과: /usr/bin/bash
- echo $SHLL
- 현재 실행 중인 shell이 무엇인지 확인하고자 할 때
- ps
- 현재 사용 중인 배시 셸에 대한 정보 출력
- bash —version
- 현재 사용 중인 셸의 종류 보는 법
- 종류
- 셸-서브 셸
- 로그인 셸: 사용자가 로그인 직후 자동 생성되는 셸
- 서브 셸: 사용자가 직접 실행하는 셸, 다른 셸을 실행해 새로운 셸 생성
- 서브 셸 종료
- logout
- ctrl + D
- exit
- 서브 셸 종료
- 셸의 종류와 변경
- 셸 특수 문자
- 주요 특수 문자 4가지
- * ? | ;
- 특수 문자
- *
- 모든 파일을 나타냄
- 임의의 문자열명령 의미
명령 의미 ls * 현재 디렉토리의 모든 파일 목록 나열, 하위 디렉토리가 있으면 그 아래의 모든 파일 목록도 보여줌 cp * /tmp 현재 디렉토리의 모든 파일을 /tmp 디렉토리 아래로 복사 (이때 하위 디렉토리는 복사되지 않음) ls -F h* 파일명이 h로 시작하는 모든 파일 종류 출력 cp *.c ../C 확장자 c인 모든 파일을 상위 디렉토리 밑의 C 디렉토리로 복사 ls -l h*d 파일명이 h로 시작하고 d로 끝나는 모든 파일의 상세 정보를 출력
- ? 와 [ ]
- 하나의 문자를 나타내는 데 사용명령 의미
- ?
- 한 문자
- ex. hello1.c, helloa.c, hello_.c /단, hello.c는 해당되지 않음
명령 의미 ls hello?.c hello 다음에 임의의 한 문자가 오고 파일의 확장자가 c인 모든 파일의 이름을 출력
- [ ]
- 괄호 안에 포함된 문자 중 하나
- [ ] 안에 있는 문자 사이에 공백 없음 (ex. h[123] )
- 사용할 여러 문자를 나열
- 범위지정 가능
- 다른 특수 문자와 혼합 가능
명령 의미 ls -l hello[123].c hello1.c,hello2.c, hello3.c 1, 2, 3 중 있으면 파일의 상세 정보 출력 ls -l hello[1-3].c 위와 동일 ls -l hello[123].c와 결과가 같음 ls [0-9]* 파일명이 숫자로 시작하는 모든 파일 목록 출력 ls [A-Za-z]*[0-9] 파일명이 영문자로 시작하고 숫자로 끝나는 모든 파일 목록 출력
- ~ 와 -
- ~
- 단독사용
- 현재 작업 중인 사용자의 홈 디렉토리
- 다른 사용자의 로그인 ID와 함께 사용
- 해당 사용자의 홈 디렉토리
명령 의미 cp *.c ~/C 확장자 c인 모든 파일을 홈 디렉토리 아래에 C 디렉토리로 복사 cp ~user2/hw/report1 . user2 라는 사용자 홈 디렉토리 아래에 hw 디렉토리 아래에 report1 파일을 찾아 현재 디렉토리로 복사
- -
- cd 명령으로 디렉토리를 이전하기 직전의 작업 디렉토리명령 의미
cd - 이전 작업 디렉토리로 이동
- cd 명령으로 디렉토리를 이전하기 직전의 작업 디렉토리명령 의미
- ~
- ; 와 |
- 명령 연결에 사용
- ;
- 명령을 왼쪽부터 차례로 실행명령 의미
명령 의미 cal ; ls ; pwd 순서대로 출력
달력-현재 디렉토리의 파일 목록-현재 디렉토리의 절대 경로ls -al / more
- 명령을 왼쪽부터 차례로 실행명령 의미
- |
- 왼쪽 명령의 실행 결과를 오른쪽 명령의 입력으로 전달명령 의미
명령 의미 who | wc -l who: 현재 접속 중인 사용자 정보를 한 사람당 한 행씩 출력
wc: 파일의 문자 수, 단어 수, 행 수를 세는 명령
-l : 파일의 행 수 출력
현재 사용자의 수 출력
- 왼쪽 명령의 실행 결과를 오른쪽 명령의 입력으로 전달명령 의미
- ;
- 명령 연결에 사용
- ‘ ’ 와 “ ”
- 특수 문자를 일반 문자로 간주
- ‘ ’
- 모든 특수 문자
- “ ”
- $, ` , \ 제외 모든 특수 문자
명령 의미 echo ‘$SHELL’ SHELL이 화면에 출력 echo “$SHELL” 셸 환경 변수인 SHELL의 지정된 값 현재 셸의 종류가 화면에 출력 - ‘ ’
- 차이점
- a= “hello”
- echo $a
- 결과: hello
- echo “ $a ”
- 결과: hello
- echo ‘ $a ’
- 결과: $a
- 특수 문자를 일반 문자로 간주
- `
- 실행 결과를 문자열로 받고 싶을 때 사용하는 특수 기호
- 작은 따옴표와 혼동하지 않도록 주의
명령 의미 echo “Today is”`date` Today is Fri day, April 24, 2023 03:54 40 AM KST ls /platform/uname -m uname -m 명령의 실행 결과를 문자열로 바꾸어 디렉토리 이름으로 사용
- \ (역슬래시)
- 특수 문자를 일반 문자처럼 사용
- /(슬래시) 아님 주의
명령 의미 ls ?| h\* h* 라는 이름을 가진 파일의 상세 정보를 출력
\없이 h*를 사용하면 h로 시작하는 모든 파일의 상세 정보를 출력echo \$SHELL $SHELL을 화면에 출력
- > 와 >> 와 <
- 출력 리다이렉션
- 입출력 방향을 변환
명령 의미 ls -l > res ls -l 명령의 실행 결과를 화면이 아닌 res 파일에 저장
- *
- 주요 특수 문자 4가지
- 출력 리다이렉션
- 리다이렉션: 표준 입출력 파일을 바꾸는 것
- 셸은 리다이렉션에서 지정한 이름의 파일이 없으면 파일을 생성해서 명령의 수행 결과를 저장
- 파일 존재시 이전 내용 삭제, 명령의 수행 결과로 대체
- 표준 입출력 파일
- stdin: 명령어의 표준 입력
- cat, stdin에서 읽음
- stout: 명령어의 표준 출력
- stderr: 명령어의 표준 오류
- stdin: 명령어의 표준 입력
- 리다이렉션: 표준 입출력 파일을 바꾸는 것
- 출력 리다이렉션
- > , >> : [파일명, 저장이라고 생각]
- 파일 덮어쓰기 : >
- 파일에 내용 추가하기 : >>
- >
- 기능: 파일 덮어쓰기
- 형식: 명령 > 파일명
- 예시
- date > test
- 현재 날짜를 test 파일에 저장
- date > test
- >>
- 기능: 파일에 내용 추가
- 형식: 명령 >> 파일명
- 예시
- pwd >> test
- 현재 작업 절대경로를 test 파일 내용에 추가
- ls -a >> test
- ls -i ln >>* ln.h1
- inode 값 뒤에 추가
- pwd >> test
- > , >> : [파일명, 저장이라고 생각]
- cat 명령 이용
- cat의 출력을 리다이렉션 하기
- cat > test
- test 라는 새로운 파일 생성
- set 명령 이용
- set: 예상치 않게 파일 내용이 겹쳐 써지는 상황 예방 가능
- 예시
- set -o noclobber
- test 파일이 존재
- ls -al > test (파일 생성시)
- 동일한 이름이기 때문에 생성되지 않음
- 해제: set +o noclobber
728x90
'공부 > 유닉스' 카테고리의 다른 글
[Unix] 유닉스 이론과 실습: 프로세스 종류 (inetd, httpd, nfsd, sshd, named, lpd) (0) | 2023.05.25 |
---|---|
[Unix] 유닉스 이론과 실습: 파일 접근 권한 관리하기 (4) (0) | 2023.05.25 |
[Unix] 유닉스 이론과 실습: 파일 다루기 (2) (0) | 2023.05.25 |
[Unix] 유닉스 이론과 실습: 디렉토리 다루기 (1) (0) | 2023.05.25 |
[Unix] 유닉스 이론과 실습: 솔라리스 설치- 유닉스 가상머신 (0) | 2023.04.17 |