기본 콘텐츠로 건너뛰기

Linux Command 3

square72_blue.gif 리눅스 기초 명령어

1. 로그 아웃하기

- # logout / ^D / exit

2. 리눅스 종료하기

- # halt

- # shutdown -h now

3. 파일과 디렉토리 관리하기

1) 한글 터미널 실행하기

- [시작]-[시스템도구]-[추가시스템도구]-[한글터미널]

2) 파일과 디렉토리 목록보기

- # ls

- # ls -a :숨김파일도 표시

- # ls -l : 자세한 정보 표시

- # ls --show-control-chars : 일반 영어가 아닌 글자들을 출력하는 옵션

- # ls --color :파일의 종류에 따라 다른 색으로 표시

- # ls -c : 파일의 생성이나 변경된 시간에 따라 정렬하여 표시

- # ls -F : 파일의 종류에 따라 파일 이름 뒤에 특정 문자를 추가하여 표시

- # ls -R : 하위 디렉토리의 내용까지 모두 표시

- # ls -al --color

3) 현재의 작업 디렉토리 표시

- # pwd

4) 디렉토리 이동하기

- # cd /home

5) 파일 복사하기

- # cp [원본파일이름] [복사할파일이름]

- # cp [원본파일이름] [복사할디렉토리이름] : 디렉토리에 파일 복사

- # cp [원본파일이름] [복사할데렉토리/복사할이름] : 이름을 바꾸어서 지정한 디렉토리에 복사

- # cp [디렉토리/파일이름] [디렉토리/파일이름]

- # cp -r [원본디렉토리이름] [복사할디렉토리이름] : 디렉토리를 통채로 복사

- # cp -rb [원본디렉토리이름] [복사할디렉토리이름] : 디렉토리를 통채로 복사하는데 같은 이름이 있을 때는 ~문자를 덧붙여 백업 파일 생성

- # cp -d : 링크되어 있는 파일 자체를 심볼릭 링크 정보와 함께 복사

- # cp -f : 복사할 파일이 존재하는 경우에 기존의 파일을 삭제하고 복사

- # cp -p : 원본 파일의 소유, 권한 등의 파일 정보를 그대로 복사

- # cp -u : 대상 파일보다 원본 파일이 새로운 것일 때만 복사

- # cp -i : 복사할 파일이 존재할 경우에는 복사할 것인지 묻는다.

- # cp -rfdpu

6) 파일이나 디렉토리 이동하기

- # mv [원본파일명] [이동할디렉토리명]

- # mv [원본파일명] [이동할파일명] : 파일 이름을 변경할 때

- # mv [원본디렉토리] [이동할디렉토리] : 디렉토리가 존재하면 디렉토리 밑으로 이동, 존재하지 않으면 디렉토리 이름 변경 효과

7) 디렉토리 만들기/ 삭제하기/ 파일 삭제하기/ 파일 유형 표시하기

- # mkdir [디렉토리명]

- # mkdir -p /work/program : 'work' 와 'program'을 한번에 만들 때

- # rmdir -rf [삭제할디렉토리명] : 해당 디렉토리에 존재하는 모든 파일과 디렉토리 삭제

- # rm -i [파일이름] : 삭제할 때마다 확인

- # rm -rf [디렉토리명 : 해당 디렉토리 및 그 서브디렉토리까지 모두 삭제

- # file [파일명] : 해당 파일의 유형을 알려준다.

8) 빈 파일 만들기

- # touch couter.text

4. 파일의 내용 보기

1) 텍스트파일의 내용보기

- # cat [파일이름] : 지정한 텍스트 파일의 내용을 보여 줌

- # cat -n [파일이름] : 파일에 줄번호를 삽입하여 표시

2) 텍스트파일의 내용을 페이지 단위로 보기

- # more [파일이름] : 옵션( 스페이스바-다음 페이지, 엔터-한 줄, '-파일의 맨 앞, v-vi로 편집, q-종료 )

3) 텍스트파일의 앞 부분 보기/ 텍스트파일의 끝 부분 보기

- # head -n [파일이름] : 처음 n 개의 줄만 표시

