grep正則表達式

grep:這是一個搜索命令,搜文本并且將文本行顯示出來

(1)grep -i 表示搜索的時候忽略大小寫

(2)grep --colour 表示搜索關鍵字帶顏色

例如:grep --colour 'root' /etc/passwd
顯示為在etc的passwd里的 root 選項有顏色

*為了方便我們可以定義個別名,讓他搜索的時候默認顯示為帶顏色 alias grep='grep --colour' (3)grep -v 表示顯示出沒有被匹配到的行

例如:grep -v 'root' /etc/passwd
顯示為 不包含root關鍵字的行

(4)grep -o 只顯示匹配到的字符串

正則表達式:Regular Expression,簡寫為REGXP

元字符:

*:任意長度的任意字符

?:任意單個字符

[]:任意指定范圍內的

[^]:任意指定范圍外的

.:點 表示匹配任意單個字符

例如:

grep 'r..t' /etc/passwd 

這個命令顯示出來的是 root 和 r任意 任意t
可以理解為r1ot,或者ro1t,或者r11t.

匹配次數: 1) *:匹配其前面的字符任意次

例如:a,b,ab,aab,acb,adb,amnb,amnbamnbamnb

a * b匹配上述, 這里a * b可以理解成為a* b 意思就是a出現了幾次 后面跟一個b.    a可以出現零次,所以匹配的結果為:
b ,ab ,aab 其它都不符合 2) .*:任意長度的任意字符

例如:a,b,ab,aab,acb,adb,amnb,amnbamnbamnb

a.*b匹配上述 這里a.*b可以理解為 a開頭b結尾 ab中間是啥都行.所以匹配結果為:ab,aab,acb,adb,amnb,amnbmanbmanb. 3) ?:匹配其前面的字符1次或0次

例如:a,b,ab,aab,acb,adb,amnb,amnbamnbamnb0

a\?b匹配上述 \代表轉義,相當于b前面一次或者沒有a都可以匹配
所以匹配結果為:b,ab,aab,acb,adb,amnb,amnbmanbmanb.

要注意的是 這個命令 只是部分匹配就可以了不是全部匹配. 4) \{m,n\}:匹配其前面的字符至少m次,至多n次.

例如 \{1,\}:至少一次,至多不限
     \{0,3\}:最多三次,最少不限
     
grep 'a\{1,3\}b' /app/test.txt 
a出現最少一次最多三次 后面跟個b

匹配結果為:ab aab

grep 'a.\{1,3\}b' /app/test.txt 
a和b之間出現至少1個字符-至多3個字符

匹配結果為: aab,acb,adb,amnb,amnbmnbmnb. ############用戶與權限########## 用戶 組 其他用戶
用戶:標識符
用戶組:標識符
輸入ls -l total 112 -rw-r--r--. 1 root root 0 Jul 17 11:55 2017-07-17.log
-rw-r--r--. 1 root root 2 Jul 20 09:04 A
-rw-r--r--. 1 root root 0 Jul 20 14:56 aaaaa
-rw-------. 1 root root 1894 Jul 15 08:32 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 Jul 24 16:27 a.out
drwxr-xr-x. 2 root root 6 Jul 20 15:01 bbb
drwxr-xr-x. 2 root root 6 Jul 20 15:01 bbbb
drwxr-xr-x. 2 root root 6 Jul 19 21:56 Desktop
-rw-r--r--. 1 root root 1912 Jul 15 08:45 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 6 Jul 15 08:45 Music
drwxr-xr-x. 2 root root 6 Jul 15 08:45 Pictures
drwxr-xr-x. 2 root root 6 Jul 15 08:45 Public
-rw-r--r--. 1 root root 0 Jul 20 11:26 qwer
drwxr-xr-x. 2 root root 6 Jul 15 08:45 Templates
-rw-r--r--. 1 root root 99946 Jul 17 17:18 typescript
drwxr-xr-x. 2 root root 6 Jul 15 08:45 Videos
drwxr-xr-x. 2 root root 6 Jul 20 15:01 wenjianjia
其中第一數列 顯示的-rw-r--r--這些
- (rw-)屬主的權限 (r--)屬組的權限 (r--)其它用戶的權限
權限有三種r,w,x
其中每一類都有三種權限
對于文件來說:
r:可讀,可以使用類似cat等命令查看文件內容
w:可寫,可以編輯或刪除此文件
x:可執行,可以再命令提示符下當做命令提交給內核運行
對于目錄來說:
r:可以對此目錄執行ls以列出內部的所有文件
w:可以再此目錄創建文件
x:可以使用cd切換進此目錄,也可以使用ls-l查看內部文件的詳細信息
例如 4(數字48進制)100r--:表示只讀 5(數字58進制)101r-x:讀和執行 0(數字98進制)000---:無權限 1(數字18進制)001--x:執行 3(數字38進制)011-wx:寫和執行 6(數字68進制)110rw-:讀寫 7(數字78進制)111rwx:讀寫執行
使用8進制的數字可以表示某一類用戶的權限

