Terminal Command
드림코딩님의 필수 리눅스 터미널 명령어 강의과 시골사는 개발자님의 리눅스 명령어 모음은 영상을 시청하고 정리하였다. 다음에는 리눅스랑 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