linux笔记_day09
1.运算器、控制器、存储器、输入输出(IO)
地址总线:内存寻址
数据总线:传输数据
控制总线:控制指令
寄存器:cpu暂时存储器
2.系统设定
默认输出设备:标准输出,STDOUT,1(描述符)(显示器)
默认输入设备:标准输入,STDIN ,0 (通常是键盘)
标准错误输出:STDERR ,2 (显示器)
I/O重定向:
linux 输出重定向 >
linux 输入重定向 <
[root@good eric ~]# ls /etc > /tmp/list.out (覆盖输出) ls /etc >> /tmp/list.out (追加输出)
[root@good eric ~]# cat /tmp/list.out
abrt
acpi
adjtime
aliases
aliases.db
set -C 禁止对已经存在文件使用覆盖重定向,,,强制覆盖输出,则使用>|
set + 关闭上述功能
2> 重定向错误输出
2>> 追加错误输出
$>: 重定向标准输出或错误输出至同一个文件
输入重定向
tr - translate or delete characters [root@good eric ~]# tr 'a-z' 'A-Z' abc ABC ^C [root@good eric ~]# tr 'a-z' 'A-Z' < /etc/fstab # # /ETC/FSTAB # CREATED BY ANACONDA ON FRI MAY 5 10:01:37 2017 # # ACCESSIBLE FILESYSTEMS, BY REFERENCE, ARE MAINTAINED UNDER '/DEV/DISK' # SEE MAN PAGES FSTAB(5), FINDFS(8), MOUNT(8) AND/OR BLKID(8) FOR MORE INFO # UUID=91097F07-DAE0-4891-A853-8D0526E0A12B / EXT4 DEFAULTS 1 1 UUID=0B9CD9FC-D21E-44D3-B755-DF2DD4C9A9F9 /BOOT EXT4 DEFAULTS 1 2 UUID=225B2FF3-A0F2-4CFE-B23F-C3314610E775 SWAP SWAP DEFAULTS 0 0 TMPFS /DEV/SHM TMPFS DEFAULTS 0 0 DEVPTS /DEV/PTS DEVPTS GID=5,MODE=620 0 0 SYSFS /SYS SYSFS DEFAULTS 0 0 PROC /PROC PROC DEFAULTS 0 0 [root@good eric ~]#
[root@good eric ~]# cat <<END(结束符) > The first line > The Second line > END The first line The Second line [root@good eric ~]# cat >> /tmp/myfile.txt <<EOF(End of Line) > hello > my dear > EOF [root@good eric ~]# cat /tmp/myfile.txt hello my dear [root@good eric ~]#
管道:(从一端输入东西,从另一端出来)命令也可以使用管道
命令1 | 命令2 | 命令3 |...前一个命令的输出作为后一个命令的输入
[root@good eric ~]# echo 'hello' | tr 'a-z' 'A-Z' HELLO [root@good eric ~]# echo 'redhat'|passwd --stdin hive passwd: Unknown user name 'hive'. [root@good eric ~]# echo 'redhat'|passwd --stdin cjy Changing password for user cjy. passwd: all authentication tokens updated successfully. [root@good eric ~]# cut -d: f1 /etc/passwd |sort cut: you must specify a list of bytes, characters, or fields Try `cut --help' for more information. [root@good eric ~]# cut -d: -f1 /etc/passwd |sort abrt adm apache avahi-autoipd bin cjy daemon
[root@good eric ~]# wc -l /etc/passwd
36 /etc/passwd
[root@good eric ~]# wc -l /etc/passwd | cut -d' ' -f1
36
[root@good eric ~]#
tee: - read from standard input and write to
standard output and files
文本查找的需要:
grep: grep, egrep, fgrep print lines matching a pattern
pattern:文本字符和正则表达式的元字符组合而成的匹配条件。
grep [OPTIONS] PATTERN [FILE...]
[root@good eric ~]# grep 'root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
正则表达式:
元字符:
. 匹配任意单个字符
[] 匹配范围内的任意单个字符
[^]匹配范围外的任意单个字符
字符集合: [:digit:] ,[:lower:],[:upper:],[:punct:],[:space:],[:alpha:],[:alnum:] 用的时候再用一个[]
匹配次数:
* 匹配其前面的字符任意次
.*任意长度的任意字符
\?匹配其前面的字符1次或者0次
\{m,n\} 匹配前面的字符至少m次,至多n次
位置锚定:
^:锚定行首,此字符后面的任意内容必须出现在行首
$:锚定行尾,此字符前面的任意内容必须出现在行尾
^$:空白行
\<或者\b:其后面的任意字符必须作为单词首部出现
\>或者\b:其前面的任意字符必须作为单词尾部出现
分组:
\(\)
\(ab\)*
后向引用:
\1:引用第一个左括号以及与之对应的右括号所包含的内容
\2:引用第二个左括号以及与之对应的右括号所包含的内容
正则表达式:
Basic REGEXP :基本
extendedregexp 扩展
grep :使用基本正则表达式定义的模式来过滤文本的命令
-E 支持扩展的正则表达式
-A n 后面n行也会被显示(After)
-B n 前面n行也会被显示(Before)
-C n 前后n行都会被显示(Context)
扩展正则表达式:
次数匹配:+匹配其前面的字符至少一次
{m,n} 不需要反斜线
分组:() \1 \2
或者:a|b or
C|cat 意思是:C或者cat
egrep 扩展正则
fgrep fast 不支持正则