最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux基礎(chǔ)之正則表達(dá)式,用戶、組管理命令介紹

 更新時間:2016年10月06日 13:30:41   投稿:mdxy-dxy  
正則表達(dá)式簡單來說就是一種行字符串處理的方式,通過一些特殊符號的輔助,可達(dá)到搜索、刪除、替換等某些特定字符串的處理方式

通配符(Globbing)

通配符與元字符類似,通配符主要用于文件名的匹配,而元字符則主要用在字符串的匹配上;
下面介紹幾種常用的通配符:

* 表示匹配任意位數(shù)的任意字符
? 表示匹配一位任意字符
^ 表示取反,不包含的意思
[] 表示此區(qū)間內(nèi)的任意一個字符
{} 表示一種集合
\ 轉(zhuǎn)義字符,使具有特殊意義的字符失去原有意義
| 表示‘或',匹配一組可選的字符

元字符

元字符是用來描述字符的特殊字符。
常用的元字符及意義如下:

*      重復(fù)前面的字符0次或者多次
.      匹配任意字符一次
\+     匹配前面的字符1次或者多次
\?     匹配前面的字符0次或者1次
\{m\}    匹配其前面的字符m次
\{m,n\}   匹配前面的字符至少m次,至多n次
^      匹配字符在行首
$      匹配字符在行尾
^$     匹配空白行。空格、0不算
\<     匹配字符在詞首
\>     匹配字符在詞尾
\<string\> 精準(zhǔn)匹配string
\(xy\)   xy表示一個分組
\1     模式從左側(cè)起,第一個左括號以及與之匹配的右括號之間的模式所匹配的字符

除了以上的常用的元字符,還有一些特殊的元字符:

[:alpha:]  所有大小寫字母
[:upper:]  所有大寫字母 
[:lower:]  所有小寫字母
[:alnum:]  所有字母及數(shù)字
[:punct:]  所有標(biāo)點(diǎn)符號
[:blank:]  空白鍵和TAB鍵
[:space:]  任意空白的字元,空格、tab、CR等
[:digit:]  任意數(shù)字,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  對匹配到的內(nèi)容進(jìn)行高亮顯示處理
  -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靜默模式,不列舉任何內(nèi)容
  -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列舉每行被選中的部分到標(biāo)準(zhǔn)輸出,也就是提取行中的某個字段
【SYNOPSIS】
cut OPTION... [FILE]...
【OPTION】
  -b,--bytes=LIST   select only these bytes按字節(jié)分隔
  -c,--characters=LIST  select only these characters按字符分隔
  -d,--delimiter=DELIM  use DELIM instead of TAB for field delimiter  用TAB替換指定的分隔符來分區(qū)域
  -f,--field=LIST   分區(qū)域后,根據(jù)區(qū)域位數(shù)來列出數(shù)據(jù)
  -n with -b: don't split multibyte characters不分隔多字節(jié)字符
