Shell 之Bash 基础

Shell解释执行的脚本语言,可以直接调用Linux的所有命令。

 

echo 输出命令

-e:支持反斜线控制的字符转换


Shell 之Bash 基础
 

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 别名   

 

Shell 之Bash 基础


 

Linux中常用快捷键

Shell 之Bash 基础

蓝色的是常用的需要熟练的。

注意:字母不分大小

输入输出重定向

输出重定向

>  将控制台的信息输出到指定文件

>>


Shell 之Bash 基础
 


Shell 之Bash 基础

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)相同才会结束,且只识别之间的内容

 多命令

; 、&& 、||


Shell 之Bash 基础
 

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关键字,且显示行号,并用颜色显示

通配符

Shell 之Bash 基础

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

其它特殊符号
Shell 之Bash 基础
 

Eg:

name=sc

echo '$name'

echo "$name"

echo "\$name"

abc=`data`

echo $abc

abc=$(date)

echo $abc