码迷,mamicode.com
首页 > 系统相关 > 详细

linux第二课

时间:2017-09-09 23:13:36      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:grep   linux   

文件名的通配符:

[0-9]\[a-z]\[[:digit:]]\[[:alpha:]]\[[:alnum]]\[[:upper:]]\[[:lower:]]\[[:black:]]

rename重命名

# rename .txt .xsl /app

tree

查看结构 -d -L

tr 

# ifconfig eth0 |tr a-z A-Z >ip.txt 要先转换再导出,才能保存
# echo ‘error!!!‘ |tr a-z A-Z >error.txt 1>&2  
正确的输出结果是1.错误是2,这个是将正确的转换成错误的输出,正确的输出error!!!已经被导入了error.txt,所以不应该展示,但现在展示是因为正确的转成了错误的输出

df 磁盘

mail发邮件

# mail "hi" |mail -s "hello" sir@gamail.com

tee可以将命令保存一份下来

# echo hello |tee /app/test.txt |tr a-z A-Z

重定向

# tr a-z A-Z < /etc/issue > /tmp/issue.out

做个题

1到100的和

# echo {1..100} |tr " " "+" |bc      bc为运算

chage

chage -l user1 查询密码
chage user1 交互式设置策略 -d yyyy-mm-dd指定密码的上次修改时间
-E yyyy-mm-dd 设置密码过期时间
-I天数 密码过期多少天后账户过期
-m 天数 密码最小存活期
-M 天数 密码最大存活期
-W 天数 密码过期前多少天提醒用户

useradd  查询id +username

-u 指定uid
-g 指定gid
-c 注释
-d 指定家目录 要先存在上级目录,家目录不存在

gpasswd 

groupname 设置密码给组
-a user group添加用户到附加组
-d user group 将用户从组内踢掉

umask 抹去什么权限

在umask是002的时候,如下解释
默认权限,directory是777 ,file 是666
那么创建directory时,就会减去002,就是775 rwxrwxr-x
   创建file时,就会减去002,就是664 rw-rw-r--
直接修改umask   umask 064
umask但凡是奇数时,必有x,目录权限是偶数的话,相减时,就得加1

    

     

1、tr 转换和删除

 -s  将重复字符合并  
    tr -s  [[:blank:]] :将多个space合成一个,转换成‘:’ 老铁们,blank不带换行,space带换行
-d  删除选定内容
    tr -d [a-zA-Z]

2、head 取首

-n 获取前多少行 
-c 获取前多少字符

3、tail 取尾 

-f显示追加的新内容,多用于监控日志

4、cut 抽取

-d 指定分隔符是什么   cut -d:则是以冒号为分隔符,多配合-f使用
-f  取第几个字段      -f 2,5,取2和5    -f 2-5 ,取2到5
-c  按字符切割   cut -c 1-4 /etc/passwd   取passwd 前四个字符

5、wc 收集文本统计数据

wc 等同于-l-w-c全部
-l 计数行数
-w 计数单词数
-c 计数字节数
-m 计数字符数

6、sort 排序

-n 按数字排序
-r 倒序
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique)删除输出中的重复行   
-t c 以c作为字段界定符   sort -t: /etc/passwd 配合-k
-k n 以c之后的第n个字段进行排序

7、uniq去重

uniq 
-c: 显示每行重复出现的次数 
-d: 仅显示重复过的行 
-u: 仅显示不曾重复的行 连续且完全相同方为重复

8、grep搜索

grep=grep--color
-v显示不被匹配到的行  grep -v  root /etc/passwd
-i: 忽略字符大小写        grep -i root /etc/passwd 
-n:显示匹配的行号      grep -n root /etc/passwd
-c: 统计匹配的行数        grep -c root /etc/passwd
-o: 仅显示匹配到的字符串  grep -o root /etc/passwd
-q: 静默模式,不输出任何信息  grep -q root /etc/passwd >/app/123.txt
-A #: after, 后#行  grep -2 root /etc/passwd
-B #: before, 前#行 grep -2 root /etc/passwd
-C #:context, 前后各#行 grep -2 root /etc/passwd
-e:实现多个选项间的逻辑or关系 grep –e ‘root‘ -e ‘guanjunhou‘  /etc/passwd 
-w:匹配整个单词 grep -w root /etc/passwd
-E:使用ERE 
-F:相当于fgrep,不支持正则表达式

