리눅스 기초 명령어
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로 끝나는 파일의 목록만 표시
댓글