linux第二课
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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" [email protected]
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第二课的主要内容,如果未能解决你的问题,请参考以下文章