리눅스 명령어

늘보·2021년 7월 6일
0

Linux

목록 보기
1/1

→ Open in Slid


관리자 권한이 필요할 때: sudo su - root

나갈 때: exit

파일 탐색을 위한 명령어들

  • pwd: 현재 디렉토리 경로를 출력
  • ls(list): 디렉토리 목록 나열
  • cd: 디렉토리를 변경
  • ../: 부모 디렉토리
  • ~: 내 홈 디렉토리를 나타냄.
  • cd ~: 홈 디렉토리로 이동
  • cd ../: 부모 디렉토리로 이동
  • clear: 화면의 내용을 다 지울 때

파일 시스템을 위한 명령어들

  • mkdir: 디렉토리 생성
  • rmdir: 디렉토리 삭제
  • touch: 빈 파일 생성(ex: txt문서 같은)
  • mv: 파일 이동/변경 (파일 이름 변경도 가능)
  • rm: 파일 삭제 (디렉토리 삭제는 불가능)
  • rmdir: 디렉토리 삭제 (지우려면 디렉토리가 비어있어야 함)
  • rm -r 디렉토리명/: 이렇게 하면 디렉토리 지워진다.
  • rm -ri: 상호작용 가능, 디렉토리를 지우시겠습니까? 라는 문구가 뜬다. (좀 더 안전)
  • cp: 파일 복사

파일 편집 및 관리

vi: 편집기

  • i: insert, 입력 가능(현재 라인에서)
  • o: insert, 입력 가능(다음 라인에서)
  • h, j, k, l: 좌, 하, 상, 우
  • :quit: 입력 그만두기
  • :w: 저장
  • yy: 한줄복사
  • yw: 단어복사
  • yl: 글자복사
  • p: 붙여넣기
  • :wq: 저장하고 나가기

Nano 에디터

  • nano + 파일명: 이거 할 때 파일명 앞 글자만 입력하고 tab키를 누르면 훨씬 편하게 입력 가능
  • ctrl+g: 도움말
  • n: 다음 라인으로
  • alt + /: 마지막 라인으로
  • alt + \: 처음 라인으로
  • ctrl+o: 저장
  • ctrl+r: 다른 파일을 읽겠다

파일 찾기와 파일 정보 확인

파일찾기

  • find ./ -name 파일이름: 이름으로 찾겠다.
  • 만약 저기서 파일이름이 *.java 이런 식이면 파일명이 java인 모든 파일을 찾겠다는 의미가 된다.
  • find ./ -name *.java -size +1c: 크기가 1바이트 이상인 자바 확장자 이름의 파일을 찾아라.
  • 'c': bytes단위
  • 화살표 위: 전에 했던 명령이 나옴

파일 정보 들여다보기

  • cat: 해당 파일 내용 들여다보기
  • head -n2 + 파일명: 맨 위에서 두 줄만 보겠다.
  • tail -n2 + 파일명: 맨 뒤에서 두 줄만 보겠다.
  • grep class Hello.java: Hello.java파일에서 class라는 글자를 찾겠다.
  • grep "Hello Li" Hello.java: Hello.java파일에서 Hello Li라는 글자를 찾겠다.(Hello Li는 공백을 포함하고 있기 때문에 " "로 감싸준다.)
  • -i(ignore):대, 소문자를 구분하지 않고 찾고싶다.
  • ls Hello[12].java: Hello1.java 또는 Hello2.java를 검색합니다.
  • cmp(compare) Hello.java Hello1.java: Hello.java와 Hello1.java파일의 차이점을 보여달라.
  • diff(different) Hello.java Hello1.java: Hello.java와 Hello1.java의 다른 부분을 상세하게 보여달라.

* 리눅스나 유닉스에서는 확장자를 안 쓰는 경우도 많다.

  • mv(move) Hello.java Hello: Hello.java의 파일명을 Hello로 바꾼다. (여기서는 mv가 파일명을 바꾸는 역할을 함.)
  • file + 파일명: 해당 파일에 대한 정보를 말해준다.

유용한 명령어

  • history: 지금까지 다뤘던 명령어들을 보여준다.
  • !+번호(ex: !26 - history 명령어 실행 후): 해당 번호에 해당하는 명령어를 실행한다.
  • history >(redirection) test: history의 목록을 콘솔 창이 아닌 file로 담고 싶을때 history 에서 > test 로 내용을 파일로 만든다. (cat test로 확인할 경우 history의 값이 test파일에 저장되어 있는것을 확인할 수 있다.)
  • echo+문자열: 해당 문자열을 화면에 출력해라. (뒤에 있는걸 그래도 화면에 출력한다.)
  • echo "Hello" > test: test파일을 Hello라는 문자열로 덮어씌워라.
  • echo "Okay" >> test: test파일에 Okay라는 문자열을 추가해라.
  • cat test |(piping) grep He: test 파일에 He 문자열을 검색한다.
  • ls -l | less: 
    만약 해당 디렉토리에 많은 파일들이 있을경우 화면에서 넘어가기 때문에 첫번째 파일을 확인하기 어렵다.
    cd bin 폴더에서 ls -l 을 입력하면 많은 파일리스트가 화면에 보여진다. 그때 ls -l | less 를 입력하면 기존에는 Shift + PageUp ,down 으로 이동하는걸 마우스 방향키로 이동 가능하다. 명령을 중단 하고 싶으면 q를 눌러서 빠져나오면 된다.
  • cat test | sort (정렬)
  • cat test | sort -r (역정렬)
  • touch test1; echo "okay~" >> test1; cat test1: ;(세미콜론) 을 이용해 명령어를 끊어주고 다음 명령어를 실행한다. 관련 명령어를 실행할 때 ; 끊어주어 사용한다.

