目录
#linux linux历史命令、shell基础以及linux中的特殊符号
1、历史命令
1.1 history命令
1.2 历史命令的调用
2、shell基础
2.1 shell概述
2.2 shell脚本执行方法
2.3 Bash的基本功能
3、linux中的特殊符号
3.1 管道符
3.2 通配符
3.3 Bash中其它特殊符号
格式:history [选项] [历史命令保存文件]
默认:显示曾经输入过的历史命令
选项:
-c:清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件~/.bash_history(若未写入,此文件中保存的为上次登录使用的历史命令)
历史命令默认保存1000条,如果不够,可在配置文件/etc/profile中修改表示命令数量HISTSIZE的值
使用上、下箭头调用以前的历史命令
使用“!n”重复执行第n条历史命令记录
使用“!!”重复执行上一条命令
使用“!”字串重复执行最后一条以该字串的命令
shell可以说是linux操作界面,linux的命令行解释器,它的语法主要用Bourne(linux)和C(unix),Bourne包括sh、Ksh、Bash、psh、zsh,C家族包括csh、tsh。
使用echo $SHELL查看linux的shell
/etc/shells文件里面包含Linux包含的支持的shell
输入制定的shell名即可进入shell环境,输入exit退出
1、echo 输出命令
格式:echo [选项] [输出内容]
选项:
-e:支持反斜线控制的字符串转换,支持的控制字符有:
例如:
echo "\e[1;31m嫁人就要嫁凤姐\e[0m" #输出红色的“嫁人就要嫁凤姐”
#30m 黑色 31m红色 32m 绿色 33m 黄色 34m 蓝色 35m 洋红 36m 青色 37m 白色
2、写第一个脚本
vi hello.sh,输入:
#!/bin/bash
#The first program
echo -e "\e[1;34mHello world!\e[0m"
3、执行脚本
(1)、赋予执行权限
chmod 755 hello.sh
. /hello.sh
(2)、通过bash调用执行脚本
bash hello.sh
1、命令别名
通过设置别名,可以用别名来执行包含某个选项,某个参数的其他命令。
(1)、查看设定与别名
alias #查看系统中所有的命令别名
alias 别名='原命令' #设定命令别名,临时生效
(2)、别名永久生效与删除别名
vi ~/.bashrc #(~代表家目录,对每个用户单独生效)写入环境配置文件,需要重启后才会生效,或者输入source .bashrc来使其立即生效
unalias 别名 #删除别名,临时删除,若要彻底删除,还需要在配置文件里删除相关内容
2、命令生效顺序
第一顺位执行用绝对路径或相对路径执行的命令
第二顺位执行别名
例如:给rm -i添加一个别名rm,会先执行别名rm而不是rm命令
第三顺位执行bash内部命令
第四顺位执行按照$PATH环境变量自定义的目录查找到的第一个命令
3、输出重定向
(1)、标准输入输出
只有键盘是标准输入,只有显示器是标准输出设备
(2)、输出重定向
命令 > 文件名 #将某个命令的执行结果写入到指定文件里面(若文件不存在,则会新建;若文件存在且里有别的内容,会覆盖原来的内容)
命令 >> 文件名 #将某个命令的执行结果添加到某个文件,不会覆盖(只能保存命令的正确输出)
命令 2> 文件名 #将某个命令的错误信息写入到指定文件里面(若文件不存在,则会新建;若文件存在且里有别的内容,会覆盖原来的内容)
命令 2>> 文件名 #将某个命令的错误信息添加到某个文件,不会覆盖
命令 > 文件 2>&1 或者 命令 &>> 文件 #将某个命令的执行结果与错误信息都写入到指定文件里面(若文件不存在,则会新建;若文件存在且里有别的内容,会覆盖原来的内容)
命令 >> 文件 2&1 或者 命令 &>> 文件 #将某个命令的执行结果和错误信息添加到某个文件,不会覆盖
命令 >> 文件1 2>> 文件2 #将正确日志和错误日志分别添加到文件1和文件2,不会覆盖
(3)、输入重定向
wc [选项] [文件名]
选项:
-c:统计字节数
-w:统计单词数
-l:统计行数
输入命令后可以随意输入,按Ctrl+D退出,会根据选项显示字节数、单词数、行数等信息
wc < 文件 #把文件作为命令的输入(可以不写小于号)
wc << 标识符 #统计输入的内容和标识符相同的字符串之间的内容
作用在命令与命令之间的用来协调多条命令的使用顺序的符号成为管道符。
(1)、多命令顺序执行
; 命令1;命令2 #多个命令顺序执行,命令之间没有任何逻辑关系
&& 命令1&&命令2 #逻辑与 当命令1正确执行,命令2才会执行
|| 命令1||命令2 #逻辑或 当命令1执行不正确,命令2才会执行
例如:可以使用 命令 && echo yes || echo no ,当命令执行正确会输出yes,命令执行错误会输出no
(2)、管道符
命令格式: 命令1 | 命令2 #命令1的正确输出作为命令2的操作对象
例如:ll -a /etc/ | more
netstat -an | grep "ESTABLISHED"
通配符用于在命令的参数上匹配字符符合要求的参数,常见的通配符有:
* 匹配任意多个内容
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
例如:find / -name [adc]23 #在根目录搜索文件,文件名为a23或b23或c23
[-] 匹配括号中任意一个字符,-代表一个范围
例如:[a-z]代表匹配一个小写字母
[^] 逻辑非,表示匹配不是括号内的一个字符
例如:[^0-9]代表匹配一个不是数字的字符
'' 单引号,在单引号内的所有特殊符号都没有特殊含义
"" 双引号,除了"$"(调用变量的值)、"`"(引用命令)、"\"(转义符)之外,别的特殊符号都没有特殊含义
`` 反引号,反引号括起来是系统命令,在bash中会先执行它。和$()作用一样,推荐使用后者
$() 和反引号作用一样,用来引用系统命令
# 在shell脚本中表示注释
$ 调用变量的值,如需要使用变量name时,$name即可调用该变量
\ 转义符,在此符号后面的特殊符号将失去特殊含义,变成普通字符。如输出\$将会直接输出$,而不是当作变量引用。
关于linux的更多内容,可以到https://blog.csdn.net/weixin_41475710/column/info/32529查看,会持续更新。