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 |