파일 압축 관리

  • tar (Tape ARchive) + zip: 파일 압축 방법
  • tar -cf name.tar a b c: 3개의 파일을 묶어준다.
  • tar -zcf name.tar.gz a b c: 3개의 파일을 묶어서 압축한다.
  • tar -xvf name.tar : v옵션을 넣지 않으면 묶였던 파일들이 풀리는 목록이 출력 된다.
  • tar -zxvf name.tar.gz:  압축 풀기
  • https://dog-developers.tistory.com/47?category=856014 << 모르는건 해당 블로그 참조!

압축본 JDK 설치하기

  • tar -zxvf jdk-8u241-linux-x64.tar.gz: 받은 jdk 파일 압축 풀기

링크파일 사용하기(In, path, cp)

* 링크파일은 윈도우로 비교하면 '바로가기 아이콘'과 비슷하다.

* 링크파일에는 두 가지 종류가 있다.

Symbolic Link

  • 윈도우의 바로가기 파일과 비슷 (일반적임)
  • 가리키고 있는 파일과 자신이 당연히 다른 파일. (크기도 다르고 생성일도 다르다)

Hard Link

  • 별도의 공간이라기보다는 '별명'을 만들어지는 상태 (일반적으로 안 씀)
  • 원본과 똑같은 크기, 생성일을 갖는다. // 03.29(월)까지 공부한 내용

링크파일을 이용한 실행파일 리졸빙

bin 파일로 이동해서 javac -version을 통해 자바 버전을 확인하려고 하며 에러가 난다.

경로를 직접 /jdk../bin/javac -version 이런 식으로 입력하면 확인이 됨. 왜 그럴까?

Resolving Error 때문이다. (리눅스는 실행파일을 찾는 작업을 하는데, 현재 디렉토리는 찾지 않기 때문이다!!)

여기서 java -version 대신에 ./java -version이라고 하면 현재 디렉토리에서도 Resolving을 해라는 의미이기 때문에 명령이 성공한다.

그럼 이걸 매번 이렇게 ./ 를 통해 경로를 지정해줘야 할까? 다른 방법이 있다.

(PATH를 지정해주는 대신에)링크파일을 지정하면 쉽게 가능.

실습하기: 링크파일을 이용한 실행파일 리졸빙

  • ls -a: 숨김파일 확인하기
  • ln(링크) -s(바로가기 옵션=symbolic) /home/juyoung/jdk/jdk1.8. .../bin/java

이렇게 하면 java라고 심볼릭링크 파일(바로가기)이 형광색으로 생성된걸 확인 할 수 있다. 상세 목록으로 확인하면 java가 연결된 링크 파일 경로를 보여주고 있다.

java 컴파일러도 같이 실행되야 하기 때문에 javac라고 링크파일을 또 만들어준다.

이렇게 링크파일을 만들어주니 Home 디렉토리에서 java -version을 실행했는데 이전과는 다르게 문제없이 실행되었다.

* 리눅스가 Resolving도중 bin 폴더에서 java(링크파일)라는 파일을 찾아서 실행하게 되는데 (echo $PATH로 확인 가능), 이 링크파일이 다시 원본 자바 파일을 실행한다. 따라서 정상적으로 버전을 출력하는걸 확인할 수 있다.

사용자 추가하기(useradd, usermod, userdel)

  • useradd - 사용자 추가
  • usermod - 사용자 변경
  • userdel - 사용자 삭제

dragon 사용자 추가하기

  • $useradd dragon
  • cat /etc/passwd 또는 tail -n2 /etc/passwd

리눅스 명령어 image

  • $sudo(슈퍼유저 권한) passwd dragon: password설정
  • alt+F2: 다른 terminal(=단말기)로 이동
  • alt+F1: 다시 원래 ID로

사용자 추가하기 실습

  • tail -n3 /etc/passwd: 뒤에서 3줄까지 읽어 달라는 요청 명령어
  • dragon:x:1001:1001: 앞에 1001은 dragon을 컴퓨터가 확인 할 수 있는 식별번호
  • tail -n3 /etc/group: 그룹목록을 확인 할 수 있다.
  • sudo passwd dragon: 접속유저 비밀번호 입력후 비밀번호를 생성,비밀번호 확인 한다.

로그인 후 문제점

dragon 이라는 계정은 home/dragon 디렉토리가 없다. 그렇기 때문에 기본 / 경로를 home으로 사용하고 있다.

따라서 Alt + F1 로 이동 후 sudo /home/dragon 디렉토리 생성

홈 디렉토리 생성과 소유권 변경하기

  • sudo chown dragon /home/dragon: 소유권 변경
  • sudo chown dragon:dragon /home/dragon: 소유 그룹까지 변경

0개의 댓글