셸 필터의 구체적인 사용
간단히 말하면 필터는 다음과 같은 두 가지로 요약할 수 있다.
명령
설명
awk
텍스트 처리에 사용되는 해석적 프로그래밍 언어로 일반적으로 데이터 추출과 보고 도구로 사용된다.
cut
각 입력 파일 (지정된 파일이 없으면 표준 입력) 의 각 행의 지정된 부분을 표준 출력으로 출력하는 데 사용됩니다.
grep
하나 이상의 파일에서 지정한 패턴과 일치하는 줄을 검색할 수 있습니다.
tar
아카이브를 위한 응용 프로그램입니다.
head
파일의 시작 부분을 읽는 데 사용됩니다(기본값은 10줄).지정한 파일이 없으면 표준 입력에서 읽습니다.
paste
파일을 결합하는 데 사용되는 행입니다.
sed
텍스트를 필터링하고 변환하는 흐름 편집기입니다.
sort
텍스트 파일의 줄을 정렬하는 데 사용됩니다.
split
파일을 블록으로 분할하는 데 사용됩니다.
strings
파일에서 인쇄할 수 있는 문자열을 인쇄하는 데 사용됩니다.
tac
cat 명령의 기능과 반대로 파일이나 연결 파일을 거꾸로 표시하는 데 사용됩니다.
tail
파일의 끝 부분을 표시하는 데 사용됩니다.
tee
표준 입력에서 내용을 읽고 표준 출력과 파일에 쓸 수 있습니다.
tr
문자를 변환하거나 삭제할 수 있습니다.
uniq
반복된 행을 보고하거나 무시할 수 있습니다.
wc
파일의 총 점, 단어 수 또는 바이트 수를 인쇄하는 데 사용됩니다.
다음은 필터의 사용을 몇 가지 실례를 통해 보여 드리겠습니다.
파이프에서awk 명령 사용하기
awk 명령의 구체적인 사용법에 대해 여러분 스스로 배워 주십시오. 이 절에서 우리는 단지 몇 가지 간단한 실례를 통해awk 명령이 파이프에서 사용되는 것을 이해합니다.
인스턴스 1
시스템의 모든 계정 이름을 보고 이름의 알파벳 순서대로 정렬합니다.
[jb51.net]$ awk -F: '{print $1}' /etc/passwd | sort
adm
apache
avahi
avahi-autoipd
bin
daemon
dbus
ftp
games
...
상례에서 사칭: 열 구분자로 파일/etc/passwd의 내용을 여러 열로 나누고 첫 번째 열의 정보 (즉 사용자 이름) 를 인쇄한 다음, 출력을 파이프를 통해sort 명령으로 보냅니다.인스턴스 2
현재 계정에서 가장 자주 사용하는 명령 10개를 열거합니다.
[jb51.net]$ history | awk '{print $2}' | sort | uniq -c | sort -rn | head
140 echo
75 man
71 cat
63 su
53 ls
50 vi
47 cd
40 date
26 let
25 paste
상례에서history 명령은 출력을 파이프를 통해awk 명령으로 보냅니다. awk 명령은 기본적으로 공백을 열 구분자로 사용하고history의 출력을 두 열로 나누며 두 번째 열의 내용을 출력으로 파이프를 통해sort 명령으로 보냅니다. sort 명령을 사용하여 정렬한 후에 출력을 파이프를 통해 uniq 명령으로 보냅니다. uniq 명령을 사용하여 역사 명령이 반복되는 횟수를 집계했습니다.또한sort 명령으로 uniq 명령의 출력을 중복 횟수에 따라 높은 순서에서 낮은 순서로 정렬하고, 마지막으로head 명령을 사용하여 기본적으로 상위 10개의 정보를 표시합니다.인스턴스 3
현재 시스템의 총 메모리 크기를 표시합니다. 단위는 KB입니다.
[jb51.net]$ free | grep Mem | awk '{print $2}'
2029860
파이프에서 cut 명령 사용하기
cut 명령은 텍스트 처리에 사용됩니다.이 명령을 사용하면 파일에 지정된 열의 내용을 추출할 수 있습니다.
인스턴스 1
시스템에서 로그인 셸이 "/bin/bash"사용자 이름과 해당 사용자 홈 디렉터리에 대한 정보를 보려면 다음과 같이 하십시오.
[jb51.net]$ grep "bin/bash" /etc/passwd | cut -d: -f1,6
root:/root
mozhiyan:/home/mozhiyan
만약에 Linux 시스템에 대해 알고 있다면,/ctc/passwd 파일은 사용자 계정의 정보를 저장하는 데 사용되고, 이 파일의 모든 줄은 하나의 계정의 정보를 기록하며, 모든 필드는 사칭으로 구분되며, 첫 번째 필드는 계정의 계정 이름이고, 여섯 번째 필드는 계정의 홈 디렉터리의 경로입니다.인스턴스 2
현재 시스템의 CPU 유형을 봅니다.
[jb51.net]$ cat /proc/cpuinfo | grep name | cut -d: -f2 | uniq
Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
위의 예에서 cat/proc/cpuinfo | grep name 명령을 실행하면 다음과 같습니다.
[jb51.net]$ cat /proc/cpuinfo | grep name
model name : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
model name : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
model name : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
model name : Intel(R) Core(TM) i5-2520M CPU 0 2.50GHz
그리고 우리는 cut 명령을 사용하여 상술한 출력 내용을 사칭으로 구분하고 내용을 두 열로 나누어 두 번째 열의 내용을 표시하며 마지막으로 uniq 명령을 사용하여 중복된 줄을 제거합니다.인스턴스 3
현재 디렉터리의 하위 목록 수를 보십시오.
[jb51.net]$ ls -l | cut -c 1 | grep d | wc -l
5
위의 파이핑 명령은 주로 다음과 같습니다.파이프에서grep 명령 사용하기
grep 명령은 파이프에서 비교적 자주 사용하는 명령입니다.
인스턴스 1
시스템 로그 파일의 오류 정보를 보십시오.
[jb51.net]$ grep -i "error:" /var/log/messages | less
인스턴스 2시스템의 HTTP 서비스에 대한 프로세스 정보를 봅니다.
[jb51.net]$ ps auxwww | grep httpd
apache 18968 0.0 0.0 26472 10404 ? S Dec15 0:01 /usr/sbin/httpd
apache 18969 0.0 0.0 25528 8308 ? S Dec15 0:01 /usr/sbin/httpd
apache 18970 0.0 0.0 26596 10524 ? S Dec15 0:01 /usr/sbin/httpd
인스턴스 3프로그램 목록에 있는 모든 명령 이름에 키워드 zip이 포함된 명령을 찾습니다.
[jb51.net]$ ls /bin /usr/bin | sort | uniq | grep zip
bunzip2
bzip2
bzip2recover
gunzip
gzip
인스턴스 4시스템에 설치된kernel 버전과 관련된kernel 패키지를 보십시오.
[jb51.net]$ rpm -qa | grep kernel
kernel-2.6.18-92.e15
kernel-debuginfo-2.6.18-92.e15
kernel-debuginfo-common-2.6.18-92.e15
kernel-devel-2.6.18-92.e15
인스턴스 5/etc 디렉토리에서 IP 주소가 포함된 모든 파일을 찾습니다.
[jb51.net]$ find /etc -type f -exec grep '[0-9][0-9]*[.][0-9][0-9]*[.][0-9][0-9]*[.][0-9][0-9]*' {} \;
파이프에서 tar 명령 사용하기
tar 명령은 Linux 시스템에서 가장 자주 사용하는 파일 패키지 프로그램입니다.
인스턴스 1
tar 명령을 사용하여 디렉터리의 전체 구조를 복사할 수 있습니다.
[jb51.net]$ tar cf - /home/mozhiyan | ( cd /backup/; tar xf - )
인스턴스 2네트워크에 걸쳐 디렉터리의 전체 구조를 복제하다.
[jb51.net]$ tar cf - /home/mozhiyan | ssh remote_host "( cd /backup/; tar xf - )"
인스턴스 3네트워크에 걸쳐 디렉터리의 전체 구조를 압축하여 복제하다.
[jb51.net]$ tar czf - /home/mozhiyan | ssh remote_host "( cd /backup/; tar xzf - )"
인스턴스 4tar 압축 파일의 크기를 검사합니다. 단위는 바이트입니다.
[jb51.net]$ cd /; tar cf - etc | wc -c
215040
인스턴스 5tar 압축 파일을 tar로 압축했는지 확인하십시오.gz 귀속 파일 다음에 차지하는 크기.
[jb51.net]$ tar czf - etc.tar | wc -c
58006
인스턴스 6tar 압축 파일을 tar로 압축했는지 확인하십시오.bz2는 가랑이 파일 뒤에 차지하는 크기입니다.
[jb51.net]$ tar cjf - etc.tar | wc -c
50708
파이프에서 head 명령 사용하기
때때로, 당신은 명령의 모든 출력을 필요로 하지 않고, 명령의 앞줄의 출력만 필요로 할 수도 있다.이때 헤드 명령을 사용할 수 있습니다. 명령의 앞줄만 출력합니다.기본 출력 줄 수는 10줄입니다.
인스턴스 1
ls 명령의 첫 열 줄 출력을 표시합니다.
[jb51.net]$ ls /usr/bin | head
addftinfo
afmtodit
apropos
arch
ash
awk
base64
basename
bash
bashbug
인스턴스 2ls 명령의 첫 다섯 줄 내용을 표시합니다.
[jb51.net]$ ls / | head -n 5
bin
cygdrive
Cygwin.bat
Cygwin.ico
Cygwin-Terminal.ico
파이프에서 uniq 명령 사용하기
uniq 명령은 중복된 줄을 보고하거나 삭제하는 데 사용됩니다.테스트 파일을 사용하여 파이프에서 uniq 명령을 사용하는 실례를 설명합니다. 그 내용은 다음과 같습니다.
[jb51.net]$ cat testfile
This line occurs only once.
This line occurs twice.
This line occurs twice.
This line occurs three times.
This line occurs three times.
This line occurs three times.
인스턴스 1출력에서 중복된 줄을 제거합니다.
[jb51.net]$ sort testfile | uniq
This line occurs only once.
This line occurs three times.
This line occurs twice.
인스턴스 2출력에서 각 반복된 행이 나타나는 횟수를 표시하고 횟수에 따라 거꾸로 표시합니다.
[jb51.net]$ sort testfile | uniq -c | sort -nr
3 This line occurs three times.
2 This line occurs twice.
1 This line occurs only once.
파이프에서 wc 명령 사용하기
wc 명령은 텍스트 흐름에 포함된 문자 수, 단일 동수, 줄 수를 통계하는 데 사용됩니다.
인스턴스 1
현재 시스템에 로그인한 사용자 수를 집계합니다.
[jb51.net]$ who | wc -l
인스턴스 2현재 Linux 시스템의 프로세스 수를 집계합니다.
[jb51.net]$ ps -ef | wc -l
셸 필터의 구체적인 사용에 관한 이 글은 여기까지 소개되었습니다. 셸 필터에 대한 더 많은 내용은 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보시기 바랍니다. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Shell alias 명령에 별칭을 설정하는 방법명령에 별명을 설정하면 명령의'작은 이름'으로 삼을 수 있지만, 이렇게 하는 것이 무슨 의미가 있습니까? 이때 별명이 작용할 수 있다.vim 명령의 별명을vi라고 정의하면 이후에 실행된vi 명령은 실제로vim 명령을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.