9、字符匹配、通配符(符号匹配一大片~)

 .   匹配任意单个字符 
 []  匹配指定范围内的任意单个字符 
 [^] 匹配指定范围外的任意单个字符
 [:alnum:] 字母和数字 
 [:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z 
 [:lower:] 小写字母 
 [:upper:] 大写字母 
 [:blank:] 空白字符(空格和制表符) 
 [:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广) 
 [:cntrl:] 不可打印的控制字符(退格、删除、警铃...) 
 [:digit:] 十进制数字 
 [:xdigit:]十六进制数字 
 [:graph:] 可打印的非空白字符 
 [:print:] 可打印字符 
 [:punct:] 标点符号

匹配次数

 * 匹配前面的字符任意次,包括0次 贪婪模式:尽可能长的匹配 grep root*
 .* 任意长度的任意字符 
 \? 匹配其前面的字符0或1次 
 \+ 匹配其前面的字符至少1次 
 \{n\} 匹配前面的字符n次 
 \{m,n\} 匹配前面的字符至少m次,至多n次 
 \{,n\} 匹配前面的字符至多n次 
 \{n,\} 匹配前面的字符至少n次


位置锚定:定位出现的位置 

 ^ 行首锚定,用于模式的最左侧 
 $ 行尾锚定,用于模式的最右侧 
 ^PATTERN$  用于模式匹配整行 
 ^$  空行 
 ^[[:space:]]*$  空白行 
 \< 或 \b 词首锚定,用于单词模式的左侧 
 \> 或 \b 词尾锚定;用于单词模式的右侧 
 \<PATTERN\> 匹配整个单词

练习题:

* 1、找出ifconfig “网卡名” 命令结果中本机的IPv4地址

# ifconfig eth0 |head -2 |tail -1 |cut -d: -f2 |cut -d" " -f1

* 2、查出分区空间使用率的最大百分比值

#df -h |tr -s " " % |cut -d% -f5 |sort -nr |head -1

* 3、查出用户UID最大值的用户名、UID及shell类型

# cat /etc/passwd |cut -d: -f1,3,7 |sort -t: -k2 -n |tail -1

* 4、查出/tmp的权限,以数字方式显示

# stat /tmp | head -4 |tail -1 | cut -d ‘(‘ -f 2 | cut -d ‘/‘ -f 1
# stat -c %a /tmp/

* 5、统计当前连接本机的每个远程主机IP的连接数,并按从大到小

# netstat -nt | tr -s ‘ ‘ | cut -d ‘ ‘ -f5 |grep -v "Add\|server" |cut -d: -f1 |sort |uniq -c
 练习题:head tail cat cut
1、找出ifconfig “网卡名” 命令结果中本机的IPv4地址 
2、查出分区空间使用率的最大百分比值
3、查出用户UID最大值的用户名、UID及shell类型
4、查出/tmp的权限,以数字方式显示
5、统计当前连接本机的每个远程主机IP的连接数,并按从大 到小排序
# ifconfig eth0 |head -2|tail -1|cut -d: -f2|tr -d [a-zA-Z]
# df |tr -s " " :|cut -d: -f5|head -2|tail -1
# cat /etc/passwd |sort -nt: -k3|tail -1|cut -d: -f1,3,7
# stat /tmp|head -4|tail -1|cut -d‘(‘ -f2 |cut -d"/" -f1
# netstat -nt |tr -s ‘ ‘ :|sort -nrt: -k3|head -1|cut -d: -f5

练习题:grep

1、显示/proc/meminfo文件中以大小s开头的行(要求:使用两 种方法)
2、显示/etc/passwd文件中不以/bin/bash结尾的行
3、显示用户rpc默认的shell程序
4、找出/etc/passwd中的两位或三位数
5、显示CentOS7的/etc/grub2.cfg文件中,至少以一个空白 字符开头的且后面存非空白字符的行 
6、找出“netstat -tan”命令的结果中以‘LISTEN’后跟任意多 个空白字符结尾的行 
7、显示CentOS7上所有系统用户的用户名和UID
8、添加用户bash、testbash、basher、sh、nologin(其shell 为/sbin/nologin),找出/etc/passwd用户名同shell名的行

# grep "^[sS]" /proc/meminfo
# grep -i "^s" /proc/meminfo
# grep "^S\|^s" /proc/meminfo
# grep -e ^s -e ^S  /proc/meminfo
# grep -v "/bin/bash$" /etc/passwd
# grep "^rpc\>" etc/passwd |cut -d: -f7
# grep "[[:digit:]]\{2,3\}" /etc/passwd
# cat grub.conf |grep "^[[:space:]]\+[^[:space:]]
# netstat -tan |grep "LISTEN[[:space:]]\+"
# cat /etc/passwd | cut -d ‘:‘ -f 1,3 | grep "\<[1-4]\?[0-9]\?[0-9]\>"
# cat /etc/passwd |grep "\(^.*\)\>.*\<\1$"
# cat /etc/passwd |egrep "(^.*)\>.*/\1$"


练习题:

1. Linux文件权限一共10位长度,分成四段,第三段表示的内容是: C

A 文件类型 B 文件所有者的权限 
C 文件所有者所在组的权限 D 其他用户的权限
# stat /app/123.txt       (-rw-r--r--)

2. 一个文件名字为rr.Z,可以用来解压缩的命令是:C

A tar B gzip C compress D uncompress

3. 在shell中变量的赋值有四种方法,其中,采用name=12的方法称:A

A 直接赋值 B使用read命令 
C 使用命令行参数 D使用命令的输出

4. 哪个命令可以从文本文件的每一行中截取指定内容的数据: D

A cp B dd C fmt D cut 
# cut -d: -f7 /etc/passwd

5. Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用哪个命令:  C

A cat B more C less D menu 
# cat\|more\|less etc/passwd

6. 对名为fido的文件用chmod 551 fido 进行了修改,则它的许可权是:D

A -rwxr-xr-x B -rwxr–r– C -r–r–r– D -r-xr-x--x  
-r-xr-x--x  (rwx=421)

7. 用ls –al 命令列出下面的文件列表, 哪个文件是符号连接文件: D

A -rw-rw-rw- 2 hel-s users 56 Sep 09 11:05 hello 
B -rwxrwxrwx 2 hel-s users 56 Sep 09 11:05 goodbey 
C drwxr–r– 1 hel users 1024 Sep 10 08:10 zhang
D lrwxr–r– 1 hel users 2024 Sep 12 08:12 cheng 
软连接前带l,索引还是1,硬链接索引+1

8. 在重新启动Linux系统的同时把内存中的信息写入硬盘,应使用哪个命令实现:D

A # reboot 
B # halt 
C # init 3 
D # shutdown –r now

9. 关闭linux系统(不重新启动)可使用哪个命令:B

A Ctrl Alt Del B halt C shutdown -r now D reboot

10.在vi编辑器中的命令模式下,键入哪个可在光标当前所在行下添加一新行:B

A 〈a〉; B 〈o〉; C 〈I〉; D A

11.在vi编辑器中的命令模式下,删除当前光标处的字符使用哪个命令:A

A 〈x〉; B 〈d〉;〈w〉; C 〈D〉; D 〈d〉;〈d〉;

12.在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用哪个命令:C

A 上箭头 B 下箭头 C 〈.〉; D 〈*〉;

13.用命令ls -al显示出文件ff的描述如下所示,由此可知文件ff的类型为 : A

-rwxr-xr– 1 root root 599 Cec 10 17:12 ff 
A 普通文件 B 硬链接 C 目录 D 符号链接  (-普通文件d目录l“小写L”连接)

14.删除文件命令为:D

A mkdir B rmdir C mv D rm

15对文件进行归档的命令为:D

A dd B cpio C gzip D tar

16.改变文件所有者的命令为:C

A chmod 
B touch 
C chown 
D cat

17.在给定文件中查找与设定条件相符字符串的命令为:A

A grep 
B gzip 
C find 
D sort

18.建立一个新的空文件可以使用的命令为:D

A chmod 
B more 
C cp 
D touch

19.在下列命令中,不能显示文本文件内容的命令是:D

A more 
B less 
C tail 
D join

20. 设超级用户root当前所在目录为:/usr/local,键入cd命令后,用户当前所在目录为 :  B

A /home 
B /root 
C /home/root 
D /usr/local

21. 将光盘CD-ROM(hdc)安装到文件系统的/mnt/cdrom目录下的命令是:C

A mount /mnt/cdrom 
B mount /mnt/cdrom /dev/hdc 
C mount /dev/hdc /mnt/cdrom 
D mount /dev/hdc

22.将光盘/dev/hdc卸载的命令是:A

A umount /dev/hdc 
B unmount /dev/hdc 
C umount /mnt/cdrom /dev/hdc 
D unmount /mnt/cdrom /dev/hdc

23.在/home/stud1/wang目录下有一文件file,使用以下哪个可实现在后台执行命令,此命令将file文件中的内容输出到file.copy文件中:C

A cat file 〉;file.copy 
B cat 〉;file.copy 
C cat file > file.copy & 
D cat file 〉;file.copy &


本文出自 “13277682” 博客,谢绝转载!

linux第二课

标签:grep   linux   

原文地址:http://13287682.blog.51cto.com/13277682/1963966

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!