Linux 기본 정규 표현 식, 사용자, 그룹 관리 명령 소개
어댑터 는 메타 문자 와 유사 합 니 다. 어댑터 는 주로 파일 이름 의 일치 에 사용 되 고 메타 문 자 는 문자열 의 일치 에 사 용 됩 니 다.다음은 자주 사용 하 는 마스크 몇 가 지 를 소개 합 니 다.
* 임의의 자릿수 와 일치 하 는 임의의 문 자 를 표시 합 니까?임의의 문자 와 일치 함 을 표시 합 니 다 ^ 는 역 취, 포함 되 지 않 음 을 표시 합 니 다 [] 는 이 구간 의 임의의 문자 {} 을 표시 합 니 다. 집합 \ \ 전의 문 자 를 표시 하여 특별한 의 미 를 가 진 문자 가 원래 의 의 미 를 잃 게 합 니 다 | '또는' 를 표시 합 니 다. 선택 할 수 있 는 문자 와 일치 합 니 다.
문자
원 문 자 는 문 자 를 묘사 하 는 특수 문자 이다.자주 사용 하 는 메타 문자 와 의 미 는 다음 과 같 습 니 다.
* 0
.
\+ 1
\? 0 1
\{m\} m
\{m,n\} m , n
^
$
^$ 。 、0
\<
\>
\ string
\(xy\) xy
\1 ,
위 에서 자주 사용 하 는 메타 문 자 를 제외 하고 특수 한 메타 문자 도 있 습 니 다.
[:alpha:]
[:upper:]
[:lower:]
[:alnum:]
[:punct:]
[:blank:] TAB
[:space:] , 、tab、CR
[:digit:] ,0-9
[:print:]
grep
grep, egrep, fgrep - print lines matching a pattern
【SYNOPSIS】
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
【OPTIONS】
--color=auto
-i,--ignore-case
Ignore case distinctions in both the PATTERN and the input
files. (-i is specified by POSIX.)
-v,--invert-match
Invert the sense of matching, to select non-matching lines.
(-v is specified by POSIX.)
-o,--only-matching
Print only the matched (non-empty) parts of a matching line,
with each such part on a separate output line.
-q,--quiet,--silent ,
-w,--word-regexp
-d, --directories=ACTION how to handle directories; ACTION is 'read', 'recurse', or 'skip', : 、 、
-r,-r, --recursive like --directories=recurse
-c,--count print only a count of matching lines per FILE
-B,--before-context=NUM print NUM lines of leading context NUM
-A,--after-context=NUM print NUM lines of trailing context NUM
-C,--context=NUM print NUM lines of output context
cut
Print selected parts of lines from each FILE to standard output ,
【SYNOPSIS】
cut OPTION... [FILE]...
【OPTION】
-b,--bytes=LIST select only these bytes
-c,--characters=LIST select only these characters
-d,--delimiter=DELIM use DELIM instead of TAB for field delimiter TAB
-f,--field=LIST ,
-n with -b: don't split multibyte characters
【FOR EXAMPLE】
[root@localhost ~]# cat /etc/passwd|cut -d: -f1
root
bin
daemon
adm
lp
/etc/passwd ,
[root@localhost ~]# cat /tmp/ah2.txt |cut -nb 1,2,3
[root@localhost ~]# cat /tmp/ah2.txt |cut -nb 1
[root@localhost ~]# cat /tmp/ah2.txt |cut -b 1
[root@localhost ~]# cat /tmp/ah2.txt |cut -c 1
sort
sort lines of text files
【SYNOPSIS】
sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F
【OPTION】
-b,--ignore-leading-blanks
-f,--ignore-case
fold lower case to upper case characters
-i,--ignore-nonprinting
consider only printable characters
-M,--month-sort
-h,--human-numeric-sort compare human readable numbers
-g,--genaral-numeric-sort
,
-t,--field-separator=SEP
use SEP instead of non-blank to blank transition
-k,--key=KEYDEF
sort via a key;KEYDEF gives location and type
,
-n,--numeric-sort
compare according to string numerical value
-r,--reverse
-c,--check check from srot input;don't sort
,
-o,--output=FILE write result to FILE instead of standard output
-u,--unique with -c,check for strict ordering; without -c,output only the first of an equal run
-c , ; -c , , , 。
uniq
report or omit repeated lines
【SYNOPSIS】
uniq [OPTION]... [INPUT [OUTPUT]]
【OPTION】
-c,--count prefix lines by the number of occurrences ( , )
-d,--repeated only print duplicate lines, one for each group
-D,--all-repeated[=METHOD]
-f,--skip-fields=N
N
-s,--skip-chars=N
-i,--ignore-case
-u,--unique only print unique lines
-z,--zero-terminated end lines with 0 bytes,not newline
-w,--check-chars=N compare no more than N characters in lines
N
연습 하 다.
1. 현재 시스템 에 등 록 된 모든 사용자 의 이름 을 보 여 줍 니 다. 같은 사용자 가 여러 번 로그 인하 면 한 번 만 표시 하면 됩 니 다.
who |cut -d' ' -f 1|uniq
2. 마지막 으로 현재 시스템 에 로그 인 한 사용자 의 정 보 를 추출 합 니 다.
cat /etc/passwd|grep "^`last -1|cut -d' ' -f1|head -1`"
3. 현재 시스템 에서 사용자 가 기본 셸 로 생각 하 는 가장 많은 셸 을 제거 합 니 다.
cat /etc/passwd|cut -d: -f7|sort -u|sort -rn|head -1
4. / etc / passwd 의 세 번 째 필드 의 수치 가 가장 큰 후 10 개 사용자 의 정 보 를 모두 대문자 로 바 꾼 후 / tmp / max users. txt 에 저장 합 니 다.
cat /etc/passwd|sort -t':' -k3 -n|tail|tr [a-z] [A-Z] 2&>1 /tmp/maxusers.txt
5. 현재 호스트 의 IP 주 소 를 찾 습 니 다.
ifconfig eno16777736| grep "\"|cut -d' ' -f 10
6......................................................................................
ls /etc|grep -o ".*\.conf$"|tr [a-z] [A-Z] >> /tmp/etc.conf
7. 디 스 플레이 / var 디 렉 터 리 다음 하위 디 렉 터 리 나 파일 의 총 갯 수
Liux 에 서 는 디 렉 터 리 에 있 는 파일 개 수 를 직접 보 여 주 는 명령 이 없습니다. 파 이 프 를 통 해 두 명령 을 조합 하여 디 렉 터 리 에 있 는 모든 파일 개 수 를 볼 수 있 습 니 다. 명령 은 다음 과 같 습 니 다: ls | wc - l 1. ls 는 폴 더 안의 모든 파일 을 보 는 명령 입 니 다. 2. wc - l 은 파일 줄 수 를 집계 하 는 명령 입 니 다. 3. 상기 두 명령 이 중첩 되 어 통계 폴 더 아래 의 파일 총수 에 해당 합 니 다.
#!/bin/sh
find /tmp/homework -maxdepth 1 -type d | while read dir; do
count=$(find "$dir" -type f | wc -l)
echo "$dir : $count"
done
8. / etc / group 파일 의 세 번 째 필드 수치 가 가장 작은 10 개 그룹의 이름 을 추출 합 니 다.
cat /etc/group|sort -t':' -k 3 -n|head |cut -d':' -f1
9. / etc / fstab 과 / etc / issue 파일 의 내용 을 같은 내용 으로 합 친 후 / tmp / etc. test 에 저장 합 니 다.
cat /etc/fstab /etc/issue >>/tmp/etc.test
Linux 기초 지식 - 사용자, 그룹 관리
리 눅 스 는 안전성 을 높이 기 위해 사용자 및 사용자 그룹 을 만 들 고 해당 하 는 권한 을 부여 함으로써 각 사용자 가 서로 다른 파일 에 접근 하 는 것 을 제한 합 니 다.다음은 사용자 및 사용자 그룹의 관련 관리 명령 을 배 워 서 먼저 몇 개의 파일 을 보 겠 습 니 다.
/etc/passwd
[root@localhost ~]# cat /etc/passwd|head -3
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
그 파일 의 내용 형식 은 ':' 로 구 분 된 문자열 입 니 다. 그 내용 은 다음 과 같 습 니 다. USERNAME: X: UID: GID: DESCRIPTION: HOME: SHELL
/etc/shadow
[root@localhost ~]# cat /etc/shadow|head -3
root:$6$1RSlswAIVbmtwWM5$WLZxHXzkL7.PvHb2ghYqbGvj3Cz4AB5sGRr33TwCX1cwSqV.syv0q1eqcF3NGUJeNNspAOt5C1rWfdsgBllB1.::0:99999:7:::
bin:*:16659:0:99999:7:::
daemon:*:16659:0:99999:7:::
그 내용 형식 은 / etc / passwd 형식 과 유사 하지만 내용 은 다 릅 니 다.
USERNAME:ENCRYPTED PASSWD:DATE OF LAST CHANGE:MINIMUM PASSWD AGE: MAXIMUM PASSWD AGE:PASSWD WARNING:PASSWORD INACTIVITY:EXPIRATION
이 간단 한 설명 은 다음 과 같다.
USERNAME:
ENCRYPTED PASSWD:
DATE OF LAST CHANGE: ( , 1970-1-1 )
MINIMUM PASSWD: ( , )
MAXIMUM PASSWD:
PASSWD WARNING: ( )
PASSWD INACTIVITY: ( )
EXPIRATION:
UID
사람과 컴퓨터 의 상호작용, 사람 은 문자 와 숫자 등 을 식별 할 수 있 지만 컴퓨터 는 0, 1 과 같은 바 이 너 리 코드 만 식별 할 수 있 기 때문에 UID 는 USERNAME 에 대응 하 는 컴퓨터 에 분 배 된 식별 가능 한 ID 번호 이다.UID 는 다음 과 같은 몇 가지 유형 으로 나 눌 수 있 습 니 다.
0: ,root UID
1-999: , ;
1000-2^32-1:
GID
프로 그래 밍 과정 에서 저 희 는 일부 사용자 간 의 자 료 를 공유 하고 자 료 를 다른 사람 에 게 보 여주 지 않 기 때문에 사용자 그룹 이라는 개념 이 생 겼 습 니 다. 사용자 간 에 GID 를 통 해 사용자 그룹의 범 위 를 확인 할 수 있 습 니 다.
다음은 상기 와 관련 정 보 를 설정 하 는 명령 을 소개 합 니 다.
useradd
create a new user or update default new user information
【SYNOPSIS】
useradd [options] LOGIN
useradd -D
useradd -D [options]
【OPTIONS】
-D useradd ,
-c,--comment ,finger USERNAME
-d,--home-dir ,
-e,--expiredate , :YYYY-MM-DD
-f,--inactive (-1: , ;0: )
-g,--gid ,
-G,--groups ,
-M
-m
-r,create system user
-o,--non-unique UID ( UID)
-s,--shell shell
-u,--uid uid
passwd
update user's authentication tokens
【SYNOPSIS】
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S]
[--stdin] [username]
【OPTIONS】
--stdin
-l,--lock
-u,--unlock
-d,--delete
-e,--expire
-n,--minimum
-x,--maximum
-w,--waring
-i,--inactive
-S,--status
groupadd
create a new group
【SYNOPSIS】
groupadd [options] group
【OPTION】
-g,--gid gid group
-K,--key /etc/login.defs ,
-o,--non-unique gid
-p,--password ,
-r,--system-group
newgrp
log in to a new group
【SYNOPSIS】
newgrp [-] [group]
, USERNAME group1, group2,group3; group3
사용자 와 그룹 관리 명령 의 사용 방법 을 정리 하고 연습 을 마 칩 니 다.
distro, GID 2016;
[root@localhost ~]# groupadd -g 2016 distro
[root@localhost ~]# tail -1 /etc/group
distro:x:2016:
mandriva, ID 1005; distro;
[root@localhost ~]# useradd -g distro -u 1005 mandriva
[root@localhost ~]# tail -1 /etc/passwd
mandriva:x:1005:2016::/home/mandriva:/bin/bash
mageia, ID 1100; /home/linux;
[root@localhost ~]# useradd -u 1100 -d /home/linux mageia
[root@localhost ~]# tail -1 /etc/passwd
mageia:x:1100:1100::/home/linux:/bin/bash
mageia , mageedu;
[root@localhost ~]# passwd mageia
Changing password for user mageia.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
mandriva ;
[root@localhost ~]# tail -3 /etc/passwd
mariadb:x:1000:1000::/home/mariadb:/sbin/nologin
hadoop:x:1001:1001::/home/hadoop:/bin/bash
mageia:x:1100:1100::/home/linux:/bin/bash
[root@localhost ~]# ls /home/
hadoop linux mandriva
slackware, ID 2002, distro, peguin;
[root@localhost ~]# groupadd peguin
[root@localhost ~]# useradd -u 2002 -g distro -Gpeguin slackware
[root@localhost ~]# tail -2 /etc/passwd
mageia:x:1100:1100::/home/linux:/bin/bash
slackware:x:2002:2016::/home/slackware:/bin/bash
[root@localhost ~]# tail -2 /etc/group
mageia:x:1100:
peguin:x:2017:slackware
slackware shell /bin/tcsh;
[root@localhost ~]# usermod -s /bin/tcsh slackware
[root@localhost ~]# tail -2 /etc/passwd
mageia:x:1100:1100::/home/linux:/bin/bash
slackware:x:2002:2016::/home/slackware:/bin/tcsh
slackware admins;
[root@localhost ~]# usermod -aG admins slackware
[root@localhost ~]# tail -4 /etc/group
distro:x:2016:
mageia:x:1100:
peguin:x:2017:slackware
admins:x:2018:slackware
slackware , 3 , 180 , 3 ;
[root@localhost ~]#passwd -n 3 -x 180 -w 3 slackware
[root@localhost ~]# tail -1 /etc/shadow
slackware:!!:16658:3:180:3:::
[root@localhost ~]#echo 'Slackware'|passwd --stdin slackware
openstack, ID 3003, clouds, peguin nova;
[root@localhost ~]# groupadd clouds
[root@localhost ~]# groupadd nova
[root@localhost ~]# useradd openstack -u 3003 -g clouds -G peguin,nova
[root@localhost ~]# tail -1 /etc/passwd
openstack:x:3003:2019::/home/openstack:/bin/bash
mysql, shell /sbin/nologin;
[root@localhost ~]# useradd -r mysql -s /sbin/nologin
[root@localhost ~]# tail -1 /etc/passwd
mysql:x:996:994::/home/mysql:/sbin/nologin
echo , openstack
[root@localhost ~]# echo 'Openstack'|passwd --stdin openstack
Changing password for user openstack.
passwd: all authentication tokens updated successfully.
이상 은 Linux 기본 정규 표현 식 입 니 다. 사용자, 그룹 관리 명령 소개 입 니 다. 어떤 제안 이 있 으 면 메 시 지 를 남 길 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.