본문 바로가기
Linux

리눅스 - 명령어 정리

by devLog by Ronnie's 2021. 10. 14.

자주 사용하는 명령어와 명령어의 옵션들을 정리해논다. 많이 사용하는 것에서는 다양한 옵션을 정리하고, 자주 사용하지 않지만 알고 있어야하는 명령어들을 한 곳에 모아서 정리한다.

cd (change directory)
cd [디렉토리 경로]
cd . - 현재 디렉토리
cd .. - 한 단계 상위 디렉토리로 이동
cd / - 최상위 디렉토리로 이동
cd or cd ~ or cd $HOME - 사용자 홈 디렉토리로 이동
cd $변수명 - 변수에 저장된 경로로 이동
cd ~계정명 - 입력한 사용자의 홈 디렉토리로 이동
cd - - 이전 경로로 이동

pwd (print working directory)
pwd - 현재 작업 중인 디렉토리의 절대 경로를 출력해준다.

mv (move)
mv [옵션][이동 할 파일][이동 될 위치]
mv 파일명 폴더명 - 파일을 폴더로 이동
mv 파일명 파일명 - 앞에 파일을 뒤에 파일로 이름 변경
mv 파일명 폴더경로 - 해당 폴더 경로에 파일 이동
mv 파일경로 파일경로 - 앞에 파일을 뒤에 해당경로에 파일 이름으로 변경하여 이동
mv 폴더명 폴더명 - 앞에 폴더를 뒤에 폴더명으로 변경
[옵션 종류]
-b : 이동될 파일이 존재하면 백업파일을 만듦
-i : 이동될 파일이 이름이 이미 존재할 경우, 사용자에게 덮어 쓰기 여부를 묻습니다.
-b : 이동될 파일이 이름이 이미 존재할 경우, 백업파일을 생성합니다.
-f :이동 될 파일이 이름이 이미 존재 할 경우, 강제로 덮어쓰기 합니다.
-n :이동 될 파일이 이름이 이미 존재 할 경우, 덮어쓰기를 하지 않습니다.
-r : 하위 디렉토리 까지 모두 이동합니다.
-v : 이동 진행 상태를 출력합니다.
ex)
현재 위치의 모든 파일 이동
mv * [이동 할 경로]
ex) : mv -r * /user/jtaewu

ls (list)
ls -a : all 숨겨진 파일이나 디렉토리도 보여준다.
ls -l : long 자세한 내용을 출력한다. (퍼미션(권한), 포함된 파일수, 소유자, 그룹, 파일크기, 수정일자, 파일이름)
ls -s : size 파일 크기 순으로 정렬하여 출력한다.
ls -r : reverse 거꾸로 출력한다 (ls 명령어의 기본은 알파벳 순서)
ls -R : recursive 하위 디렉토리까지 출력한다.
ls -h : human K, M, G

chmod (change mode)
- 파일이나 디렉토리에 권한을 수정할 때 사용자

특정 대상만 권한 변경시 문자로 권한 변경 방법
ex)
chmod g+x [파일명] : 그룹에 실행 권한을 준다.     
chmod o-w [파일명] : 다른 사용자에게 쓰기 권한을 빼앗는다.  
chmod a=rw [파일명] : 모든 사용자에게 읽기, 쓰기 권한을 지정한다.
---> g = group / o = other / u = user / a = all  &&&& x = excuting 실행 / r = reading (읽기) / w = writing (쓰기)

다수 대상 한번에 숫자로 권한 변경 방법
chmod{user권한숫자}{group권한숫자}{other권한숫자}[파일명]
chmod 000 [파일명] : user, group, other에 있는 모든 권한을 제거한다.
chmod 777 [파일명] : user, group, other에 대한 모든 권한을 추가한다.
chmod 743 [파일명] : user에게는 모든 권한이 허용되고, group에는 읽기 권한(r)만, other에 대해서는 실행 권한(x), 쓰기 권한(w)만 준다.
---> 7 = 모든 권한 / 4 = 읽기 권한 / 2 = 쓰기 권한 / 1 = 실행 권한 / 0 = 권한 제거

파일, 디렉토리 권한 확인 방법
- ls -l (long 옵션) 을 통해서 확인이 가능하다. 제일 앞에 나옴. 총 10개의 문자로 나타남.
첫글자 의미 정리
d 디렉토리(directory)
b 블록 타입 특수 파일(block special)
c 문자 타입 특수 파일(character special)
l 심볼릭 링크(symbolic link)
p 파이프(pipe)
s 소켓(socket)
- 일반 파일(regular file)
나머지 9개 글자는 3개씩 끊어서 user, group, other 의 권한을 표기한다.
rwx로 나타남.
ex)
--- : 접근 불가능한 파일
r-- : 읽기만 가능한 파일
r-x : 읽기와 실행이 가능한 파일(프로그램 같은 파일)
rw- : 읽기와 쓰기가 가능한 파일(일반 파일)
rwx : 모든 권한을 가진 파일

chown, chgrp 를 사용해 파일 소유권 변경


sudo, su, su - 의 차이점
sudo : 일반 사용자가 root권한을 잠시 빌려 명령을 실행하게 하는 명령어
이때 비밀번호 입력은 root 사용자의 비번이 아닌 현재 로그인한 일반 사용자의 비밀번호를 입력한다 (기본적으로 sudo 명령어를 사용할 수 있는 사용자 혹은 그룹은 /etc/sudoers 에 등록되어 있어야 한다.)

sudo -s 와 sudo su
일반적으로  sudo 명령어는 권한을 유지시키는 것이 아니기때문에 명령어 입력시마다 붙여줘야한다. 이때 해당 명령어를 사용하면 root 계정을 반영구적으로 빌릴 수 있다.
sudo su : 현재 사용자를 로그아웃하지 않은 상태에서 다른 사용자의 계정으로 전환하는 명령어
sudo -s : 다른 사용자의 계정으로 완전히 전환하고, 전환한 사용자의 환경설정을 불러옴.


ssh (secure shell)
원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜이다.


vi 문서 편집기
vi test.txt -> test.txt가 있을 시 해당 텍스트 파일 편집으로 들어가고 없을 시에는 빈 파일이 열린다. 마지막 행 모드에서 파일명을 정할 수 있다.
i 나 a를 눌러 편집모드로 들어갈 수 있으며 빠져나올때는 esc를 누르면 명령어 모드로 돌아올 수 있다.
명령어 모드에서 :(콜론)을 누르면 마지막 행 모드로 바뀌고 마지막 행에서 명령어 입력하여 종료한다.
마지막 행 모드 명령어
:q - vi에서 작업한 것이 없을때 종료한다
:q! - 저장하지 않고 강제 종료한다
:w - 작업한 내용을 저장만 한다 (종료는 안함)
:wq - 작업한 내용을 저장하고 종료한다.
:w [파일명] - 작업한 내용을 저장만하고, 파일명을 지정하면 새 파일로 저장한다.

find 
find - 현재 디렉토리(.)에 있는 파일을 찾는다.
find /etc - 특정 디렉토리에 있는 파일을 검색한다 (etc가 디렉토리명)
find /etc -name "test*" - -name 옵션을 통해 찾을 파일 이름을 지정
find /etc -name "test*" -type d : 디렉토리만 찾으려면 -type d 옵션을 사용
find . -empty : 현 위치에서 빈 파일을 찾음.

systemd (system daemon)
-프로세스를 관리하고 서비스를 제어하는 시스템 자원 통합 관리 도구이다.

systemctl
- systemd에 유틸리티
systemctl start 서비스명 : 서비스 시작
systemctl stop 서비스명 : 서비스 중지
systemctl restart 서비스명 : 서비스 재시작
systemctl status 서비스명 : 서비스 상태 확인
systemctl is-enabled 서비스명 : 서비스 활성화 확인
systemctl enable 서비스명 : 서비스 활성화 (부팅 시 자동 실행)
systemctl disable 서비스명 : 서비스 비활성화
systemctl list-units --type service --all : 모든 서비스 확인
systemctl list-units : 서비스 목록 확인

mkdir (make directory)
mkdir a : a 폴더 생성
mkdir a b c d : a,b,c,d 여러 폴더 한번에 생성
rm a : 디렉토리 삭제 시 경고 표시 -> rm -r a : -r 옵션을 붙여줘서 삭제 가능

rmdir (remove directroty)
rmdir a : a 폴더 삭제 (a 폴더가 비어있어야 삭제 가능)

lsblk
사용가능한 블록 장치 나열

df
파일 시스템의 디스크 공간에 대한 필수 정보 표시

ps (process status)
현재 시스템에서 실행 중인 프로세스를 시각화
ps -ef | grep [프로세스명] : -ef 모든 프로세스를 풀 포맷으로 출력

cp (copy)
cp file1 file2 - file1을 똑같이 복사하여 file2 파일을 생성한다.
cp 파일 폴더/ : 파일을 폴더 안에 복사함.
cp 파일 파일 폴더/ : 여러 파일을 폴더 안에 복사
cp -r 폴더/ 폴더/ : 폴더 전체를 복사 -r 옵션을 사용


tree
tree 폴더 - 폴더 하위로 트리 구조로 보여줌

tar (tape archiver)
여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령어이다. (파일 용량을 줄이는 것처럼 압축하는 것은 아님)
tar cvf T.tar * - 현재 디렉토리의 모든 파일과 디렉토리를 tar로 묶기
tar cvf T.tar [FILE_1] [FILE_2] - 파일을 지정하여 tar 아카이브로 묶기
tar cvf T.tar [PATH] - 대상 디렉토리를 포함한 모든 파일과 디렉토리를 tar로 묶기
tar xvf T.tar - tar 아카이브를 현재 디렉토리에 풀기
tar xvf T.tar -C [PATH] - tar 아카이브를 지정된 디렉토리에 풀기
tar tvf T.tar - tar 아카이브의 내용 확인하기
tar zcvf T.tar.gz * - 현재 디렉토리를 tar로 묶고 gzip으로 압축하기
tar zxvf T.tar.gz - gzip으로 압축된 tar 아카이브를 현재 디렉토리에 풀기
tar jcvf T.tar.bz2 * - 현재 디렉토리를 tar로 묶고 bzip2로 압축하기
tar jxvf T.tar.bz2 - bzip2로 압축된 tar 아카이브를 현재 디렉토리에 풀기
tar cvfw T.tar * - tar 아카이브 묶거나 풀 때 파일 별 진행 여부 확인하기

tail
tail -f [파일] - -f 옵션은 파일의 마지막 10줄을 출력하는데 파일이 새 라인이 추가 될 경우 업데이트를 한다. 그래서 일반적으로 로그파일 모니터링에 많이 사용
tail 명령어는 입력받은 파일의 마지막 부분을 출력하는 명령어이다. 기본적으로 입력 파일의 마지막 10줄을 출력하며, 로그 파일의 모니터링 용도로 사용한다.
tail [파일명] - 해당 파일의 마지막 10줄만 출력 후 종료
tail -n [라인수] [파일명] - -n 옵션을 통해 보고 싶은 라인수 만큼 출력
tail -c [바이트수] [파일명] - -c 옵션을 통해 바이트 수 지정
tail [파일명] [파일명] - 여러 파일들 동시에 보기

kill
kill -9 [프로세스id(pid)]

ln (link)
링크 파일을 만드는 명령어



댓글