例如: 數字顯示均為8進制 755:rwx r-x r-x
rw- r-- ---:640 660:rw-rw----
rwx rwx r-x:775 用戶:UID /etc/passwd 這個目錄存儲每一個用戶的id號來標識用戶
組:GID /etc/group 這個目錄存儲每個組的id
用戶的密碼存儲在/etc/shadow
組的密碼存儲在/etc/gshadow

Linux的用戶類別:
管理員:ID號為0(默認)
普通用戶:系統用戶[1-499]/一般用戶[500-60000]普通用戶(ID號為1-65535)即使超出了也會顯示65536 系統用戶:是不允許登錄的
一般用戶:是可以登錄的
Linux的用戶組:
管理員組:
普通組:系統組/一般組

私有組:創建用戶的同時會給用戶創建一個私有組,名字為其本身
基本組:用戶額外的組(附加組,額外組,默認組以外的其他組)


例如:
進程:一個進程 god用戶 god組
對象:rwxrw-r-- girl god a.txt
進程的god用戶對應訪問對象的god屬組如果一樣則以rw-的權限去訪問這個文件a.txt 如果god用戶與對象girl不一樣,也不同于對象god組,則以r--的權限訪問.
記住Linux一切皆文件,所有進程都是文件.
訪問文件取決于用戶而不取決于文件本身

輸入cat /etc/passwd后:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
取前兩個作為例子說明:':'這個里面有7個詳細信息,root代表賬戶名;x代表密碼(密碼存儲在etc/shadow/文件里)0代表用戶ID即UID;0代表組ID即GID;root(包含信息電話一類的,用戶的注釋信息);root(家目錄HOME DIR);/bin/bash(為SHELL)


/etc/shadow
輸入cat /etc/shadow 顯示如下:
root:$6$YsiwrDUWlkWxp6Mf$FvB5NAzc9lDBmtCEZThTpg6Jtzs7dCZHM0bjezjEZNyYc4fYzaKgtvo1W5g6AoHTi6GIMVS0Znm//dqTsAh1J0::0:99999:7:::
bin:*:17110:0:99999:7:::
取前兩個顯示如上:
冒號里面顯示順序如下: 1:登錄名 2:加密的密碼 $6 3:從197011日開始上一次修改密碼的時間到今天經歷了多長時間 4:密碼最小使用期限(0為不限定,如有數字則變成在時間內不能修改密碼) 5:密碼最長使用期限(99999為無限) 6:密碼還剩多長時間提示用戶 7:在禁用賬戶之前的日期



創建用戶:useradd 或adduser
學習在這里的時候我遇到了一個問題就是軟鏈接的問題
在這里講下,useradd是可執行文件,用which useradd 來查看顯示為:/usr/sbin/useradd,由此得知在上面的目錄下, 在輸入ls /usr/sbin/useradd顯示為:usr/sbin/adduser(為藍色,一般藍色代表該文件有軟鏈接),然后我們接著輸入ll usr/sbin/adduser顯示為:lrwxrwxrwx. 1 root root 7 Jul 14 20:56 /usr/sbin/adduser -> useradd,由此看出useradd是被adduser指向的一個藍色的鏈接.相當于adduser是useradd的一個快捷方式.

使用:
useradd 用戶
例如:useradd wenwen 輸入cat /etc/passwd顯示的最后一行為:wenwen:x:1003:1003::/home/wenwen:/bin/bash,以上就是你新建立的用戶.

給用戶增加密碼:
在root(系統管理員)下,輸入passwd wenwen會提示配置密碼的信息:
Changing password for user wenwen.
New password: 
Retype new password: 
Sorry, passwords do not match.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
少于8個字符是不可以更改的,另外密碼過于簡單也是不能更改的.