- # tail -n [파일이름] : 맨 뒤의 n 개의 줄만 표시

4) 파일의 문자와 단어, 줄의 수 알아내기

- # wc [파일이름]: 파일에 포함된 줄, 단어, 글자 수 순으로 표시

5. 리눅스 명령어을 다른 이름으로 사용하기: alias

- # alias type='cat' : 여기서 type는 별칭, cat는 리눅스 명령어이다. alias를 항상 실행되게 하려면 홈 디렉터리의 .bashrc_profile이나 /etc/profile, .bashrc 등에 저장해 놓으면 된다.

- # unalias type : alias의 해제. 계속해서 사용하지 않을려면 ashrc_profile이나 /etc/profile, .bashrc등의 파일을 수정하면 된다.

6. 파일 내의 특정 문자열 바꿀 때: sed

-텍스트 파일에 있는 특정 문자열을 다른 문자열로 바꾸려면 sed를 사용하는게 가장 좋다. 예를 들어 test3.txt에서 unix라는 문자열을 linux로 바꾸려면 $sed -e 's/unix/linux/g' <> test3-1.txt 라고 하면 된다. -e는 에디트 모드를 뜻하는 옵션이다. s의 의미는 치환(substitute)명령이고, 끝의 g는 플래그인데 한 행에 같은 단어가 여러 번 나와도 모두 치환하라는 명령이다. > test3-1.txt은 문자열이 바뀐 것을 test3-1.txt로 저장하라는 뜻이다. sed는 치환 이외에도 삽입, 삭제등 여러 가지 명령을 수행할 수 있다. 자세한 사용법은 $info sed나 $man sed 해서 알아 보면 된다.

- # sed -e 's/unix/linux/g' <>test2.txt

7. 여러 파일을 하나로 합치기: cat

- xaa, xab, xac세 파일을 합쳐서 xa로 만들려면 $ cat xaa xab xac > xa 하면 된다. cat은 텍스트 파일을 볼 때도 사용했다. 그리고 소리(.wav, .au)를 들을 때도 사용한다.($cat love.wav > /dev/dsp 또는 /dev/audio) 여기서 알 수 있듯이 cat는 단순히 파일을 표준 출력으로 내보내는 프로그램이라는 것을 알 수 있다.

- # cat txt1 txt2 tex3 > txt

8. 큰 파일을 작게 쪼개기: split

-크기가 큰 파일을 나눌 때 split을 사용한다. 옵션을 -b(Bytes)로 주면 파일을 크기로 나누고, -l(Line)로 주면 텍스트 파일을 행으로 나눌 수 있다.

- # split -b 20k X-Win*

ls x*

x-window-configration.doc xaa xab xac xad xae xaf xag xah xai

cat xa* > X-Win.txt

more X-win.txt

split -l 50 l4.txt

9. 텍스트파일 정렬하기

- sort 명령으로 텍스트 파일의 내용을 정렬할 수 있다. 정렬은 행을 기준 단위로 한다. 숫자의 크기별로 정렬할 내용이면 -n 옵션을 준다. 역순으로 정렬할 때는 옵션 -r을 준다. 정렬한 내용을 파일로 저장하려면 옵션 "-o 저장할 파일명"을 추가하면 된다.

- # sort fruits

- # sort fruit -o fruits-1

10. 기타 명령어

1) 사용자 조회하기 / 자신의 사용자 ID 표시하기 / 비밀번호 변경하기

- # who : 현재 시스템에 로그인하여 사용중인 사용자의 목록 표시

- # whoami : 자신의 사용자 ID 표시

- # passwd : 자신의 비밀번호 변경

- # passwd [사용자ID] : 슈퍼유저인 경우에 사용자의 비밀번호 변경

2) 현재 날자와 시간 정보 표시하기 / 화변 삭제하기

- # date : 현재의 날짜와 시간 정보 표시

- # date [MMDDhhmmYYYY] : 시스템의 시간을 변경 (월일시분년)

- # clear : 화면을 깨끗하게 지울 때

3) 특정 명령어에 대한 도움말 보기

- # man [명령어] : 해당 명령어의 도움말 보기 ( 스페이스바 - 다음 페이지, :q -종료)

