<생각 날 때마다 지속적으로 수정중입니다>
가장 먼저 알고 지나가야 할 용어의 뜻.
수정 : modified - 파일의 내용이 변경된 경우 변경.
변경 : change - 소유자나 소유권이 바뀌거나 다른 파일 시스템으로 이동하는 경우 변경.
읽기 : accesss - 파일을 Open한 경우. grep, cat, sort등의 명령어 사용시에도 변경.
[w] 현재 로그인한 사용자를 본다. |
[stat] -c %y : 마지막 수정된 날짜 출력 -c %z : 마지막 변경돈 날짜 출력 stat test.txt 파일에 대한 상태를 출력한다. stat -c %y test.txt 날짜를 출력한다. stat -c %y test.txt | sed 's/^\([0-9\-]*\).*/\1/' |
[chown] 사용자 권한을 지정한다 chown -R daemon:daemon [디렉토리명] -R 옵션은 해당 디렉토리와 내부의 모든 디렉토리 및 파일에 적용하는 옵션이다. |
[chmod] 파일의 권한(rwx)을 지정한다. 숫자로 지정시 첫번째 숫자는 유저, 두번째 숫자는 그룹, 세번째 숫자는 나머지의 권한을 뜻한다. 알파벳으로 지정시 -, + 기호를 사용하여 해당 소유권자(u, g, o, a)와 권한을 지정한다. 예 chmod 777 test.txt 유저, 그룹, 그외 모두 읽기, 쓰기, 실행 가능 chmod 755 test.txt 유저는 읽기, 쓰기, 실행 가능하나 그룹과 나머지는 읽기, 실행만 가능하다. chmod u+r test.txt u는 유저를 뜻하며 +는 추가를 뜻한다. r은 읽기 권한 속성을 의미한다. 즉, 유저에게만 읽기 권한을 추가한다. chmod g-w test.txt g는 그룹을 뜻하며 -는 삭제를 뜻한다. w은 쓰기 권한 속성을 의미한다. 즉, 그룹에게 쓰기 권한을 주지 않는 다는 것이다. chmod o+x test.txt 위와 같은 방식으로 유저, 그룹을 제외한 나머지 소유자들에게 실행권한을 준다는 것이다. chmod a+w test.txt a는 모든 소유자에게 준다는 것으로 모두 쓰기 권한을 준다는 것이다. |
[crontab] crontab은 정기적으로 설정된 명령을 실행 어느 위치에서라도 실행이 된다. 예 crontab -e (편집으로 실행) |
[dmesg] 커널 메시지를 볼 수 있다. 어느 위치에서라고 실행이 된다. 예 dmesg dmesg -c (메세지 내용 지우기) |
[pwd] 현재 위치한 절대경로 출력 예 pwd |
[find] 파일이나 디렉토리 검색 -name : 파일명 검색 -type : 파일 타입 검색 -ctime : create 시간으로 검색 -size : size로 검색 -regex : 정규식 패턴 -gegextype : 정규식 타입 예 find / -name a.txt 루트 디렉토리인 '/'에서부터 하위까지 이름으로 a.txt 파일 검색 find -type d 디렉토리들만 검색 find -regextype posix-extended -regex '.{0,}' 정규식으로 검색 find -ctime +2 만든지 2일 이상 된것 검색 find -size +100M 100메가 이상 파일 검색 find -name *.log -exec du -h {} \; 로그 파일을 찾은 후 du 명령어로 파일 사이즈를 출력한다. |
[alias] 긴 명령어를 간단하게 만든다. 예 alias mk = "cd /usr/local" 라고 지정하고 나서 mk 라고 치면 cd /usr/local과 같은 효과를 볼 수 있다. 파일로 있는 위치는 홈 디렉토리에 .bashrc로 존재한다. |
[unalias] 예 unalias mk mk에 지정된 alias 값을 해제한다. |
[tar] 파일, 디렉토리를 압축 및 해제 한다. 예 tar cvfz m.tar a.txt a.txt 파일을 압축해서 m.tar이라는 압축파일 생성 tar xvfz m.tar m.tar파일을 압축 해제한다. tar xvfzP m.tar /home/bin/* 절대경로로 할경우 옵션에 대문자 P 추가한다. tar tvf m.tar 압축해제 없이 내부 목록 보기 |
[zip] 파일, 폴더를 압축 및 해제를 한다. zip m a.txt b.txt // a.txt b.txt를 m.zip으로 압축한다. .zip은 자동으로 생성된다. zip -r m // 디렉토리까지 모두 압축한다. unzip m.zip // 압축을 해제한다. zip -r m * -x /\*/.svn/\* // 압축할 디렉토리에 .svn의 모든 폴더 내용을 제외하고 압축한다. (/\* 기호는 모든 디렉토리에서 .svn안에 있는 /\*모든 파일을 지운다) |
[PATH] 경로를 보여준다. 대문자로 적어야 한다 예 echo $PATH [PATH 설정] 자신의 홈 디렉토리의 .profile 또는 .bash_profile에다가 콜론( : )을 통해 경로를 계속 추가한다. 그러면 어느 위치에서든지 설정된 경로내의 프로그램을 실행 시킬 수 있다. 재시작을 해야 적용이 되나 테스트하기 위해 source .profile 또는 source .bash_profile를 통해 확인 해 볼 수 있다. |
[grep] 찾을 문자값, 파일 값 등을 찾는다. 예 grep main text.c text.c 파일 내용에서 main을 찾아 출력한다. dmesg |grep Linux dmesg에서 Linux에 해당하는 값을 찾는다. ls |grep abc ls 명령어 결과값에서 abc를 찾아 출력한다. |
[date] 현재 날짜를 출력한다. 예 date date +%Y 현재 년도 출력 (참고로 +%Y 앞에 빈공간 있어야 한다.) date +%m 현재 달 출력 date +%d 현재 일자 출력 |
[cal] 현재 달력을 출력한다. -y : 년도 -m : 월 예 cal cal -y 1993 1993년도 달력 출력 cal -m 7 7월 달력 출력 |
[mkdir] 디렉토리를 생성한다. 예 mkdir a a라는 이름의 디렉토리 생성 mkdir -p /home/a 경로명에 따라 없는 모든 디렉토리 생성 |
[cp] 파일을 복사한다. -a : 원본 파일의 속성, 링크 정보들을 그대로 유지하면서 복사 -f : 복사할 대상 파일이 이미 있는 경우 지우고 복사한다. -i : 덮어쓰기 전에 여부를 묻는다. -p : 가능하다면 파일 속성을 유지한다. -r : 하위 디렉토리까지 복사한다. -s : 복사하는 대신 심볼릭 링크를 만든다. -u : 소스 파일이 복사될 파일보다 새것이거나 복사될 파일이 없을 때만 복사한다. 예 cp a.txt b.txt a.txt 파일을 b.txt파일로 복사 cp -r mk /home mk 디렉토리 전부를 /home 안에 복사한다. |
[scp] 네트워크를 통해 파일을 복사한다. s는 Secure로서 안전하게 복사하도록 한다. scp src desc 순으로 src의 값을 desc로 보낸다. 예 scp -P 22 /home/a.txt 192.168.0.1:/home |
[ls] 디렉토리 목록을 표시한다. ls, ll 등이 있다. -a : 숨긴 파일 표시 -l : 리스트 정리로 표시 예 ls ls -a 숨긴 것까지 보이게 ls -al 숨긴 것과 리스트로 정렬해 보이기 ll --full-time 파일의 대한 모든 시간을 보여준다. |
[uname] 커널 버전을 표시한다. 예 uname uname -a uname -mrs 참고 cat /proc/version |
[lsb_release] 배포한 리눅스 버전을 표시한다. (lsb-release 패키지가 설치되어 있어야 한다.) 예 lsb_release lsb_release -a 참고 cat /etc/*-release |
[cat] 표준 입출력으로 파일 내용을 이어 붙이거나, 복사한다. 예 cat text1 > text2 text1의 내용을 text2에 복사한다. (text2의 기존 내용은 사라진다.) cat text1 >> text2 text1의 내용을 text2에 복사한다. (text2의 기존 내용 뒤에 text1의 내용이 추가된다.) 참고 cat text1 text2 > text2 여러개의 파일을 이어 붙이거나 복사가 가능하다. |
[awk] grep와 비슷하게 특정 값을 잡아서 출력시킨다. 필드를 구분하여 출력해주므로 편하다. 예 ls -al | awk '{print $1}' 첫 번째 필드 부분만 출력한다. ls -al | awk '{print $NF}' 마지막 필드 부분만 출력한다. ls -al | awk '{print $FNR}' 라인에 따라 필드 위치가 1씩 증가하면서 해당 필드 부분만 출력한다. ls -al | awk -F '/' '{print $NF}' -F 옵션에 따라 /값을 구분으로 필드를 분리한다. ls -al | awk '{print $1, $2}' 여러 필드 출력 awk '{print $1} 파일명 파일 내용도 awk를 이용해 출력 할 수 있다. |
[rsync] 파일을 싱크한다. rsync src desc 순으로 src의 파일, 디렉토리리를 desc로 보낸다. -a 디렉토리를 싱크 할 경우 -v 처리 과정, 결과 출력 -z 파일 전송시 압축 처리 --delete desc엔 있지만 src에 없는 파일이라면 desc의 파일을 삭제 --exclude= 싱크에서 제외할 파일 -e desc의 특정한 bshell 사용 예 rsync test.txt /home rsync text.txt 192.168.0.1:/home rsync -avz --delete -e ssh text_directory 192.168.0.1:/home |
[blkid] 디바이스 정보를 출력한다. 암호화된 볼륨등을 확인 할 수 있다. |
[hdparm] 하드디스트 체크 hdparm 옵션 디바이스경로 hdparm -T /dev/sda hdparm -Tt /dev/sda |
[iostat] apt-get install sysstat 으로 설치 후 사용 시스템의 자원 사용율을 보여준다. iostat -d 디스크의 속도 iostat -c CPU의 이용 |
[pvscan] 물리적인 볼륨을 스캔한다. 예 pvscan 출력 예 PV /dev/sdb1 VG Secondary lvm2 [1.82 TiB / 0 free] PV /dev/sda1 VG Primary lvm2 [1.82 TiB / 0 free] 위와 같은 결과를 가져오는데 PV는 물리적 볼륨을 뜻하며, VG는 볼륨 그룹을 뜻한다. |
[mount] 분리된 파일 시스템을 연결한다. -t 파일 시스템 종류를 설정 예 mount /dev/sdb /mnt/sdb mount -t ext4 /dev/sdb /mnt/sdb |
[umount] 연결된 파일 시스템을 분리한다. -f 강제 분리 예 umount /mnt/sdb umount -f /mnt/sdb |
[acpi] 시스템의 온도를 보여준다. 예 acpi -t 해당 명령어가 없는 경우에는 lm-sensors 패키지를 설치한다. |
[top] 윈도우의 작업관리자와 같은 시스템의 상태를 보여준다. 예 top |
[free] 메모리 사용량을 보여준다. -b : 바이트 단위 -k : 킬로바이트 단위 -m : 메가바이트 단위 -g : 기가바이트 단위 --tera : 테라바이트 단위 -h : 사람이 읽기 쉬운 단위 예 free free -m free -g |
[df] 파일 시스템별 사용량을 보여준다. -k : 킬로바이트 단위 -m : 메가바이트 단위 -h : 사람이 읽기 쉬운 단위 예 df -k df -h |
[du] 디렉토리별 사용량을 보여준다. -k : 킬로바이트 단위 -m : 메가바이트 단위 -h : 사람이 읽기 쉬운 단뒤 -s : 선택한 디렉토리의 서브디렉토리를 요약 -d : 선택한 디렉토리의 서브디렉토리 레벨값 설정시 예 du du 디렉토리명 du /home du -k /home du -d 1 /home 서브디렉토리를 1개까지만 탐색 du -d 3 /home 서브디렉토리를 3개까지만 탐색 |
[halt] 시스템을 즉시 종료시킨다. 예 halt |
[reboot] 시스템을 즉시 재시작한다. 예 reboot |
[shutdown] 시스템을 종료시키거나 재시작하는 시간을 설정하고 해당 기능을 수행한다. 종료나 재시작에 대한 메세지를 로그인 유저들에게 통보한다. -h : 분단위 후 종료시킨다. -r : 시스템을 재시작한다. 예 shutdown -h 30 30분 후 시스템 종료 shutdown -h now 즉시 시스템 종료 shutdown -r 30 30분 후 시스템 재시작 shutdown -h 30 "메세지" 로그인 유저들에게 메세지를 보낸다. |
[su] superuser 권한을 얻거나 다른 계정으로 로그인 한다. 예 su root su 계정명 |
[which] 명령어의 위치를 출력한다. 예 which ls |
[whatis] 명령어의 기능을 출력한다. 예 whatis ls |
=================== 정리전 ================
cd 디렉토리 이동
cd : 홈디렉토리로 이동
cd.. : 상위 디렉토리로 이동
cd. : 현재 디렉토리로 이동
cd- : 이전 디렉토리로 이동 (맘에드는 명령어죠 ^^)
cd~ : 홈디렉토리로 이동
ls MS-DOS의 dir과비슷하죠 파일 목록 보기입니다.
상세한 정보를 알수있죠~?!! 물론 옵션정보도 알수있구요~!!
-l :파일의 종류,링크수,디렉토리,소유그룹,파일싸이즈등 좀더자세히보기..
-a :all~! 모두보기죠~ 그냥 ls 하면 볼수 없는 숨어있는파일 (.)으로시작
하는 숨겨진파일까지 볼때 사용..
rmdir 디렉토리 지우는 명령어
-p : 위에서처럼 경로명을 따라서 삭제 하겠죠~
-v : 작업 진행내용을 출력~
-f : 삭제여부를 묻지 않고 강제로 삭제하죠~ 조심해서 사용..
mv 파일이나 디렉토리를 옮기는 명령어죠~! 이름변경에도 사용하구요~!!
--backup :복사하려는 파일과 이름이 같은 파일이 있으면, 확인후에 백업
파일을 원본 파일 뒤에 딜트(~)를 붙여서 생성하고 이동~
-f : 겹쳐쓰기 여부를 묻지않고 무조건 이동~!
cat Redirection이용하여 간단한 파일을 만들거나 내용을 볼때 사용...
cp 파일을 복사하죠~
-f : 강제로 복사
-r :서브 디렉토리도 모두 복사~~
-d : 링크정보 복사
-u : 소스파일이 복사될 파일보다 최근것이거나 복사될 파일이 없을때만복사
rm 파일 or 디렉토리 삭제
요넘은 rmdir보다 더 사용이 편리하죠~! 왜냐면.. 디렉토리에 파일이 없어야
rmdir로 디렉토리가 삭제가되는데.. rm -r 하면~ 한방에 삭제가되죠~
-f : 강제 삭제
-r : 디렉토리의 내용을 삭제~
file 파일의 종류를 확인하는 명령어죠~ 자주 사용하진 안치만.. 알아두면 편리하죠~
ln 링크 파일을 생성하는 명령어..
-s : 심볼릭 링크 생성~!!
링크의 종류에는 하드링크,심볼릭링크가 있어요~
하드링크 - 파일의 모든속성을 그대로 유지, 일반파일에서만 만들수 있구요
심볼릭링크 - 단지 원본파일이나 디렉토리를 가리키는 방향에 불과한것
단축아이콘과 비슷한개념으로 모든 파일에대해 생성가능하구요~!
[root @localhost tmp]# ls -al
그러면 아래유형과 같이 ls명령에 의해 출력이 되겠죠.....
(1) (2) (3) (4) (5) (6) (7)
drwxr-xr-x 2 root root 4096 Oct 10 12:00 .
drwxr-x--- 2 root root 4096 Oct 10 12:00 ..
-rw-r--r-- 2 root root 100 Oct 10 12:00 test.c
각각은 (1) 접근권한 (2)링크된 숫자 (3)파일의 소유자 (4)파일의 소유자가 속한그룹
(5) 파일의 크기 (6) 파일을 마지막으로 수정한날짜 (7) 파일명 을의미하구요~!!!
우리가 이번에 보고자하는것은 (1)접근 권한 이구요~!!!
(1)번을 보면 10개의 문자가 출력되는데 각각의 의미를 볼께요~
첫번째문자는 파일의 종류를 나타냅니다.
"d" -> 디렉토리
"-" -> 일반파일
"b" -> 블록장치파일
"c" -> 문자장치파일
"l" -> 심볼릭링크
"s" -> 소켓
"p" -> 파이프
와같은 의미를 나타냅니다. 블록장치,문자장치,소켓,파이프... 이런거는 차차 리눅스를
공부하다보면 아시게 될 내용들이고 지금은 설명을 생략하겠습니다.
첫번째 문자의 의미를 파악하셨다면 나머지 9개의 의미를 봐야겠죠
User Group Other
r w x r w x r w x
이렇게 User(r,w,x),Group(r,w,x),Other(r,w,x) 으로 9개의비트가 사용되죠
의미를 알아보면
일반파일에서 r ->읽기가능
w ->쓰기가능
x-> 실행가능
- ->권한없음을 나타내고
디렉토리에서 r ->읽기가능(ls명령으로 볼수있음을 의미하죠~)
w ->쓰기가능 (디렉토리내에 파일이나 하위디렉을 생성할수 있음을 의미)
x ->실행가능 (cd 명령으로 그 디렉토리에 들어갈수있음을 의미하죠)
위에 출력된 예를 다시 들어보면
drwxr-xr-x 의 의미는 어떻게 될까요?????
앞에 d니까 디렉토리구나~! 가되겠죠..ㅋㅋ
User의 권한은 rwx 로 되어있으니까 유저는 읽기,쓰기,실행할권한을 가지는거구~!!
소유 Group의 권한은 r-x 니까 읽고,실행은 가능한데 쓰기가 안되는거죠~!!
마찬가지로 기타사용자의 권한(Other)는 r-x 읽고,실행가능한데 쓰기는 불가능이죠~
쉽죠?? ㅋㅋ
이제 권한이라는것이 있구나를 알았으니깐~!! 권한을 바꿔줄 필요가 있다면
모드(권한)를 바꿔주는 명령어를 사용해야겠죠~! 그명령어가 바로 chmod (체인지모드)
가 된답니다.
다음과 같이 사용하죠
]# chmod u+x test
의미가 뭘까요??
tset의 모드를 바꾸는데(chmod) 유저의 권한에(u) 실행권한(x)까지 추가하라는얘기가되겠죠
마찬가지로...
]#chmod g-w test
그룹(g)의 권한중에서 쓰기 권한은 빼라~!! 가되겠죠~~!!
사실 이보다더 쉬운 방법으로 모드를 바꿔줄수 있는방법이있습니다.
읽기 r(4) , 쓰기 w (2), 실행 x(1)을 숫자의 조합으로 사용하는데요..
예를 들어 설명해볼께요
]#chmod 664 test
라고 한다면
664 는 6(User),6(Group),4(Other)를 각각 의미하는데요
User 의 권한이 6이다 라고 했을때... 4(r),2(w),1(x)세개의 숫자로 6이나올수있는 조합은
4+2 즉 읽기권한과 쓰기 권한이 설정되었을때 6이 나올수 있죠??
Group도 User와 마찬가지고 Other를 보면 4 로 설정하니깐... 읽기 권한만 있구나 ~! 하구
알수 있겠죠~!!!
]#chmod 664 test 라고했을때 ----> rw-rw-r-- 가 되겠죠???
이 명령어를 자주 사용하다보면 숫자를 사용해서 Permission을 바꿔주는게 더 편리하구나
하고 느끼실꺼에요....
그밖에 권한과 관련된 다른명령어로
chown 파일의 소유자를 다른 사람에게로 변경시킬때...
chgrp 파일의 그룹 소유권을 변경시킬때 사용....
find
이 명령은 찾고자하는 파일과 디렉토리를 검사해주는역활을 합니다.
사용 형식은 find [디렉토리][옵션] 의 형식으로 사용하구요
-name"파일명" : 파일이름에 의해 검색..
-perm 모드 : 퍼미션 모드에 의해 검색..
-type 파일의종류 : 파일의 종류에의해 검색...b(블럭),c(케릭터),d(디렉),f(일반)....
clear
이 명령어는 터미널의 창을 깨끗히 지우는 명령어 입니다.
더 간단히 단축키 Ctrl + l 를 사용하면 더 편리하구요~!
adduser
사용자 계정을 추가하라~!!!
adduser --help를 하시면 많은 옵션들이 나올꺼에요 참고하시구요 ^^;;;;;
간단하게 사용자를 추가하고자한다면...
]#adduser hyochang
하시면 hyochang이라는 사용자가 추가되는거랍니다..
]#ls /home/ 하시면 계정 추가된걸 볼수가 있죠...
passwd
패스워드 입력명령이구요... 계정을 추가했으면 패스워드를 넣어줘야겠죠
]#passwd hyochang 계정명과 같이 입력하고 패스를 설정해주면 됩니다.
userdel
사용자를 삭제하는명령이죠. 이명령이 수행되면..
/etc/passwd,/etc/shadow,/etc/group에 기록된 정보가 삭제됩니다.
-r옵션을 써주면 계정의 홈디렉토리도 같이 지워준답니다.
who, w, whoami, who am i
현재 로그인한 사용자들을 보고자할때 사용하는 명령어입니다.
whereis [명령어]
명령어의 실행파일 경로 및 소스 메뉴얼 페이지 파일의 경로를 출력
cal
달력을 출력, 인자값 없으면 현재 달을 출력
ps
현재 실행중인 프로세스를 볼때 사용
[root@localhost /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Sep03 ? 00:00:04 init
root 2 1 0 Sep03 ? 00:00:00 [keventd]
kill
kill pid
해당프로세스의 PID를 사용하여 프로세스 종료
kill -9 pid
-9는 priority를 최대로 한것이 되지요~~
finger
시스템유저들에 대한 정보를 출력한다.
[root@localhost /]# finger hyochang
Login: hyochang Name: (null)
Directory: /home/hyochang Shell: /bin/bash
Never logged in.
No mail.
No Plan.
tar
tar[동작모드/옵션][아카이브 파일명][원본파일들]
우선 동작모드에대해 보겠습니다.
-c 새로운 아카이브 파일을 생성한다.
-x 기존에 만들어진 아카이브 파일을 푼다
-r 기존에 만들어진 아카이브 파일에 다른파일들을 더 추가한다
-u 아카이브 안의 파일보다 새로운 파일만을 추가한다
-t 아카이브 파일안에 들어 있는 내용을 풀어보지안고 보기만한다.
옵션입니다.
-f 파일을 묶을때 사용하는 옵션
-v 파일을 묶고 풀때의 작업 내용을 출력
-z 파일을 묶으면서 또는 해제하면서 gzip을 이용해서 압축/해제 한다(*.tar.gz,*.tgz)
-Z 파일을 묶으면서 compress를 이용해 압축까지 한다. (*.tar.z)
-l 파일을 묶으면서 bzip2로 압축까지한다. (*.tar.bz2)
split
파일을 쪼갤때 사용하는 명령어
split -b [size][file][suffix]
'명령어 모음' 카테고리의 다른 글
Visual Studio 2010 단축키 (0) | 2012.07.28 |
---|