-
LPIC level 1 102 공부 - 1장 정리 (쉘, 스크립트)[공부] 프로그래밍/Linux 2023. 9. 10. 13:41
1-1 유저홈 디렉토리 내 파일에서 bash 쉘 환경의 커스터마이즈에 사용되는 것
: .bashrc 와 .bash_profile
1-2 bash를 로그인 쉘로 하는 모든 유저가 공통으로 사용 가능한 변수와 값을 설정
: /etc/profile
1-3 bash를 로그인 쉘로 하는 유저가 로그인할 때, 설정파일을 불러들이는 순서
: /etc/profile -> .bash_profile -> .bash_login -> .profile
1-4 ~/.bash_profile의 설명
: ~/.bash_profile 파일의 파미션에는 읽기 권한이 필요
이 홈디렉토리의 소유자인 유저는 읽기, 쓰기 권한을 가지고 있음
1-5 커맨드 cmd의 실행 결과를 쉘 변수 var에 격납
: var=$(cmd)
var=`cmd`
1-6 일련의 처리를 子쉘이 아닌 현재의 쉘에서 실행한 경우
: 쉘의 함수기능 function을 사용
1-7 실행하면 "Hello"라고 표시하는 함수 func1을 정의하고 있은 경우
: function func1 (){ echo Hello;}
-> function 함수명 (){실행하는 커맨드 리스트}
$ function func1 (){ echo Hello;} $ func1 Hello
1-8 현재 실행 중의 쉘의 쉘변수 VAL을 서브프로세스로 부터 참조 가능하도록 하는 커맨드 : export VAL
1-9 쉘 내의 모든 쉘변수와 환경변수 또는 함수를 표시하기 위한 커맨드
: set, declare
1-10 alias의 목적
: 입력하는 커맨드라인를 짧게 하기 위해
-> alias는 임의의 별명을 부여 할 수 있다.
alias 삭제 : unalias
1-11 ls의 alias를 일시적으로 삭제
: \ls
1-12 bash의 프로젝트에서 echo $$ 실행
: bach 자신의 프로세스 ID
$$쉘의 PID$?마지막에 실행 한 커맨드의 종료 값$#인수의 개수$*구별 문자에서 구별 되어진 모든 인수$0실행 파일명$1, $2,,,1번째의 인수, 2번째의 인수1-13 커맨드가 정상 종료했을 때 값
: 0
1-14 표준적인 쉘 스크립트의 1번째행
: #!/bin/sh
-> 쉘 스크립트에서는 파일 1번째행은 #!으로 시작
1-15 쉘 스크립트의 1번째행에는 #!의 다음에 바이너리 커맨드의 파일 패스가 적혀 있다. 바이너리 커맨드의 역활
: 스크립트를 해석해서 실행
1-16 일반 유저가 자신의 홈 디렉토리 아래에 작성한 쉘 스크립트를 커맨드로서 실행하기 위한 최소한의 필요한 파미션
: r-x
1-17 아래의 쉘 스크립트 script-args.bash를 [./script-args.bash a b s]로 실행 했을 때 : ./script-args.bash a b
#!/bin/bash ehco $0 $1 $2
-> $0에는 실행 파일명
$1에는 첫번째 인수
$2에는 두번째 인수
1-18 아래의 쉘 스크립트는 실행 유저의 홈디렉토리의 아래에 .bashrc가 있는지 알아본 후 존재한다면, ~/.bashrc exists! 라고 표시하는 프로그램
: fi
if [ -f ~/.bashrc ]; then echo '~/.bashrc exists!' _________________________
-> if문 : if 커맨드1
커맨드2
fi
-d 파일명파일이 존재해, 디렉토리 파일이면 true-e 파일명파일이 존재하면 true-f 파일명파일이 존재해 통상 파일이면 true-x 파일명파일이 존재해 실행 가는 하면 true-n 파일명문자열의 길이가 0보다 크면 true-z 파일명문자열의 길이가 0이면 true정수 1 -eq 정수 21=1 true정수 1 -ge정수 21>=2 true정수 1 -gt 정수 21>2 true정수 1 -le 정수 21=<2 true정수 1 -lt 정수 21<2 true정수 1 -ne 정수 21<>2 true1-19 test 커맨드에서 2개의 값을 비교하는데 사용되는 연산자
: -lt, -eq
1-20 아래와 같은 파일 /dev/sda1과 쉘스크립트 myprog가 존재하고 있으며 ./myprog /dev/sda1을 실행시
: -e is true라고 표시
// /dev/sda1 $ ls -l /dev/sda1 brw-rw---- 1 root disk 8, 1 6月 13 00:30 2019 /dev/sda1
// myprog #!/bin/bash if test -d $1; then echo "-d is true";exit elif test -f $1;then echo "-f is true"exit elif test -e $1;then echo "-e is true" fi
-> ./myprog /dev/sda1의 실행은 $1에는 /dev/sda1가 대입
test -d /dev/sda1, test -f /dev/sda1, test -e /dev/sda1순으로 체크
-d, -f는 false, -e true
1-21 아래의 빈칸 : do
#!/bin/sh for i in 1 2 3 4 5 __________________ echo $1 done
-> for 쉘변수 in 값 리스트
do
커맨드
done
1-22 아래의 커맨드에 따른 처리 생성
: 12345
n=1 while [ $n -le 5] do echo -n $n // -n: 개행X let "n=n+1" done
1-23 아래의 쉘스크립트를 실행 했을때, 쉘 변수 a, b, c에는 어떤 값
: a에1, b에2, c에 3 4 5 6
read a b c <<END 1 2 3 4 5 6 END
1-24 seq 10을 실행하면?
: 1씩 증가하여 1부터 10까지 표시
-> seq 종료값
seq 초기값 종료값
seq 초기값 증가값 종료값
1-25 bash 스크립트중에서 커맨드가 정상 종료한것을 확인하고 싶은 경우
: 정상 종료값 0을 확인
-> true는 0, false는 1을 반환
'[공부] 프로그래밍 > Linux' 카테고리의 다른 글
LPIC level 1 102 공부 - 3장 정리 (유저 어카운트의 관리) (0) 2023.09.10 LPIC level 1 102 공부 - 2장 정리 (X Window System) (0) 2023.09.10 LPIC level 1 101 공부 - 7장 정리 (시스템 아키텍쳐 관리) (0) 2023.09.09 LPIC level 1 101 공부 - 6장 정리 (소프트웨어 관리) (1) 2023.09.09 LPIC level 1 101 공부 - 5장 정리 (파일 관리) (0) 2023.09.09