*******chfn wenwen 這個命令可以給用戶備注信息,finger wenwen這個命令可以看更詳細的用戶信息(可能會需要安裝一下,安裝使用的是rpm -ivh /run/media/root/Centos\ 7\ x86_64/Packages/finger -0.17-52.e17.x86_64.rpm[在Centos7下安裝finger命令])
輸入rpm -ivh /misc/cd/Packages/finger,這個命令是Centos6自帶的 misc是掛載到安裝文件,很方便很實用.

添加組的命令:groupadd 組名
例如:groupadd mygroup添加完成后,輸入getent passwd wenwen可以看到:wenwen:x:1002:1002:laopo,jia,1,1:/home/wenwen:/bin/bash,的信息

總結一下:
用戶管理需要用到的命令: useradd userdel usermod passwd chsh(更改使用者 shell 設定 ,chsh -l查看機器安裝的SHELLS) chfn(改變finger指令顯示的信息語  法:chfn [-f <真實姓名>][-h <家中電話>][-o <辦公地址>][-p <辦公電話>][-uv][帳號名稱] ) finger(可以讓使用者查詢一些其他使用者的資料) id chage(命令是用來修改帳號和密碼的有效期限)

組管理:groupadd groupdel groupmod gpasswd

權限管理:chown chgrp chmod umask 用法:輸入useradd -u 1000 user1(-u直接給出用戶ID也就是UID) ,useradd -g 存在的組名,useradd -G 附加組(可以有多個使用,隔開)
useradd -c (組的注釋信息) useradd -d (目錄 指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,可以創建主目錄) useradd -s (指定SHELLS)


PS(查看ifconfig中的IP地址):ifconfig |grep -Eo "\<(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>" PS:echo "welcome to magedu linux" |grep -o "." |sort |uniq -c |sort -nr的執行結果: 3 e 3 2 u 2 o 2 m 2 l 1 x 1 w 1 t 1 n 1 i 1 g 1 d 1 c 1 a

PS:ifconfig |egrep -o "(<\[1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]\>)" 找出ifconfig 命令結果中1-255之間的數字.

原創文章,作者:charlest,如若轉載,請注明出處:http://www.www58058.com/82983

(0)
charlestcharlest
上一篇 2017-07-29
下一篇 2017-07-29

相關推薦

  • 開篇

    正式開始學習的第一天,了解LINUX,愛上LINUX。希望在往后的日子里越戰越勇!!

    Linux干貨 2017-07-11
  • Linux發展史

    摘要:Linux無處不在的存在于我們的周圍,家庭、公司、學校等等。現在的Linux已經從最初示很少的一段代碼,發展成全世界應用范圍最廣的操作系統。本文將為大家展現Linux的發展史。 一、Linux的是什么       Linux是一套可以免費使用和自由傳播的類Unix操作系統操作系統,是一個基于POSIX和UNIX的多用戶、多…

    Linux干貨 2016-10-18
  • 詳解Ntbackup的五種備份方式(下)

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/145644 繼續上文。   四、差異備份(Differental Backup)     差異備份是…

    Linux干貨 2015-03-26
  • vim簡單操作

    vim第一講 光標在屏幕文本中的移動既可以用箭頭鍵,也可以使用 hjkl 字母鍵。 h (左移) j (下行) k (上行) l (右移) 欲進入 Vim 編輯器(從命令行提示符),請輸入:vim 文件名 <回車> 欲退出 Vim 編輯器,請輸入 <ESC> :q! <回車> 放棄所有改動。 或者輸入 <ESC&gt…

    Linux干貨 2017-07-29
  • CollabNetSubversionEdge服務搭建

    準備目錄并設置權限 [root@localhost ~]# mkdir /var/svn [root@localhost ~]# chown bohui:bohui /var/svn/ [root@localhost ~]# chmod 700 /v…

    Linux干貨 2015-10-18
  • 文本處理三劍客之grep

    grep命令基本用法 1、grep正則表達式(對文本行進行搜索過濾) 格式:grep [option] PATTERN [FILE…] option: -i:忽略大小寫 -v:取反,顯示未被匹配到的pattern -n:顯示匹配的行號 -c:統計匹配的行數 -o: 只顯示匹配到的pattern -q: 靜默,不予顯示 -A#:after,匹配到的行再向后…

    Linux干貨 2017-07-19
欧美性久久久久