→ 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

- $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: 소유 그룹까지 변경