Linux--shell
原创
©著作权归作者所有:来自51CTO博客作者youye的原创作品,请联系作者获取转载授权,否则将追究法律责任
SHELL
一、什么是shell
1、shell是用户与操作系统内核之间的界面,是一个命令解释器。
其功能表现为:指令解析
交互执行
程序设计
2、shell的种类:Linux支持的shell,列表文
件为/etc/shells
/bin/bsh:最早的shell,Bourne shell。
/bin/bash:Bourne Again shell。应用最为广泛。
/bin/csh:最新版本为tcsh
/bin/ksh:
/bin/zsh:最大的shell
3、查看当前shell:#echo $SHELL
4、使用不同shell:#shell名 (exit退出当前shell)
5、修改登录shell:#chsh [用户名]
二、shell的功能
1、输入输出处理功能
指令解析
多指令
指令组
子shell
特殊字符
2、指令功能
别名
历史命令
自动补齐
3、管道和重定向
输入输出重定向
管道
1、输入输出处理功能
a、指令解析:shell是一种命令解释器。shell区分大小写,其语法结构为:
#指令 [-选项] [--选项] 参数1 ...... 参数n
b、多指令:一次性执行多条指令。
#指令1;......;指令n
c、指令替代:
echo 回显命令。“echo 字符串”将字符串回显至屏幕
#指令1`指令2`,将指令2的执行结果作为指令1的参数使用。
#echo “今天是`date`”
今天是:2009-11-26 当前的系统时间是:15:20
d、指令组:将多个指令的执行结果作为一个结果输出。
#{指令1alias leo='echo "今天是:`date +%Y-%m-%d`";echo "当前的系统时间是:`date +%H:%M:%S`" ';......;指令n}
e、子shell:
f、特殊字符:
#注释
“”、‘’,转义字符,将特定意义的字符转换为普通字符。
\ , 转义字符。
“ab “c
‘“abc“'
‘“\a"\b c"\'
通配符:* ? [ ] [^ ]
2、指令功能
a、别名功能:
查看别名:#alias
定义别名: #alias 别名=‘指令叙述’
alias leo='echo "今天是:`date +%Y-%m-% 108 cleard`";echo "当前 的系统时间是:`date +%H:%M:%S`" '
固化别名配置:/etc/bashrc 添加别名设置
b、历史命令
调用历史命令:使用上下方向键
历史命令列表:#history
调用特定的历史命令:#!历史命令编号
3、输入输出重定向
a、输入输出重定向:将进程的stdin、stdout、stderr由默认设备修改为特定设备。
b、输入重定向:<,语法。 进程 < 输入设备
c、输出重定向:>,语法 进程 > 输出设备 (覆盖式添加)
输出追加重定向:>>,语法 进程 >> 输出设备 (追加式添加)
d、错误输出重定向:2>,语法 进程 2> 输出设备
错误输出追加重定向: 2>>,语法 进程 2>> 输出设备
e、&> 将标准输出和标准错误输出重定向到同一设备
f、/dev/zero 永远为0的文件
/dev/null 永远为空的文件
g、将局部变量转换为环境变量:#export 变量名
h、删除变量:#unset 变量名
例:查询当前目录下是否存在file1文件,如果存在则删除并重新创建。否则,创建file1文件?
执行:#rm –f `ls file1 2>/dev/null` : touch file1 : cat /boot/grub/grub.config > file1
管道 --- | ---
把进程1的标准输出作为进程2的标准输入。
例:ls /etc/ | more
把etc下的内容分页显示。
计算功能
#echo $[算数表达式]
算术表达式支持+ - * /
变量的键盘数据读取
# read A
read 变量名 由标准输入设备读取数值,并将数值赋予变量。
read语法:
read 变量名 将由键盘输入的内容赋值给变量
read -p “提示信息” 变量名 -p在键盘输入前显示提示信息。
read -t 秒数 变量名 -t定义等待输入时间
对于同一变量而言,其新值会覆盖旧值。
echo "输入被加数";read A;echo "输入加数";read B;echo $[$A+$B]
3、echo "输入值1";read A;echo "输入运算符";read S;echo "输入值 2";read B;echo $[$A $S $B]
4、echo Hello,$USER;echo "What is your name?";read
NAME;echo "Hello,$NAME,The current time is `date +%H:%M: %S`"
控制命令:
1、&&:语法:
命令1 && 命令2
如果命令1成功执行,则执行命令2。
例: 在目录中如果有file1 文件则删除。
执行:#ls file1 &>/dev/null && rm -f file1
注:命令在执行完成后会出现一个退出码。0成功执行,非0不成功执行。
查看命令的退出码:#echo $?
例;read A;grep^$A /etc/passwd >/dev/null && echo "存在该用户" | | echo "用户不存在"
2、||:语法:
命令1 || 命令2
如果命令1不成功执行则执行命令2。
例:在目录中如果没有file1文件则创建该文件。
文件创建程序:
要求用户输入待创建的文件的绝对路径(输入时间为10秒)如果待创建文件已存在,则提示用户“文件已存在”如果待创建文件不存在,则创建文件,并提示用户"文件已创建成功"
read - p "输入绝对路径" -t 10 123;ls $123 && echo "文件已存 在" || echo "文件`touch $123`已创建"
变量
1、查看变量:
#set 查看所有变量
#env 查看环境变量
2、变量的转换(将本地变量转换为环境变量)
#export 变量名
3、变量的表示方法:$变量名4、引用变量:#echo $变量名
#echo $?
#echo $$ 显示当前shell的进程编号
5、定义变量:变量名=变量值 A=10
6、删除变量:unset 变量名
7、修改变量的属性:
#declare [选项] 变量名
-i 将变量定义为×××数据?
-x 将变量定义为环境变量
-r 将变量定义为只读变量,不能删除和修改
shell命令行基本格式
$|#命令名 -选项 --选项 参数1 ...... 参数n
1、命令名:可执行文件,存放于系统的特定位置。
2、选项:-字符选项,--单字选项,选项决定了命令的执行方式。
3、参数:定义了命令的执行对象。
4、shell命令行对大小写敏感(区分大小写)
5、支持自动补齐功能。利用tab键实现。
shell script 001
一、正则表达式
1、正则表达式:是一个字符串,用于在搜索中匹配相同的字符串,即明确搜索内
容。
2、正则表达式的格式:元字符字符串
元字符用于搜索控制。
存在三套源字符:基本源字符(应用于所有应用程序)
扩展源字符
POSIX源字符
3、基本源字符
^字符串 锚定行的开始字符串 ^Document
字符串$ 锚定行的结尾字符串 Off$
. 匹配任意一个字符 k..p
[ ] 匹配中括号中的任意字符 ^[Tt]he
[^] 不匹配中括号中的任意字符 /^[^T]he
\ 转义字符
二、正则表达式的工具
1、vi中的正则表达式的工具
/ 查找工具:/正则表达式
:s 查找替换::起始行号,结束行号s/正则表达式/替换值/g
2、grep
grep用于在一个或多个文件中搜索包含特定字符串的行。
语法:grep [选项] 正则表达式 文件名
-n 显示被检索行的行号
-c 显示检索到的行数
-x 显示检索到的行的上下x行
-v 反向显示A;
-i 忽略正则表达式中字符的大小写
grep的返回值:grep成功检索到内容,返回 0
grep未成功检索到内容,返回1
grep检A=`head -n 29 /etc/passwd |tail -n 1|wc -m`;B=`echo $[$A/2]`; head -n 29 /etc/passwd |tail -n 1|cut -c 1-$B索的文件不存在,返回2
查看应用程序的返值:echo $?
六、子shell
1、shell中对环境变量的修改会影响到Shell本身。子shell的环境变量不影响父shell。
2、定义子shell:#(命令)
上一篇:Linux--网络服务管理
下一篇:Linux脚本文件的生成
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
初学Linux--shell
&n
shell 编程语言 local export Linux-Shell -
[Linux--Shell]使用命令行关机或重启
问题描述对于Linux系统而言,许多时候
服务器 linux shutdown reboot linux系统 -
linux shell
ls -l > log.txt (标准输出) ls -l >> log.txt (标准错误输出)
局部变量 bash 标准输出 linux