大家好,欢迎来到IT知识分享网。
一、管道符命令
管道命令符的作用概括来说就是:把前一个命令原本要输出到屏幕的信息当作是后一个命令的标准输入。
例1:查找文件/etc/passwd中不含/sbin/nologin的行,并统计行数。
例2:用翻页的形式查看/etc目录中的文件列表及属性信息。
# ls -l /etc/ | more
例3:在修改用户密码时,通常都需要输入两次密码以进行确认,这在编写自动化脚本时将成为一个非常致命的缺陷。通过把管道符和passwd命令的–stdin参数相结合,可以用一条命令来完成密码重置操作:
例4:将ps、grep、管道符三者结合到一起使用了。搜索与bash有关的进程信息:
管道命令符可以在一个命令组合中多次使用,可以这样使用:“命令A | 命令B | 命令C”。
二、 命令行的通配符
通配符就是通用的匹配信息的符号,比如星号(*)代表匹配零个或多个字符,问号(?)代表匹配单个字符,中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,而中括号内加上字母[abc]则是代表匹配a、b、c三个字符中的任意一个字符。
通配符 | 含义 |
* | 任意字符 |
? | 单个任意字符 |
[a-z] | 单个小写字母 |
[A-Z] | 单个大写字母 |
[a-Z] | 单个字母 |
[0-9] | 单个数字 |
[[:alpha:]] | 任意字母 |
[[:upper:]] | 任意大写字母 |
[[:lower:]] | 任意小写字母 |
[[:digit:]] | 所有数字 |
[[:alnum:]] | 任意字母加数字 |
[[:punct:]] | 标点符号 |
例1:匹配所有在/dev目录中且以sd开头的文件:(通配小写字母)
通配所有的:(允许空值)
只通配单个字符:(不允许空值)
通配单个数字,如:[1,3,5],{1,3,5}会将未匹配到的信息输出。
使用通配符创建文件:
查找:
三、常用的转义字符
4个最常用的转义字符如下所示。
反斜杠(\):使反斜杠后面的一个变量变为单纯的字符。
单引号(”):转义其中所有的变量为单纯的字符串。
双引号(””):保留其中的变量属性,不进行转义处理。
反引号(“):把其中的命令执行后返回结果。
$$是输出当前pid
双引号大多数情况下加不加效果都一样:
echo AA BB CC
echo “AA BB CC”
区别在于用户无法得知第一种执行方式中到底有几个参数,因为有可能把“AA BB CC”当作了一个参数整体直接输出到了屏幕,也有可能是分别将AA、BB和CC输出到了屏幕,就算摸清了echo命令处理参数的机制,其他命令依然是这种情况。因此建议参数中如果出现了空格,那么就加双引号,如果参数中没有空格,那就不用加~
四、重要的环境变量
变量是计算机系统用于保存可变值的数据类型。
在Linux系统中,变量名称一般都是大写的,命令则都是小写的。
Linux系统中的环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录、邮件存放位置等,可以直接通过变量名称来提取到对应的变量值。
在用户执行了一条命令之后,命令在Linux中的执行分为四个步骤。
第1步:判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是的话则直接执行。(路径 -参数)
第2步:Linux系统检查用户输入的命令是否为“别名命令”,即用一个自定义的命令名称来替换原本的命令名称。
第3步:Bash解释器判断用户输入的是内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行;而用户在绝大部分时间输入的是外部命令,这些命令交由步骤4继续处理。可以使用“type 命令名称”来判断用户输入的命令是内部命令还是外部命令:
第4步:系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作PATH,可以简单地把它理解成是“解释器的小助手”,作用是告诉Bash解释器待执行的命令可能存放的位置,然后Bash解释器就会乖乖地在这些位置中逐个查找。PATH是由多个路径值组成的变量,每个路径值之间用冒号间隔,对这些路径的增加和删除操作将影响到Bash解释器对Linux命令的查找。
问题1:为什么不能将当前目录(.)添加到PATH中呢?
答:尽管可以将当前目录(.)添加到PATH变量中,从而在某些情况下可以让用户免去输入命令所在路径的麻烦。但是,如果黑客在比较常用的公共目录/tmp中存放了一个与ls或cd命令同名的木马文件,而用户又恰巧在公共目录中执行了这些命令,那么就极有可能中招了。
注:作为一名态度谨慎、有经验的运维人员,在接手了一台Linux系统后一定会在执行命令前先检查PATH变量中是否有可疑的目录。
env 命令:查看Linux系统中所有的环境变量。
常用环境变量:
变量名称 | 作用 |
HOME | 用户的主目录(即家目录) |
SHELL | 用户在使用的Shell解释器名称 |
HISTSIZE | 输出的历史命令记录条数 |
HISTFILESIZE | 保存的历史命令记录条数 |
邮件保存路径 | |
LANG | 系统语言、语系名称 |
RANDOM | 生成一个随机数字 |
PS1 | Bash解释器的提示符 |
PATH | 定义解释器搜索用户执行命令的路径 |
EDITOR | 用户默认的文本编辑器 |
Linux作为一个多用户多任务的操作系统,能够为每个用户提供独立的、合适的工作运行环境,因此,一个相同的变量会因为用户身份的不同而具有不同的值。
例:使用下述命令来查看HOME变量在不同用户身份下都有哪些值:
变量是由固定的变量名与用户或系统设置的变量值两部分组成的,可以自行创建变量,来满足工作需求。
例:设置一个名称为WORKDIR的变量,方便用户更轻松地进入一个层次较深的目录:
但是,这样的变量不具有全局性,作用范围也有限,默认情况下不能被其他用户使用,只能被创建变量的用户使用。
可以使用export命令将其提升为全局变量,这样其他用户也就可以使用它了
若后续不再使用这个变量了,可以通过unset命令取消。
注:直接在终端设置的变量能够立即生效,但重启服务器后就会消失掉,因此我们需要将变量和变量值写入到.bashrc或者.bash_profile文件中以确保永久能使用它们。
五、Vim文本编辑器
在Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数。
Vim编辑器中设置了三种模式——命令模式、末行模式和编辑模式。
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式:正常的文本录入。
末行模式:保存或退出文档,以及设置编辑环境。
命令模式中最常用的一些命令
命令 | 作用 |
dd | 删除(剪切)光标所在整行 |
5dd | 删除(剪切)从光标处开始的5行 |
yy | 复制光标所在整行 |
5yy | 复制从光标处开始的5行 |
n | 显示搜索命令定位到的下一个字符串 |
N | 显示搜索命令定位到的上一个字符串 |
u | 撤销上一步的操作 |
p | 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面 |
末行模式中最常用的一些命令
命令 | 作用 |
:w | 保存 |
:q | 退出 |
:q! | 强制退出(放弃对文档的修改内容) |
:wq! | 强制保存退出 |
拓展:hostnamectl set-hostname //立即生效hostname
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122865.html