리눅스 명령어 정리
■ pwd : print working directory , 본인의 작업위치를 확인한다.
ls : 디렉토리의 내용을 확인한다.
ls -l : 디렉토리와 파일정보가 구체적으로 세로방향으로 출력된다.
ls -a : 숨겨진파일을 모두 출력
※ 리눅스에서는 파일의 첫이름이 . 으로 시작하면 숨김파일이다.
■chmod 명령어 : 파일과 디렉토리의 권한을 바꾸는 명령어
각 디렉토리 또는 파일을 읽고 쓰는 실행할수 있는 권한을 표시한다.
- rwx rwx rwx
d rwx r-x r-x
l rwx r-- ---
젤 앞에 표시된 정보는 해당 유형이 파일(-)인지, 디렉토리(d)인지, 링크파일(l)인지 의미한다.
첫번째 rwx : 소유자의 권한
두번째 rwx : 그룹의 권한
세번째 rwx : 소유자도 그룹도 아닌 other의 권한
r은 읽고, w는 write 쓰기, x는 excute 권한
- 는 해당권한이 없다는 듯
ex) -rwxrwxr-x 1 quest1 quest1 8296 May 24 12:03 a.out 이렇게 되어있으면
chmod 664 a.out 입력하면
rw- rw- r-- 가 된다. (실행권한이 다 빠진다. )
ex) user에는 모든 권한을 주고 group 에게는 실행권한을 빼고, other에게는 읽을수 있는 권한을 주고싶다
rwx rw- r-- 즉, 764이기 때문에
chomod 764 a.out 입력하면된다.
비트계산이 어려우면 다음과 같은 방법도 있다.
ex) group에 실행권한을 빼고싶다면?
chmod g-x a.out
ex) other에 실행권한을 넣고싶다면?
chmod o+x a.out
ex) user에 쓰기권한을 빼고싶다면?
chmod u-w a.out
■ mkdir/touch/rm 명령어
mkdir 디렉토리명 : 디렉토리 만들기
touch 파일명 : 빈파일 만들기
rm -f 파일명 : 파일을 지우는 명령어
rm -r 디렉토리명 : 디렉토리를 지우는 명령어
/ 절대위치기준
./ 현재위치
../ 현재위치 상위
~/ home 위치 기준 (로그인하면 여기서부터시작한다)
cd 디렉토리 이동
홈에서
절대 경로 기준 cd /home/quest1/dir1
현재 경로 기준 cd ./dir1
홈 경로 기준 cd ~/dir1
홈 디렉토리로 한방에 가기 : cd
절대위치에서 홈디렉토리안에있는 dir1로 이동하려면 홈디렉터리기준으로 이동하는게 낫다
cd ~/dir1
■ 이름변경/파일,디렉터리 이동
이름변경
mv myfile yourfile
파일이동
mv yourfile ./dir2/.
■파일과 디렉토리를 복사
cp file2 file3
cp file2 ./dir2/myfile2
디렉토리를 복사하려면 -r 옵션 줘야한다.
cp -r dir1 dir3
■ Hard Link 와 Soft(Symbolic) Link
Link File은 하드디스크에 파일저장할때 filename과 inode가 보기쉽게 되어있는거, Filesystem은 실제 물리적인 하드디스크에 저장된 파일시스템 컴퓨터는 우측이 효율적인방법
두개의 테이블을 연결할수 있는 키, inode라는 index키를 이용해 서로간의 파일정보를 1:1로 맵핑시키는데, 이것이 파일링크의 개념
inode 는 파일이 생성될때, 모든파일에 부여되는 유니크한 번호.
ref는 실제 파일시스템을 참조하는 링크파일의 갯수. 그래서 파일한개생성되면 파일시스템에 ref는 1이 된다.
이력서.doc라는 파일을 더블클릭하면 컴퓨터는 링크파일의 inode 번호와 일치하는 물리적인 하드디스크의 inode를 찾아서 실제 저장된 파일을 오픈되는 원리
파일을 삭제할때도, 링크파일을 삭제하면 링크파일의 inode 번호와 일치하는 물리적인 하드디스크의 inode파일을 찾아서 삭제
이때 ,ref는 물리적인 inode 참조하고 있는 link파일의 개수 몇개인지 카운트하는데,
일반적인 모든파일은 ref는 1의 값을 가지고 있다
삭제를 하기위해 ref 값에서 -1을 하는 순간 0이되는 순간 os 에서 파일을 삭제한다
하드링크
파일시스템에 저장된 inode값을 똑같이 참조하는 링크파일을 또만드는 것
원본데이터의 복사본을 만듬과 동시에, 파일시스템에서 같은파일을 참조하게 만든다
그래서 원본이든 복사본이든 어느 파일이라도 수정편집이 발생하면 참조하고 있는 모든 파일이 동시에 수정편집이 발생한다
원본파일이 삭제되도 하드링크로 생성된 다른파일에는 영향을 주지 않는다.
입력과 수정을 하면 모든파일이 동시에 반영되지만, 삭제는 개별파일처럼 취급된다 . 이유는 ref 카운터
하드링크로 파일 생성되면 ref 가 +1, 삭제해도 -1 값유지
소프트링크
윈도우의 바로가기 버튼 ,
디렉토리나 파일의 바로가기 버튼
하드링크는 링크파일이 파일시스템에 물리적인 위치인 inode를 참조하는방식이고
소프트링크는 링크파일이 링크파일을 참조하는 방식이다. 그래서 파일이던 디렉토리던 구분없이 소프트링크를 설정할수 있다.
ln : 링크를 생성하는 명령어
ln -s source(링크하고자하는 원본소스) target(생성하고자하는 타겟이름) : 소프트링크생성명령어
touch library.0.1.so
ln -s libray.0.1.so libray.so
ls -l
touch library.0.2.so
rm -f libary.so
ln -s library0.2.so library.so
하드링크
ln source target
ln -li : 소프트링크와 하드링크인지 구분하는방법, 가장앞에 inode 번호가 있는데 파일의 inode번호가 같으면 하드링크다
■ 파일의 입출력관련 명령어
man 명령어 이름 : 명령어 설명
cat 파일이름 : 파일이라는 표준입력을 모니터화면이라는 표준출력으로 바꿔준다.
표준출력되는 방향을 별도지정하지 않으면, 모니터에 기본출력된다.
출력되는 화면이 길어서 한화면에 다 안들어오면
cat 파일이름 | more
보기편하게 된다.
■표준출력의 방향을 모니터가 아니라 파일로 바꿔보자(복사를 하겠다)
이때는 출력의 방향을 바꿔주는 꺽쇠 를 사용해야한다.
cat source > target
cat a.c > b.c : b.c 라는 파일이 생성되고, 똑같은 데이터가 들어간다. 표준출력되는 파일이 존재하는경우, 파일이 덮어쓰게된다.
파일을 덮어쓰지 않고 마지막에 첨부하려면
cat a.c >> b.c
■ head filename
파일에 맨앞에서 몇라인만 출력
tail filename
파일에 끝에서 몇라인만 출력
■tail -f filename
파일에 마지막에 데이터가 추가되는 즉시, 화면에 출력된다
tail -f system.log
새로운 터미널에서, echo "error message" >> system.log 하면
실시간으로 error message!가 뜬다.
■grep 명령어
검색하고자하는 문자를 옵션으로 주면 해당 문자와 일치하는 문자열이 있는 파일을 찾아주는 명령어
system.log만들어두고 test입력해놧다
test라는 문자열을 가지고있고 log라는 파일이 있는지?
grep test *.log
grep -H test *.log : 어떤파일인지 알수있다.
grep -Hw test1 *.log : 디테일하게 test1에 정확하게 일치하는 문자열만 찾고싶을 때
■ less 파일명 : 파일을 열고 내용을 볼수있는 textviewer 기능만 가지고 있다.
우리는 파일도 열고 입력 수정도 할수있는 vim 툴이 있다.
예를들어 메모리가 부족할때, vi로 1기가넘는 로그를 오픈하면, 메모리에 1기가 바이트 업로드된다.
그래서 자원낭비없이
less 명령어로 파일을 오픈하게되면, 화면에 출력되는 만큼만 읽고 메모리에 업로드된다.
■파일과 디렉토리를 압축하고 압축된 파일을 푼다.
파일과 디렉토리를 압축하는 방법.
tar cvfz target.tar.gz ... ...
tar cvfz target.tar.gz ./dir3 ./file3
파일과 디렉토리를 압축푸는 방법
tar xvfz filename
■root = sudo 명령어
vi /etc/sudoers
■ chown 소유자와 그룹명 바꾸는 명령어
■ find 파일과디렉토리가지고 있는 모든옵션검색
찾고자하는 파일의 위치검색
find 경로 조건 target
find . -name system.log
참고로 권한이없으면 sudo find . -name system.log
■which 명령어
명령어의 위치를 찾아주는
■ top : 운영중인 서버에 cpu와 메모리상태를 확인할수 있는 명령어
top
d누르고 1누르면 1초마다 갱신
■w : 현재 리눅스장비에 접속한 사용자가 누구인지 확인(접속한 계정정보, 아이피, 로그인시간, cpu사용률 , 어떤작업)
who : 좀더 간단하게
■ping domain
■ps 현재 리눅스 서버에 구동중인 프로세스 정보를 출력(실행중인 파일이무엇인지)
프로세서 : cpu
프로세스 : 실행파일이 메모리에 업로드된 상태
ps -ef | grep apache : 특정프로세스 만 알고싶을때
■ kill 해당 프로세스를 강제로 종료
■adduser 사용자id
deluser 사용자id
■uname, hostname, reboot, halt
uname 시스템정보를 간단히 확인
uname -a 디테일
'기타' 카테고리의 다른 글
블로그가 너무 따분해 버튼3개 을 만들어 봤어요!! (14) | 2021.04.01 |
---|---|
절대경로와 상대경로 (0) | 2021.03.25 |
도메인의 아이피를 확인하는 방법 (0) | 2021.03.23 |
캐시를 사용하는 목적? (0) | 2021.03.23 |