Linux command를 위한 Cheat Sheet: zcat, grep, jar, apt-cache, pgrep, route, ip, watch, wc, ss etc.
Index
- If operation
- 2021 Cheat Sheet
- 2020 Cheat Sheet
If operation
2021 Cheat Sheet
압축을 풀지 않고 압축 파일 확인하는 방법
|
|
가끔 압축되어있는 gz 파일을 확인할 일이 생긴다. 압축된 파일을 보려면 압축을 풀고, 그 다음에 조회를 해야 한다고 생각했지만 zcat 커맨드를 사용하면 압축을 풀지 않고도 확인을 할 수 있다. 더 자세한 사용법은 [zcat 커맨드] 을 참고하면 된다.
포스팅에는 zcat
만 썼는데 찾아보니 zless
도 있다고 한다.
우분투 버전 확인
|
|
grep with before/after num line
|
|
grep을 쓰다 보면 딱 해당 사항의 문장들만 뽑아다 준다. 그래서 전후 상황을 알기가 어려운데 이때 -A
와 -B
옵션으로 grep 앞/뒤에 있는 문장들 n 행까지 출력을 할 수 있다.
jar 파일 내부 보기
|
|
jar 파일은 java + tar 로, 리눅스에서 사용하는 파일 묶음인 tar를 자바 버전으로 만들었다고 생각하면 된다.
서버에 jar파일만 올리면 이 파일 안에 뭐가 들어있는지 알고 싶을 때가 있고 어떤 라이브러리의 어떤 버전을 쓰는지 알고 싶을 떄가 있다. 이때 해당 커맨드를 사용해주면 된다. 단, tar 파일이 압축파일은 아니다. 그냥 여러 파일들을 한데 묶는 역할을 한다고 생각하면 된다.
설치된/설치할 apk 버전 확인하기
|
|
pgrep
|
|
AKA process grep
with this, I don’t have to do ps -ef | grep java
. pgrep is ps with grep function.
Get info about command
|
|
Getting more info about command. It will let you know about command such as alias, shell embedded
Related with network
route
|
|
머신의 라우팅 테이블을 보여준다. 어떤 네트워크들이 열려있는지, 그 네트워크들의 브로드케스팅과 넷마스크, 인터페이스를 볼 수 있다.
ip
|
|
제일 많이 사용하는 네트워크 정보 커맨드는 ifconfig
인데 ifconfig는 net-tools
를 설치해야 사용을 할 수 있다.
ip a 를 사용하면 비슷한 정보들을 뽑아낼 수 있다. 오히려 ifconfig 보다 ip 커맨드가 더 기능이 많아보인다.
Moving cursor in vi
|
|
여태 vi 조작을 할 때 문장의 맨끝과 맨앞을 쉽게 가는 방법을 몰라서 방향키를 열심히 눌렀는데 home 키를 누르면 문장의 바로 앞으로, end 키를 누르면 문장의 끝으로 손쉽게 갈 수 있다.
watch
|
|
규칙적으로 값을 갱신해서 화면에 보여준다. default 값은 2초인 거 같다. 한마디로 이 커맨드를 쓰면 서버 상태를 계속 모니터링 할 수 있는 거다. 아예 고정을 해놓고 실시간으로 업데이트를 해서 모여주니까 모니터링하기 편하다. 약간 top과 비슷하다고 할 수 있다.
tree
|
|
이건 작업할 때 많이 쓴다기 보다는 블로그에 포스팅할 때 디렉터리 구조 보여주는데 더 많이 쓰는 것 같다. 원래의 용도는 한 디렉터리의 구조를 deep down 하게 들어가 tree 를 만들어 보여주는 것이다. 디렉터리를 한 눈에 파악하기 좋다.
키워드 문장 제외 하고 검색하기
|
|
Useful command from Linux Pocket Guide
|
|
less -N file_name
is fascinating command indeed. I usually use vi to see a whole file, if I try to
access the file from different terminal I face a conflict .swp problem. I can solve it with less. Technically, Less does not make the file open.
It just prints all lines in the file using stream.
Not like cat, less is a stream ,so I can go back and forth.
Number + g event let you go to the number directly. 100g
means go to 100 th lines in the file.
setting number in vim
|
|
shutdown linux
|
|
Run Java file in Linux
I usually work with windows. But mostly, our server env is Linux. Because of this, I have to test in local(windows) and Linux both. Everything is quite same, however just like downloading/making file AKA involved with path makes things harder.
Today(2021-01-08) I have to check project dir in both env, so I wrote a short java code to run in Linux as well.
Java code to get directory
|
|
Run Java
|
|
service related command
|
|
Linux commands related to service are mostly start as systemctl
. Service
is kind of out-dated command, so it had better using systemctl
ubuntu 18 network connection
|
|
In Ubuntu 18 version, network connection setting is quite different with order versions.
Now setting file is located in /etc/netplan
. It means netplan is now the commander of netwokring.
I had not known about applying command, so I just rebooted the os when I changed something. But you’d better just using netplan apply
command.
Linux command 2020
sftp connection
|
|
-
command to go previous directory
|
|
내가 현재 디렉토리로 옮기기 직전에 있었던 디렉토리로 가는 커맨드.
작업을 하다보면 cd를 써서 디렉토리를 옮기는 일이 정말 많다. 그런데 방금 있었던 디렉토리로 돌아가야 할 때 cd 경로를 다시 치는 것 보다 cd - 를 사용하면 손 쉽게 갈 수 있다.
직전의 커맨드 불러오기
|
|
바로 이전의 커맨드는 사실 ↑
을 이용하는데 가끔 이전의 명령 불러오기가 안되는 경우가 있다고 한다. 그때 사용하면 좋은 커맨드. !
를 잘 기억해두자. 과거의 커맨드를 불러들이는데 연관이 있는 커맨드다.
history에 있는 n 번째 커맨드 불러오기
|
|
history 커맨드를 사용하면 내가 여태까지 사용한 커맨드들의 기록을 보여준다. 그때 만약 다시 실행하고 싶은 커맨드가 있다면 !12
(실행하고 싶은 커맨드 번호)를 쓰면된다.
제일 마지막에 실행했던 특정 커맨드 블러오기
|
|
아까 !12와 비슷하다. 단, 여기서는 history를 볼 필요가 없다. !cd
(내가 제일 마지막으로 실행했던 cd) 라는 뜻이다. 결국 !뒤에 써진 커맨드는 내가 제일 최근에 실행했던 커맨드를 다시 실행해달라는 뜻이다.
프롬프트에 입력된 문자 모두 지우기
|
|
ctrl + u를 사용하면 여태 입력했던 문자가 싹 지워진다. 어떨 때 제일 좋냐하면 CUI 환경에서 비밀번호 치다가 오타 났을 때 ctrl+c 눌러서 명령 취소 안 하고 ctrl + u 눌러서 다시 입력할 때 좋다.
전체 실행중인 프로세스 모니터링
|
|
가끔 리눅스 안에서 실행되는 프로세스들을 확인하고 싶을 때가 생긴다. 예를 들어 실행한 jar 파일이 잘 돌고 있는지, 지금 막 db 배치를 돌렸는데 일을 잘 하고 있는지 등등. 프로세스 확인에는 ps -ef를 제일 많이 사용하겠지만 mysql, java 등등 돌아가는게 한 눈에 보기 좋은 커맨드는 top 이다.
top에서 shift+ p
는 cpu 많이 잡아먹는 순으로 보여주고 shift + m
은 메모리 많이 잡아먹는 순으로 보여준다.
포트와 프로세스 연결 확인
|
|
사실 이건 고수 커맨드는 아니고 내가 자꾸 깜빡깜빡해서 넣어놨다. 운영체제 안의 몇 번 포트들이 어느 프로세스와 연결되어 열려있는지를 볼 수 있다.
리눅스 스크린 조작 커맨드 1: screen
|
|
대부분의 터미널은 bash 프로세스와 연결이 되어있다. 그래서 터미널을 닫아버리면 내가 실행하고 있던 프로세스가 같이 끝나버린다. 그래서 jar 실행 등 리눅스 자체가 멈추지 않는 한 계속 실행되기 바라는 작업들은 리눅스가 죽기 전 까지 죽지 않는 root 프로세스에 연결한다. nohop
커맨드가 바로 그런 역할을 한다.
그런데 이 방법 말고도 터미널이 죽어도 작업이 죽지 않는 방법이 있다. 바로 screen
커맨드다. 사실 screen 커맨드는 하나의 터미널에 여러 tab을 만들 때 사용하면 좋다. 여기저기서 작업을 할 수 있어서 편리하다. attached/detached 개념을 사용해서 터미널에 붙어있는지 아닌지를 알 수 있다.
이렇게 스크린을 만들어 두면 작업 도중에 회사에서 집으로 옮겼을 경우 detached된 screen을 attached해서 사용하면 회사에서 하던 작업을 그대로 할 수 있다.
screen 조작
|
|
그리고 screen의 환경설정을 .screenrc에서 하는데 이때 화면을 보다 보기 쉽게 만들어 줄 수 있다. 나의 추천은 [screen 세팅] 처럼 세팅하는 것이다. 간결해서 보기 편하다. 적용하면 밑에 그림처럼 screen창이 만들어진다.
파일 끝
|
|
tail -f
는 파일이 달라지는 걸 모른는데(포인터가 달라지는 둥) -F
는 파일의 변화를 안다. 내용이 바뀐다는 것보다는 파일의 포인터가 달라진다는 얘기를 하는 것 같음.
파일 시작
|
|
tail 과 비슷한 커맨드인데, tail이 파일의 끝을 조작한다면 head는 파일의 시작을 조작한다.
파일 만들기
|
|
그냥 시간 업데이트 한다고 생각했는데 컴파일러
와 상관이 있다. 컴파일러는 안의 내용이 바뀌지 않아도 시간이 갱신되면 다시 컴파일을 해준다. 그래서 컴파일을 다시 하고 싶은데 번거롭게 뭘 따로 하고 싶지 않으면 touch를 써서 쉽게 시간을 바꿔주면 컴파일이 된다.
그리고 파일을 만들때도 vi로 열어서 저장을 하기 보다는 touch로 먼저 파일을 만들어두고 작업을 하는 경우가 많다.
리눅스 스크린 조작 커맨드 2: tmux
|
|
다른 분이 알려주신 커멘드인데 정말 너무너무 잘 쓰고 있다. 예전에 이거 없이 어떻게 살았나 싶을 정도.. screen 커맨드와 비슷한데 훨씬 더 좋다. session으로 이전 작업을 기억할 뿐 아니라 화면을 나눌 수 있다.
tmux 조작
|
|
Nginx conf 파일 문법 체크
|
|
갑자기 리눅스 커맨드 얘기 하다가 nginx 얘기가 나왔는데 자주 깜빡해서 써두기로 했다. nignx의 conf 파일을 바꾸고 겁도 없이 바로 systemctl reload nginx
를 하고는 했는데 그 전에 conf 파일을 바꿨으면 검사를 먼저 해줘야 한다.
sudo nginx -t 를 하면 잘 썼을 경우 ok가 나오는데 그때 systemctl reload nginx로 반영을 하자.
네트워크 커맨드: ss
ss에 대한 포스트를 읽다보니 ss가 new netstat 라는 말을 봤는데 그런것 같다. 열린 포트를 보려고 netstat을 해야하는데 정말 안 외워지는 커맨드 같다. ss가 조금더 사용이 쉽다고 한다.
|
|
ss 커맨드 상세
|
|