从零开始的Linux学习:2020.5.8-第四天

从零开始的Linux学习

2020.5.8-第四天

虽然每天自认为的很认真的在学习,但仍然追不上同期学员的进度。离8月份越来越近,还真的有点心慌慌。
那么,今天稍微总结了下记到了什么:

一、打包压缩与搜索命令

1.tar命令:用于文件进行打包压缩或解压,格式为"tar [选项] [文件]":
在这里插入图片描述
“-c/-x”这两个参数不能同时使用,“-v”参数在压缩包文件太大时可以添加上去判断打包过程是否顺利,“-f”参数是必须放到最后一位(其他参数随意),例:
“tar -czvf 压缩包名称.tar.gz /etc (打包etc目录)”→“tar -xzvf 压缩包名称.tar.gz -C /root/”(czvf前“-”可不加);(.tar.gz是方便用户识别此压缩包是使用什么类型解压缩)
(多个文件压缩打包 tar czvf my.tar.gz file1 file2,…(file*))
在这里插入图片描述
如果不清楚是以什么方式压缩的,可以直接使用“xvf”即可,系统自动寻找格式进行解压。
.
2.grep命令:用于在文本中执行关键词搜索,并显示匹配结果,格式为"grep [选项] [搜索内容] [文件]":
在这里插入图片描述在这里插入图片描述

3.find命令:用于按照指定条件来查找文件,格式"find [查找路径] 寻找条件 操作"”:
在这里插入图片描述 例:“find / -name 文件名”、“find / -user 用户名(虽然都是长格式,但仍然只用一个“-”(作者定义));
在这里插入图片描述
(报错的"/proc"目录为虚拟目录,保存服务器的一些状态)
在这里插入图片描述在这里插入图片描述
”是包含这个单词的所有名称,且在字符串的位置很重要;–如果出现"find: paths must precede expression"报错,看看是否是因为查找的字符带“”而未带上“’’”(单引号)。

二、输入与输出重定向

标准输入重定向(STDIN,文件描述符为0,使用“<”(导入))或“<<”(结束的输入字符)):默认从键盘输入,也可从其他文件或命令中输入。
标准输出重定向(STDOUT,文件描述符为1,使用“>”(覆盖)或“>>”(追加/累加)):默认输出到屏幕。
错误输出重定向(STDERR,文件描述符为2,使用“2>”(覆盖)或“2>>”(追加/累加),且“2”不可省略):默认输出到屏幕。
在这里插入图片描述

标准信息(命令正常输出的信息):
在这里插入图片描述
错误信息(报错信息):
在这里插入图片描述
将命令原本输出到屏幕上的内容,重定向输出到指定的文件或设备上;

1>:以覆盖的方法将【正确的数据】输出到指定的文件或设备上;
在这里插入图片描述
1>>:以累加的方法将【正确的数据】输出到指定的文件或设备上;
在这里插入图片描述
2>:以覆盖的方法将【错误的数据】输出到指定的文件或设备上;
在这里插入图片描述
2>>:以累加的方法将【错误的数据】输出到指定的文件或设备上;
在这里插入图片描述
将标准输出跟错误输出分别写入不同的文件:
在这里插入图片描述
(将错误信息或全部信息忽略或者不显示或不存储,设备黑洞/dev/null)
在这里插入图片描述
不论是标准还是错误信息,共同写入一个文件中(命令 >> 文件 2>&1 或 命令 &>> 文件);
在这里插入图片描述
在这里插入图片描述
(“ls -l a.txt aaa &> /dev/null”=“ls -l a.txt aaa &> /dev/null 2>&1”)
如果输出的文件不存在,系统会自动将它建立起来;

标准输入,后面的“< passwd”,并不是读取文件内容,而是将数据流导入到命令里(“<”只能接文件):
在这里插入图片描述

三、管道命令符

命令格式“命令 A | 命令 B”,把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入(将命令A通过管道符“|”交给命令B进行2次处理,在一次命令里可以使用多次):
在这里插入图片描述
这样可以看出不能登陆系统的用户有多少个;
在这里插入图片描述
(“wc”把文件看做一行);
在这里插入图片描述
这个选项用于从标准输入管道读入新的密码。