4) 특정 내용을 포함하는 파일 찾기 / 파일 찾기

- # grep [특정내용] [찾을 파일] : (텍스트 파일에서 특정 내용을 포함하는 파일을 찾기)

- # grep linux * : 현재 디렉토리에 있는 모든 파일 중에서 linux가 글자가 들어간 파일 찾기

- # grep -n linux * : 줄 번호까지 표시

- # grep -i linux * : 찾을 글자의 대소문자를 구분하지 않음

- # find [찾을경로] [옵션] [찾을파일명]

- # find . -name "serch*" -print

- # find [경로] -name [찾을 파일명] -exec 명령어 {} \; -print : 찾은 파일을 지정에 대해 지정한 명령어를 적용시킴

- # find . -name "*.bak" -exec rm {} \; -print : 현재 디렉토리에서 그 하위의 디렉토리에 존재하는 이름이 '*.bak'인 파일을 모두 찾아 삭제한다. find는 기본적으로 하위 디렉터리까지도 검색한다. 옵션에서 지정하기에 따라서 이름별, 날짜별,형태별, 길이별 등등으로 파일을 찾을 수 있다. 또한 찾은 파일에대해 일정한 명령을 수행하도록 할 수 있다. 사용 형식은 다음과 같다. $find 찾을디렉터리 옵션 '찾을파일' 연산자, 연산자란 찾은 파일에대한 명령이다. -print(화면에 출력), -exec rm {}(파일 지우기)등을 말한다. -print외의 연산자 뒤에는 명령이 끝난 다음에 \;로 명령의 끝을 알린다.

- # find . -name "file*" -exec grep linux {} \; -print

5) 디스크 용량 확인하기/ 특정 디렉토리 사용량 확인하기 / 현재 구동 중인 프로세스 표시하기 / 프로세스 종료하기

- # df -m: 마운트된어 있는 하드 디스크의 용량을 메가 바이트 단위로 표시

- # du -m [디렉토리명]: 특정 디렉토리의 디스크 사용량을 메가바이트 단위로 확인

- # ps : 자신이 구동한 프로세스 표시

- # ps -ef : 현재 구동 중인 모든 프로세서 목록 표시

- # kill [해당프로세스ID] : 해당 프로세스 종료 시킴

6) 파일 링크

- # ln hangle kangle : 하드링크로 동일한 파일에 대해 다른 이름을 갖는다.

- # ls -i : inode가 같으면 하드 링크다. 리눅스에서 모든 파일은 독립적인 inode를 갖는다.

- # ln -s [링크시킬파일이름] [링크파일이름]

- # ls -l : 서로 다른 inode를 가지며 파일구조도 다르다. 링크시킬 파일을 삭제하면 링크된 파일이 존재해도 실행되지 않는다.

11. 명령어에서 사용 가능한 메타 문자

1) Redirection 사용하기 (출력: >, >> 입력: < , << )

- # ls -al > list.txt : 명령어 실행 결과를 list.txt 파일에 저장함, 지정한 파일이 없으면 생성하고 있으면 모두 지우고 새로 기록

- # ls -al >> list.txt : list.txt 파일이 없으면 생성하고 저장하며, 존재하면 기존의 내용은 놔두고 새로운 내용을 맨 뒤에 기록

- # cat -n < [파일이름] : 명령어의 입력으로 파일을 지정할 수 있도록 함

2) pipe 사용하기( | ) : 명령어의 출력을 다은 명령어의 입력으로 전달한다.

- # 명령어1 | 명령어2 : 명령어1의 출력을 명령어2의 입력으로 전달

- # ps -ef | grep mysql : 많은 프로세스 중에서 mysql 관련된 명령어만 보여줌

3) 와일드카드 사용하기 (*, ? )

- # ls -al kim* : *은 모든 문자를 대치

- # ls -al kim?.??? : 지정한 위치의 모든 문자를 대치

4) 명령어 순차 실행시키기 ( ; ) / 백그라운드 실행하기( & )/ 문자 범위 지정하기 ( [..])

- # ls -al ; who ; ps : 명령을 순차적으로 실행하여 보여줌

