Linux 기본 정규 표현 식, 사용자, 그룹 관리 명령 소개

13875 단어
어댑터 (Globbing)
어댑터 는 메타 문자 와 유사 합 니 다. 어댑터 는 주로 파일 이름 의 일치 에 사용 되 고 메타 문 자 는 문자열 의 일치 에 사 용 됩 니 다.다음은 자주 사용 하 는 마스크 몇 가 지 를 소개 합 니 다.
* 임의의 자릿수 와 일치 하 는 임의의 문 자 를 표시 합 니까?임의의 문자 와 일치 함 을 표시 합 니 다 ^ 는 역 취, 포함 되 지 않 음 을 표시 합 니 다 [] 는 이 구간 의 임의의 문자 {} 을 표시 합 니 다. 집합 \ \ 전의 문 자 를 표시 하여 특별한 의 미 를 가 진 문자 가 원래 의 의 미 를 잃 게 합 니 다 | '또는' 를 표시 합 니 다. 선택 할 수 있 는 문자 와 일치 합 니 다.
문자
원 문 자 는 문 자 를 묘사 하 는 특수 문자 이다.자주 사용 하 는 메타 문자 와 의 미 는 다음 과 같 습 니 다.

*             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 기본 정규 표현 식 입 니 다. 사용자, 그룹 관리 명령 소개 입 니 다. 어떤 제안 이 있 으 면 메 시 지 를 남 길 수 있 습 니 다.

좋은 웹페이지 즐겨찾기