티스토리 뷰

OSS

Linux Command

이끼대백과 2018. 11. 20. 14:36

0. Linux Command Basics

* 두글자 커맨드는 중요함 ㅠㅠ($ cd, $ ls, $ ps ...)

  • $ man -k <keyword> keyword에 관련하여 메뉴얼을 보여줌

  • $ man <command> command에 관련하여 메뉴얼을 보여줌

  • $ pwd 현재 디렉터리를 출력

  • $ who 현재 시스템에 로그인한 유저

  • $ whoami 현재 로그인한 계정을 출력

  • $ which whoami (/usr/bin/whoami) 커맨드의 위치를 출력

  • $ su -<accountname> 사용자 계정을 전환합니다. exit 입력하면 이전계정으로 돌아감

  • $ cp <fromfile> <tofile> fromfile을 복사한 tofile을 만듦

  • $ mv <fromfile> <tofile> fromfile을 tofile로 이동(같은 디렉터리면 rename)

  • $ touch sample.txt 빈 sample.txt를 생성

  • $ rm <filename> filename을 삭제, -r 옵션(recursive)를 주게되면 디렉터리삭제

  • $ mkdir <newdir> newdir폴더를 만듦

  • $ rmdir <olddir> olddir를 삭제 디렉터리가 비어있어야함

  • $ ln -s /path/file /path/symlink symbloic link를 만듦

  • $ cat sample.txt 파일을 합쳐서 파일의 내용을 보여줌(concatenate)//파일이 하나밖에 없으므로 그냥 출력됨

  • $ more sample.txt txt파일을 한번에 한페이지씩 보여줌 spacebar로 다음페이지로 이동 //f 또는 space 앞으로, b는 뒤로, q 종료

  • $ less sample.txt more랑 같지만 이전페이지로 이동할 수 있음

  • $ head sample.txt 앞의 10줄 프린트, 옵션으로 라인수를 줄 수 있음 ($ head -15 sample.txt)

  • $ tail sample.txt 뒤의 10줄 프린트, 옵션으로 라인수를 줄 수 있음(-f 옵션은 로그파일의 새로생성된 라인만 보여줌ex) $ tail -f /var/log/syslog)

  • ls 디렉터리에 있는 파일을 보여줌(-a 숨겨진 모든파일, -l 더 많은 정보(long format)

    • File Permission

    • User(rwx), Group(rwx), Other(rwx)

    • 디렉터리에대한 권한(r:디렉터리 내용표시에 필요, w:디렉터리 생성,삭제,이름변경, x:디렉터리 이동시

  • $ chmod <permission> <filename> permission:a+x:모든곳에 실행권한을 부여 u-rx :유저에게 쓰기,실행권한을 제거 664:rw-rw-r--로 표현

  • $ find . -name "sample.txt" .<-은 현재디렉터리를 표현 = 현재 디렉터리부터 sample.txt를 찾음, "*.txt" txt를 모두 찾음, "*sample*" sample을 포함하는 모든 파일을 찾음

  • grep "hello" sample.txt sample.txt에서 "hello"를 찾음

    • -i 옵션은 대소문자 구분안함

    • "t[wo]o" two나 too를 찾음

    • grep -r "sample" * -r옵션과 디렉터리(*)를 주면 해당디렉터리부터 "sample"을 찾음

    • -n 옵션은 라인을 보여줌

    • $ grep -nrie "sample" /home/root/* = /home/root부터 "sample"을 줄단위로 대소문자 구분없이 찾음

    • find ./ -name "*.java" | xargs grep -i “hello"

  • $ tar -czvf sample.tar.gz /path/directory_or_file = /path/directory_or_file 에서 sample.tar.gz를 만듦

    • -c : 아카이브 create//만들 때

    • -z : gzip으로 압축

    • -v : 터미널에 실행과정을 출력(verbose)

    • -f : 아카이브 이름을 지정

    • -x : 압축풀때

1. Standard Files

- 3가지의 표준 파일 defalut : input(keyboard) -> program -> output(screen) 또는 error(screen)

  • standard input(0), standard output(1), standard error(2) 모두 다 defalut는 terminal (기본적으로 열려져있음)

  • 프로세스마다 어떤파일이 열려있는지 기록하는 open file table(file descripter)에 기록해둡니다.

2. Redirecting Output

$ ls > sample.txt ls프로그램이 실행되고 sample.txt에 output이 쓰인다.

$ wc < sample.txt wc 프로그램이 실행되고 input으로 sample.txt에서 읽습니다.

3. Connecting commands with Pipes

  • 프로그램의 output을 다른프로그램의 input으로 사용하고 싶을 때! (파이프로 연결한다...)

  • $ ps -ef | grep netscape | wc -1 (3개의 커맨드가 2개의 파이프로 연결됨) = netscape브라우저가 몇개 돌아가고 있는가?

4. Shell Script

  • Shell(Command Interpreter)로 실행되는 프로그램

sample.sh

  #!/bin/bash

#example of using arguments to a script

echo "My first name is $1"
echo "My surname is $2"
echo "Total number of arguments is $#"

$ chmod a+x sample.sh //sample.sh에 모든사람에게 실행권한을 추가

$ ./sample.sh Gildong Hong //sample.sh에 인자로 Gildong과 Hong을 줌

5번째줄 $1에 Gildong이 맵핑되고

6번째줄 $2에 Hong이 맵핑됩니다.

7번째줄 $#에 인자의 갯수 2가 맵핑됩니다.

5. Download files

$ wget -c <url> //<url>로부터 파일을 다운로드 받습니다. -c옵션은 이어서 다운로드 합니다.

6. Process Management

  • $ ps

    • 현재 사용자와 터미널과 관련된 프로세스들을 보여줍니다.

  • $ ps -ef

    • 현재 시스템의 모든 프로세스를 보여줍니다.

  • $ ps -ef | grep httpd

    • Apache web server 프로세스가 돌아가고 있는지 아닌지 확인가능.

  • $ kill

    • process에 신호를 보냅니다.

    1. catch -> call handler

    2. ignore

    3. die

    • 자신이 소유한 프로세스에 신호를 보낼 수 있습니다. (root는 모든 프로세스에 신호보내기 가능)

    • Ctrl-C는 ("interrupt", SIGINT);를 기본값(default)으로 보냅니다. 프로세스를 종료합니다.

    • $ kill -INT pid ( = kill -2 pid)

  • Background로 프로세스 실행하기

    • Foreground 프로세스를 실행하면 작업이 끝날 때까지 터미널에서 새작업을 할 수 없습니다..

    • 프로세스가 많은 시간이 걸리는 경우 Background로 프로세스를 실행할 수 있습니다.

    • Ctrl-Z는 프로세스를 잠깐 중지시킵니다. $ bgBackground에서 실행시킬 수 있습니다.

    • <program> &<program>Background로 프로그램을 실행합니다.

'OSS' 카테고리의 다른 글

Linux File System  (0) 2018.12.05
Linux User  (0) 2018.11.26
Linux System Administration(Boot/Shutdown)  (0) 2018.11.20
Linux Introduction  (0) 2018.11.20
OSS 정리2  (0) 2018.11.20
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함