Linux 명령어.
ls 지금 있는 폴더의 파일을 보여준다.
[option]
-l 파일의 자세한 정보
-a .을 포함한 경로안의 모든 파일을 나열한다.
-c 파일 최근 변경 시간에 따라 정렬해서 보여준다.
-d 경로안의 내용을 나열하지 않고 보여준다
-i 파일 왼쪽에 index번호를 보여준다.
-k 파일 크기가 나열되면,kb단위로 보여준다.
-m 파일을 가로로 나열한다.
-n 이름의 나열에서 UID,GID번호를 사용한다.
-r 파일의 정렬 순서를 내림차순으로 한다.
-F 파일의 형식을 알리는 문자를 포함해서 출력
-R 하위 경로와 그 안에 있는 모든 파일들도 나열한다
--color
[root@localhost ~]#ls -l
-rw-r—r-- 1 root root 4096 Feb 12 20:10 filename
허가권 링크 그룹 소유주 용량 마지막사용일 파일이름
링크 : (연결하는 단축아이콘의 갯수)
drwxr~~ d는 디렉토리
@바로가기 아이콘
*는 실행파일
-Fl 파일의 자세한 정보를 나타낸다. 뭘 링크하는지 볼 수 있음.
uname 시스템의 정보를 보여준다.
[option]
-m 시스템의 하드웨어 타입을 보여준다.
-n nodename
-r 운영체제 릴리즈 넘버를 보여준다.
-s 운영체제의 이름을 보여준다.
-v 운영체제의 버전을 보여준다
-a 위의 모든 정보를 보여준다.
-i 아키텍쳐 넘버
-p 프로세서 넘버
--help 해당명령어의 도움말을 보여준다.
//localhost 현재 컴퓨터가 어디에 속해있는지 알려준다.
//i686-cpu 1.7이상 i636-하드웨어자체 i386-시스템 프로그램에대한 아키텍쳐//구성배경
cal 달력출력
-j 율리우스력으로 출력한다.
-y 현재 년도 모든 달을 모두 보여준다.
-V 버전 정보를 보여준다
touch 파일을 만들고 파일에 접근하거나 수정한 시간을 변경한다.
-a 최근 파일 사용시간만 업데이트 한다.
-c 지정한 파일이 없더라도 파일을 생성하지 않는다.
-d time 현재시간 대신 지정한 시간으로 변경한다.
-m 파일이 수정된 시간을 변경한다.
-r file 지정한 파일의 시간으로 변경한다.
-t time 현재시간 대신 지정한 시간으로 변경한다.
date 필요에 따라 시간과 날짜를 다양한 포멧으로 출력하는 명령어
-d 지정한 date값과 같이 시간과 날짜를 보여준다.
-f 지정한 날짜 파일에서 각각의 줄에 대한 날짜를 보여준다.
-l ISO-8601 포맷으로 보여준다
-r 지정한 파일이 마지막으로 수정된 날짜를 보여준다
-R RFC-922 데이트 문자열로 보여준다.
-s 지정한 string으로 시간을 맞춘다.
date +%m%d 달와 날짜만 보겠다
date +%H%M%S 시간분초
리눅스는 자동으로 시간을 업데이트 해주지 않기 때문에
자주 시간을 업데이트 해줘야한다.
rdate -s time.bora.net
//서버시간으로 맞춘다.
*날짜를 받아와 파일명으로 만들기* set $(date) //배열에 날짜/시간을넣는다. echo %1 //배열순서로 출력 echo %2 touch $4.log //배열 4번 인덱스안의 문자열로 파일이름을 지정한다. |
pwd 현재 사용하는 디렉토리의 절대 경로를 보여주는 명령어
man 명령어
:명령어에 대한 메뉴얼을 보여준다.
mkdir
:디렉토리 생성
-m 퍼미션 디렉토리의 권한을지정
-p 상위 디렉토리가 없을 시 상위 디렉토리까지 생성
rmdir
:디렉토리 삭제
-p 하위항목을 같이지우나, 하위항목이 비어있어야 한다.
rm -r 디렉토리명
:하위 디렉토리까지 삭제할 수 있다.
touch명령어
:기존에 존지하지 않는 파일을 지정하면 빈 파일을 만들어주고
:기존에 존재하는 파이을 지저하면 파일이나 디렉토리의 수정시간이나 접근시간등을 현재시간으로 업데이트 시켜준다.
:복사명령어
-a 원본 파일의 속성, 링크 정보를 유지하면서 복사
-b 복사할 대상을 덮어쓰거나 지울 때를 대비해서 백업파일 만듦
-d 심볼릭 파일 자체를 심볼릭 정보와 함께 복사할 때 사용
-f 복사할 파일이 존재할 때 삭제하고 복사
-i 복사할 파일이 존재하는 경우 복사할 것인지 물어봄
-l 디렉토리가 아닌 경우 복사 대신 하드 링크로 만듦
-p 원본 파일의 소유, 그룹, 권한, 허용 시간을 보존한 채로 복사
-r 서브 디렉토리 내에 있는 모든 파일 까지 통째로 복사
-s 디렉토리가 아닌 경우 복사 대신 심볼릭 링크로 만듦
-u 대상 파일보다 원본 파일이 새로운 것일 때 복사
-v 복사 상태를 보여줌
mv
:이동명령
-b 복사할 대상을 덮어쓰거나 지울 때를 대비해서 백업 파일 만듦
-f 복사할 파일이 존재할 때 삭제하고 복사
-i 복사할 파일이 존재하는 경우 복사할 것인지 물어봄
(alias에서 -i가 기본으로 들어가 있음)
-u 대상 파일보다 원본 파일이 새로운 것일 때 복사
-v 파일 옮기기 전의 과정을 보여줌
rm
:파일삭제명령어
-f 삭제할지 물어보지 않음
-i 삭제할 것인지 물어봄
-r, -R 일반 파일이면 그냥지우고 디렉토리일 경우 그 하위경로와 파일을 모두지움
-v 삭제되는 파일의 정보를 보여줌
*) rm -rf * 하면 하위 모두 삭제된다.
cat
:파일의 내용을 화면에 출력
:more과 같이 쓰면 단위별로 끊어서 출력 ex)cat /etc/inittab | more
-b 줄 번호를 나타냄
-e 제어문자를 ^ 형태로 출력하며 끝에 $을 추가
-n 줄번호를 공백을 포함하여 화면 왼쪽에 나타냄
-s 중복되고 겹치는 빈 행은 하나의 빈 행으로 처리
-v 행바꿈 문자, tab을 제외한 제어문자를 ^형태로 출력
-E 각 행 끝에 $ 문자 출력
-T tab문자를 출력
-A -vET와 같음
장점 : 행번호 출력
more
:파일출력시 화면단위로 끊어서 보여준다.
-숫자 출력행수를 지정
-c 위에서부터 한 행씩 지운 후 한 행씩 출력
-d 프롬프트를 출력
-f 화면 단위의 행이아니라 논리적인 단위의 행을 보여준다
-s 여러 개의 빈 공백행을 하나로 취급
-p 스크롤하지 않으며 화면을 지우고 출력
-u 밑줄 치기를 금지
장점 : 원하고하는 내용만큼 출력가능
less
:more을 보완한 명령어
-a 마지막 라인이 화면에 출력되고 나서 탐색 시작
-c 필요할 때 전체화면을 다시 갱신
-C -c와 같지만 갱신할 때 화면 전체를 지우고 시작
-e 두 번째로 파일의 끝에 도달하면 자동적으로 종료
-E 파일의 끝에 도달하면 자동적으로 종료
-i 대소문자를 구분하여 탐색
-q 특정 에러가 없으면 소리 안냄
-Q 소리 안냄
-s 연속되는 공백 라인은 하나의 행으로 처리
-x n(숫자) 수치를 지정하여 탭 간격 조정
-N 행번호 붙여서 출력한다
장점 : 화면의 단위로 출력되지만 행번호 붙여서 자유롭게 화면 올리고 내리면서 볼 수 있음
nl
:무조건 행번호를 붙여서 출력(cat -n)
head
:파일의 처음 시작 부분의 몇 줄을 출력 하고자 할 때 사용.
:아무런 옵션 없으면 처음 10줄을 보여줌.
↔ tail
파일의 끝 부분만 출력하고자 할때 사용. 기본 10줄.
ex)로그 모니터링
tail -f /var/log/messages
case) cat passwd | more
cat의 출력을 more가 입력으로 받아 재연산한다.
cat -n passwd | tail -25 | head -10
last
:계정사용자들의 로그인정보를 보여주는 명령어
:모든 계정의 접속정보
last 아이디 아이디의 접속정보
-숫자 :숫자행 만큼 결과 확인
-R : 호스트접속기록을 제외한 결과만을 출력
-a : 호스트 정보를 마지막 열에 출력
-d : 외부에서 접속한 정보와 reboot에 관한 정보만 출력
lastb
:접속 실패 로그를 출력
lastlog
:사용자의 마지막 로그인 정보만을 출력
lastlog -u fedora
= lastlog | grep fedora
groups
:사용자가 속한 그룹을 보여준다.
id
:사용자의 uid, gid, group를 보여줌
:uid-유저의 id / gid-그룹의 id
-g 기본 그룹의 gid 출력
-G 사용자가 속한 모든 그룹의 gid를 출력
-u 사용자의 uid를 출력
-n -u와 사용하여 숫자 대신 이름 출력
who
:현재 로그인된 사용자의 정보
whoami
:내가 누구인가?
-i idle time과 함께 사용자 출력
-m who 명령을 실행한 사용자 표시
-q 사용자 이름과 사용자수 출력
-w, -T 각 사용자의 메시지 설정 상태 출력
-H 헤드라인 정보 표시
w
:사용자들의 프로세스 정보를 확인
wc
:파일 내의 문자수, 단어수, 라인수를 확인하고자 할 때 사용된다.
-l 라인수
-w 단어수
-c 문자수
su
:다른 사용자의 권한으로 shell을 실행한다.
로그아웃없이 다른 사용자로 전환
:su로 로그인하면 사용자 설정은 가져오지 않는다.
그러므로 su - 아이디 입력해서 환경변수를 읽어온다.
su - 로그인 사용자의 환경변수를 읽음
watch
:명령을 계속 감시한다.
ex)watch w - 어떤 명령을 실행하고 있는지 바로 알 수 있다.
rpm
:몇개의 프로그램이 설치되어 있는지 보여준다.
chown
:파일에 대한 사용자와 그룹의 소유권 변경
ex)
chown 소유자 파일명
chown fedora chownfile1
결과 : fedora root //fedora로 소유자가 바뀜
chown .그룹 파일명
chown .user1 chownfile1
결과 : fedora user1 //그룹 소유자가 user로 바뀜
chown 소유자:그룹 파일명
chown root:root chownfile1
결과 : root root //사용자 root 그룹의 소유자 root
chown -R fedora:fedora testDir1
//하위 폴더 및 파일의 소유자까지 변경한다
chomod
:허가권 조정
1)심볼모드
u+rwx,u-rwx...
2)수치모드
--x 1
-w- 2
r-- 4
.
.
rwx 7
Sticky bit
:특수권한
:쓰기 권한은 주지만 삭제권한을 없앨때 사용한다.
:파일을 만든사용자나 관리자만이 파일의 삭제권한을 갖게 된다.
폴더 허가권
|
폴더 소유주 → 삭제
| no
파일 소유주 → 삭제
| no
deny 거부
chmod 1757 /StickyDir
SetUID SetGID sticky bit
4 2 1
setUID
:setUID비트가 설정되어 있다면 다른 사용자들이 그 파일을 실행하였을 경우 실행되는 동안에는실행시킨 사용자의 권한이 아닌 파일의 소유자권한으로 실행이 되게 하는 것이다.
cmp
:두개의 파일을 비교해서 다른 점을 간단하게 보여준다.
diff
:두개의 파일을 비교해서 차이점을 상세하게 보여준다.
sort
:파일의 텍스트를 정렬한다.(기본은 오름차순)
-n 숫자로 정렬한다.
-r 내림차순으로 정렬
-o 출력 결과를 파일에 저장한다.
-t 필드 구분자를 지정한다
-k 정렬할 필드를 지정하다.
file
파일의 종류를 알 수 있는 명령어
grep
:파일 내에 특정한 패턴을 검색하여 그 패턴을 포함하는 모든 줄을 화면에 출력하는 명령어
find
:원하는 파일을 찾을 때
-name 파일 이름을 기준으로 검색
-perm 파일 권한을 기준으로 검색
-type 파일의 종류를 기준으로 검색
b:블록파일
c:문자
d:디렉토리
f:파일
l:링크
s:소켓
-size 파일의 크기를 기준으로 검색
+n :n보다 크다
-n :n보다 작다
n :n이다
b :512-byte
c : byte
k : kilobyte
w : 2-byte
-link 링크의 개수를 기준으로 검색
-user 사용자 ID를 기준으로 검색
-atime 특정 기간 이상 접근하지 않은 파일을 기준으로 검색
-mtime 특정 기간 이상 수정되지 않은 파일을 기준으로 검색
-inode number 지정된 inode 번호와 파일을 찾는다.
-print 표준출력으로 검색된 파일 출력
-exec command {}\; 찾은 각 파일에 대해 지정된 명령을 실행
-ok command {}\; 실행여부를 사용자에게 확인 후 명령을 실행
gzip ↔ gunzip
:파일을 압축할 때 사용된다.(한개씩 압축)
bzip2 ↔ bunzip2
:높은 압축률을 가진 압축 유틸
-d 압축 푸는 옵션 bunzip2와 동일
-c 파일을 압축 또는 풀어서 표준 출력으로 보낸다.
-z 파일을 압축한다.
-t 지정된 파일의 무결성을 검사하지만, 압축을 풀지 않는다.
-f 압축 ,해제할 때 같은 이름의 파일이 있을 경우 덮어쓰기 한다.
-k 파일을 압축이나 해제할 때 원본 파일을 지우지 않는다.
-q 경고 메세지가 나오지 않는다.
-v bzip2 작업사항을 자세히 볼 수 있다.
-1~-9 압축할 때의 블록 크기를 정해준다.
zcat 파일명.gz
: = gunzip -c 파일명.gz
:압축된 파일을 풀지 않고 내용을 확인한다.(gzip만 해당됨)
tar
:여러개의 파일이나 디렉토리를 한 개의 tarfile로 만들 때 사용한다.
-c 여러개의 파일을 하나의 파일로 묶을때
-v 생성과정을 보여 줌
-x 아키이빙을 해제한다.
-r 아카이빙에 파일을 추가적으로 삽입한다.
-u tar파일과 새로운 디렉토리 내의 파일과 비교하여 최근 파일을 아카이브에 추가
-t tar파일의 내용을 확인할 때
-z gzip과 관련하여 압축이나 해제를 한꺼번에 할 때
-j, -i bzip2를 이용해서 압축한다.(j-64비트, i-32비트)
ps
:실행되고 있는 명령으를 확인 -ef
-e 모든프로세스
-f 출력포맷(모두)
파일 기술자
0 stdin
1 stdout
2 stderr
방향재지정자
CMD < filename CMD에 파일내용을 전달.
CMD > filename 파일에 CMD실행 내용 전달.
CMD >> filename 파일에 CMD실행 내용 추가.
CMD << filename (x)
history
:과거에 썼던 명령어가 stack에 저장되어 있다.
(bash쉘만 가능 . Sh쉘은 히스토리 기능이 없다.)
:1000개까지 저장.
-c 현재까지 사용한 명령 삭제
tip)히스토리 남기지 않으려면
/etc/profile에서 HISTSIAE, HISTFILESIZE를 0으로 한다.
로그아웃시 히스토리 삭제하려면
vi ~/.bash_logout 에서
history -c 로 수정
dmesg
시스템이 부팅될 때 화면에 출력되는 내용을 다시 보여준다
ps
:실행중인 프로그램을 보여준다.
ps -ef 작업관리자 호출
-e 모든 프로세스 리스트를 출력한다
-f 프로세스의 모든 정보를 출력한다.
-p 지정된 프로세스에 대한 정보를 출력한다
-t 지정된 터미널에 연관된 프로세스 정보를 출력한다
-u 지정된 사용자에 연관된 프로세스 정보를 출력한다
a 다른 사용자의 프로세스 상태도 표시한다
x 화면에 보이지 않는 프로세스까지 모두 표시한다
PID : 프로세스 ID
PPID : 부모프로세스의 번호
C: cpu에 대한 사용량
STIME : 시작시간
TTY : 터미널
TIME : 사용시간
CMD : 실행중인 명령
ps axu | less 다른 사용자의 프로세스 상태까지도 표시
top
:실시간으로 프로세스의 상태나 CPU, 메모리, 접속한 사용자의 수 등을 알 수 있게 된다.
프로세스 관리 (백그라운드와 포그라운드)
내눈앞에서 보여지고 있지 않은 상태 - 백그라운드
내눈앞에 보여지고 있는 상태 – 포그라운드
&명령
cat &
find / -name a&
바로 백그라운드로 실행시킨다.
bg
:백그라운드에서 실행시킨다.
ex) bg 1
cat &
fg
:백그라운드에서 포그라운드로 불러들이낟.
ex) fg 1
kill
:프로세스를 죽인다.
:백그라운드에서 실행되는 프로세스는 종료시키지 못한다.
이때 kill을 사용.
-9 : 강제적으로 정한걸 죽인다.
-15 : 관련된것까지 싹 죽인다.
lsof
:프로세스가 사용하는 라이브러리를 확인할 수 있다.
lsof PID번호
pmap
:대상 프로세스의 주소 공간을 살펴 볼 수 있다.
pmap PDI
pstree
:프로세스의 부모 자섹관계를 트리구조로 보여준다.
pstree PID
pwdx
:현재 작업디렉토리를 본다
pstack
:stack trace를 표시 할 수 있다.
rpm
:Redhat Package Management
:패키지 관리 시스템
:패키지 이름은 [패키지이름-릴리즈버젼-아키텍쳐.rpm]으로 구성되어 있다.
-q 질문한다.
-a 모든것 -qa 설치된 모든것을 질문한다
-e 패키지 제거하기(+ --nodeps 의존성 무시)
-i 새로설치
-U 업그레이드
h, --hash #으로 진행상태 표시
oldpackage 다운그레이드
percent 퍼센트로 표시
test 동작하는지 검사한다.
yum
:의존성이 있는 다른 패키지가 있어야 하는 경우 자동으로 먼저 설치 해준다.
install
update
check-update
remove
info
-y 설치시 물음에 y로 답변
chkconfig
:설정변경
chkconfig –-list sendmail 메일설정보기
chkconfig –-level 3 sendmail off
inittab3레벨에서 sendmail설정끄기
댓글