반응형

Shell & Shell 내장 명령어

 

chsh [옵션] [사용자명] : 기본 셸 바꾸기

-s shell : 지정하는 셸(절대 경로)로 로그인 셸을 바꾼다

-l : /etc/shells 파일에 지정된 셸을 출력

 

셸 내장 명령

echo [-n] [문자열...] : 화면에 한 줄의 문자열을 출력

-n : 마지막에 줄 바꿈을 하지 않는다.

 

[특수문자 *]

ls * : 현재 디렉토리의 모든 파일과 서브 디렉토리를 나열. 서브 디렉토리의 내용도 출력

cp * /tmp : 현재 디렉토리의 모든 파일을 /tmp 디렉토리 아래로 복사

ls -F t* : t, tmp, temp와 같이 파일명이 t로 시작하는 모든 파일의 이름과 종류를 출력

cp *.txt ../ch3 : 확장자가 txt인 모든 파일을 상위 디렉토리 밑의 ch3 디렉토리로 복사

ls -l h*d : 파일명이 h로 시작하고 d로 끝나는 모든 파일의 상세 정보를 출력

 

[ 특수문자 ?[] ]

ls t?.txt : t 다음에 임의의 한 문자가 오고 파일확장자가 txt인 모든 파일 이름 출력

ls -l tmp[135].txt : tmp1.txt, tmp3.txt, tmp5.txt 출력

ls -l tmp[1-3].txt : tmp1.txt, tmp2.txt, tmp3.txt 출력

ls [0-9]* : 파일명이 숫자로 시작하는 모든 파일 목록

ls [A-Zaz]*[0-9] : 영문으로 시작하고 숫자로 끝나는 모든 파일 목록 출력

 

[ 특수문자 ~- ]

~ : 홈 디렉토리

- : 이전 디렉토리

 

[특수문자 ; | ]

; : 왼쪽부터 차례대로 ;로 실행

| : 동시에 실행

 

[특수문자 ‘’“”]

echo '$SHELL' : $SHELL 문자열이 출력

echo "$SHELL" : 환경변수 출력

 

[특수문자 ``]

echo "Today is `date`" : date 명령어는 실행 됨

 

 

배시 셸 환경 설정

 

set : 셸 변수와 환경 변수 모두 출력

env : 환경변수만 출력

export [-n] [셸 변수] : 환경 변수 설정하기

-n : 환경 변수를 셸 변수로 바꿈

ex ) export SOME=test

unset 변수 : 지정된 변수 해제

 

에일리어스와 히스토리

alias 이름 =‘명령’ ex ) alias rm = 'rm -r '

 

unalias 에일리어스 : 에일리어스 삭제

 

history : 명령 입력 기록

 

명령 재실행하기 : !

!! : 바로 직전에 실행한 명령 재실행

!번호 : 히스토리에서 해당 번호의 명령 재실행

!문자열 : 히스토리에서 해당 문자열로 시작하는 마지막 명령 재실행

 

배시 셸 시스템 환경 설정 파일 

시스템 환경 설정 파일

파일

기능

/etc/profile

본 셸이나 본 셸과 호환되는 모든 셸에 공통으로 적용되는 .profile 파일

배시 셸의 경우 /etc/bash.bashrc 파일을 실행

배시 셸이 아닌 경우 프롬프트를 #(root 사용자)$(일반 사용자)로 설정한다

