터미널 명령어
콘솔창에서 사용하는 기본 명령어의 특징
1. 대소문자를 구분한다.
→ 윈도우는 구분하지 않는다
2. 명령어 유형은 내부명령어와 외부 명령어로 구분한다.
3. 실행파일로 제공하는 것은 외부명령어이고 확장자가 없으며 실행권한이 있다.
4. 쉘 해석기로 제공하는 것은 내부(BUILTIN)명령어 이다.
5. 파이프를 통하여 명령어 조합이 가능하다. (파이프 : | )
→ ls -al | more
6. 사용권한에 따라 사용가능한 명령과 사용할 수 없는 명령이 있다.
7. 모든 디렉터리, 장치, 파일 등을 파일이라는 단일 구조로 사용한다.
8. 옵션 형식이 다양하다.
9. 모든 명령은 백그라운드/포그라운드 동작이 가능하다.
백그라운드 → 실행한 프로세스를 하고 있을 떄는 프롬트가 뺏긴다.
포그라운드 → 프로세스를 실행중에도 프롬트창이 살아있다. ( firefox & )
10. 리다이렉션으로 출력 방향을 바꿀 수 있다. ( > )
→ ls -l > list.txt 출력결과를 파일로 저장한다.
11. 명령어의 도움말 ( 명령어 --help )
12. 명령어 자동 입력 : Tab 키 사용
13. 와일드 문자 적용
* : 모든 것을 의미하며 앞에 문자가 있으면 그문자에 해당하는 모든것
? : 하나의 문자에 대해서 상징할 때 사용
■ Shell 프롬트
# echo SHELL
→ echo는 뒤에 나오는 문자열 출력
# echo $SHELL
→ '$'는 뒷단어를 변수로 인식하고 변수내용 출력
- Linux의 기본 Shell
→ C 문법을 많이 사용
- 배시의 환경설정 파일
사용자별 환경설정 파일
1) .bash_logout, .bash_profile, .bashrc
2) 원본파일은 /etc/skel/ 디렉토리에 존재한다.
3) 새로운 사용자 추가시마다 각 사용자에 홈 디렉토리에 복사됨 (/home/사용자계정명)
4) "." 으로 시작하는 파일은 숨김파일을 의미
- 모든 사용자 공통의 환경설정 파일
→ /etc/profile, /etc/bashrc
- 환경설정 파일 인식 순서
/etc/profile → ~/.bash_profile → ~/.bashrc → /etc/bashrc
- .bash_history : 입력한 명령어 내용이 저장되는 파일 ( #history 명령사용)
- .bash_profile : 개인 환경 설정 파일
- .bashrc : alias 정보를 가지고 있는 파일 , 단축 명령어 정의 가능
■ 기본명령어
. → 현재 디렉토리를 의미
.. → 현재 디렉토리의 상위 디렉토리
ls → 현재 디렉토리의 파일목록
-a → 파일목록을 자세히
-al → 자세히에다가 속성까지
-t → 최근의 파일부터 출력
-R → 현재 디렉토리와 하위 디렉토리 모두 출력
*.txt → 확장자가 txt인 목록을 보여줌
/usr/bin/ → 디렉토리에 있는 목록 보여줌
cd → 사용자의 홈 디렉토리로 이동
cd ../root → 상대경로: 현재 디렉토리 기준으로 이동
cd /home/ubuntu06 → 절대경로: 루트 디렉토리 기준으로 이동
mkdir 명령어
- 새로운 디렉토리를 생성
- 생성된 디렉토리는 명령어를 수행한 사용자의 소유
- mkdir –p def/fgh : 현재 디렉토리 아래에 def 디렉토리 생성하고 그안에 fgh 디렉토리 생성
rm 명령어
- 파일이나 디렉토리 삭제 명령어
- 해당 파일이나 디렉토리에 삭제권한이 있어야 함
- 사용 예
# rm abc.txt : 그냥 삭제
# rm –i abc.txt : 삭제시 확인
# rm –r abc : 디렉토리 삭제
# rm –rf abc : abc디렉토리와 그 하부를 강제로 전부 삭제
rmdir 명령어
- 디렉토리 삭제 명령
- 해당 디렉토리의 삭제권한이 있어야 함.
- 해당 디렉토리는 비어 있어야 함.
touch 명령어
- touch abc.txt : 파일이 없을 경우엔 abc.txt.라는 빈파일 생성,
파일이 있을 경우엔 파일의 수정날짜를 변경시킴
- .c 파일 컴파일할 때 자주 사용됨 (obj파일 생성 위해)
rm 명령어
- 파일이나 디렉토리 삭제 명령어
- 해당 파일이나 디렉토리에 삭제권한이 있어야 함
- 사용 예
# rm abc.txt → 그냥 삭제
# rm –i abc.txt → 삭제시 확인
# rm –r abc → 디렉토리 삭제
# rm –rf abc → abc디렉토리와 그 하부를 강제로 전부 삭제
mv 명령어
- 파일과 디렉토리의 이름변경이나 위치이동 때 사용
- 사용 예
# mv aaa bbb ccc ddd → 이동. ddd는 디렉토리.
# mv abc.txt def.txt → 이름 변경
cp 명령어
- 파일이나 디렉토리 복사 명령어
- 새로 복사한 파일은 사용자의 소유가 됨
- 사용 예
# cp abc.txt cba.txt
# cp –r abc cba : 디렉토리 복사
# cp –a aaa bbb : 원본파일의 속성, 링크 정보들을 유지하며 복사
cat명령어
- 텍스트로 작성된 파일을 화면에 출력
- cat abc.txt
- cat -n aaa.txt : 행번호와 함께 출력
more 명령어
- 텍스트로 작성된 파일을 화면에 페이지 단위로 출력
- [space]키는 다음 페이지, [b]는 앞 페이지
- 사용 예
# more abc.txt
ln 명령어
- Windows의 “바로가기 아이콘”과 비슷한 것을 만들어줌
- 심볼릭링크와 하드링크가 있음
- 사용 예
# ln –s aaa.txt bbb.txt : 심볼릭 링크
# ln aaa.txt bbb.txt : 하드 링크
pwd → 현재 자기 자신이 있는 디렉토리를 보여준다.
halt → 우분투 종료
reboot → 우분투 재부팅
apt-get install → 패키지 온라인 설치명령어
apt-get update → X-Windows의 업데이트 관리자에서 점검버튼과 동일한기능
apt-get upgrade → 업데이트 깔기와 동일
pstree → 프로세스를 트리형태로 출력
dpkg -i 파일이름 → .deb 파일 인스톨할 때
history → 지금까지 내가 작성한 명령어 내역
!숫자 → 히스토리 내역의 번호별 명령어 그대로 실행
echo $PATH → PATH 설정된 목록 보여줌
which 이름 → 이름이 속한 위치 디렉토리를 보여줌
fdisk → 메모리에 대한 정보
who am i → 자기 계정에 대한 정보
wget url주소 → 웹에서 바로 다운로드
jobs → 현재 수행중인 백그라운드 작업을 보여줌
tar cf 이름.tar 이름 → 뒤에 이름의 파일을 tar파일로 묶음
top → 프로세스들의 점유율 보여줌
■ 파이프와 필터
- 파이프 (pipe : 명령어의 연결통로)
• 앞 프로그램의 결과를 뒤 프로그램의 입력값으로 전달해주는 역할
• 메타문자 : |
• 한가지 명령으로 부족할 때 다른 명령과 조합
• 사용 예
# ls –al /usr/bin | more
# ls /usr/bin | sort | less 알파벳순으로 정렬
- 필터
• 표준 입력으로부터 자료를 읽어 간단한 처리후 표준출력으로 보내는 프로그램
• grep,head, tail, wc, sort, awk, sed 등
• 파이프와 동시에 사용을 많이 한다.
• 사용 예
# grep hello abc.txt abc.txt에서 hello라는 글자가 있는 행 출력
# grep –v hello abc.txt hello라는 글자 외의 행 출력
# ps aux | grep xfs 현재 프로세스 중 xfs 라는 프로세스 출력
# rpm –qa | ^X 현재 설치된 rpm 중, 맨 앞글자가 ‘X’인 패키지명 출력
■ 표준출력 Redirection
- 표준출력장치(모니터)의 방향을 파일로 전환
- 메타문자 : > , >> (append)
- 사용 예
# ls /usr/bin > list_file
# ls /usr/bin >> list_file
# cat /dev/cdrom > “win2000.iso”
■ 입력 Redirection
- 메타문자 : < , <<
- # sort < abc.txt > sorted.txt
- # cat << end > a.txt → end문자를 만나면 입력종료
■ 표준오류 Redirection
- 메타문자 : 2> , 2>>
- 사용 예
# gcc –c hello.c 2> error.txt 오류 미발생시 파일생성 안됨
■ ps명령어
현재 프로세스 상태 확인 (ps –ef : 부모 프로세스 확인가능)
-추천 옵션 : # ps auwx
(USER,PID,CPU사용율,메모리사용율,가상메모리 사용,실제메모리사용,프로세스상태,시작시간,구동후총사용시간,명령)
- 상태(STAT) 의미
D:중지시킬수없는 잠자고있는상태 R:동작중이거나 동작할 수 있는 상태
S:잠자고 있지만 , 중지 가능한 상태 X:완전히 죽어 있는 상태
T:작업 제어 시그널로 정지되어 있거나 추적중에 있는 상태
Z:죽어 있는 좀비 프로세스
■ kill 명령어
프로세스를 종료할 때 사용하는 명령
- 종류버튼을 눌러도 종료되지 않을 때 사용
- ps 명령어로 프로세스번호 확인 후 # kill <pid>
- 옵션
•# kill –KILL(9) <pid> : 하드웨어적 종료 (가장 강력)
•# kill –TERM(15) <pid> : 소프트웨어적 종료 (소프트웨어에 따라서 받아들일 수도 있고, 그렇지 않을 수도 있음)
•# kill –HUP(1) <pid> : 데몬의 경우 종료후, 다시 시작(사실은 프로세스를 종료하는 것은 아니고, 코드 및 데이터를 refresh 하는 역할)
•# kill -2 <pid> : 포그라운드에서 [ctrl]+[c]를 누르는 효과
•# kill -3 <pid> : 포그라운드에서 [ctrl]+[\]를 누르는 효과
■ shutdown 명령어
root 계정에서만 셧다운 명령가능
shutdown -h now == halt == init 0 → 즉시 셧다운
shutdown -r now == reboot == init6 → 재부팅
shutdown +10 → 10분후 셧다운(다른 사용자들 고려)
shutdown -c → 셧다운 취소
shutdown -r +20 → 20분후 셧다운(다른 사용자에게 정보 보내줌)
ctrl + c → 셧다운 취소
■ 파일 위치 검색
- which <실행파일명>
PATH에 설정된 디렉토리만 검색
절대경로를 포함한 위치 검색
- whereis <실행파일명>
실행파일 및 소스,맨페이지 파일까지 검색
- locate <파일명>
매우 빠르고 유용하지만 새로 설치된 파일들이 등록되어 있지 않을 때는 찾을 수 없음.
파일정보에 대한 데이터베이스 갱신이 매우 중요
수시로 updatedb 를 돌려 파일정보 갱신 – crontab 에 등록하여 자동으로 구동시킴
- find [경로] [옵션] [조건] [action]
옵션 : -name, -user(소유자), -newer(전,후), -perm(허가권)
Actiion : -print(GNU는 디폴트,Unix는 필수입력), -exec
•예) #find /etc –name “*conf*”
#find / -user woo
#find ~ -perm 644
#find . -name “*tar.bz2” -exec rm -f {} \;
→ find의 결과가 {}안으로 들어감, “\;”는 관례적 필수로 생각하면 됨.
#find / -newer touch.txt // touch.txt파일시간 이후 생성된 파일 찾기 (이전: ! –newer 옵션)
grep [옵션] <패턴> <filename> [files…]
파일내에서 지정한 패턴과 일치하는 패턴이 있는 라인 출력
옵션 : -n(행번호가 같이 출력) , -i(대소문자 구분 안함) , -v(패턴이 포함되지 않는 라인 출력)
•예) grep linux /etc/*
• /etc/ 폴더의 linux 라는 단어가 포함된 파일과 라인 출력
■ CPU 정보 (명령어 : uname)
# uname – p i686은 펜티엄 4를 의미
# uname --help
■ 메모리 정보 (명령어 : free)
# free –m MB 단위
# free –k KB 단위
■ 프로세스 정보 (명령어 : ps , pstree)
# ps auxw | grep httpd
# pstree
■ 프로세스별 CPU와 메모리 점유율 (명령어 : top)
시스템이 갑자기 느려졌을 경우 사용
# top
주요 영역별 의미
• PID : 프로세스 ID
• USER : 소유주
• PR : 프로세스의 우선순위(priority)
• NI : 해당 프로세스의 nice 값(실행 우선순위 예약 -20 ~ 19 ,최우선 –20, 기본 10)
• VIRT : 가상메모리 사용량(SWAP + RES)
• RES : 실제메모리 사용량(KB)
• SHR : 공유메모리(KB)
• S : 프로세스 상태
• %CPU : CPU 점유율 (%)
• %MEM : 메모리 점유율 (%) , TIME : 프로세스가 총 사용한 CPU 시간
종료 : q
■ 압축
- 파일 압축하기
# gzip 파일명 파일명.gz 이 생성
# bzip2 파일명 파일명.bz2 가 생성
- 파일 압축 풀기
# gzip –d 파일명.gz == # gunzip 파일명.gz
# bzip2 –d 파일명.bz2 == # bunzip2 파일명.bz2
- 기타 압축 명령
# zip 압축파일명 압축할 파일 파일명.zip 생성
# unzip 파일명.zip
■ tar
tar [동작] [옵션] [묶음파일명] [filelist or dir]
tar 는 압축명령이 아니며 여러 개의 파일을 한 개의 파일로 묶어주는 명령어
동작
•c (새로운 묶음)
•x (묶인 파일을 풀어줌),
•t (묶음을 풀기전에 묶인 경로를 보여줌)
옵션 :
•f (필수) – 묵음 파일명 지정 원래 tar는 tape장치 백업이 기본(생략시 tape로)
•v – visual
•z – tar + gzip (GNU only)
•j – tar + bzip2 (GNU only)
예 :
•# tar cvf httpd.tar ./httpd 생성
•# tar cvfz httpd.tar.gz ./httpd 생성 + gzip압축
•# tar cvfj httpd.tar.bz2 ./httpd 생성 + bzip2압축
•# tar tvf httpd.tar 확인
•# tar xvf httpd.tar 풀기
•# tar xvfz httpd.tar.gz gzip압축해제 + tar풀기
•# tar xvfj httpd.tar.bz2 bzip2압축해제 + tar풀기
■ 현재 접속되어 있는 사용자 확인
명령어 : #who
예:
#who -m --> 현재 접속한 사용자의 로그인 계정정보 확인
#who -H --> 각 필드의 제목 출력
#who -u --> idle time 정보 확인
#who -b --> 최근에 부팅한 정보 확인
#who -a --> 모든 옵션 적용
[출처] [Linux] 리눅스 명령어 모음|작성자 Premium
'리눅스' 카테고리의 다른 글
[리눅스] 파일시스템 (0) | 2015.07.31 |
---|---|
[리눅스 API] 프로세스 (0) | 2015.07.27 |
윈도우 이클립스 gcc 컴파일 (0) | 2015.07.27 |
grep 명령어 (0) | 2015.07.26 |
I2C 통신 (0) | 2015.04.27 |
댓글