[Linux] 내가 쓰는 리눅스 우분투 명령어

728x90

제가 실무에서 직접 사용하는 명령어를 정리해 보려고 합니다.

 

제 노트북이 mac 인데 macunix 기반의 운영체제 이기 때문에, 리눅스 명령어랑 비슷한게 많습니다.

 

그래서 겸사겸사 정리를 해보았습니다.

 

리눅스 명령어를 하다가 권한 관련 에러가 발생한다면 모든 명령어 앞에

sudo 를 붙이면 해결이 됩니다.

[ ex) 권한 에러 : ~ ~ ~ Permission denied ] -> $ sudo 명령어

 

위가 귀찮으시 다면 관리자 권한을 줘서 

$ sudo su

 

를 치고, 서버 비밀번호를 입력하게 되면 부여 밭은 권한에 맞춰 매번 sudo 를 검색하는 수고를 덜 수가 있습니다. 

 

하지만 모든게 관리자 권한이라, 위험한 작업을 할 때는 신중을 기울여야 합니다. ex) rm -rf...

 

위 방법이 싫다면 User 별로 chmod 명령어를 사용하여 권한을 부여하는 방식또한 있습니다.

 


디렉토리 관련 명령어

디렉토리 확인

$ ls // 현재 경로에 어떤 파일들이 있는지
$ ls -lh // == ls

$ ls -al // 감춰진 파일 포함해서 현재 경로에 어떤 파일들이 있는지
$ ll // == ls -al

 

 

디렉토리 생성

$ mkdir 폴더이름 // 폴더 생성
$ mkdir -p 폴더a/폴더b/폴더c // 폴더 a 안에 폴더 b 안에 폴더 c 생성

 

-p 명령어를 통해 중첩된 디렉토리를 생성할 수 있다. -> 즉 여러개의 폴더 생성시 사용  

 

 

디렉토리 삭제

$ rm -r 디렉토리 이름 // 디렉토리 안에 있는 내용을 다 삭제한다.
$ rm -rf 디렉토리 이름 // 디렉토리 하위 디렉토리 안에 있는 모든 파일을 영구 삭제한다.

 

 

디렉토리 복사

$ cp file_name new_file_name // 파일 복사
$ cp -r directory_name new_directory_name // 디렉토리 복사

 

경로 이동

$ cd 폴더이름 // 현재 디렉토리에서 다른 폴더로 넘어가는 것, 보통 ls 명령어로 폴더 이름 찾고 사용
$ cd -  // 이전 경로로 이동
$ cd .. // 전 경로로 이동
$ cd ~  // 전 경로로 이동
$ cd    // 맨 처음 경로로 이동 (os시작 경로로 이동) 
$ pwd // 현재 내가 어디 경로에 있는지 확인

 


 

파일 관련 명령어

파일 생성

$ vi abc.txt // abc.txt 파일 생성하고 바로 vim 편집기 사용

$ nano abc.txt //abc.txt 파일 생성하고 바로 나노 편집기 사용

 

파일 이름 변경

$ mv 현재파일이름 바꿀파일이름
dd // 줄 삭제

 

파일 찾기

$ find [경로][검색조건][동작]

 

파일복사

cp -[옵션]

 

cp 옵션에는 엄청 여러가지가 있다. 

1) cp -a

2) cp -f

3) cp -i

4) cp -r

5) cp -u

6) cp -v

7) cp -p

8) cp -n

9) cp -l

 

이 중에서 보통 아래 3가지를 자주 사용한다.

 

cp -r (recursive)

설명: 디렉토리와 그 안의 모든 파일 및 하위 디렉토리를 재귀적으로 복사합니다.

사용 예시: cp -r /source/directory /destination/directory

이유: 디렉토리를 복사할 때 필수적입니다.

 

cp -f (force)

설명: 대상 위치에 이미 동일한 이름의 파일이 있을 경우, 강제로 덮어씁니다.

사용 예시: cp -f file1.txt /destination/path/

이유: 이미 존재하는 파일을 덮어쓸 때, 오류 없이 강제로 복사할 수 있습니다.

 

cp -i (interactive)

설명: 대상 위치에 동일한 이름의 파일이 있을 경우, 덮어쓸지 여부를 묻습니다.

사용 예시: cp -i file1.txt /destination/path/

이유: 실수로 파일을 덮어쓰는 것을 방지할 수 있습니다.

 


파일 내용 출력

$ cat file_name // 파일 내용 출력



계정 생성/삭제 명령어

 

  • 계정 생성 adduser
  • 계정 생성 useradd
  • 계정 삭제 userdel

 

 

