-
LPIC level 1 101 공부 - 1장 정리 (기본 command와 파일 조작)[공부] 프로그래밍/Linux 2023. 5. 3. 16:23
1-1 shell 변수의 일람 표시 : set
1. shell 변수의 삭제 : unset
$ TEST = 'SE' $echo $TEST SE $set | grep TEST TEST=SE $unset TEST $echo $TEST $set | grep TEST
2. 환경변수 작성 : export
2.1 주요한 변수
・ PWD : 작업 디렉토리의 절대패스
・ PATH : command의 검색패스
・ HOME : 유저 홈 디렉토리
・ PS1 : 프롬프트 정의
・ PS2 : 2차 프로프트 정의
・ HISTFILE : command 이력을 격납하는 파일을 정의
・ LANG : 언어정보
・ 환경변수 표시 : env, printenv
1-2 현재의 작업디렉토리 패스를 표시 : echo ${PWD}, pwd
-> pwd = ${PWD} =$PWD
1-3 파라미터 또는 옵션 설정 : set
1. set 옵션설정 X : shell 변수 일람 표시
set 옵션설정 O : shell의 파라미터 등 설정 가능
-oshell 옵션 유효+oshell 옵션 무효noclobber = -C리다이렉션에 따른 기존 파일에 덮어쓰기 Xhistexpand = -H[!번호]에 따라 이력참조를 실시$ set -o noclobber // 덮어쓰기 금지 유효화
1-4 export command 의 목적
: shell 변수를 환경설정하고 bash에서 기동하는 애플리케이션이 참조되도록 한다.
1-5 bash shell을 사용할 경우, PS1 = '[\u@\h\w]\$'
: bash shell command 프롬프트를 설정하고 있다.
\sshell 이름\vbash 버전\uuser명\hhost명\w현재 작업 디렉토리[bash -4.2] $ PS1= '[\u@\h\w]\$' [yuko@examhost~] $ ~
1-6 cd ~yuko command 실행 : 유저 yuko 홈 디렉토리에 이동
/root 디렉토리~홈 디렉토리.작업 디렉토리..부모 디렉토리1-7 man command 실행 시, 참조하는 도큐멘토 파일이 있는 곳
: /usr/share/man -> 디스트리뷰션이 포함되어 있는 경우
/usr/local/share/man -> 디스트리뷰션이 포함되어 있지 않은 경우
옵션-f키워드와 완전히 일치하는 섹션이 있는지 표시-k키워드를 포함한 섹션이 있는지 표시키space다음 페이지 표시enter다음 행 표시b전 페이지 표시h도움 표시qman command 종료/문자열지정한 문자열 검색1-8 제 1 섹션의 command를 표시 : man 1 command
-> 특정 섹션 지정 시, man 뒤에 숫자로 섹션을 지정
1-9 command의 실행 이력이 보존되어 있는 파일 : ~/.bash_history
$ echo $HISTFILE /home/user1/.bash_history
history [옵션] [이력수]-c취소-d [이력번호]지정한 이력번호부터 취소↑한 단계 전↓한 단계 후!!직전에 실행한 command 실행! [이력번호]지정한 command 실행! [문자열]지정한 문자열부터 시작한 command 실행1-10 일반유저로 로그인하여 root 로그인이 필요 : su -root
1-11 유저 yuko는 자신의 홈 디렉토리 밑에 dir_b/subdir을 작성하고 싶지만,
dir_b는 존재 X, dir_b/subdir을 작성하기 위한 command
: mkdir -p /home/yuko/dir_b/subdir
-> -p : 패스 도중의 디렉토리 작성 가능
-m [엑세스권] : 엑세스권을 지정 가능
1-12 /tmp/A에 있는 모든 파일, 서브디렉토리를 작업 디렉토리로 이동하고 싶을 경우
: mv -f /tmp/A/*.
-> -f : 이동처에 같은 파일명이 존재해도 강제적으로 덮어쓰기
-i : 이동처에 같은 파일명이 존재하면 덮어쓰기 확인
1-13 /usr/local/samples 디렉토리에 있는 모든 파일을 /home/yuko/samples
디렉토리에 복사하고 싶을 경우
: cp -Rf /usr/local/samples/* /home/yuko/samples
-> 디렉토리를 복사할 경우 : -R 혹은 -r (디렉토리의 계층을 유지하기 위한 옵션)
-p : 소유자, 타임스탬프, 엑세스 정보 등 유지한 채로 복사
ls 옵션-F : 파일 타입 표시/ : 디렉토리* : 실행 가능 파일@ : 심볼릭 링크-a : 숨긴 파일 표시파일명이 [.]로 시작되는 파일-l : 상세정보 포함 표시-d : 디렉토리 내용이 아니라 디렉토리 자신의 정보 표시1-14 디렉토리 밑에 있는 서브 디렉토리를 전부 삭제 : rm -rf /tmp/*
-> -f : 유저 확인 없이 삭제
-i : 유저 확인 받기
-r : 디렉토리 내에 계층 전부 포함
1-15 압축된 tar 파일에 file.tar.gz에 격납되어 있는 파일명의 일람 표시
: tar ztf file.tar.gz
-c아카이브 파일을 작성-t아카이브 파일의 내용 표시-x아카이브 파일을 전개하기-f아카이브 파일명을 지정하기-v상세 정보 표시-j상세 정보에 대해, bzip2를 사용-J상세 정보에 대해, xz를 사용-z상세 정보에 대해, gzip를 사용gzip <-> gunzipbzip2 <-> bunzip2xz <-> unxz1-16 작업 디렉토리에 있는 samples.tgz에 a.txt와 b.txt 파일이 격납되어 있을 때,
"gunzip samples.tgz"를 실행 했을 때, 작업 디렉토리에 있는 파일 : samples.tar
1-17 표시가 한 화면에 들어가지 못할 때 한 화면씩 표시 : more
1-18 파일의 타입을 확인 : file
1-19 bash를 사용하고 있는 경우, commad 뒤에 "1>&2"라고 지정 시
: 표준출력을 표준에러출력에 리다이렉트
1표준출력2표준에러출력0표준입력1-20 command "cmd 1 > data" 실행 시
: command cmd1의 표준출력을 data에 격납
1-21 작업 디렉토리에 file A가 없는 경우, "ls > file A" 실행
: file A가 신규 작성 -> ls의 표준출력의 결과가 쓰여짐
1-22 "<<문자열" : 표준입력
1-23 표준출력, 표준에러출력의 모든 단말, 파일, 디바이스에 표시 시키지 않도록 할 때
: >/dev/null 2>&1
-> ">/dev/null" : 표준출력을 /dev/null에 저장
"2>&1" : 표준에러출력 저장은 현재의 표준출력과 같도록 함
1-24 command의 표준출력을 별도의 command에 리다이렉트 하는 것과 동시에 파일에도 격납 가능한 것 : tee
-> tee : 표준입출력으로부터 읽어들인 데이터를 표준출력 파일로 양방으로 출력
tee [옵션] 파일명
-a : 파일을 덮어쓰지 않고 기술
1-25 command cmd1을 실행한 후, command cmd2를 실행할 때
: cmd1; cmd2
-> command를 연속 실행할때 ; 혹은 &&, || 를 사용
1-26 file1에서 문자열 foo를 대문자/소문자 구별하지 않고 검색
: cat file1 | grep -i foo (= grep -i foo file1)
grep 옵션-v패턴이 일치하지 않는 행을 표시-n행 번호 표시-l패턴과 일치하는 파일 표시-i대문자, 소문자 구별 X1-27 파일의 선두로부터 임의의 행수를 지정해 그 내용을 표시 : head
-n행 수를 숫자로 지정-f항상 파일의 최종부분을 읽어들이도록 함1-28 file A에 소문자를 전부 대문자로 변환하여 표시 : tr a-z A-Z < file A
-> tr : 표준입력인 키보드로부터 입력한 문자를 지정한 문자를 변환
tr [옵션] [문자군1] [문자군2]-d문자군1에서 합치한 문자를 삭제-s문자군1에서 합치한 문자의 반복을 바꾸기$ cat file1 abc def $cat file1 | tr -s '' abc def
1-29 windows의 NTFS 파일 시스템으로 1행번째에 A, 2행번째에는 B인
sample.txt 작성 -> Linux의 EXT4 파일 시스템에 전송 -> "od -c sample.txt" 실행
-> 아래의 코드 표시-> "\r " 삭제
: tr -d '\r' < sample.txt > sample-new.txt
$ od -c sample.txt 0000000 A \r\n B \r\n
OS개행코드エスケープ문자로 표시LinuxLF\nwindowsCR+LF\r\n1-30 fileA에 bob라는 문자열을 전부 Bob라고 변환하여 표시
: sed 's/bob/Bob/g' fileA
-> sed : 단어 단위의 변환이나 삭제
sed [옵션] [편집command] [파일명]-i편집 결과를 직접 파일에 쓰기s/패턴/변환문자열/각 행을 대상으로 처음 패턴에 일치하는 문자열을 변환s/패턴/변환문자열/g파일 내 전체를 대상으로 패턴에 일치하는 문자열 변환d패턴에 합치하는 행 삭제p패턴에 합치하는 행 표시$ sed '1d' fileA // fileA의 1번째 행을 삭제 $ sed '2.5d' fileA // fileA의 2~5번째 행을 삭제 $ sed '/^$/d' fileA // fileA의 공백 행을 삭제 $ sed 's/$/test/' fileA // fileA의 행 끝에 test 추가 $ sed -n '/user01/p' fileA // fileA에 user01이 포함되는 행만 삭제
1-31 /etc/passwd 파일에 있는 유저명과 로그인 shell을 표시
: cut -d : -f 1,7/etc/passwd
-> cut : 파일 행 중 특정 부분만 빼내는 command
cut [옵션] 파일명-c지정된 위치의 각 문자만 표시-b지정된 위치에 각 バイト만 표시-d-f와 함께 사용, 필드의 区切り 문자를 지정-f지정된 각 필드만 표시-s-f와 함께 사용, 필드의 区切り 문자를 포함하지 않는 행을 표시 하지 않음$ cut -d '' -f 2 fileA // fileA의 필드의 区切り의 문자를 공백으로, 2번째 필드를 取り出す $ ps ax | cut -c 1-5 // ps ax의 표시행의 선두에서 5문자를 取り出す
1-32 OS에 등록되어 있는 유저 수를 표시
: wc -l /etc/passwd (= cat /etc/passwd | wc -l)
wc [옵션] [파일명]-c바이트 수만 출력-l행 수만 출력-w단어 수만 출력$ wc fileA // 옵션 지정 X : 행 수, 단어 수, 바이트 수 표시 3 9 126 fileA
1-33 파일 내용을 8진수로 표시 : od
-> od : 파일 내용을 8진수로 표시
od [옵션] [파일명]-d10진수 표시-x16진수 표시-cASCII 문자 표시-A 기수표시 될 포맷 기수를 선택d : 10진수o : 8진수x : 16진수n : 없음1-34 파일을 읽어 들인 후, 지정된 수를 チャング에 분할 : split
-> split : 파일을 정해진 크기로 분할
split [옵션] [[입력元파일명] [プレフィックス]]-l출력 행 수 지정-dサフィックス를 영문이 아니라 숫자로 지정$ wc -l fileA // fileA의 행 수 표시 10 fileA $ split -l 5 fileA // fileA를 5행마다 분할 $ ls fileA xaa xab $ wc -l xaa xab 5 xaa 5 xab 10 합계 $ split -l 5 -d fileA split_file $ ls fileA split_file00 split_file01 xaa xab
1-35 web에서 다운로드 한 파일에 대해, 데이터의 동일성을 확인하기 위해 데이터의 バッシュ値를 계산 : sha256sum
-> バッシュ値 : 입력 된 데이터에 대해서 일정의 처리를 하고,
그 결과로써 입력 데이터에 대응하는 값을 반환하는 함수
md5Message Digest Algorithm5128 bit의 バッシュ値 출력sha256Secure Hash Algorithm5NIST에서 정한 해쉬표준함수256 bit의 バッシュ値 출력sha512Secure Hash Algorithm512NIST에서 정한 표준해쉬함수512 bit의 バッシュ値 출력'[공부] 프로그래밍 > Linux' 카테고리의 다른 글
LPIC level 1 101 공부 - 6장 정리 (소프트웨어 관리) (1) 2023.09.09 LPIC level 1 101 공부 - 5장 정리 (파일 관리) (0) 2023.09.09 LPIC level 1 101 공부 - 4장 정리 (파일 시스템 관리) (0) 2023.09.09 LPIC level 1 101 공부 - 3장 정리 (프로세스 관리) (0) 2023.09.09 LPIC level 1 101 공부 - 2장 정리 (정규표현과 vi에디터) (0) 2023.09.09