[Linux] Linux/Unix 명령어 모음

Posted by 유진 Blog on September 3, 2023

명령어를 쓸 일이 거의 없었고, 실무에서도 많이 쓸 일이 없는 환경에서 일했었다보니

새로 명령어를 쓸 일이 많은 일을 하게 됬을 때 당황했었던 기억이 있다.

하지만 필요성을 점점 더 느끼고 있고, 자주 사용하는 명령어부터 장기기억으로 옮기기 위해 정리해보기로 했다.

오늘은 옵션마다 상세히 정리하기 보다는 실무에서 사용하고 있는 명령어들을 우선 한번 나열해보는 데에 의의를 두기로 한다.

ls (list. 파일 리스트 보기)

F : 파일 유형을 나타내는 기호를 파일명 끝에 표시 (디렉토리 : ‘/’, 실행파일 : ‘*’, 심볼릭 링크 : ‘@’)

l : 파일에 관한 상세 정보 표시

a : dot 파일 (.access 등)을 포함한 모든 파일 표시

t : 파일이 생성된 시간별로 표시

C : 도스의 dir/w 명령과 같이 한줄에 여러개의 정보를 표시

R : 도스의 dir/s 명령과 같이 서브디렉토리 내용까지 표시

ex) ls -la

cd (Change Directory. 디렉토리 변경하기)

cd tmp : 하부 디렉토리인 tmp 디렉토리로 변경

cd .. : 상위 디렉토리로 이동

cd ../.. : 상위의 상위 디렉토리로 이동

cd 또는 cd ~ : 어느곳에서든지 홈 디렉토리로 바로 이동

cd /otherdir : 현재 디렉토리의 하위나 상위가 아닌 다른 디렉토리(ex.otherdir)로 이동하려면 /로 시작해서 경로 이름 입력

mv (move.위치 변경 / rename. 파일 이름 변경)

mv tmp.txt rename_tmp.txt : tmp.txt 파일을 rename_tmp.txt로 이름 변경

mv tmp.txt ../tmp/new_file : 뒤에 입력한 경로로 파일 위치 변경

mkdir (make directory. 디렉토리 생성)

mkdir tmp : tmp 디렉토리 생성

rm (remove. 파일 삭제)

rm tmp.txt : tmp.txt 파일 삭제

rm -r tmp : tmp 디렉토리 전체를 삭제

rm -i tmp.* : tmp로 시작하는 모든 파일을 일일이 삭제할 것인지 확인하면서 삭제

rmdir (remove directory. 디렉토리 삭제)

rmdir tmp : tmp 디렉토리 삭제

pwd (print working directory. 현재의 디렉토리 경로를 보여주기)

pwd : ex) 결과 -> /home/tmp

chmod (change mode. 파일 권한 변경)

리눅스에서는 각 파일과 디렉토리에 사용권한을 부여함.

ex) -rwxr-xr-x tmp.html

앞의 -를 제외하고 문자 3개씩 묶음으로 나누어서,

rwx : 사용자 자신의 사용 권한 (Owner)

r-x : 그룹 사용자의 사용 권한 (Group)

r-x : 전체 사용자의 사용 권한 (Other)

r(read) : 파일 읽기 권한. (4)

w(write) : 파일 쓰기 권한. (2)

x(execution) : 파일 실행 권한. (1)

- : 사용권한 없음

chmod 766 tmp.txt : tmp.txt 파일을 자신에게는 모든 권한을, 그룹/전체 사용자에게는 읽기&쓰기 권한만 줌.

Owner Group Other
7(4+2+1) 6(4+2) 6(4+2)
rwx rw- rw-

alias (별칭)

사용자가 명령어를 다른 이름으로 바꿔서 사용할 수 있는 쉘 내부 명령어.

.bashrc에 저장해두면 영구적으로 사용 가능하다.

ex. bst 를 입력하면 bastion서버로 이동하도록 명령어를 지정해 놓는다.

cat (concatenate. 파일 내용 출력 / 파일 생성)

cat tmp.txt : tmp.txt 파일이 존재할 경우 내용 출력, 존재하지 않을 경우 해당 파일 생성

vi (vi 편집기 명령어)

vi tmp.txt : tmp.txt가 존재할 경우, vi 편집기로 tmp.txt 를 열고 존재하지 않을 경우 생성해서 빈 파일을 연다.

ssh (SecureShell)

SSH(Secure Shell)는 클라이언트와 서버간의 암호화된 연결에 사용되는 암호화 네트워크 프로토콜.

SSH를 통해 원격 시스템에 로그인할 수 있으려면 아래의 요구사항이 충족되어야한다.

(1) 원격 시스템에서 SSH서버가 실행 중이여야 함.

(2) SSH포트는 원격 시스템 방화벽에서 열려 있어야 함.

(3) 원격 계정의 사용자 이름과 암호를 알고 있어야 함.

ssh -i [keyfile(pem)경로] [원격지 id]@[원격지 ip] : pem 키를 이용해 ssh 원격 접속

scp (SecureCopy)

ssh 원격 접속 프로토콜을 기반으로 원격지에 있는 파일이나 디렉토리를 보내거나 가져올 때 사용하는 파일 전송 프로토콜.

(1) 로컬 -> 원격지

scp -i [keyfile(pem)경로] [전송할 파일 경로 [원격지 id]@[원격지 ip]:{받는 위치}

(2) 원격지 -> 로컬

scp -i [keyfile(pem)경로] [원격지 id]@[원격지 ip]:[원본 위치] [받는 위치]

ps(process. 작동중인 프로세스 확인)

많은 옵션들이 있지만 실무에서 현재 가장 많이 사용중인 아래의 명령어만 보자면,

ps -ef grep jar

-e : 커널 프로세스를 제외한 모든 프로세스 출력

-f : 풀 포맷으로 보여준다.

grep [특정 프로세스] : 특정 프로세스를 보고 싶을 경우

==> 현재 작동중인 프로세스 중에서 모든 jar 프로세스를 풀 포맷으로 보여줘.

kill (프로세스 지정. 제어)

kill -9 [프로세스 아이디]

-9 : 프로세스 아이디(PID)를 직접 지정하여 종료시킴.