2015 년 8 월 27 일 [파일 권한 관리 및 grep 정규 및 확장 정규 표현 식] - JY1506402 - 19 + liuhui 880818
시스템 환경: CentOS 6.7 / 7 x8664
1. 숙제 (연습) 내용:
1、 ;
2、
3、 /etc/passwd bash
4、 /etc/passwd
5、 `netstat -tan` ‘LISTEN’ 0 、1
6、 bash、testbash、basher nologin (nologin shell /sbin/nologin); /etc/passwd shell
7、 root、centos user1 shell UID ( , )
8、 /etc/rc.d/init.d/functions ( )
9、 echo , egrep ; egrep
10、 ifconfig 1-255
2. 완성 시간:
2015 년 9 월 3 일 수업 전
3. 총화 와 연습
1. 본 과정 에서 관련 된 명령 의 사용 방법 과 관련 사례 를 요약 한다.
(1) Linux 파일 시스템 파일 권한 설명
사용자 가 파일 에 접근 할 수 있 는 권한 은 세 가지 가 있 습 니 다: rwx
파일:
r: 텍스트 보기 도 구 를 사용 하여 내용 을 볼 수 있 습 니 다.
w: 파일 편집 도 구 를 사용 하여 내용 을 편집 할 수 있 습 니 다.
x: 이 파일 을 프로 세 스 로 실행 할 것 을 커 널 에 요청 할 수 있 습 니 다.
디 렉 터 리:
r: ls 명령 을 사용 하여 디 렉 터 리 의 파일 이나 하위 디 렉 터 리 목록 을 표시 할 수 있 습 니 다.
w: 이 디 렉 터 리 에서 파일 을 만 들 거나 삭제 할 수 있 습 니 다.
x: 'ls - l' 을 사용 하여 디 렉 터 리 파일 과 하위 디 렉 터 리 의 상세 한 속성 정 보 를 표시 할 수 있 습 니 다.cd 명령 으로 작업 디 렉 터 리 를 지정 한 디 렉 터 리 로 전환 할 수 있 습 니 다.
파일 권한 은 주, 그룹 과 다른 사용자 로 나 뉘 는데 각각 u: owner, g: group, o: other 를 사용 합 니 다.a: all 소유
특정한 사용자 가 특정한 파일 에 접근 할 수 있 는 권한 은 다음 과 같 습 니 다.
--- 000,0
--x001,1
-w-010,2
-wx011,3
r--100,4
r-x101,5
rw-110,6
rwx111,7
664:rw-rw-r--
rwxr-x---:750
(2) 권한 관리 관련 명령
chmod 권한 관리
일반 옵션:
- R 디 렉 터 리 의 모든 파일 을 재 귀적 으로 수정 할 수 있 는 권한
--reference=file 수정 권한 을 설정 한 파일 은 file 과 같 습 니 다.
두 가지 용법:
=rwx 예: = rx,
[+ | -] rwx 예: u + w, a - x
예: -- reference = file 매개 변수 사용
[root@MyTest-67 ~]# ll
total 72
-rw-------. 1 root root 1399Aug 27 18:44 anaconda-ks.cfg
-rw-r--r--. 1 root root 50433 Aug 27 18:44 install.log
-rw-r--r--. 1 root root 10033 Aug 27 18:41 install.log.syslog
[root@MyTest-67 ~]# chmod --reference=./install.log anaconda-ks.cfg
[root@MyTest-67 ~]# ll
total 72
-rw-r--r--. 1 root root 1399Aug 27 18:44 anaconda-ks.cfg
-rw-r--r--. 1 root root 50433 Aug 27 18:44 install.log
-rw-r--r--. 1 root root 10033 Aug 27 18:41 install.log.syslog
chown,chgrp 소속 관계 관리
chown - 파일 이나 디 렉 터 리 의 소유자 나 그룹 을 변경 합 니 다.
- R 재 귀
사용법:
chown centos file #소유자 변경
chown [.|:]mygrp file #종속 그룹 변경
chown centos[.|:]mygrp file #소유자 와 그룹 을 동시에 변경 합 니 다.
chgrp - 파일 이나 디 렉 터 리 를 변경 하 는 그룹
umask 파일 마스크 코드
목록: 777 - umask
파일: 666 - umask
설명: 특정한 사용자 의 권한 이 줄 어 든 결과 에 실행 권한 이 있 으 면 자동 으로 권한 위 치 를 1 로 추가 합 니 다.
umask UMASK \ # umask 설정: 현재 셸 프로 세 스에 만 유효 합 니 다.
[root@MyTest-67 ~]# touch b.txt
[root@MyTest-67 ~]# ll b.txt
-rw-r--r--. 1 root root 0 Aug 27 23:42 b.txt
[root@MyTest-67 ~]# su - centos
su: user centos does not exist
[root@MyTest-67 ~]# useradd centos
[root@MyTest-67 ~]# su - centos
[centos@MyTest-67 ~]$ touch centos
[centos@MyTest-67 ~]$ ll centos
-rw-rw-r--. 1 centos centos 0 Aug 27 23:42 centos
[centos@MyTest-67 ~]$ umask
0002
[centos@MyTest-67 ~]$ exit
logout
[root@MyTest-67 ~]# umask
0022
2. 기본 정규 표현 식 및 확장 정규 표현 식 정리
grep:
리 눅 스 파일 처리 삼 총사:
grep: 파일 필터 도구;
sed: 텍스트 편집기 (줄);streameditor
awk: 텍스트 보고서 생 성기: linux 에서 awk 의 실현 은 gawk
grep:Global search REgular expression and Print out the line.
역할: 텍스트 검색 도구, 사용자 가 지정 한 '패턴 (pattern)' 에 따라 대상 텍스트 를 한 줄 씩 검색 하고 일치 하 는 줄 을 인쇄 합 니 다.
모드: 정규 표현 식 의 메타 문자 와 텍스트 문자 로 작 성 된 필터 조건;
메타 문자: 문 자 는 글자 의 의 미 를 나타 내지 않 고 연결 또는 제어 기능 을 나타 내 는 데 사 용 됩 니 다.
두 가지 유형 으로 나 뉜 다.
기본 정규 표현 식: BRE
정규 표현 식 확장: ERE
정규 표현 식 엔진:
grep [OPTIONS] PATTERN [FILE...]
옵션:
--color = auto: 일치 하 는 문자열 을 강조 합 니 다.
-v: 디 스 플레이 모드 가 줄 과 일치 하지 않 음;
-i: 문자 대소 문자 무시 하기;
-o: 패턴 에 맞 는 줄 만 표시 합 니 다.
-q: 침묵 모드;
-E: 확 장 된 정규 표현 식 사용 하기;
기본 정규 표현 식 의 메타 문자:
문자 일치:
.:임의의 단일 문자 일치 하기;
[]: 지정 한 범위 내의 임의의 단일 문자 와 일치 합 니 다.
[^]: 지정 한 범위 이외 의 임의의 단일 문자 와 일치 합 니 다.
[:lower:],[:upper:],...
횟수 일치: 횟수 를 지정 할 문자 의 뒤에 사용:
*:임의로
abxy
xay
xxxxxxxxxy
grep "x*y"
\?:0 또는 1 회;
grep "x\?y"
\+:1 번 또는 여러 번;
\{m \}: m 회로 정확하게 제한 하기;
\{m, n \}: 최소 m 회, 최대 n 회, [m, n]
{0, n}: 최대 n 회;
{m,}: 최소 m 회
.*:임의의 길이 의 임의의 문자 일치 하기;
위치 고정:
^:닻 을 내리다.모드 의 맨 왼쪽 에 사용 하기;
$:닻 을 내리다.모드 의 맨 오른쪽 에 사용 하기;
\<,\b: 단어의 첫 닻;단 어 를 나타 내 는 모드 의 왼쪽;
\>,\b: 어미 닻;단 어 를 나타 내 는 패턴 의 오른쪽;
^$:공백 줄;
그룹: \ (\)
그룹 을 나 누 는 작은 괄호 의 패턴 이 일치 하 는 내용 은 실행 과정 에서 정규 표현 식 엔진 에 기록 되 고 내 장 된 변 수 를 저장 합 니 다. 이 변 수 는 각각 \ 1, \ 2,...
\1: 왼쪽 부터 첫 번 째 왼쪽 괄호, 그리고 그 와 어 울 리 는 왼쪽 괄호 가운데 패턴 에 일치 하 는 내용;
\2:
...
후방 참조: 변 수 를 사용 하여 앞의 그룹 괄호 의 패턴 에 일치 하 는 문 자 를 참조 합 니 다.
[root@MyTest-C67 ~]# grep 'r..t.*r..t'grep.txt
root:x:34:43:/root:/bin/root
root:x:56:67:/rrrt:/bin/raat
[root@MyTest-C67 ~]# cat grep.txt
abxyxyxyab
xayabxyabxy
xyvbxy
root:x:34:43:/root:/bin/root
bash:x:45:56:/home/bash:bin/tcsh
root:x:56:67:/rrrt:/bin/raat
[root@MyTest-C67 ~]# grep 'r..t.*r..t'grep.txt
root:x:34:43:/root:/bin/root
root:x:56:67:/rrrt:/bin/raat
[root@MyTest-C67 ~]# grep '\(r..t\).*\1'grep.txt
root:x:34:43:/root:/bin/root
3. / etc / passwd 파일 에서 bash 로 끝 나 는 줄 보이 기
[root@MyTest-67 ~]# grep "bash$" /etc/passwd
root:x:0:0:root:/root:/bin/bash
4. / etc / passwd 파일 의 두 자릿수 또는 세 자릿수 를 표시 합 니 다.
[root@localhost ~]# grep"[0-9]\{2,3\}" /etc/passwd
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
5. 'netstat - tan' 명령 결과 'LISTEN' 뒤꿈치 0 개, 1 개 또는 여러 개의 공백 문자 로 끝 나 는 줄 보이 기
[root@MyTest-C67 ~]# netstat -tan| grep"LISTEN[[:space:]]*$"
tcp 0 0 0.0.0.0:44907 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:*
6. 사용자 bash, testbash, basher 및 nologin 사용자 (nologin 사용자 의 셸 은 / sbin / nologin) 를 추가 합 니 다.그리고 / etc / passwd 파일 의 사용자 이름과 셸 이름 이 같은 줄 을 찾 습 니 다.
[root@MyTest-C67 ~]# tail -4 /etc/passwd
bash:x:3004:3004::/home/bash:/bin/bash
testbash:x:3005:3005::/home/testbash:/bin/bash
basher:x:3006:3006::/home/basher:/bin/bash
nologin:x:3007:3007::/home/nologin:/sbin/nologin
[root@MyTest-C67 ~]# grep"\(bash\).*\1" /etc/passwd
bash:x:3004:3004::/home/bash:/bin/bash
testbash:x:3005:3005::/home/testbash:/bin/bash
basher:x:3006:3006::/home/basher:/bin/bash
정확 한 방법:
[root@MyTest-C67 ~]# grep "^\([[:alnum:]]\{1,\}\)\>.*\1$"/etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
bash:x:3004:3004::/home/bash:/bin/bash
nologin:x:3007:3007::/home/nologin:/sbin/nologin
7. 현재 시스템 의 루트, centos 또는 user 1 사용자 의 기본 셸 과 UID 를 표시 합 니 다.
[root@MyTest-C67 ~]# grep -E"^\<(root|centos|user1)\>" /etc/passwd|cut -d: -f1,3,7
root:0:/bin/bash
centos:3009:/bin/bash
user1:3010:/bin/bash
8. / etc / rc. d / init. d / functions 파일 에 있 는 단어 (단어 중간 에 밑줄 이 있 을 수 있 음) 를 찾 아 작은 괄호 줄 을 따라 갑 니 다.
[root@MyTest-C67 ~]# grep -E"(\<[[:alpha:]]\>|[[:alpha:]]_[[:alpha:]]).*\(\)"/etc/rc.d/init.d/functions
fstab_decode_str() {
__umount_loop() {
__umount_loopback_loop() {
__pids_var_run() {
9. echo 로 경 로 를 출력 한 다음 에 egrep 에서 경로 의 기본 이름 을 찾 습 니 다.egrep 를 사용 하여 디 렉 터 리 이름 을 추출 합 니 다.
[root@MyTest-C67 ~]# echo"/etc/init.d/iptables" |egrep --color=auto -o "[^/]+/?$"
iptables
[root@MyTest-C67 ~]# echo"/etc/init.d/iptables" |egrep --color=auto -o ".*/"
/etc/init.d/
10. ifconfig 명령 실행 결과 1 - 255 사이 의 숫자 찾기
[root@MyTest-C67 ~]# ifconfig |grep -E--color=auto "\<[1-9]|[1-9][1-9]|1[1-9][1-9]|2[0-4][0-9]|25[0-5]\>"
eth0 Link encap:Ethernet HWaddr00:0C:29:08:4F:6A
inet addr:192.168.31.200 Bcast:192.168.31.255 Mask:255.255.255.0
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Linux 셸 스 크 립 트 수치 계산 개인 소감표현 식 의 연산 자 양쪽 에 빈 칸 이 있 을 수 있 습 니 다.예: [a + b] 표현 식 계산 방식 은 연산 자 양쪽 에 빈 칸 을 가 질 수 있 습 니 다. let 의 계산 은 정수 만 계산 할 수 있 고 부...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.