• Home
  • About
    • sdalbsoo's development blog photo

      sdalbsoo's development blog

      TIL

    • Learn More
    • Email
    • Facebook
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

유용한 명령어 모음

25 Jun 2018

Reading time ~5 minutes

tmux 설치법

maxOS 에서는 $ brew install tmux 라고 하면 설치된다.

리눅스에서는 $ apt-get install tmux 를 하면 된다.

$ tmux를 실행하면 tmux가 실행되기 시작한다.

tmux에서 쓰는 용어

  • 프리픽스(prefix) : 단축키를 입력하기 전에 먼저 입력해야하는 키 조합이다. tmux의 기본 프리픽스는< CTRL + b >이다. (현재 저의 로컬 컴퓨터의 프리픽스는 < CTRL + a > 이므로 편의상 <CTRL + a>를 사용하도록 하겠습니다.)
  • 세션(session) : tmux가 관리하는 가장 큰 단위이다.
  • 윈도우(window) : 구글 크롬에서의 탭과 같은 존재이다. 하나의 세션안에 여러 윈도우(탭)이 존재할 수 있다. 또한 각각의 윈도우에 이름을 정할 수 있다.
  • 팬(pane) : 윈도우 안에 존재하는 화면 단위이다. 하나의 윈도우에 여러 팬이 존재할 수 있다. (상단 팬(pane)에 VIM을 켜두고 하단 팬(pane)에 커맨드 라인을 유지한 상태로 작업하면 편리하다.)

tmux에서 지원하는 유용한 단축키

Session

  • $ tmux : 세션을 생성한다.
  • $ tmux attach : 내가 마지막에 사용한 세션을 다시 불러온다.(Session attach)
  • <CTRL + a> + d : 세션을 빠져나온다.(Session detach)
  • $ tmux attach session_name : session_name을 가진 세션을 다시 attach한다.
  • $ exit : 세션을 종료한다.
  • $ tmux ls : 세션 목록을 확인한다.