/etc/profile/*.sh파일을 실행

/etc/bash.bashrc

시스템 공통으로 적용되는 .bashrc 파일이다

기본 프롬프트를 설정

sudo 명령과 관련된 힌트를 설정

/etc/profile.d/*.sh

언어나 명령별로 각각 필요한 환경을 설정

필요시 설정 파일을 추가

 

사용자 환경 설정 파일

파일

기능

~/.profile

경로 추가 등 사용자가 정의하는 환경 설정

.bashrc 파일 있을시 실행

~/.bashrc

히스토리의 크기 설정

기본 에일리어스나 함수 등 설정

~/.bash_aliases

사용자가 정의한 에일리어스를 별도 파일로 저장

~/.bash_logout

로그아웃 시 실행할 필요가 있는 함수 등을 설정

 

file [파일명] : 파일의 종류를 알려줌

 

groups [사용자명] : 사용자가 속한 그룹을 알려줌

 

권한

파일

디렉터리

읽기

파일을 읽거나 복사할 수 있다

ls 명령으로 디렉토리 목록을 볼 수 있다

쓰기

파일을 수정, 이동, 삭제할 수 있다(디렉터리에 쓰기 권한있어야함)

파일을 생성하거나 삭제 가능

실행

파일을 실행할 수 있다 (셸 스크립트나 실행파일의 경우)

cd 명령을 사용할 수 있다. 파일을 디렉터리로 이동하거나 복사 가능

 

 

접근 권한 변경 명령

chmod [옵션] 파일 또는 디렉토리 : 파일이나 디렉터리의 접근 권한을 변경

-R : 하위 디렉터리까지 모두 변경 가능

   

기본 접근 권한 확인하고 변경 

umask [옵션] [마스크 값] : 기본 접근 권한을 출력하거나 변경

-S : 마스크 값을 문자로 출력

 

※ 프로세스 관련 명령어

ps [옵션] : 현재 실행 중인 프로세스의 정보를 출력

-e : 시스템에서 실행중인 모든 프로세스 정보 출력

-f : 프로세스의 자세한 정보 출력

-u uid : 특정 사용자에 대한 모든 프로세스 정보 출력

-p pid : pid로 지정된 특정 프로세스의 정보를 출력

 

pgrep [옵션] [패턴] : 지정한 패턴과 일치하는 프로세스의 정보를 출력

-x : 패턴과 정확히 일치하는 프로세스 정보 출력

-n : 패턴을 포함하고 있는 가장 최근 프로세스 정보 출력

-u : 사용자 이름 : 특정 사용자에 대한 모든 프로세스 출력

-l : PID와 프로세스의 이름 출력

-t term : 특정 단말기와 관련된 프로세스의 정보 출력

 

kill [시그널] PID ... : 지정한 시그널을 프로세스에 보낸다

-2 : 인터럽트 시그널을 보낸다 (ctrl+c)

-9 : 프로세스 강제 종료한다

-15 : 프로세스가 관련된 파일을 정리하고 프로세스를 종료. 종료가 안될 수도 있음

 

pkill 명령을 이용해 프로세스 종료 

명령이름으로 찾아 종료하므로 같은 명령이 여러개 검색될 경우 한 번에 모두 종료

ex) ps - fp $(pgrep -x man)

 

포그라운드 작업과 백그라운드 작업

sleep 100 -> 포그라운드 작업

-> sleep 명령이 끝날때까지 기다림

 

백그라운드 작업

sleep 100& -> 백그라운드 작업

[1] 6852

$ -> 프롬프트가 바로 나와 다른 명령을 실행할 수 있다.

 

jobs [%작업 번호] : 백그라운드 작업을 모두 보여준다. 특정 작업 번호를 지정하면 해당 작업의 정보만 보여줌

 

작업 전환 명령

명령

의미

ctrl + z stop [%작업번호]

포그라운드 작업을 일시중지

bg [%작업번호]

작업번호가 지시하는 작업을 백그라운드 작업으로 전환

fg [%작업번호]

작업번호가 지시하는 작업을 포그라운드 작업으로 전환

ctrl + c

작업 종료하기

 

nohup [명령]& : 로그아웃한 뒤에도 백그라운드 작업을 계속 실행

 

정해진 시간에 반복 실행

crontab [-u 사용자 ID] [옵션] [파일 이름] : 사용자의 crontab 파일을 관리

-e : 사용자의 crontab 파일을 편집

-l : crontab 파일의 목록을 출력

-r : crontab 파일을 삭제

 

00 10 * * * /bin/ls -l > /home/yang/crontab : 10시 정각에 모든날에 crontab 폴더에 저 명령해서 나오는 값을 저장

 
※ 압축, 압축해제 명령어

tar 명령[옵션] [아카이브 파일] 파일 이름 : 파일과 디렉터리를 묶어 하나의 아카이브 파일 생성

-cvf : 아카이브생성

-tvf : 아카이브 내용보기

-xvf : 아카이브 압축 해제

-uvf : 아카이브 업데이트

-rvf : 아카이브에 파일 추가

 

gzip [옵션] 파일 이름 : 파일을 압축함

-d : 압축 해제

-l : 압축된 파일의 정보를 보여줌

-r : 하위 디렉토리를 이동하여 파일 압축

 

gunzip 파일 이름 : gz로 압축된 파일의 압축을 푼다.

 

 

'Study Note > OS' 카테고리의 다른 글

[Linux] 리눅스 커널 컴파일 (fedora)  (0) 2016.03.07
[Linux] 리눅스 커널 구조  (0) 2016.03.07
[Linux] Shell Script  (0) 2016.02.15
[Linux] Vi Editor  (0) 2016.02.15
[Linux] 기본 명령어  (0) 2016.02.15

+ Recent posts