四、命令行的通配符

1.“*”代表【0个到无穷多个】任意字符(出现位置很重要):
在这里插入图片描述
2.“?”代表匹配单个字符(一定有一个字符,所以需要单独匹配多少个字符才,就打多少个问号):
在这里插入图片描述
所以上面不能匹配出/dev/sda;
3.“[ ]”同样代表【一定有一个括号内的】的字符(非任意字符):
在这里插入图片描述
“[ - ]”若有“-”在中括号内,代表【编码顺序内的所有字符】,例如“[0-9]”代表0和9之间的所有数字,“[a-z]/[A-Z]/”代表a和z或者A和Z之间的所有字母,“[a-z,A-Z]”代表全部字母,也可以使用“[1,3,5]/[a,t,x]/[G,T,X]”格式来精准匹配某个字符(一定要记得加上“,”,防止出错);
“[]”若中括号内第一个字符为指数符号“”,那表示反向选择,例如“[^abc]”代表一定有一个非abc的字符。
系统默认对大小写不敏感,可以使用以下特殊符号(之后的case循环用得到):
在这里插入图片描述
格式为“[特殊符号]”,例子“[[:alnum:]]”。

五、常用的转义符

(两个$碰到一起,输出的是当前shell终端的PID的值,当前进程的进程号)
4个常用的转义符:
A.反斜杠“\”:使反斜杠后面的一个变量变为单纯的字符串;
在这里插入图片描述
B.单引号“ ‘’ ”:转义其中所有的变量为单纯的字符串(全局转义);
在这里插入图片描述
C.双引号“ “” ”:保留其中的变量属性,不进行转义处理(当变量或者参 数里有空格时,建议加上双引号便于识别);

D.反引号“ ``  ”(英文状态下按波浪线键):把其中的命令执行后返回结果。

六、重要的环境变量

命令在Linux中执行分为4个步骤:
1.判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是的话则直接执行(优先级最高,但很麻烦);
2.Linux系统检查用户输入的命令是否为“别名命令”,即用一个自定义的命令名称来替换原本的命令名称。可以用alias命令来创建一个属于自己的命令别名,格式为“alias 别名=命令”。若要取消一个命令别名,则是用unalias命令,格式为“unalias 别名”(不过别名的持续时间是到下一次重启前,如果要让它永久有效,需要去修改/etc/profile文件);
在这里插入图片描述
3.Bash解释器判断用户输入的是内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行;而用户在绝大部分时间输入的是外部命令,这些命令交由步骤4继续处理。可以使用“type命令名称”来判断用户输入的命令是内部命令还是外部命令;
4.系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作PATH,可以简单地把它理解成是“解释器的小助手”,作用是告诉Bash解释器待执行的命令可能存放的位置,然后Bash解释器就会乖乖地在这些位置中逐个查找。PATH是由多个路径值组成的变量,每个路径值之间用冒号间隔,对这些路径的增加和删除操作将影响到Bash解释器对Linux命令的查找;
在这里插入图片描述
如何判断命令是内部还是外部,type或者whereis(更直观)都可,没有路径便是内部命令,有路径则是外部命令:
在这里插入图片描述
常见的环境变量:
在这里插入图片描述
HOME:保存每个用户家目录的存储路径;
SHELL:当前用户的终端名称;
MAIL:用来储存该用户所存放邮件的路径;
LANG:远程登录服务器时发现乱码,可以检查下这个变量;
RANDOM:每次开机数值都会不一样,可以把数值固定在某一个范围;
PS1:对应的是前面的一大长串

如何把变量提升为全局变量(其他用户也可以使用该变量):
在这里插入图片描述
取消变量的方法,使用unset命令,重启系统都可(永久全局变量,需要写入/etc/bashrc文件中);
如果有两个用户同时设置了两个名字相同的变量,那么后一个用户会把前一个用户的变量替换掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值