Window

  • <CTRL + a> + { : ipython와 tmux에서 vim처럼 움직일 수 있다. enter치면 명령어를 치는 부분으로 이동한다.
  • <CTRL + a> + c : window창 생성한다.
  • <CTRL + a> + & : window창을 없앤다.
  • <CTRL + a> + p : previous window로 이동한다.
  • <CTRL + a> + , : name window
  • exit : close window
  • window창이 분할된 후, 창 움직이는 법 : <CTRL + vim용 방향키 (hjkl)>
  • window창이 여러개가 있다면 <CTRL + a> + window번호 를 하면 window번호 쪽으로 이동하게 된다.

Pane

  • <CTRL + a> + v : 수평으로 active pane을 나눈다.(v = vertical)
  • <CTRL + a> + s : window창이 위아래로 분할된다.(s = split)

Linux에서 지원하는 유용한 유틸리티 및 단축키

  • , + <Shift + s>: Strip을 한다. 즉 trailing space을 없앤다.
  • jobs : 현재 background에 무엇이 있나 확인한다.
  • <CTRL + z> : background로 이동한다.
  • <fg> : foreground(fg)로 이동한다. fg % 1, fg % 2 이런식으로 background 중 몇번째 background에 접근할지 쓸 수도 있다.
  • <CTRL + p> or <CTRL + r> : 전에 쳤던 명령어가 나온다.
    • Foreground와 Background 프로세스의 차이는 일단 쉽게 ‘키입력’을 받냐 안받냐로 구분하면 된다. 즉, zsh 켜둔 상태에선 zsh이 우리의 키입력을 받기 떄문에 Foreground 에 zsh이 동작하고 있는 것이다.

Jedi-Vim

  • 터미널에서 관련 명령어가 가능하게된 것은 jedi-vim을 사용하기 때문인데 jedi-vim명령어를 누르면 된다. 현재 jedi-vim에서 키는 ,<- 콤마로 지정되어 있는 상황이다.
  • 따라서 사용자가 사용한 변수를 추적하고 싶다면 일단 < leader > + g 명령어를 쓰면 될 것이다. 다른 방법은 * <- 을 누르면 된다.
  • 여러 파일에 걸쳐서 추적하고 싶으면 < leader > + ag 를 하고 검색하고 싶은 키워드를 넣으면 된다. 그러면 아래에 창이 하나 뜰 것이고 그 창에서 엔터를 누를 때마다 vim 창 전환이 일어나면서 그 위치로 이동된다.
  • 변수를 추적하고 싶을 때는 < leader > + d 명령을 쓰면 될 것이다.
  • < leader > + r 명령어를 사용하면 변수 혹은 함수의 이름을 전부 변경할 수 있다.

vim에서 많이 사용하는 명령어

  • i : 현재 커서 위치에서 insert하기
  • a : 현재 커서 다음칸에 insert하기
  • o : 현재 커서 다음 줄에 insert하기
  • CTRL + o : 이전 커서 위치로 돌아가기
  • CTRL + i : CTRL + o 의 반대
  • di + ( : (1 + 3) 같은 코드가 있을 때 ( (parenthesis) 안에 커서를 둔 상태에서 di( 를 입력하면 paraenthesis 안의 텍스트가 모두 지워진다.
  • di + “ : 위와 같은 원리로 이번엔 “ (double quote)안의 텍스트가 전부 지워진다. ex) 같은 원리로 d대신에 c,y를 쓰면 다음과 같이 된다.
    • di( –> Deletes
    • ci( –> Substitues
    • yi( –> Yanks
  • cw : 단어단위로 삭제한 후 Insert상태로 변경
  • dw : 단어 잘라내기
  • dd : 문장 잘라내기
  • x : 현재 글자 지우기

  • u : Undo
  • CTRL + r : Redo

  • w : 단어 첫글자로 이동
  • e : 단어의 마지막 글자로 이동
  • b : 백워드 방향으로 공백단위로 다음 글자로 이동
  • $ : 문장 맨 뒤로 이동
  • ^ : 문장 맨 앞으로 이동
  • 0 : 라인 맨 앞으로 이동

  • v : Visual mode(커서를 이용해 블록지정이 가능하다.)
  • V : Visual Line mode(줄 단위로 블록지정이 가능하다.)

  • < CTRL + w > + < = > : 창 크기를 균등하게 만들어준다.
  • < CTRL + w > + < _ > : 현재 창의 높이를 최대로 만들어준다.
  • < CTRL + w > + < | > : 현재 창의 너비를 최대로 만들어준다.

Git에서의 명령어

  • git rebase master : branch의 첫 부분을 master branch의 끝 부분으로 옮긴다.(=rebase 한다)
  • git history : commit 올린 history를 볼 수 있다.
  • git status : git 상태를 볼 수 있다.
  • git push origin 현재-branch-name : branch에서 remote로 깃들을 푸쉬한다.
  • git checkout branch-name : 현재 위치에서 branch-name으로 이동한다.
    • git checkout -t origin/"branch-name" : 로컬에 동일한 이름의 branch를 생성하면서 해당 branch로 이동한다.(“branch-name” 은 원격 저장소에 있는 branch이름)
  • git branch : branch list를 알려준다.
    • git branch -a : 로컬, 원격 모든 저장소의 branch 리스트를 볼 수 있다.
  • git commit -v : commit할 diff를 볼 수 있고 commit 메시지를 vim창에서 작성할 수 있다.
  • git rebase master : branch의 시작부분(base)을 master로 rebase해준다.
  • git fetch : 로컬로 가져온다.(하지만, 커밋을 적용하지는 않는다. git 폴더에만 기록되어있을 뿐)
  • git cherry-pick [hash] : cherry-pick은 hash에 해당하는 커밋을 가져와서 적용한다.
  • git stash : 변경하거나 수정한 파일들을 쓰레기통으로 넣는다.
  • git stash pop : stash한 파일들(쓰레기통에 넣은 파일들)을 다시 꺼낸다.
  • git stash list : 쓰레기통에 있는 파일 리스트를 볼 수 있다.
  • git checkout — <file> : git status 하면 맨날 보이는 명령어. git add 하지 않은 것들을 변화 이전으로 돌린다.(주의! 한번 하면 돌이킬 수 없기 때문에 조심히 사용해야 한다.)
  • git reset —hard HEAD~1 : 가장 마지막 커밋 1개 없앤다.(예를 들어, 방금 수정이 너무 쓰레기라 없애버리고 싶을 때 적용) HEAD~N하면 N개를 없앤다.(주의! 이것 역시 돌이킬 수 없기 때문에 매우 조심해서 사용)
  • git rebase -i HEAD~N : 최근 N개의 커밋을 정리할 때 사용한다.(커밋을 일부 없애거나 합치거나 순서를 바꾸거나 등)


Share Tweet +1