CLI에서 여러 개 명령
- 두가지 이상의 명령을 동시에 작성하기 위해 세미콜론(;)을 사용합니다.sgoing@sgoing-virtual-machine:~$ mkdir why; cd why
sgoing@sgoing-virtual-machine:~/why$
sgoing@sgoing-virtual-machine:~/why$ pwd
/home/sgoing/why
Pipeline
- 프로그램: 명령을 순서대로 진행시킴
- 하나의 프로그램(프로세스)에서 다른 프로그램으로 결과를 입력시키는 형태를 pipeline이라고 합니다.
- grep: 어떤 부분에서 필요한 행을 찾는 명령어
sgoing@sgoing-virtual-machine:~/why$ grep --help
사용법: grep [옵션]... 패턴 [파일]...
Search for PATTERN in each FILE.
Example: grep -i 'hello world' menu.h main.c
...
- 웹으로 부터 어떠한 문서를 다운받아 linux.txt로 생성
sgoing@sgoing-virtual-machine:~/why$ wget -O linux.txt https://en.wikipedia.org/wiki/Linux #wget는 웹으로 부터 다운받을 경우 사용하는명령
--2018-10-13 23:18:42-- https://en.wikipedia.org/wiki/Linux
Resolving en.wikipedia.org (en.wikipedia.org)... 103.102.166.224, 2001:df2:e500:ed1a::1
접속 en.wikipedia.org (en.wikipedia.org)|103.102.166.224|:443... 접속됨.
HTTP request sent, awaiting response... 200 OK
Length: 525351 (513K) [text/html]
Saving to: ‘linux.txt’
linux.txt 100%[==================================>] 513.04K 866KB/s in 0.6s
2018-10-13 23:18:43 (866 KB/s) - ‘linux.txt’ saved [525351/525351]
sgoing@sgoing-virtual-machine:~/why$ ls -l
합계 516
-rw-r--r-- 1 sgoing sgoing 525351 10월 13 20:07 linux.txt
- 다운 받은 파일을 터미널 화면에 나타내기 위해 cat 명령을 사용합니다.
sgoing@sgoing-virtual-machine:~/why$ cat linux.txt
- 위와 같이 wget를 사용하여 다운받은 파일은 ᅟHTML code 형식입니다. 그러므로 웹상에서 copy - paste를 실행하여 텍스트(.txt) 형식의 파일을 만들고 위의 명령을 다시 실행하면 정상적으로 출력됩니다.
- 위 문서에 linux 문구가 포함된 행만을 나타내기 위해 grep를 사용합니다.
sgoing@sgoing-virtual-machine:~/why$ grep linux linux.txt
Software
libraries, which contain code that can be used by running processes. On
Linux systems using ELF-format executable files, the dynamic linker
that manages use of dynamic libraries is known as ld-linux.so.
If the system is set up for the user to compile software themselves,
header files will also be included to describe the interface of
installed libraries. ...
- ls --help 중에서 sort를 포함하는 문구를 출력하고자 하는 경우
sgoing@sgoing-virtual-machine:~/why$ ls --help | grep sort
#'ls --help'의 결과를 'grep 패턴 파일'의 형식 중 파일의 인자로 전달합니다.
#'ls --help'의 결과를 'grep 패턴 파일'의 형식 중 파일의 인자로 전달합니다.
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
-c with -lt: sort by, and show, ctime (time of last
with -l: show ctime and sort by name;
otherwise: sort by ctime, newest first
-f do not sort, enable -aU, disable -ls --color
...
즉 pipe(|)는 이전의 결과를 다음에 전달해 줍니다. 위의 경우는 ls --help의 내용을 pipe 다음의 명령(프로그램) grep sort에 전달해줍니다.
"grep 패턴 파일"의 형식에서 pipe 이전의 명령의 결과는 파일이 됩니다.
그러면 위의 결과에서 file이 포함된 행을 grep하기 위해서는 다음과 같습니다.
sgoing@sgoing-virtual-machine:~/why$ ls --help | grep sort |grep file
-S sort by file size, largest first
- 다음은 현재 실행되고 있는 프로그램들의 상황을 보여줍니다.
sgoing@sgoing-virtual-machine:~/why$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 159836 9224 ? Ss 21:52 0:05 /sbin/init splash
...
- 위의 결과에서 python이 포함된 행을 출력하는 경우
sgoing@sgoing-virtual-machine:~/why$ ps aux | grep python
# pa aux의 결과는 'grep python 파일'에서 파일로 전달됩니다.
# pa aux의 결과는 'grep python 파일'에서 파일로 전달됩니다.
root
790 0.0 0.4 178960 17368 ? Ssl 21:52 0:00
/usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
sgoing 4086 0.0 0.4 93600 20568 tty2 S+ 23:26 0:00 /home/sgoing/anaconda3/bin/python completion.py
sgoing
4091 0.0 0.4 65108 19692 tty2 S+ 23:26 0:00
/usr/bin/python3.6
/home/sgoing/.vscode/extensions/ms-python.python-2018.9.0/pythonFiles/jedi/evaluate/compiled/subprocess/__main__.py
/home/sgoing/.vscode/extensions/ms-python.python-2018.9.0/pythonFiles
sgoing 4571 0.0 0.0 22824 1032 pts/0 S+ 23:56 0:00 grep --color=auto python
댓글
댓글 쓰기