【FOR EXAMPLE】
  [root@localhost ~]# cat /etc/passwd|cut -d: -f1
  root
  bin
  daemon
  adm
  lp
  提取/etc/passwd文件的第一個字段內(nèi)容,也就是用戶名
  [root@localhost ~]# cat /tmp/ah2.txt |cut -nb 1,2,3
  平凡的
  [root@localhost ~]# cat /tmp/ah2.txt |cut -nb 1不分割字節(jié)
  平
  [root@localhost ~]# cat /tmp/ah2.txt |cut -b 1漢字屬于多字節(jié)字符

  [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
    按照三位數(shù)月份排序
  -h,--human-numeric-sort   compare human readable numbers
    使用人類可讀的單位排序
  -g,--genaral-numeric-sort
    使用通用數(shù)值排序,支持科學(xué)計數(shù)
  -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
    根據(jù)字符串中的數(shù)值排序
  -r,--reverse
    反序排列
  -c,--check check from srot input;don't sort
    排序檢查,但不排序
  -o,--output=FILE  write result to FILE instead of standard output
    將結(jié)果保存至文件中而不輸出
  -u,--unique   with -c,check for strict ordering; without -c,output only the first of an equal run
    與-c組合,執(zhí)行嚴(yán)格的順序檢查;不與-c組合,僅輸出第一個結(jié)果,剔除相鄰重復(fù)的行,重復(fù)且相鄰的無法剔除。

uniq

report or omit repeated lines記錄或剔除重復(fù)行
【SYNOPSIS】
uniq [OPTION]... [INPUT [OUTPUT]]
【OPTION】
  -c,--count prefix lines by the number of occurrences行計數(shù)(重復(fù)行列一行,前面有重復(fù)次數(shù))
  -d,--repeated  only print duplicate lines, one for each group只打印有重復(fù)的行
  -D,--all-repeated[=METHOD]
  -f,--skip-fields=N
    跳過前N個字段
  -s,--skip-chars=N
    跳過前幾個字符
  -i,--ignore-case  忽略大小寫
  -u,--unique   only print unique lines僅打印不重復(fù)的行
  -z,--zero-terminated  end lines with 0 bytes,not newline
  -w,--check-chars=N compare no more than N characters in lines
    第N個字符之后不做匹配

練習(xí)

1、列出當(dāng)前系統(tǒng)上所有已經(jīng)登錄的用戶的用戶名,同一用戶登錄多次,只顯示一次即可

who |cut -d' ' -f 1|uniq

2、取出最后登錄到當(dāng)前系統(tǒng)的用戶的相關(guān)信息

cat /etc/passwd|grep "^`last -1|cut -d' ' -f1|head -1`"

3、去除當(dāng)前系統(tǒng)上被用戶當(dāng)作其默認(rèn)的shell的最多的那個shell

cat /etc/passwd|cut -d: -f7|sort -u|sort -rn|head -1

4、將/etc/passwd中的第三個字段的數(shù)值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt中

cat /etc/passwd|sort -t':' -k3 -n|tail|tr [a-z] [A-Z] 2&>1 /tmp/maxusers.txt

5、取出當(dāng)前主機(jī)的IP地址,

ifconfig eno16777736| grep  "\<inet\>"|cut -d' ' -f 10

6、列出/etc/下所有以.conf結(jié)尾的文件的文件名,并將其名字轉(zhuǎn)換成大寫后保存至/tmp/etc.conf文件中

ls /etc|grep -o ".*\.conf$"|tr [a-z] [A-Z] >> /tmp/etc.conf

7、顯示/var目錄下一級子目錄或者文件的總個數(shù)

linux里沒有直接的命令來展示一個目錄下的文件個數(shù),可以通過管道將兩個命令組合
查看目錄下所有文件個數(shù)命令如下:
ls |wc -l
 1、ls 是查看文件夾內(nèi)所有文件的命令
 2、wc -l 是統(tǒng)計文件行數(shù)的命令
 3、以上兩個命令疊加,相當(dāng)于統(tǒng)計文件夾下文件總數(shù)

#!/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文件中的第三個字段數(shù)值最小的10個組的名字

cat /etc/group|sort -t':' -k 3 -n|head |cut -d':' -f1

9、將/etc/fstab和/etc/issue文件的內(nèi)容合并為同一個內(nèi)容后保存至/tmp/etc.test

cat /etc/fstab /etc/issue >>/tmp/etc.test

Linux基礎(chǔ)知識—用戶、組管理

Linux為了提高其安全性,通過創(chuàng)建用戶及用戶組并賦相應(yīng)的權(quán)限來限制各用戶訪問不同的文件。下面我們來學(xué)習(xí)下用戶及用戶組的相關(guān)管理命令先來看看幾個文件:

/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

其文件內(nèi)容格式是由‘:'分隔開的字符串,其內(nèi)容包括如下: 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:::

其內(nèi)容格式類似于/etc/passwd格式,只是內(nèi)容不同:

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:最后修改密碼的日期(天數(shù),是以1970-1-1起算的天數(shù))
MINIMUM PASSWD:最短可修改密碼日期(天數(shù),相對第三欄的最后修改日期)
MAXIMUM PASSWD:最長可修改密碼日期
PASSWD WARNING:密碼過期前的警告天數(shù)(相對第四欄的日期之前的天數(shù))
PASSWD INACTIVITY:密碼的閑置日期(密碼過期之后還有一定的天數(shù)可以使用)
EXPIRATION:備注

UID

人與計算機(jī)交互,人可識別字符和數(shù)字等,但是計算機(jī)只能識別0、1這樣的二進(jìn)制代碼,所以,UID就是分配給USERNAME相對應(yīng)的計算機(jī)可識別的ID號碼;UID可分為以下幾類:

0:系統(tǒng)管理員,root的UID
1-999:系統(tǒng)用戶,這些用戶是系統(tǒng)后臺的服務(wù)類程序的用戶所用;用戶也可以指定用戶為系統(tǒng)用戶
1000-2^32-1:普通用戶

GID

在程序設(shè)計過程中,我們會將一部分用戶之間的資料共享,而不愿讓資料為外人看到,所以就有了用戶組的概念,用戶之間通過GID來確定用戶組的范圍

下面我們來介紹下設(shè)置以上及相關(guān)信息的命令:

useradd

create a new user or update default new user information
【SYNOPSIS】
  useradd [options] LOGIN
  useradd -D
  useradd -D [options]
【OPTIONS】
  -D useradd命令的部分默認(rèn)參數(shù),可修改
  -c,--comment    添加用戶的描述信息,finger USERNAME查看更直觀
  -d,--home-dir    指定用戶的家目錄,必須為絕對路徑
  -e,--expiredate   用戶賬號失效日期,格式默認(rèn):YYYY-MM-DD
  -f,--inactive    指定用戶密碼是否失效(-1:永不失效,過期會強(qiáng)制修改密碼;0:立刻失效)
  -g,--gid      用戶主屬組,該屬組必須可用
  -G,--groups     用戶附加屬組,該屬組可設(shè)置多個
  -M         強(qiáng)制不建立家目錄
  -m         強(qiáng)制建立家目錄
  -r,create system user  創(chuàng)建系統(tǒng)用戶
  -o,--non-unique   允許創(chuàng)建一個已存在的UID的用戶(重復(fù)的UID)
  -s,--shell     指定該用戶的shell環(huán)境
  -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   結(jié)合管道符將標(biāo)準(zhǔn)輸入直接賦值給用戶密碼
  -l,--lock  鎖定指定用戶
  -u,--unlock   解鎖指定用戶
  -d,--delete   快速刪除用戶密碼
  -e,--expire   使用戶密碼失效
  -n,--minimum  密碼的最短修改天數(shù)
  -x,--maximum  密碼的最長修改天數(shù)
  -w,--waring   密碼過期前的通知天數(shù)
  -i,--inactive  密碼過期后的閑置天數(shù)
  -S,--status   用戶的密碼狀態(tài)

groupadd

create a new group
【SYNOPSIS】
  groupadd [options] group
【OPTION】
  -g,--gid    創(chuàng)建一個指定gid的group
  -K,--key    修改/etc/login.defs的值,具體可參照此文件的內(nèi)容
  -o,--non-unique   創(chuàng)建一個已有的gid的組
  -p,--password  創(chuàng)建組密碼,現(xiàn)在基本用不到
  -r,--system-group  創(chuàng)建一個系統(tǒng)組

newgrp

log in to a new group
【SYNOPSIS】
  newgrp [-] [group]
這個命令只是在用戶的主屬組更換的時候有用,例如USERNAME有主屬組group1,附屬組group2,group3;現(xiàn)在切換用戶的主屬組為group3則使用此命令

總結(jié)描述用戶和組管理類命令的使用方法并完成練習(xí)

創(chuàng)建組distro,其GID為2016;
[root@localhost ~]# groupadd -g 2016 distro
[root@localhost ~]# tail -1 /etc/group
distro:x:2016:

創(chuàng)建用戶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

創(chuàng)建用戶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

創(chuàng)建用戶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的默認(rèn)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

添加系統(tǒng)用戶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基礎(chǔ)之正則表達(dá)式,用戶、組管理命令介紹,如果您有什么建議可以留言

相關(guān)文章

  • Apache下分析ab性能測試結(jié)果

    Apache下分析ab性能測試結(jié)果

    本文詳細(xì)講解了Apache下分析ab性能測試結(jié)果,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Linux實現(xiàn)雙網(wǎng)卡綁定的代碼詳解

    Linux實現(xiàn)雙網(wǎng)卡綁定的代碼詳解

    linux 主機(jī)安裝雙網(wǎng)卡,共享一個IP地址,對外提供訪問,實際同樣連接兩條物理線路到交換機(jī)實現(xiàn)平時雙網(wǎng)卡同時工作,分流網(wǎng)絡(luò)壓力,同時提供冗余備份,監(jiān)控,防止物理線路的單點(diǎn)故障,本文介紹了Linux實現(xiàn)雙網(wǎng)卡綁定的代碼示例,需要的朋友可以參考下
    2024-07-07
  • Linux lsof命令使用詳解

    Linux lsof命令使用詳解

    這篇文章主要介紹了Linux lsof命令使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Centos7.5配置java環(huán)境安裝tomcat的講解

    Centos7.5配置java環(huán)境安裝tomcat的講解

    今天小編就為大家分享一篇關(guān)于Centos7.5配置java環(huán)境安裝tomcat的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • CentOS7—HAProxy安裝與配置詳解

    CentOS7—HAProxy安裝與配置詳解

    這篇文章主要介紹了CentOS7—HAProxy安裝與配置詳解,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • 80端口被占用導(dǎo)致Apache啟動失敗怎么解決

    80端口被占用導(dǎo)致Apache啟動失敗怎么解決

    80端口被占用導(dǎo)致Apache啟動失敗怎么解決,小編遇到很頭疼的問題,下面為大家分享一篇關(guān)于80端口被占用導(dǎo)致Apache啟動失敗的文章,希望可以解決大家的問題
    2017-03-03
  • Linux輸入輸出重定向詳細(xì)使用說明

    Linux輸入輸出重定向詳細(xì)使用說明

    Linux標(biāo)準(zhǔn)輸入、輸出設(shè)備主要是鍵盤和顯示器,輸出重定向是改變程序運(yùn)行的輸入來源和輸出地點(diǎn)
    2018-03-03
  • Ubuntu忘記密碼重置的詳細(xì)教程

    Ubuntu忘記密碼重置的詳細(xì)教程

    虛擬機(jī)裝了Ubuntu,太久沒有用導(dǎo)致密碼忘記了,自己搗鼓了下,成功修改原賬戶密碼,所以本文記錄了一下Ubuntu忘記密碼重置的詳細(xì)教程,感興趣的小伙伴跟著小編一起來看看吧
    2025-03-03
  • Windows上訪問(掛載)linux的共享文件夾

    Windows上訪問(掛載)linux的共享文件夾

    這篇文章主要介紹了Windows上訪問(掛載)linux的共享文件夾的方法,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2007-02-02
  • 簡要分析linux系統(tǒng)的啟動過程

    簡要分析linux系統(tǒng)的啟動過程

    接觸linux系統(tǒng)運(yùn)維已經(jīng)好幾年了,常常被問到linux系統(tǒng)啟動流程問題,這篇文章主要介紹了簡要分析linux系統(tǒng)的啟動過程,需要的朋友可以參考下
    2018-08-08

最新評論

崇信县| 边坝县| 肥乡县| 赤峰市| 广西| 玛曲县| 河池市| 罗定市| 来宾市| 平果县| 安图县| 曲沃县| 七台河市| 富宁县| 武平县| 抚松县| 怀仁县| 九江县| 苗栗市| 昌江| 外汇| 库尔勒市| 桐庐县| 祥云县| 永济市| 财经| 衡山县| 山丹县| 莱州市| 老河口市| 泰来县| 垫江县| 吴堡县| 哈巴河县| 平舆县| 罗田县| 湘乡市| 奉化市| 平和县| 雅安市| 常德市|