Shell 之Bash 基础
Shell解释执行的脚本语言,可以直接调用Linux的所有命令。
echo 输出命令
-e:支持反斜线控制的字符转换
eg1:echo -e 'ab\bc'
删除左侧字符
eg2:echo -e 'a\tb\tc\nd\te\tf'
制表符与换行符输出
eg3:echo $PATH
查看linux下面的环境变量
history 命令
语法:history [选项] [历史命令保存文件]
选项
-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件
~/.bash_history 默认的保存地址
历史命令默认会保存1000条,可以在环境配置文件/etc/profile中进行修改。
历史命令调用
a,使用上、下箭头调用以前的历史命令
b,使用“!n”重复执行第n条历史命令
c,使用“!!”重复执行上一条命令
d,使用“!字符串”重复执行该字符串开头的命令
命令与文件补全
按“Tab”键就会自动进行补全。
alias 别名命令
语法:alias 别名=’原命令’
查看别名列表: alias
vi ~/.bashrc 让别名永久生效
删除别名:unalias 别名
Linux中常用快捷键
蓝色的是常用的需要熟练的。
注意:字母不分大小
输入输出重定向
输出重定向
> 将控制台的信息输出到指定文件
>>
eg1:df -h > log.txt #正确输出重定向,覆盖
eg2:lst 2>> error.txt #错误输出重定向,追加
eg3: ls &> log.txt #正确或错误输出重定向,覆盖
eg3: lst &>> log.txt #正确或错误输出重定向,追加
输入重定向
< 把文件作为命令的输入。
eg1:wc -l < log.txt #将log.txt中的内容输入给 <前面的命令。
eg2:wall <vi.txt 通过重定向将vi.txt消息发送给所有人
<<
把两个符号之间的命令当作输入
eg: wc << hello
aaa
bbb
ccc
hello
注意:最后一行的符号(hello),碰到第一组"<<"后的符号(hello)相同才会结束,且只识别之间的内容
多命令
; 、&& 、||
eg:lst ; date ; cd /usr/local
eg:lst && date
eg:lst || date
管道符: |
语法:命令1 | 命令2
命令1的正确输出作为命令2的操作对象
Eg: netstat -an | grep 'ESTABLISHED'
netstat 网络连接命令
语法:netstat [选项]
eg1:netstat -an | grep 'ESTABLISHED' 查看当前计算机有多少个连接
eg2:netstat -antp | grep nginx 查看当前计算机连接中程序名包含了“nginx”的程序,会显示占用的端口、占用的进程号、程序名称。
grep 在文件中搜索符合条件的字符串命令
语法:grep [选项] "搜索内容"
选项
-i 忽略大小写
-n 输出行号
-v 反向查找
--color=auto 把搜索出的关键字用颜色显示。
eg: grep -n --color=auto "port" repl1.conf 搜索repl1.conf文件中包含color关键字,且显示行号,并用颜色显示
通配符
Eg:
准备数据 创建如下文件
touch abc
touch abcd
touch 0abc
touch 5abc
touch aabc
touch fabc
touch 123
ls ?abc
ls *abc
ls *abc*
ls [abcdefg]abc
ls [0-9]abc
ls [^0-9]abc
其它特殊符号
Eg:
name=sc
echo '$name'
echo "$name"
echo "\$name"
abc=`data`
echo $abc
abc=$(date)
echo $abc