ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [산대특] 리눅스의 명령어의 바다 탐색
    [산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정/Linux 2024. 8. 25. 21:39

    0823

     

    |(pipe, vertical bar) 명령어를 연결시켜주는
    tr 문자열을 변경해주는

     

    ShellScrpt 에서는 || 는 OR 의 의미, && 는 AND 의 의미

     | grep 은 특별히 Filtering 해주는 기능

     | more/less 는 긴 문장을 한 페이지 씩 갈무리 해서 볼 수 있음

    grep, more, less 도 파일을 읽을 수 있다.

     

    더보기

    실습!

    [root@centos7-10-1 centos]# dmesg

    시스템에서 발생하는 메세지 

    너무 많으면
    [root@centos7-10-1 centos]# dmesg | more/less

    이렇게 
    more 를 쓰면 한페이지씩 볼 수 있고, less 는 vi 화면으로 볼 수 있다. 

    [root@centos7-10-1 centos]# cat -n /etc/passwd | grep "root"

    [root@centos7-10-1 centos]# more /etc/passwd
    [root@centos7-10-1 centos]# less /etc/passwd

    이렇게 가능하다

    [root@centos7-10-1 centos]# cat -n /etc/passwd | tr 'root' 'ROOT' | grep 'ROOT'
    줄번호로 쫙 보이고 | 그 중에서 root 를 ROOT 로 바꾸고 | ROOT 있는 줄말 보여

    단어? 문장?를 바꾸려면 substring 을 써야 한다. (좀이따!)

    -i 는 대소문자 구분하지 않는다.

    이렇게 해도 똑같이 나온다. 

     

     

    wc wordcount

    파일의 문자수(c), 단어 수(w), 줄의 수(l) 등을 보인다.

     

    더보기

    실습

    [root@centos7-10-1 centos]# wc input.txt 

     4  9 52 input.txt

     

    순서대로 줄수, 단어수, 문자수

    root 가 두번 나온다. 

     

     

    stat 

    파일에 대한 Access, Modify, Change 등을 보인다. 

    이걸로 중요한 파일 등에 대해서 수정, 접근 기록 을 잘 봐야한다. 

     

    더보기

    실습

     

    context 는 해당 파일에 대한 보안 설정을 뜻한다. 

     

    수정 변경 등 정보를 볼 수 있다. 

     

    [root@centos7-10-1 centos]# adduser paul

    [root@centos7-10-1 centos]# passwd paul

    Changing password for user paul.

    New password: paul

    BAD PASSWORD: The password is shorter than 8 characters

    Retype new password: paul

    passwd: all authentication tokens updated successfully.

     

    사용자를 만들면 

    이 두 파일에 영향을 미친다. 기록된다. 

     

    파일을 열지 않아도 작업을 통해 stat 에 기록이 된다. 

     

    아까와 달리 날짜가 바뀌었다. 

     

     어느 파일이나 명령어의 위치를 알려주는 which, whereis, locate

     

    더보기

    실습

     

    locate ssh

     

     

     

    find 할 때 저게 나올 떄가 많은대 그럴때 저렇게 umount 시키면 

     

    잘 나온다. 

     

     

    echo 값을 읽거나 화면에 띄운다. 

    더보기

    실습

    [root@centos7-10-1 centos]# echo "IM Tired this morning" > cet.txt

     

    [root@centos7-10-1 centos]# cat cet.txt 

    IM Tired this morning

    [root@centos7-10-1 centos]# echo $HOSTNAME

    centos7-10-1



    [root@centos7-10-1 centos]# echo "1" > /proc/sys/net/ipv4/ip_forward

     

    저기 /proc 파일은 가상파일 시스템이다. 

     

    이 파일은

    MitM

    Man in the middle 공격에서 많이 사용하는 

    A 와 B 사이에 가운데에 ip_forward = 1 을 집어넣으면 패킷을 보고 지나치게 해준다. 

    MitM => session hijacking 

    제대로 이해 못함

    나중에 실습 

     

     

     

     

    웹에서 파일을 다운로드/복사 해오는 명령어

    wget, git, curl, lftp, lftpget

    lftp 는 다운로드가 실패했을 때 에러를 예외처리해서 다시 받아주고 2GB 이상의 대용량 파일도 다운받아주며 방화벽이 있어도 우회해서 받게 해준다. 

    더보기

    실습

    Download 링크를 카피

     

    wget https://mariadb.com/download-confirmation?group-name=Community%20Server&release-notes-uri=https%3A%2F%2Fmariadb.com%2Fkb%2Fen%2Fmariadb-11-5-2-release-notes%2F&download-uri=https%3A%2F%2Fdlm.mariadb.com%2F3898060%2FMariaDB%2Fmariadb-11.5.2%2Fyum%2Fcentos%2Fmariadb-11.5.2-rhel-7-x86_64-rpms.tar&product-name=Community%20Server&download-size=622%20MB 

     

    이런식으로 다운로드가 가능하고, 

     

    [root@centos7-10-1 centos]# wget -c ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz

     

    요런 방법도 있다. 

    -c 는 continue 라는 뜻. 중간에 잘 안되도 멈추지 말고 이어하라

     

    curl 도 있다. 

    [root@centos7-10-1 centos]# curl -O abc.git https://github.com/docker/docker.git > abc.git

     

    이런식으로도 가능하다. 

     

    [root@centos7-10-1 centos]# git clone https://github.com/docker/docker.git

     

    이렇게도 가능하다. 

     

     

    형상서버(Configuration Managemnet Server)

    늘 업데이트 되는 웹상의 저장소를 로컬에 옮겨놓은 개념

     

    FTP 서버는 

    파일을 업/다운로드 하게 해주고, 로그인 업시 사용 가능하다. 

     

    나만 알고 나만 연결 = active-mode, 주는대로 받는것이 passive-mode

     

    더보기

    lftp 실습

    [root@centos7-10-1 docker]# yum -y install lftp

     

    [root@centos7-10-1 docker]# nano /etc/lftp.conf 

    맨 아래에 추가 

    10240000 가 10메가 

    :0 은 업로드. 0은 무한 

    다운로드는 10메가씩 업로드는 무한

     

    [root@centos7-10-1 docker]# lftp -c "set ftp:passive-mode on;set net:max-retries 3;set net:timeout 5;mget -c ftp://ftp.intel.com/readme.txt"

    -c 컨티뉴

    ftp 는 무료이다. 무료이며 사용자를 지정하지 않는 것을 anonymous

    로그인 시도 최대 3번 

    passive mode 이다 너가 포트 주면 받을 게 

    5분동안 내가 로긘 안하면 날 차…! 내가 차일게..

    multiful get 여러 파일 왕창 

     

     

     

    더보기

    실습 실시간 로그 

    [root@centos7-10-1 docker]# tail -f /var/log/secure | cat -n 

    우분투에서 센토스로 뭔갈 하면

     

    ssh 연결으로 처음엔 연결 성공

     

    끊고 다시 연결 하는데 비번을 일부러 몇번 틀린 뒤 로긘 root 로긘 해서 다시

    센토스에서 로그 확인하면 늘어나 있다!

     

    다른 터미널에서 로그인 해도 로그가 뜬다. 

     

     

    더보기

    head/tail 과 tee 실습

     

    실습

    내용을 보면서 하고 싶다. 

    tee 는 화면에 보이면서 동시에 저장해라 .

     

     

    내가 집어넣은 명령이 저장된다. 

     

    ls 하면

     

    물론 nano typescript 해서 편집도 가능하다. 

     

     

    mail, mutt, mailx

    콘솔에서 직접 메일을 보낼 수 있다. 

    이들을 실행하려면 사전에 시스템에 텍스트 화면에서 메일을 주고 받을 수 있는 

    MX(Mail Exchange) 서버 프로그램 sendmail 이 설치되고 실행되고 있어야 한다.

    더보기

    메일 실습

     

    [root@centos7-10-1 docker]# yum -y install sendmail

    [root@centos7-10-1 docker]# yum -y install mutt

     

    -s 주제/제목

    reach 는 멋진 단어. 

     

     

    history 팁!

    !! 명령어는 마지막으로 실행한 명령어를 반복해서 실행

    !$ 명령어는 이전 명령어의 마지막 인수를 참조하는 단축키

     

     

     

    cmp, comm, diff 파일 비교 명령어 

    cmp 는 두 개의 파일에서 차이가 있는 곳을 표시. compare(비교하다)
    comm 은 공통적인 부분
    diff 는 두 파일의 차이나는 곳을 정확히 보인다. <= patch 파일 생성 시 사용한다. 

    더보기

    실습

    실습 cmp

     

    한줄로 되어 있어서..

     

    공통적인 것을 맨 오른쪽에 보이고 

    첫번째 파일에서 유일한 것인 맨 왼쪽 

    두번째 파일에서 유일한 것이 중간 

     

     

     

     

     

    split 파일 분할

    유용하게 쓰인다!!! 

    split A B 하면 A 를 분할한다. 

    옵션으론 -b (바이트 단위), -l (줄 단위) 분할이 있다. 

     

    더보기

     

    실습 파일분할

     

    22바이트씩 잘라서 저장을 하는데 PASS~, PASS~ 로 저장되어라. 

    졸라 많다..>!

     

    옵션을 줘서 줄수로 자를 수도 있다. 

     

     

     

    sort 

    오름차순 혹은 내림차순 (-r) 으로 파일 내용을 정렬할 수 있다. 

     

    더보기

    실습 sort

    하면 abcd 순서대로 나온다.

    sort -r 하면 반대로 나온다.

     

     

    자주 쓰는 정규표현식

    정규표현식 매우 중요!!

     

    { } { }의 어느 문자와 매치되면 실행함 <={Aa}
    \ \뒤의 것이 특수문자인 것을 표시함 <=  \(
    | | 앞의 실행결과를 | 뒤의 입력으로 함
    백그라운드로 실행함
    !숫자 history에서 해당 숫자의 명령어를 실행함 
    * 임의의 여러 문자
    ? 임의의 한 문자
    [ ] [ ] 범위에 매치되는 문자 <=[a-z]
    > > 앞의 실행결과를 > 뒤의 입력으로 함
    >! > 앞의 실행결과를 > 뒤로 강제 입력함
    < 뒤의 실행결과를 < 앞의 입력으로 함
    >>, << >> 앞의 실행결과를 >> 뒤로 추가함
    2> /dev/null 표준 에러를 콘솔에 표시 안 함
    2>& 1 표준 에러를 표준 출력으로 보냄
    2>& /dev/null 표준 에러를 파일이나 장치로 보냄

     

    A>& B A 파일의 출력을 B 파일의 입력으로 써줌
    A<& B B 파일을 읽어서 A 파일의 출력으로 써줌
    0> A STDIN : 키보드 입력 
    1> A STDOUT : 화면 출력 
    2> A STDERR : 화면 에러 

     

     

    더보기

     

    정규표현식 실습

     

    {} 한번에 만들 수 있는 명령어

    document, docdraft 

    fallreport winterreport sprintreport

     

     

     

    정규표현식을 사용하여 검색할 수 있는 명령어

    -> grep, fgrep(grep -F), egrep(grep -E)와 pgrep

     

     

    [aeiou] a, e, i, o, u 중 어느 문자라도 들어있는 것 
    [a-z] a부터 z 사이의 문자가 들어있는 것. 알파벳 소문자 
    [a-z][A-Z] a부터 z 사이와 A부터 Z 사이의 문자가 들어있는 것. 알파벳 대소문자 
    [0-9] 0부터 9 사이의 숫자가 들어있는 것
    ^[ ], [^ ] ^[ ]는 [ ] 내용으로 시작됨, [^ ]는 [ ] 내용의 부정 <= ^[^#$]
    ^pattern 주어진 패턴으로 시작되는 줄 <= ^#
    pattern$ 주어진 패턴으로 끝나는 줄. 단독으로 $를 쓰면 빈 줄 <= #$
    ^[a-z][0-9]$ 시작은 a부터 z 사이의 문자, 끝은 0부터 9사이의 숫자인 줄
    [.], [...] .는 임의의 문자 1개, ...는 임의의 문자 3개 <= [a...z] cf. a???e
    pattern+ 이전 패턴과 하나 이상으로 매치되는 어구 <= root+
    pattern* 이전 패턴과 매치되지 않는 어구 <= root*
    pattern? 이전 패턴과 하나만 매치되는 어구 <= root?
    (abc)+ 'abc' 패턴과 하나 이상으로 매치되는 줄. +는 적어도 하나 이상을 의미
    ()는 여러 정규 표현식을 하나로 묶기도 한다
    v 부정의 의미 <= v #는 #이 없는 줄을 보임
    c 갯수를 표시 <= c #는 #이 있는 줄의 갯수
    | 두 개의 정규 표현식에서 OR 의미
    {n}, {n,m} 지정된 정규 표현식에 n번 일치, 최소 n에서 최대 m번 일치 
    [: ~ :] 클래스 
    [:alnum:]   alnum은 영문이나 숫자와 일치
    [:alpha:]    alpha는 영문자와 일치
    [:digit:]      digit는 숫자와 일치
    [:punt:]      punt는 구두점(, . )과 일치

     

     

    grep : filtering 역할

     

    grep 의 옵션

    v / c  v는 일치되는 내용이 없는 줄, c는 일치되는 내용이 있는 줄 개수 표시
    n 일치되는 내용을 줄 번호와 함께 표시
    i 대소문자를 구별하지 않고 해당되는 내용이 있는 줄 표시
    e 정규표현식 사용
    찾으려는 문장이나 표현이 있는 파일지정
    l / w  l은 패턴이 포함된 줄(line), w는 패턴이 포함된 단어 표시(word)
    r 반복적으로 찾음 등이 있다. 
    => [a-e]는 {abcde}로써 a,b,c,d,e 중 하나, 
      [ak] a나 k 중 하나a나 k 중 하나a나 k 중 하나a나 k 중 하나
      ^a a로 시작
      a$ 로 끝남
      v # #이 없는 줄 보임
      c # #이 있는 줄의 갯수
    ls doc[A-E] A, B, C, D, E 중 일치되는 것 모두
    ls doc[AE] A나 E 중 일치되는 것 모두
    ls doc{A..E} A로 시작 E로 끝나는 총 4자리 것
    ls doc{AE} docA나 docE로 된 것  
    =>^pass : pass 라는 단어로 시작되는 모든 줄
      ^# #으로 시작되는 줄
      ^$  모든 빈 줄
      #$ #으로 끝나는 줄
      d...(...이 세 개) d로 시작되는 총 네 자리 문자(d???)
      [a-d]*  a에서 d까지 a,b,c,d 중 하나로 시작되는 문자열
      [Dd]atabase  D나 d로 시작되는 database라는 단어
      [^D]  D라는 문자로 시작되지 않는 줄
      c...d(...이 세 개) c로 시작되고 d로 끝나는 총 5자리 문자(c???d) 등이 있다

     

    더보기

     

    정규표현식 패턴 검색 실습

    줄의 개수를 보인다. 

     

    -v 는 부정 ~ 빼고

    48 - 2 하면 46



    주석이 있는 줄 보기 

    httpd 설정 파일에 주석이 많다!

     

    #으로 시작하는거 빼고 grep 해라 

    첫줄이 #인건 다 빠짐. 얘네는 들여쓰기 되어 있어서 나온다. 

     

    #으로 시작되지 않는 애들 중에서 빈 줄도 빼고 보여라

     

     

     

    => 몇 칸 들여쓰기던 #으로 시작하는 애들이 아닌

    => . 이 한 칸이니까. 세 칸 

     

    이러면 첫번째 꺼가 안 빠져서 

     

    => # 붙은 애들은 다 빠진다. 

    붙이면 기호를 못 알아 먹는다. 

    한 칸을 띄어야 # 앞에 몇개가 있던. ^ 그것으로 시작하는. 이렇게 해야 의미전달이 된다. 

     

    이렇게 하면 #으로 시작하는 애들 빈줄인 애들 다 없어진다. 

     

    이렇게 하면 파일로 저장 된다. 

     

    r 이나 o 나 t 가 아닌거 

     

    rot 아닌걸로 시작되는 것. 

    r o t 로 시작되는 걸 빼고 

     

    r o t 아닌 것만

     

    r 이나 o 나 t 로 시작되는 애 

     

    [^#$]는 # 또는 $로 시작하지 않는 줄을 의미

    ^는 부정(not)을 의미

    #나 $가 아닌 문자를 찾는다는 의미



    첫 번째 

    grep -v 명령어는 주석(#)으로 시작하는 라인과 공백 뒤에 #가 있는 라인을 제외합니다.

    두 번째 

    grep 명령어는 이 출력 중에서 # 또는 $로 시작하지 않는 라인만을 필터링합니다.



    egrep: 확장 정규 표현식을 사용하여 파일 내용을 검색하는 명령어입니다.

    -v: 반전(inverse) 옵션으로, 주어진 정규 표현식과 일치하지 않는 줄만 출력합니다.

     

    '^[[:space:]](#.)?$': 정규 표현식의 의미는 다음과 같습니다.

    ^: 문자열의 시작을 의미합니다.

    [[:space:]]*: 공백 문자(스페이스, 탭 등)가 0개 이상 반복되는 것을 의미합니다.

    (#.*)? : '#' 문자로 시작하는 주석이 있거나 없는 경우를 의미합니다.

    $: 문자열의 끝을 의미합니다.

    전체적으로 이 정규 표현식은 "공백으로만 이루어진 줄" 또는 " '#' 문자로 시작하는 주석 줄"을 나타냅니다.



     

     

    변경 시켜주는 명령어 tr

    tr 옵션 set1 set2’ 해서 set1을 set2로 변경해주는 tr에 

    [: :] 클래스를 사용하면 더욱 편리하게 작업할 수 있다. 

     

    더보기

    tr 실습

     

    위 아래 같다 

     

    의도한대로 안되기도 한다. 

     

    소문자를 대문자로 바꿔라 

     

    -d 빼라 숫자를

    빼라 문자를 

    다빼서 암것두 안나온다. 

     

    큰 파일 만질때 굉장히 유용한 명령어들이다. 

    주석 지우기, 문자 지우기, 숫자 지우기, 문자 숫자 지우기, 소문자 대문자로 바꾸기, 대문자 소문자로 바꾸기. 

     

     

     

    echo "this is for testing" | tr [:space:] '\t' | xargs

     



     

    cut : 쓸모가 많고 필요한 부분을 추출하는 명령어

    ==> BigData 분석에서 여러 항복들이 있는데 그 중에서 분석에 필요한 항목들만 추출한다면 이 기법이 좋다. <=Data PreProcessing(데이터 전처리) 과정의 일부이다. 

    -d : delimiter, separator 로 Tab, Space, , , :, #, ; 등

    -f : 어느 열(column)을 보일지 지정

     

    cut -d “:” -f1,7 /etc/passwd 식으로 한다.

     

    더보기

    실습

    빅데이터 분석에서 많이 쓴다. 빅데이터에서 데이터 갈무리를 할 때 많이 사용한다.



    : 를 기준으로 나눠서 첫번째 6번째 7번째 항목만 뽑아서 ~~


     

     

    awk

    cut 과 유사하나 -F 로 필드(column) 지정, -f 로 파일 지정 사용가능. 

    awk -F “:” ‘{print $1,$7}’ /etc/passwd

    이 도구는 다른 프로그래밍 도구와 연계가 잘 된다.

     

    더보기

    실습

     

     

     

    **************** 중요

    sed 파일을 편집해서 보이는 명령어

     

    'sed [option] 명령어 파일_명'

     

    여러 옵션과 복잡한 구문을 가지고 있지만 잘 사용하면 정말 강력한 편집기

     

     

    더보기

    실습

     

    2번째 줄만 보인다. 

     

    p 는 줄?이래 맞나 이따 정리할때 확인

     

    원본을 바꾸지 않겠다. sed -e

    원본을 읽겠다. see -n



    원본을 바꾸지 안고 보겠다. 첫번째 줄 다음에 e 를 넣겠다. 



    $ 맨 뒤에 z 추가(a)

     

    i == insert

    a == add

    첫번째 줄에 f를 추가

     

    줄마다 공백을 줄 땐 대문자 G를 준다. 



    서브스튵ㅌㅌ? 

    /g == 각 줄 마다

    오후 3시 32분

    b는 다 M으로 바뀜

     

    c -> N

     

    네번째 줄 삭제

     

    2번째줄 5번째 줄 빈칸으로 만들어버렷

    여러개가 있으면 g

     

    특정 어구를 찾을 땐

    2~5 줄을 p 보여라 

     

    b 로 시작되는 줄을 보여라 

     

    b 또는 c 로 시작되는 애를 보여라

     

    b 또는 c 로 시작되는 애들 빼고

     

    첫번째 줄 다음에 AAA를 추가해라 저장해라

     

    원본은 바꾸지 않고 대체하겠다. root를 ADMIN 으로 그리고 ADMIN 부분을 뽑아보여라

     

    1~5 째 줄에서만 대체하겠다. root 를 ROOT로 바꿔라 여러줄에서 | ROOT 뽑아보여라

     

    3번째 줄부터 끝에줄까지 d 지워라 

    두줄만 보인다. 



    # 주석으로 시작하는 줄번호 지워잉 





    3번째 줄부터 7번째 줄까지(/etc/passwd 파일의 3번째 줄부터 7번째 줄까지)에서 (/s/) /sbin/ 문자열을 (/sbin/) 공백으로 치환한다(/g)는 의미입니다. 즉, /sbin/ 부분을 지워버리는 것이죠.



    공백줄만 삭제해라 

    sed '/^$/d' 파일명

     

    "root" 문자열이 포함된 줄을 삭제(delete)하라는 의미입니다. 즉, "root" 사용자에 대한 정보를 가진 줄을 제거합니다.



    주석과 빈줄을 모두 빼는거

    sed '/^#/d; /^$/d' 파일명




    <실습>

    cp -arp /root/initial-setup-ks.cfg text.lst 해서 실습할 파일을 복사해두고 

    sed -n '3p' text.lst =>3 번째 줄 보기

    sed -e 's/System/SYSTEM/' text.lst =>모든 System을 SYSTEM으로 변환

    sed -e '14,20s/System/SYST/' text.lst =>3~9줄에서 System을 SYST로 변환
    # sed -e '14,20s/System/SYST/' text.lst | cat -n | grep "SYST"

        14 # SYST services

        18 # SYST language

     

    sed -e 'a\INST\!' text.lst =>각 줄 아래에 INST! 추가

    sed -e 'a\' text.lst =>각 줄 아래에 빈 줄 추가 

    sed -e '3a\INST' text.lst =>3줄 다음 줄에 INST 추가(4번 줄에 보임)

    sed -e 's/^/(tab)/' text.lst =>첫 줄을 (tab)만큼 띄워서 씀

    sed -e '3,9s/^/#/g' text.lst => 3~9줄 모두 주석# 추가

    sed -e "4s/#//" text.lst => 4줄에서 주석# 제거

    sed -e '/^$/d' text.lst =>모든 공백 제거

    sed -e '/System/d' text.lst =>모든 System 제거

    sed -e '14,20s/System//g' text.lst =>3~5줄에서 System 제거

    sed -e '1,$s/System//g' text.lst =>처음부터 마지막 줄까지에서 Sytem 제거

    sed -e '3d' text.lst =>3줄 제거

    실습

     

    2번째 줄만 보인다. 

     

    p 는 줄?이래 맞나 이따 정리할때 확인

     

    원본을 바꾸지 않겠다. sed -e

    원본을 읽겠다. see -n



    원본을 바꾸지 안고 보겠다. 첫번째 줄 다음에 e 를 넣겠다. 



    $ 맨 뒤에 z 추가(a)

     

    i == insert

    a == add

    첫번째 줄에 f를 추가

     

    줄마다 공백을 줄 땐 대문자 G를 준다. 



    서브스튵ㅌㅌ? 

    /g == 각 줄 마다

    오후 3시 32분

    b는 다 M으로 바뀜

     

    c -> N

     

    네번째 줄 삭제

     

    2번째줄 5번째 줄 빈칸으로 만들어버렷

    여러개가 있으면 g

     

    특정 어구를 찾을 땐

    2~5 줄을 p 보여라 

     

    b 로 시작되는 줄을 보여라 

     

    b 또는 c 로 시작되는 애를 보여라

     

    b 또는 c 로 시작되는 애들 빼고

     

    첫번째 줄 다음에 AAA를 추가해라 저장해라

     

    원본은 바꾸지 않고 대체하겠다. root를 ADMIN 으로 그리고 ADMIN 부분을 뽑아보여라

     

    1~5 째 줄에서만 대체하겠다. root 를 ROOT로 바꿔라 여러줄에서 | ROOT 뽑아보여라

     

    3번째 줄부터 끝에줄까지 d 지워라 

    두줄만 보인다. 



    # 주석으로 시작하는 줄번호 지워잉 





    3번째 줄부터 7번째 줄까지(/etc/passwd 파일의 3번째 줄부터 7번째 줄까지)에서 (/s/) /sbin/ 문자열을 (/sbin/) 공백으로 치환한다(/g)는 의미입니다. 즉, /sbin/ 부분을 지워버리는 것이죠.



    공백줄만 삭제해라 

    sed '/^$/d' 파일명

     

    "root" 문자열이 포함된 줄을 삭제(delete)하라는 의미입니다. 즉, "root" 사용자에 대한 정보를 가진 줄을 제거합니다.



    주석과 빈줄을 모두 빼는거

    sed '/^#/d; /^$/d' 파일명

     

    (개인 필기에 추가 실습 문제들 있음!)

     

    여기까지 

연의 취업 도전기.