- # 명령어 & : 서버 프로그램 실행과 같이 쉘의 제어를 받지 않고 무한으로 구동시키는 방법으로 새로운 프로세스가 생성됨

- # ls test[a-d] : test로 시작하고 a,b,c,d로 끝나는 파일의 목록만 표시

댓글

이 블로그의 인기 게시물

VIDEO_DXGKRNL_FATAL_ERROR on Windows 8.1

Windows 8.1 로 업데이트 이후, Booting 시 Blue Screen 이 뜨면서, VIDEO_DXGKRNL_FATAL_ERROR 또는 SYSTEM_SERVICE_EXCEPTION (atikmpag.sys)  가 발생하는 문제점이 있을 때, 아래와 같이 조치해 보십시오. 제어판 -> 전원 옵션 -> 설정 변경 덮개를 닫으면 수행되는 작업 선택 -> 현재 사용할 수 없는 설정 변경 -> 종료 설정 -> 빠른 시작 켜기(권장)의 Check Box 를 해제함.

Ubuntu (Kubuntu) 에 desktop 파일 만들기

Package 관리자등을 통해 직접 Repository 에 있는 Application 을 설치하는 경우에는 필요한 경로와 파일, Category 로 분류된 Icon 등록 등이 자동적으로 이루어지나 firefox, eclipse 등 새로운 버전을 새로 설치할 경우, 다음과 같은 절차를 통해 시작메뉴에 등록시킬 수 있다. 다음은 eclipse-SDK-3.6-linuxx-gtk.tar.gz 을 받아 설치 등록하는 것을 예로 든다. 1. 다운받은 파일을 /usr/lib에 압축해제한다. (물론, super user 계정으로 실행해야 한다.) 2. 보통의 경우, /usr/bin Directory 는 PATH 에 물려 있으므로 다음과 같은 실행 파일을 만들어 놓는다. # cd /usr/lib # chmod +x eclipse # cd /usr/bin # sudo nano eclipse eclipse 파일에는 아래의 내용을 입력하여 넣는다. export ECLIPSE_HOME="/usr/lib/eclipse" $ECLIPSE_HOME/eclipse $ * # sudo chmod 755 eclipse 3. Desktop Menu 에 추가하려면 # cd /usr/share/applications # sudo nano eclipse.desktop [Desktop Entry] Encoding=UTF-8 Name=Eclipse Comment=Eclipse IDE Exec=eclipse Icon=/usr/lib/eclipse/icon.xpm Terminal=false Type=Application Categories=GNOME;Application;Development' StartupNotify=true 이렇게 입력한 파일을 저장하면, 시작메뉴 > 개발 > Eclipse 아이콘이 생성되어 메뉴에서 직접 실행할 수 있게된다.

네트워크 상의 IP 주소로 MAC 주소를 추출하는 방법

Subject :  How can I get a list of MAC to IP addresses on the network? An easy way to get a list of MAC to IP addresses on the local subnet is to ping every host on the subnet and then check you ARP cache, however pinging every individual node would take ages and the entries only stay in the ARP cache for 2 minutes. 로컬 서브넷 상의 IP 주소에 대한 MAC 주소 목록을 획득하는 쉬운 방법은 서브넷 상의 모든 호스트에게 Ping 을 하고 ARP(Address Resolution Protocol) 캐쉬를 확인하는 것이다.  그러나, 모든 개별 노드에 Ping 하는 것은 많은 시간이 걸릴 것이고 2분동안만 ARP 캐쉬에 체재하면서 들어갈 수 있다. (참고) ARP 캐쉬는 Linux 의 경우 20분, Windows Server 의 경우 2분이 기본적인 Life Time  이다. 그 이후에는 그 데이타가 지워진다. An alternative is to ping the broadcast mask of your subnet which will ping every host on the local subnet (you can't ping the entire network as you only communicate directly with nodes on the same subnet, all other requests are via the gateway so you would just get a ARP entry for the gateway). 로컬 서브넷상의 모든 호스트를 Ping 하게 될 사용자의 서브넷 브로드캐스트 마스크를 Ping 하는 것이 또 다른 방법이다.(동일 서브넷 상의 노드와 직접적으로