티스토리 뷰

0. 개요

Cat 명령어는 file이 길어지면 잘 작동하지 않고 terminal에서 너무 길어진다. 따라서 파일 내용 확인(inspect)을 위해서는 다른 방법이 필요하다.

1. 파일 다운로드 

curl (cURL) : URL과 interact할 수 있또록 해주는 command line

which : 프로그램이 terminal에서 사용가능한지 알려줌 (ex. which curl 을 입력하면 입력가능하면 directory를 알려줌)

여기서는 curl -OL cdn.learnenough.com/sonnets.txt 입력을 통해 sonnets.txt를 다운로드 한다.

 

※ 이전 command를 반복하는 방법.

1) ↑키를 통해서 

2) !(bang)이나 !!을 통해서 (option과 url등을 입력하는 수고를 덜어준다.)

3) !n(history 통해 line확인)을 통해 해당 line의 명령어를 바로 실행 할 수 있다.

4) ^R : 이전 command를 검색을 가능하게 해준다. 선택적으로 편집도 할 수 있다.

 

* cURL : command line 기반의 웹 요청 도구. download와 upload 모두 가능하다.

사용법 : curl [option] <url>

options : 

-h : help페이지. curl에대한 help text를 보여준다.

-I : http header만 보여주고 content는 표시하지 않는다. (-i는 header, content모두, option이 없다면 content만 출력)

-D : <file>에 http header기록한다.

-L : 서버에서 HTTP301이나 HTTP302 응답이 나왔을 경우 redirection URL로 따라간다. (follow redirects)

-O : 출력 파일명을 자동으로 원격지 파일 명과 동일하게 저장한다. (Write output to a file named as the remote file)

 

2. 파일에서의 head와 tail

head <file> : 첫 10줄만 출력

tail <file> : 마지막 10줄만 출력

wc(word count) <file> : file의 line수, 글자수, byte순으로 출력한다.

(line 확인이나 글자수 확인을 위해 file을 >로 만드는 것은 비효율적이므로 |(pipe character)를 주로 이용한다.)

head -n num <file> : num 줄 수 만큼 첫줄부터 출력

tail -n num <file> : num 줄 수 만큼 마지막줄에서 출력

ping <url>: ip나 홈페이지 연결, 인터넷 연결이 잘 되는지 확인할 때 사용한다. 

네트워크 상태를 확인하려는 대상(컴퓨터나 네트워크 기기)를 향해 일정 크기의 패킷(packet, 네트워크의 최소 전송 크기)를 전송한다. 그리고 패킷을 받은 컴퓨터는 수신했다는 응답 메세지를 송신하다. 

따라서 ping command를 입력한 컴퓨터는 해당 url 서버를 수신 후 분석해 대상 서버(컴퓨터)가 잘 작동하는지, 도달한 네트워크 상태가 어떠한지 등을 파악할 수 있다. TCP/IP프로토콜 중 ICMP프로토콜을 통해 작동한다.

 

3. less를 통한 파일 탐색

less <file> : file content inspecting에 많이(거의 가장 많이)사용 되는 명령어.

cat을 사용하면 너무 방대한 양(파일이 길 경우)이 출력되지만 less를 사용해 검색기능 등 여러방법으로 file을 navigate 할 수 있다.

가장 중요한 less에서의 명령어

* less에서의 명령어

검색 기능 : /글자 + enter 

n키 : 다음 검색 결과

N키 : 이전 검색 결과로 이동

q키 : 나가기

G키 : 마지막으로

1G키 : 첫행으로 (17G : 17행으로)

enter(^f) : 다음 페이지

^b : 이전 페이지

 

4. Grepping

grep : file content inspecting 하는데 좋은 도구이다.

grep(globally search a regular expression and print). 동사로도 사용하며, substring을 file에서 검색하기 위해 사용한다.

사용방법 : grep <string> <file> : <string>포함 모든 line을 찾아준다. | wc와 결합 해 횟수를 세는데에도 많이 사용된다.

옵션 -i : 대소문자 구분없이 검색

옵선 -n : line number를 알 수 있다. (G를 통해 바로 이동 가능)

옵션 -v : 해당 단어 없는 부분을 검색. (matching -> mismatching)

본래는 regular expression(regex, 정규식) 검색을 위한것이나 escpae character(프로그래밍 언어 특성상 표현할 수 없는 기능이나 문자를 표현하게 해주는 문자열 내에서 특수한 기능을 수행하는 문자. 예를들어 javascript의 \)의 필요성과 같이, , 정확한 regex builder를 사용한 정확한 format을 지원하지 않기 때문에 잘 사용하지 않는다. 

 

* Grepping process

grep의 많은 용도 중 하나는 특정 string과 일치하는 실행하는 프로그램을 unix process list로부터 filtering하는 것이다.

rogue process를 죽이는데 특히 유용하다.

예를들어 process list중 spring이라는 program을 지우기 위해서,

1) process를 찾는다.

top이나 ps(process status) 명령어 + aux 옵션을 통해 system에서의 모든 process를 볼 수 있다.(ps의 옵션은 -가 붙지 않는다.)

ps aux | grep spring

결과중 첫번째 숫자가 pid(process id)이다. .

2) pid를 통해 process를 제거 한다.

kill 명령어를 이용해 제거한다. (-15는 unix terminate code이다)

kill -15 12241

또는 pkill 명령어를 통해 process 이름을 검색해 제거한다.

pkill -15 -f spring (-f : full argument list와 비교해 일치하는것.)

 

 =>정리하자면, 뭔가 예상과 달리 진행되거나 process가 멈춘다면 top이나 ps aux를 사용해 상황을 보고, | grep을 통해 의심되는 process를 선택하고 kill -15 <pid>나 pkill -15- f <name>을 통해 정리한다.

 

* history 명령어 : 이때까지 입력한 명령어들을 볼 수 있다. 

  grep을 통해 사용한 명령어들을 찾을 수 있고, less를 통해 검색또한 할 수 있다.

Inspecting 관련 명령어 정리

 

 

 

출처 :

https://www.learnenough.com/command-line-tutorial

 

Learn Enough Command Line to Be Dangerous

A tutorial introduction to the Unix command line

www.learnenough.com

https://hippogrammer.tistory.com/137

 

[리눅스 명령어] ping

ping : 네트워크 상태 점검 ping 명령어는 'Packet INternet Groper'의 약자입니다. 네트워크 상태를 확인하려는 대상(target) 컴퓨터(또는 네트워크 기기)를 향해 일정 크기의 패킷(Packet, 네트워크의 최소

hippogrammer.tistory.com

https://extbrain.tistory.com/100

 

[네트워크] ping 명령어 - 네트워크 상태 점검, 도메인 IP 확인

▶네트워크 ping 명령어 - 네트워크 상태 점검, 도메인 IP 확인 ▶설명 ping (Packet INternet Groper)는 대상 컴퓨터를 향해 일정 크기의 패킷을 보낸 후, 대상 컴퓨터가 이에 대한 응답 메세지를 보내면

extbrain.tistory.com

 

'Programming > Command Line' 카테고리의 다른 글

Github SSH 원격 접속을 통한 토큰 없이 push하기  (0) 2022.01.07
기본적인 Git 사용법  (0) 2022.01.05
Command Line - Directories  (0) 2021.07.06
Command Line - Manipulating files  (0) 2021.07.02
Command Line Basics  (0) 2021.07.01
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday