Study/linux

Terminal Command

minzihun 2022. 12. 10. 02:06

 드림코딩님의 필수 리눅스 터미널 명령어 강의과 시골사는 개발자님의 리눅스 명령어 모음은 영상을 시청하고 정리하였다. 다음에는 리눅스랑 vim 공부를 해봐야겠다.


man     # manual 명령어 혹은 옵션을 함께 써야하는지 모르겠을 때, 사용!
man 3 library(function)    # 해당 함수에 대한 설명 나옴

q          # q입력하면 man모드에서 나감

clear    # terminal에 모든 text를 청소해주는 명령어

root     # 리눅스 시스템의 최고 관리자, 시스템 주요 자원 변경위해 필요
sudo    # root 권한 시행
# root로 로그인해서 vi /etc/sudoers에서 내 계정에 root권한 주면 됨 (조심)

<Navigating file system>
pwd     # 현재 내가 속한 경로 알아보기

ls          # 현재 경로에 어떤 폴더와 파일이 있는지 확인
ls -l       # 디테일한 정보 알 수 있음
ls -al     # 숨겨진 디렉토리나 파일을 보고 싶을 때 사용
ls -la     # 위의 두 명령어 합침
ls -li      # inode 볼 수 있음

cd directory_name     # change directory 현재 있는 경로의 폴더로 이동
cd .      # 현재 경로
cd ..     # 현재 경로의 바로 상위 경로
cd ~     # 현재 사용자의 홈(최상위) 디렉토리로 이동
cd -      # 바로 이전 경로도 되돌아감
/           # 절대 위치 기준
./          # 현재 위치 (= ./ 안붙이면 현재 위치를 기준으로 하겠다는 의미)
../         # 현재 위치 상위
~/         # Home 위치 기준

find      # 파일 시스템에서 특정한 파일이나 디렉토리를 찾을 때 사용
find . -type f/d -name source     # 현재 경로와 하위에 있는 모든 파일이나 폴더를 찾기

which   # 실행하려고 하는 프로그램의 경로를 확인

top       # 운영중인 서버의 cpu와 memory 상태 확인
top -d second     # 해당 초마다 갱신

w         # 리눅스 사용자 정보 출력
who     # 리눅스 사용자 간단히 출력

ping domain     # 내부 호스트 서버가 네트워크 상 접근 가능한지 확인
nslookup           # ip 주소 확인

ps -ef   # 현재 서버에서 구동중인 모든 process의 상태 출력
ps -ef | grep process_name
# process ID도 inode와 같이 unique, 그 옆은 parent process ID

kill -9 process_id     # 해당 프로세스 강제 종료

sudo adduser user_id       # 사용자 계정 추가
su -l user_id                       # 계정 변경
sudo deluser user_id         # 계정 삭제

uname -a           # 시스템 정보 확인
hostname          # 서버 alias 출력
sudo reboot      # 시스템 재부팅
sudo halp -p      # 시스템 완전히 셧다운

<Create and manage files>
touch filename                          # 새로운 파일 이름을 만듬


cat filename                              # 파일 안의 내용들 빠르게 확인할 수 있음, 파일 명 나열시 모든 파일 컨텐츠 한번에 확인
cat filename | more

# 표준 출력 화면이 가득 찼을 때 사용하면 보기 편함, | (pipeline)으로 명령어 전달


echo filenam                             # 문자열을 같이 나열하면 터미널에 echo
echo string > file_name            # 새로운 파일을 만들면서 컨텐츠로 문자열을 넣어준다, 재사용시 오버라이딩, > (redirection)
echo string >> file_name          # 화살표를 두 개 사용하면, 오버라이딩 x 추가 o


mkdir directory_name               # make directory
mkdir -p dir/subdir1/subdir2    # -p 옵션 사용시 필요한 경로 다 만듬

tar cvfz target.tar.gz source (나열) or * (현재 디렉토리 내 파일 모두)     # 압축 (create)
tar xvfz file_name     # 압축해제 (extract)

head file_name     # 파일 이름부터 10 라인까지 출력
tail file_name        # 파일 마지막을 기준으로 위로 출력
tail -f file_name     # 파일에 마지막에 데이터가 추가되는 즉시 화면에 출력

cp source destination     # 파일이나 디렉토리(-r)를 원하는 경로로 복사
mv source destination    # 파일이나 디렉토리(-r)를 원하는 경로로 이동
cp|mv source source       # 파일이나 디렉토리를 이름을 변경하여 복사 혹은 이동

rm -f file_name     # 해당 파일 삭제
rm -r directory       # 폴더 삭제 시, recursive option줘서 삭제해줘야함

grep keyword file_name or format     # 현재 디렉토리 내 키워드 검색
grep -n kw fn or fm                             # 몇 번째 줄에 존재유무 검색
grep -ni kw fn or fm                            # 대소문자 구분 없이 검색
grep -nir kw .

# r과 .을 추가하면 현재 디렉토리와 하위 경로에 kw가 있는 모든 파일 검색
-H (파일 명), -w (정확하게 일치하는 문자열만 찾고 싶을 때)

less file_name

# 파일을 열고 읽을 수만 있는 권리, 화면에 출력되는 내용만큼만 읽고 메모리에 업로드

chmod     # 권한 변경 명령어
             user  group  other
- (file)   rwx     rwx     rwx
d (dir)   rwx     r-x       r-x

l (link)   rwx     r--        --- 

                                            
r: read, w: write, x: excute
4 2 1 : 3bits (7)
r - x : 4 + 0 + 1 = 5
r w - : 4 + 2 + 0 = 6

chmod rwx source             # put the sum of the bits like 764
chmod u/g/o +/- r/w/z

# we can change mode by putting the latter rather than the num

<Link>
Link File의 inode가 Filesystem inode를 reference
Filesystem의 reference 값이 0이되면 OS가 해당 파일 delete


ln source target
Hard Link (file에만 가능) : Filesystem에 inode값을 reference하는 link파일을 또 만드는 것을 의미, 하나의 파일만 수정/편집이 되면 reference하는 파일도 수정/편집, 하나 삭제해도 개별 파일만 삭제


ln -s source target
Soft (Symbolic) Link : 윈도우의 바로가기! Link File이 Link File reference, sw 개발 시 유용

sudo chown user:group target
# 소유자와 그룹명을 다른 소유자와 그룹으로 바꿀 수 있는 명령어


<Work with environment variables>
환경변수란, 내 컴퓨터에서 특정한 키워드가 어떤 한 일을 하거나, 경로를 저장


export Capital_letter="directory"     # 환경변수는 대문자와 언더스코어로 작성하여 설정
env     # 컴퓨터에 설정된 모든 환경변수 볼 수 있음


터미널이나 내 컴퓨터에서 이 환경변수를 이용하여 해당 디렉토리를 사용할 수 있음
cd $ENV_VAR        # 환경변수를 사용하려면 달러사인 다음에 환경변수명 입력
unset ENV_VAR     # 지정된 환경변수 제거

<vi/vim 간단 명령어>
i                      # INSERT 글자 수정 및 삭제
ESC  ->  :w     # write changes
ESC  ->  :q      # quit
ESC  ->  :q!    # quit when you don't save it
ESC  ->  :wq   # save and quit