$ adduser [계정이름]

 

위 명령어로 생성을 하면 비밀번호 부터 해서 여러가지 설정을 할 수 있습니다.

 

위 처럼 설정을 해줄 수 있습니다.

 

 

useradd [계정이름]

 

위 명령어를 치면, 다른 아무 설정없이 계정이 생성이 됩니다. 

비밀번호 설정을 위해 아래 명령어랑 같이 사용이 됩니다.

passwd [방금생성한 계정이름]

 

계정을 생성했으면 다음은 그룹을 지정할 수도 있습니다.

chmod 명령어로 권한 줄 수 있습니다.

만약 계정 1개에만 어떠한 권한을 준다면 간단하게 할 수 있죠

 

하지만 여러개의 계정에 같은 권한을 주고싶다면?

위 작업을 간편하게 하기 위해 계정을 하나로 묶는 -> 그룹 을 만드는 명령어가 있습니다.

 

groupadd [생성할 그룹이름]

 

그룹을 하나 생성해줍니다.

 

usermod -G [생성한 그룹이름] [추가할 계정]
EX) usermod -G test test1
groups testid2

 

위 결과로 test1 : test1 test 아래와 같은 결과를 얻을 수 있습니다.

즉 내가 만든 그룹에 계정이 추가되었다는 뜻 입니다.

 

쉘 설정

usermod -s /bin/bash [생성한 계정이름]

 

계정 삭제

userdel 삭제할계정명

 

파일 권한 명령어

 

사용자에게 파일 읽기,쓰기,실행 권한을 부여할 수 있는 chmod 명령어에 대해서 알아보겠습니다.

 

리눅스 서버를 만들면 기본적으로 root 라는 슈퍼유저가 생긴다.

즉 모든 권한을 가진 것을 말합니다.

 

권한 확인

ls -l

 

 

루트 권한 기준 위와 같은 결과를 볼 수 있습니다.

 

https://inpa.tistory.com/entry/LINUX-%F0%9F%93%9A-%ED%8C%8C%EC%9D%BC-%EA%B6%8C%ED%95%9C-%EC%86%8C%EC%9C%A0%EA%B6%8C%ED%97%88%EA%B0%80%EA%B6%8C-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC

 

위 사진을 보면 이해가 정말 잘 됩니다. 인파님 블로그에서 사진을 가져왔습니다.

 

이 중에서 중요한건 r(4) w(2) x(1) 위 파일에 대한 권한 입니다.

 

- r(4) : 파일에 대한 읽기 권한 (열기,읽기)

- w(2) : 파일에 대한 쓰기 권한(파일 수정 가능)

- x(1) : 파일에 대한 실행 권한

 

자세한 내용은 인파_데브블로그 에서 확인 가능합니다.

 


문서 편집  관련 (vi)

$ :q	// 그냥 나가기
$ :wq	// 저장 후 나가기
$ i		// insert 모드
$ a		// insert 모드2
$ esc	// read 모드
$ dd	// 줄 삭제

 

 

루트 계정으로 접속하는 법

$ sudo su // 루트 계정으로 접속
$ cd // 제일 처음 경로로 이동
$ cd / // root 로 접속 

# exit // 나가기

. // 전 경로
.. // 현 경로

 

그냥 알아두면 좋은 명령어

$ kill PID 	  // 프로세스 종료
$ kill -9 PID // 강제로 프로세스 종료

 

$ ssh user_name@host_name // 원격 서버에 접속
ex) ssh jin@127.0.0.1

 

$ ifconfig // 네트워크 인터페이스 정보 출력
보통 여기서는 eno1 의 inet 에 보면 ip 가 나와 있으니 보통 그거 보는데 사용했음

 

$ curl url // 원격 url 의 내용을 통해 데이터 다운로드 명령어

 

$ sudo apt-get install docker // docker 설치
# sudo apt-get update

 

 

개인적으로 리눅스 우분투 환경에서 docker 설치해두고 서버를 컨테이너화 해두는거 

정말 정말 유용하고 좋다고 생각합니다.

 

실수를 할 경우 서버를 미는 경우도 종종 있으니까요

컨테이너화 하면 뭔가 잘못된 경우 잘못된 컨테이너만 밀어버리고 다시 설치하면 되닌까.

여러모로 도움이 많이 되는 것 같습니다.

 

REF

https://velog.io/@devyang97/Linux-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC-Ubuntu-%EC%82%AC%EC%9A%A9

 

 

728x90