ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 솔라리스 기본명령어
    IT 관련/Linux & NAS & IoT 2012. 5. 11. 11:50

     

    Unix 의 구성 : Kernel, Shell, Directory tree.

    Kernel : 하드웨어관리. 기계어사용.

    Shell : ‘사람(자연어) – Shell(번역) – Kernel(기계어)’ 명령어 해석기.
    – Shell 종류 : Bourne(기본), C, Korn(유닉스에서 가장 많이 씀), Bash(리눅스용 쉘), …


    GUI에서 터미널을 실행하면, 가장 처음 나오는 것이 Bourne쉘이다.
    # _
    Bourne Shell에서 bash 입력 후, bash쉘을 사용 할 수 있다.
    # bash
    bash-2.05# _
    사용후, 나올때는 exit를 입력한다.
    bash-2.05# exit
    # _
    터미널을 끌때도, exit를 입력한다.
    # exit
    rlogin이나 ssh등을 이용해 다른 시스템에 접속 후 나올때도 exit명령어를 입력한다.

    Directory tree : 디렉토리와 파일로 구성된 구조.
    / : 루트 (하위의 ‘/’는 딜리미터(Delimiters))
    /export/home : 윈도우의 Documents and Settings, 리눅스의 /home
    /opt : 윈도우의 Program Files
    /usr : 윈도우의 WINDOWS
    /etc : 윈도우의 제어판
    /dev : 윈도우의 장치관리자

    Path name(경로)

    Absolute path name : 절대경로
    항상 ‘/’로 시작.
    아래를 입력하면 /test/a/b/c 디렉토리로 이동한다.
    cd /test/a/b/c

    Relative path name : 상대경로, 기준은 현재디렉토리
    ‘./’ 혹은 ‘../’로 시작.
    현위치가 /test/a/b/c 디렉토리일 경우, 상위디렉토리인 /test/a/b 로 이동한다.
    cd ..

    파일과 디렉토리 이름 설정시 주의사항
    - 이름은 최대 255자.
    - Alphabet, numeric, hyphen(-), underscore(_), period(.)만을 사용하는 것이 좋다.
    - 대문자와 소문자는 각기 다른 단어로 인식되므로, 소문자로 항상 작성하길 추천.
    - *(asterisks), &(ampersands), |(pipes), “”(quotes), $(dollar signs) 와 ‘스페이스’ 는 사용하지 않는 것이 좋다.
    - .(period)으로 시작하는 파일은 히든파일이다.
    - 윈도우와 달리 확장자의 개념이 없다.

    현재디렉토리표시(pwd = print working directory)

    pwd를 입력하면, 현재 디렉토리의 위치가 표시된다.
    pwd
    /test/a/b
    cd ..
    pwd
    /test/a
    cd /test/a/b/c
    pwd
    /test/a/b/c

    ls : 디렉토리 내용 표시

    ls : 현재 디렉토리 하위 파일리스트를 보여준다.
    ls -a : 숨김파일포함 모든파일의 리스트를 보여준다.
    ls -l : 상세정보를 포함하여 보여준다.(파일, 디렉토리 구분에 용이하다.)

    bash-2.05# ls
    a aa cc
    bash-2.05# ls -a
    . .. .a a aa cc
    bash-2.05# la -l
    총 —-
    drwxr-xr-x 3 root other 512 4월 30일 11:00 a
    -rw-r–r– 1 root other 9612 4월 30일 11:25 aa
    -rw-r–r– 1 root other 3331332 4월 30일 11:27 cc

    ls -al : 모든파일+상세정보.(= ls -la)

    bash-2.05# la -al
    총 —-
    drwxr-xr-x 3 root other 512 4월 30일 11:23 .
    drwxr-xr-x 3 root other 512 4월 30일 10:59 ..
    -rw-r–r– 1 root other 0 4월 30일 11:25 .a
    drwxr-xr-x 3 root other 512 4월 30일 11:00 a
    -rw-r–r– 1 root other 9612 4월 30일 11:25 aa
    -rw-r–r– 1 root other 3331332 4월 30일 11:27 cc
    bash-2.05# _

    ls -lh : 상세정보의 파일용량단위를 K, M 등의 단위로 보여준다.

    bash-2.05# ls -lh
    총 —-
    drwxr-xr-x 3 root other 512 4월 30일 11:23 .
    drwxr-xr-x 3 root other 512 4월 30일 10:59 ..
    -rw-r–r– 1 root other 0 4월 30일 11:25 .a
    drwxr-xr-x 3 root other 512 4월 30일 11:00 a
    -rw-r–r– 1 root other 9.4K 4월 30일 11:25 aa
    -rw-r–r– 1 root other 3.2M 4월 30일 11:27 cc
    bash-2.05# _

    ls -r : 리버스. 출력순서가 기존과 반대다.

    bash-2.05# ls -r
    cc aa a
    bash-2.05# ls -lr
    총 —-
    -rw-r–r– 1 root other 3.2M 4월 30일 11:27 cc
    -rw-r–r– 1 root other 9.4K 4월 30일 11:25 aa
    drwxr-xr-x 3 root other 512 4월 30일 11:00 a
    bash-2.05# _

    ls -ld : 그 디렉토리의 경로만을 보여준다.

    ls -R : 하위 디렉토리의 내용까지 보여준다.(하위의 파일과 디렉토리가 많을경우 비추천.)

    bash-2.05# ls -R
    .:
    a aa cc

    ./a:
    b

    ./a/b:
    bash-2.05# ls -lR
    .:
    총 —-
    drwxr-xr-x 3 root other 512 4월 30일 11:00 a
    -rw-r–r– 1 root other 9612 4월 30일 11:25 aa
    -rw-r–r– 1 root other 3331332 4월 30일 11:27 cc

    ./a:
    총 2
    drwxr-xr-x 3 root other 512 4월 30일 11:00 b

    ./a/b:
    총 0
    bash-2.05# _

    다른 경로의 ls출력은 명령어 뒤에 해당 경로를 적는다.

    bash-2.05# pwd
    /
    bash-2.05# ls -l /test
    총 —-
    drwxr-xr-x 3 root other 512 4월 30일 11:00 a
    -rw-r–r– 1 root other 9612 4월 30일 11:25 aa
    -rw-r–r– 1 root other 3331332 4월 30일 11:27 cc
    bash-2.05# _

    ls명령어 출력물, 읽는 법.
    bash-2.05# ls -l
    drwxr-xr-x 5 user1 staff 512 Feb 22 14:51 dir1
    -rw-r–r– 1 user1 staff 0 Feb 22 14:51 file
    bash-2.05# _
    – 맨처음나오는 것이 File type, Permissions.
    – d 또는 _ 는 디렉토리이냐 파일이냐 표시.
    – 그뒤로 붙는 것들이 파일퍼미션(3개씩 구성되며, 오너, 그룹, 아더 순).
    – 파일퍼미미션 rwx는 각각 읽기 쓰기 실행하기 를 의미.
    – 두번째 숫자가 링크 카운트.
    – 세번째 user1이 오너.
    – 네번째 staff가 그룹.
    – Feb 22 14:51 은 마지막 수정시간 (Last modification date and time)
    – 마지막은 파일이름. 디렉토리와 파일 구분안되니 주의(맨앞 d 와 _ 로 구분)

    mkdir : 디렉토리 만들기

    mkdir /test : 루트 밑에 test라는 디렉토리를 만든다.
    mkdir /test/a/b/c/d : /test/a/b/c까지 이미 존재하여야 디렉토리생성이 된다.
    mkdir -p /test/a/b/c/d : 하위 디렉토리가 존재하지 않아도, 한방에 생성한다.

    rmdir : 디렉토리 지우기

    rmdir /test: 루트 밑에 test디렉토리를 삭제한다. /test에 내용이 존재할 경우, 삭제되지 않는다.
    rm -r /test : test 하위의 파일 및 디렉토리 모두 한방에 삭제한다.(주의)
    rm -ir /test : -i를 붙이면, 삭제할 것인가를 물어본다.(항상 -i를 붙이는 연습)

    쉘에서의 특수문자
    ~ (Tilde) : 홈디렉토리(/export/home/)의 유저로 바로가기(cd ~/usr1)
    * (Asterisk) : 히든파일제외 모든 것. (자릿수상관없음)
    ? (Question) : ?한개당 한자리를 의미.
    [] (Square Brackets) : 한문자를 치환한다.
    [abd] : a또는 b또는 d
    [A-Z] : A또는 B또는.. Z
    [0-9] : 0또는 1또는.. 9
    ls -l [a]* : a* 에 해당하는 모든 파일및 디렉토리 출력
    ls -l [acd] : a또는 c또는 d인 파일 출력
    ls -l [a-z] : a또는 b또는 … z출력

    <, > (Redirect) :
    < : 표준입력장치 재지정(표준은 키보드)
    > : 표준출력장치 재지정(표준은 모니터)
    >> : 지정파일에 추가시 내용밑에 추가로 적힘.

    ls -a /test > a.txt : ls -a /test 출력물이 모니터가 아닌 a.txt에 출력저장됨. 기존 a.txt가 공파일이 아닐경우, 기존내용은 삭제되고 새로운 내용이 저장됨.
    ls -a /test >> a.txt : 기존 a.txt의 내용 밑에 추가로 저장됨.

    | (Pipe) : 앞의 명령어를 실행한 후, 뒤의 명령어를 실행.

    a|b|c : a의 결과값을 b에게주고, b의 결과값을 c에게 준다. c가 최종작업.
    a;b;c : a와 b와 c 따로 작업한다.(상위작업성공여부 상관없음)
    a&&b&&c : a작업이 성공하면, b작업실행. b작업이 성공하면, c작업실행.


    file : file abc라 치면 abc라는 파일의 파일타입을 화면에 보여준다.

    cat 파일이름 : 파일이름에 해당하는 파일의 내용을 표시. 내용이 장문일경우 상단이 지나가버리므로, 단문의 내용을 표시하기에 적합하다.

    cat > 새로운파일 : 새로운파일을 만들어 입력가능. Ctrl+D로 입력종료.


    cat 파일1 파일2 > 새파일 : 파일1과 파일2의 내용을 합쳐 새파일에 작성.


    cat /dev/null > 파일 : 파일의 용량을 0으로 변경. 내용전체 삭제됨.


    more 파일이름 : 장문의 내용을 볼때 사용한다.
    spacebar : 다음화면
    return : 다음라인
    b : 이전화면
    f : 다음화면
    h : HELP
    q : 종료
    /검색어 : 검색
    n : 다음 검색

    tail : 파일의 마지막 10라인을 표시한다.(로그기록을 볼때 자주씀)

    tail -f : 실시간으로 파일의 변경내용이 출력됨.

    wc : 워드카운트, 파일에 포함된 [라인수, 단어수, 문자수] 출력

    -l : 라인수 표시, -w : 단어수 표시, -c : byte수 표시, -m 문자수 표시

    cp : 파일이나 디렉토리 복사

    cp 옵션 원본 복사본
    cp a b : a를 복사하여 b를 만들라.
    cp -i a b : b가 존재할경우, 덮어쓸까요? 하고 물어본다
    cp -r :디렉토리, -r이 없을경우 디렉토리 안옮김
    cp -p : 속성까지 복사, 시간까지 같아짐.
    리눅스에서는 -a : 전부옮김(파일+디렉토리)


    cp는 디렉토리가 없으면 복사할 수 없다.
    /test2가 존재하는 상태에서 cp a /test2를 입력하면, a라는 파일은 /test2/a 의 위치로 복사되지만, /test3의 사례와 같이, 디렉토리가 존재하지 않는다면 /test3 이라는 파일명으로 복사가 된다.

    mv : 파일이나 디렉토리 옮김

    mv -i :물어봄
    mv -f :디렉토리


    디렉토리가 존재하지 않는다면 이동되지 않는다.
    /test2 디렉토리가 존재하지 않는 상태에서, mv b /test2를 입력하게 되면, 현재 폴더의 b라는 파일이 루트의 test2라는 파일로 변환된다. mv c /test3/의 사례와 같이, 딜리미터를 달았다 할지라도, mv명령어는 디렉토리를 생성하지않기 때문에, 루트아래의 test3이라는 파일로 변환된다.

    rm : 파일이나 디렉토리 삭제

    rm -i : 지울까요?
    rm -r : 디렉토리까지 삭제
    rm * : 디렉토리 제외 파일만 삭제시.
    rm *.txt : 모든 .txt파일을 삭제한다.(-r명령어가 빠졌으므로 디렉토리 제외)
    rm -r *.txt : 모든 .txt파일 및 디렉토리 삭제.


    touch : 파일 껍데기만 만들기
    touch -t 월일시간분 :12190815 : 시간수정
    mkfile -n 10m ab.txt : 10메가짜리 ab.txt를 생성


    댓글

Designed by Tistory.