본문 바로가기

Linux

find, rpm, yum, 압축, stty, ps, 쉘 기본, env 와 set의 차이

find . ! -group kim -exec chmod 640 {} \;

                           -ok   chmod 640 {} \;     - 둘의 차이점 : 실행할지 않할지 y/n를 물어본다.
                        - {} : 실행한 결과물을 모아놓은 집합을 의미
find . -name "sam*" -exec ls -l {} \;

find는 디폴트 검색범위는 현재폴더이지만 현재폴더를 검색하더라도 지정해 주고 하는것이 좋다.

find . -name "s*" -exec ls -l {} \;
find . -name "s*" -exec ls -ld {} \;   자세히 검색을 할때 d옵션을 추가해주는것이 좋다
검색시 하위폴더도 검색해서 폴더명이 조건을 만족하면 하위폴더의 내용도 모두 출력하기 때문에
폴더옵션을 지정해서 좀더 명확하게 검색을 완료할수 있다.

find . -inum 1346859 -exec ls -ild {} \;   아이넘버 검색 해서 자세히 출력

find . -perm 600 -exec ls -l {} \;   특정 퍼미션을 가진 파일 검색

find . -type f -a -perm 755 -exec ls -l {} \;  -a는 and 옵션을 이용해서 여러개의 옵션을 합쳐서 실행
                                                                -디폴트 설정값이지만 습관화 하는게 중요

find . \( -name "s*" -o -name "*[0-9]" \) -exec ls -l {} \; 

-o 옵션은 or 둘중하나만 만족해도 출력
명령문을 여러개를 묶어 쓸때는 ()를 이용하며, 문법상 괄호 앞뒤는 한칸씩 뛰우며, 괄호는 
명령문 옵션을 묶어줄때에는 문법상 오류로 인식되기 때문에 괄호 앞에 \를 넣어주어야 된다.
그러면 순수한 괄호로 인식한다.


find . -name "test?" -exec mv {} sun/king \;  test로 시작하는 파일들을 지정된 폴더로 이동

rpm 제거
rpm -e 파일명

rpm 설치
rpm -Uvh 파일명

yum 제거
yum -y remove 파일명

yum 설치
yum -y install 파일명 : 웹 저장소로 이동하여 연관된 폐키지를 다운받고 설치까지 함

yum list installed : 시스템에 설치된 폐키지를 확인



압축
gzip   :  압축
zcat   :  압축한 파일 보기
gunzip : 압축 풀기

bzip2 : 압축
bzcat : 압축한 파일 보기
bunzip : 압축 풀기

bash쉘은 백그라운드에서 실행되는 프로세스이다.
ps를 쳤을때 대기중에 있는 쉘을 나타낸다.

ps -u 사용자 : 사용자가 어떤 프로세스를 실행중인지 자세히 나옴
ps -ef          : 모든 프로세스를 계층에 맞게(부모 - 자식) 보여줌
ps -f            : 작업중인 프로세스의 넘버를 보여줌

top : 현제 실행중인 프로세스를 보여줌

포그라운드 프로세스 : 바로바로 실행해서 결과를 출력해줌
백그라운드 프로세스 : 실행시간이 있어서 끝날때까지 대기하다가 프롬프트로 돌아옴

stty -a          : 포그라운드 프로세스를 중지하기 위한 인터럽트 키
stty intr ^A     : 인터럽트 키를 ctrl + A 로 바꾸겠다.
stty erase ^H : erase를 ctrl + H 로 바꾸겠다.

프로세스를 실행하고 오래 걸릴거 같으면 ctrl + z 로 프로세스를 중지시키고 대기 시킬수 있다.
하지만 중지되어있는 상태여서 수행이 되지 않는다. 
jobs를 통해서 대기중인 프로세스들을 확인하고 
프로세스의 앞의 번호를 통해서 bg %넘버 를 쳐서 중지되었던 프로세스를 다시 실행시킨다.
ex> sleep 600
ex> ctrl + z       : 프로세스가 중지되어서 대기한다.
ex> jobs        : 현재 대기중이거나 bg로 작업중인 프로세스를 보여준다.
ex> bg %1        : bg 프로세스로 정지되어있는 프로세스를 다시 실행시켜 준다.

명령 1> 파일   : 에러 없는 출력을 파일에 저장해라
명령 2> 파일   : 명령에서 에러부분만 파일에 출력해라

프로세스를 종료할때 kill 프로세스번호 또는 kill 작업번호(%번호) 를 이용한다.
kill 명령으로 죽지 않는다면 -9 옵션을 이용해서 죽인다.

vi 에서 프롬프트로 갈려면 :sh 작업을 마치고 다시 들어갈려면 exit
그외에도 :!명령을 입력하여 바로 명령을 실행시킬수 있다.


fork : 자식 프로세스 생성

crontab       : 주기적으로 해야되는 일
crontab -e  : 작업 추가
crontab -r   : 작업삭제
crontab -l   : 작업확인
ll /var/spool/cron : 크론탭 파일 저장소

특수 변수     1. $?  마지막 프로세스가 성공했는지 실패했는지를 보여줌.
(읽기 전용)   2. $$  현제 실행중인 쉘 프로세스 아이디 반환
          3. $!  마지막으로 실행시킨 백그라운드를 다 기억하고 있다.

echo "HOME Directory : $HOME"
echo "system date : `date`"

echo Home Directory : $HOME
echo system date : `date`

쌍따옴표 안에서 변수 그냥 인식, 함수는 ``로 묶어줘야 함 
변수는 그냥 써도 인식, 역시 함수는 ``로 묶어줘야 함

export 변수 : 이변수를 환경변수에 등록, 전역변수의 의미, 자식에게까지 모두 전달

set 변수와 env 변수의 차이
프롬프트에서 지정한 변수를 띄어주는 곳이 set
export 하고 자식에게 계승해주는 곳이 env 자식에게만 계승된다 역으로 올라올수 없다.