ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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의 파라미터 등 설정 가능

    -o
    shell 옵션 유효
    +o
    shell 옵션 무효
    noclobber = -C
    리다이렉션에 따른 기존 파일에 덮어쓰기 X
    histexpand = -H
    [!번호]에 따라 이력참조를 실시
    $ set -o noclobber // 덮어쓰기 금지 유효화

     

    1-4 export command 의 목적

    : shell 변수를 환경설정하고 bash에서 기동하는 애플리케이션이 참조되도록 한다.

     

    1-5 bash shell을 사용할 경우, PS1 = '[\u@\h\w]\$'

    : bash shell command 프롬프트를 설정하고 있다.

     

    \s
    shell 이름
    \v
    bash 버전
    \u
    user명
    \h
    host명
    \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
    도움 표시
    q
    man 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 <-> gunzip
    bzip2 <-> bunzip2
    xz <-> unxz

     

    1-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
    대문자, 소문자 구별 X

     

    1-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
    개행코드
    エスケープ문자로 표시
    Linux
    LF
    \n
    windows
    CR+LF
    \r\n

     

    1-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 [옵션] [파일명]
    -d
    10진수 표시
    -x
    16진수 표시
    -c
    ASCII 문자 표시
    -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

    -> バッシュ値 : 입력 된 데이터에 대해서 일정의 처리를 하고,

    그 결과로써 입력 데이터에 대응하는 값을 반환하는 함수

    md5
    Message Digest Algorithm5
    128 bit의 バッシュ値 출력
    sha256
    Secure Hash Algorithm5
    NIST에서 정한 해쉬표준함수
    256 bit의 バッシュ値 출력
    sha512
    Secure Hash Algorithm512
    NIST에서 정한 표준해쉬함수
    512 bit의 バッシュ値 출력

     

Designed by Tistory.