老男孩linux58期 day10
思 想
如何让提升自学能力?
人体造血靠骨髓
技术知识更新超快,快速学习知识靠自学。
1,动脑思考 养成主动看书的习惯。
2,养成预习的习惯。(相当于工作中领导分配任务,让你去搞定的模拟)
3,课堂上积极思考,对于老师提问的问题主动回答,对于不会的要主动发问。
4,对老师留的日后拓展的作业要能够完成。
5,对学习的内容要深度编码总结,(包括用思维导图来总结)等
要抓重点学习,知识===>短时记忆===>编码加工===>长时记忆(存储大脑)===>提取
6,课后遇到不会的不要轻易问别人,要学会自己解决问题。
笔记/书===查帮助文档===百度搜索===交流群===身边的人同学,项目经理,老师
7,提升阅读外语能力。
a,通过计算机技术支持反向学习外语,对我们学过的单词记录对应的意思的英文
目录层次标准里去查或man cp 看名字
b,总结一百个报错翻译
command not found
命令 没有 找到
课堂笔记
一,tr 命令
tr 替换或删除字符
tr - translate or delete characters
替换 或者 删除 字符
Linux里严格区分大小写。 所有字符尽量都加双引号。
cat test.txt
Welcome to oldboy training.
we are excellent.
tr "w" "9" < test.txt
Welcome to oldboy training.
9e are excellent.
tr w 9 < test.txt
Welcome to oldboy training.
9e are excellent.
二,grep 文本过滤工具 重要性前三名
grep, egrep, fgrep - print lines matching a pattern
打印 行 匹配 一个 模式/样式
-v (invert )是取反,显示不匹配的行 *****
-i 不区分大小写 ignore (忽略)
[root@zhangxiangyu-58 ~]# grep -i "w" test.txt
Welcome to oldboy training.
we are excellent.
[root@zhangxiangyu-58 ~]# grep "w" test.txt
we are excellent.
-n 对输出的内容显示原文件中的行号. number (数字)
-w (word)按单词为单位过滤 ****
[root@zhangxiangyu-58 ~]# grep -w "oldboy" test.txt
Welcome to oldboy training.
[root@zhangxiangyu-58 ~]# grep "oldboy" test.txt
Welcome to oldboy training.
oldboy1
-o 只输出匹配的内容
[root@zhangxiangyu-58 ~]# grep -o "oldboy" test.txt
oldboy
oldboy
[root@zhangxiangyu-58 ~]# grep "oldboy" test.txt
Welcome to oldboy training.
oldboy1
[root@zhangxiangyu-58 ~]# grep -oi "oldboy" test.txt
oldboy
oldboy
[root@zhangxiangyu-58 ~]# grep -oiw "oldboy" test.txt
oldboy
-E (extend)扩展的grep,即egrep
[root@zhangxiangyu-58 ~]# cat test.txt
Welcome to oldboy training.
we are excellent.
oldboy1
[root@zhangxiangyu-58 ~]# grep -E "to|are" test.txt
Welcome to oldboy training.
we are excellent.
[root@zhangxiangyu-58 ~]# egrep "to|are" test.txt
Welcome to oldboy training.
we are excellent.
考题:在/data目录下创建oldboy.txt,并增加"I am studying linux."一行内容。
该题有多种解题方法,下面来一一分析讲解
[root@zhangxiangyu-58 /]# cd data
[root@zhangxiangyu-58 /data]# vi oldboy.txt
[root@zhangxiangyu-58 /data]# cat oldboy.txt
I am studying linux.
思想:操作后检查的习惯,才能提升正确率
重定向符号的核心知识
>或1> 标准输出重定向,箭头方向就是数据流向,把左边的数据流向到右边,会晴空右边之前的数据。
备份:
[root@zhangxiangyu-58 ~]# cat test.txt
Welcome to oldboy training.
we are excellent.
oldboy1
[root@zhangxiangyu-58 ~]# cp test.txt{,.ori}
[root@zhangxiangyu-58 ~]# cp test.txt test.txt.ori
[root@zhangxiangyu-58 ~]# >test.txt
[root@zhangxiangyu-58 ~]# cat test.txt
[root@zhangxiangyu-58 ~]# cat /data/oldboy.txt
I am studying linux.
[root@zhangxiangyu-58 ~]# > /data/oldboy.txt
[root@zhangxiangyu-58 ~]# cat /data/oldboy.txt
[root@zhangxiangyu-58 ~]# echo "I am studying linux."
I am studying linux.
[root@zhangxiangyu-58 ~]# echo "I am studying linux.">/data/oldboy.txt
[root@zhangxiangyu-58 ~]# cat /data/oldboy.txt
I am studying linux.
[root@zhangxiangyu-58 ~]# echo "oldboy">/data/oldboy.txt
[root@zhangxiangyu-58 ~]# cat /data/oldboy.txt
oldboy
[root@zhangxiangyu-58 ~]# cat /data/oldboy.txt
I am studying linux.
>>或1>>追加输出重定向,内容追加到文件尾部。
[root@zhangxiangyu-58 ~]# echo "I am studying linux.">>/data/oldboy.txt
[root@zhangxiangyu-58 ~]# cat /data/oldboy.txt
I am studying linux.
I am studying linux.
<标准输入重定向,箭头方向就是数据流向
Standard input ,writing to standard output
标准 输出 写 到 标准 输出
[root@zhangxiangyu-58 ~]# cat /data/oldboy.txt
I am studying linux.
I am studying linux.
[root@zhangxiangyu-58 ~]# tr "am" "01" </data/oldboy.txt
I 01 studying linux.
I 01 studying linux.
<<或0<<追加输入重定向,箭头方向就是数据的流向
2>标准错误输出重定向,箭头方向就是数据流向,把左边的「报错」输出的右边(覆盖)
2>>标准错误输出重定向,箭头方向就是数据流向,把左边的「报错」输出的右边(追加)
固定定义:
数字1 标准输出(standard output)
数字0 标准输入(standard input)
数字2 错误输出(error output)
> , >>可以理解为把命令输出给文件进行追加或覆盖
< , <<可以理解为把字符串或文件里的内容输入给命令进行操作
[root@zhangxiangyu-58 ~]# cat <<EOF
> I am oldboy
> EOF
I am oldboy EOF成对出现,后面这个顶格。
此外还有一个特殊重定向用法:将标准错误重定向到标准输出,即标准错误和标准输出一样从定向到文件中,这个功能有3种实现命令方法。
方法1:echo "I am oldboy" 1>>oldboy.txt 2>>oldboy.txt
方法2:echo "I am oldboy" &>>oldboy.txt
方法3:echo "I am oldboy" 1>>oldboy.txt 2>&1
考题:已知文件test.txt内容为:
test
liyao
oldboy
请给出再屏幕输出test.txt内容时,不包含oldboy字符串的命令。
[root@zhangxiangyu-58 ~]# cat test.txt
test
liyao
oldboy
[root@zhangxiangyu-58 ~]# grep -v "oldboy"test.txt
[root@zhangxiangyu-58 ~]# grep -v "oldboy" test.txt
test
liyao
[root@zhangxiangyu-58 ~]# head -2 test.txt
test
liyao
第八章 linux文件类型及查找命令实践
文件的属性:文件大小,时间,类型,权限,属主
索引节点:文件的唯一标识
进程号:进程的唯一标识
[root@zhangxiangyu-58 ~]# ls -lih /etc
总用量 1.1M
17112720 drwxr-xr-x. 3 root root 101 3月 4 18:50abrt
17080298 -rw-r--r--. 1 root root 44 3月 6 14:59 adjtime
16829804 -rw-r--r--. 1 root root 1.5K 6月 7 2013 aliases
16777285 -rw-r--r--. 1 root root 12K 3月 4 19:42
1 2 3 4 5 6 7 8 9 10
第一列:inode索引节点编号(相当于人的身份证,家庭住址,全国唯一的)
系列读取文件时首先通过文件名找到inode号码,然后才能读取到文件
第二列:文件类型及权限,这列共11个字符, 其中第一个字符为文件类型
随后的9个字符为文件的对应权限,最后一个字符点号“ . ” 是和selinux有关的一个标识
第三列:硬连接数
第四列:属主:文件的拥有者,用户
第五列:属组:文件属于的组,用户组
第六列:大小
第七列:月份
第八列:日
第九列:时间
(文件内容最后修改时间)
第十列:文件名
第二列第一个字符:文件类型
一切皆文件。 Windows用扩展名区分文件,linux里有自己的文件类型,linux的里扩展名兼容windows方便区分文件
1. - 文件 (图片 视频 文档 都是文件)
创建:touch vim echo cat
拷贝,移动:cp mv
删除:rm
三种类型:
A,纯文本文件 (字符数字等文件)
B,数据文件 (存放命令收集的信息)
C,二进制文件 (可执行的命令)
查看
[root@zhangxiangyu-58 ~]# file test.txt
test.txt: ASCII text
[root@zhangxiangyu-58 ~]# file /bin/cat
/bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=8ac8b57ae50762a4a0480486839107e87b3c284d, stripped
2, d 目录(directory)
生成: mkdir -p
复制:cp -a/-r
删除:rm -fr
区分目录:
a,开头为d
B,颜色为蓝色
C,ls -p 目录结尾加斜线,以斜线结尾
D,ls -F 还会给其他文件加特殊字符