Shell入门基础
来源:互联网 发布:51电子单片机原理图 编辑:程序博客网 时间:2024/05/22 15:56
Shell基础
一、Shell概述
Shell是命令行解释器
Shell是依赖Ascii码表翻译成二进制
用户--->Shell--->计算机内核
计算机内核---> Shell ---> 用户
Shell还是功能强大的编程语言
分类
Bourne Shell
C Shell
这两种语法彼此不兼容。
Bourne家族主要包括sh、ksh、Bash、psh、zsh
C家族主要包括:csh、tcsh
linux 执行的是Bash
echo $SHELL 命令 #当前计算机执行的shell
vi /etc/shells #查看计算机兼容的shell
二、脚本执行方式
1、echo输出命令
echo "hello world"
echo "hello\b world"
echo "hello\b\t\n world"
echo "\x68\t\x65\t\x6c\n\x6c\t\x6f"
echo -e "南海是中国的"
echo -e "\e[1;31m 南海是中国的\e[0m"
2.第一个脚本
vi hello.sh
#!/bin/bash
#The first program
echo -e "\e[1;31m 天上掉下来一个林妹妹\e[0m"
3. chmod 755 hello.sh #赋予权限
./hello.sh #执行脚本
bash hello.sh
三、Bash的基本功能
1、命令别名与快捷键
alias 查看系统的中所有的命令别名
alias ls='ls --color=never'
alias ls='ls --color=auto'
alias vi='vim' #重启后无效
vi ~/.bashrc #环境变量配置文件中写入 别名设置命令
unalias vi
常用的快捷键
Ctrl + c 强制退出命令
Ctrl + l 清屏
Ctrl + u 删除到行首
Ctrl + a 光标移到命令行首
Ctrl + e 光标移到命令行尾
Ctrl + z 把命令放入后台
Ctrl + r 在历史命令中搜索
2、历史命令
history [选项] [历史命令保存文件]
选项
-c:清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
history
cat /home/.bash_history
history -w
history -c
历史命令默认保存的是1000条
vi /etc/profile 修改默认保存的条数
history
!n 执行第n条命令
!! 执行上一次命令
!字串 调用最后一个字串开头的命令
命令补全
tab键
3、输出重定向
标准输入输出
设备名 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/sdtout 1 标准输出
显示器 /dev/sdterr 2 标准错误输出
标准输出重定向
命令 > 文件 覆盖到文件
命令 >> 文件 追加都文件
标准错误输出重定向
错误命令 2>文件 覆盖到文件
错误命令 2>>文件 追加到文件
ifconfig > test.log
ls >> test.log
lschang 2>>test.log
正确或错误信息都写到文件的命令:
命令 > 文件 2>&1
命令 >> 文件 2>&1
命令 &>文件
命令 &>>文件
ifconfig >> test.log 2>&1
ifconfig laoshi >> test.log 2>&1
ls &>test.log
ls dhhf &>test.log
cat xdy >> access.log 2>>error.log #正确命令日志保存到前者,错误日志保存到后者
输入重定向
wc [选项][文件]
选项
-c :统计多少行
-w :统计多少单词
-l :统计多少字符
wc access.log
4、多命令顺序执行
; 命令1;命令2 #顺序执行
&& 命令1&&命令2 #按逻辑且执行
|| 命令1||命令2 #按逻辑或执行
date;ls;cd/etc/;pwd
date;tar -zcvf test.tar.gz;date
ls && echo yes || echo no #检测命令是否正确
管道符
格式:命令1 | 命令2
ps -ef | grep java
ls -l /etc | more
netstat -an | grep ESTABLISHED | wc -l
5、Shell中特殊符号
通配符
?匹配一个字符
* 匹配多个字符
[] 匹配中括号中任意一个字符
[-] 匹配中括号中任意的字符串
[0-9] 匹配中0到9中的一个数字
[^] 逻辑非
也就是正则表达式
其他特殊字符了解下
''
""
`` 反引号
$()
#
$
\ 转义符
ls c*
一、Shell概述
Shell是命令行解释器
Shell是依赖Ascii码表翻译成二进制
用户--->Shell--->计算机内核
计算机内核---> Shell ---> 用户
Shell还是功能强大的编程语言
分类
Bourne Shell
C Shell
这两种语法彼此不兼容。
Bourne家族主要包括sh、ksh、Bash、psh、zsh
C家族主要包括:csh、tcsh
linux 执行的是Bash
echo $SHELL 命令 #当前计算机执行的shell
vi /etc/shells #查看计算机兼容的shell
二、脚本执行方式
1、echo输出命令
echo "hello world"
echo "hello\b world"
echo "hello\b\t\n world"
echo "\x68\t\x65\t\x6c\n\x6c\t\x6f"
echo -e "南海是中国的"
echo -e "\e[1;31m 南海是中国的\e[0m"
2.第一个脚本
vi hello.sh
#!/bin/bash
#The first program
echo -e "\e[1;31m 天上掉下来一个林妹妹\e[0m"
3. chmod 755 hello.sh #赋予权限
./hello.sh #执行脚本
bash hello.sh
三、Bash的基本功能
1、命令别名与快捷键
alias 查看系统的中所有的命令别名
alias ls='ls --color=never'
alias ls='ls --color=auto'
alias vi='vim' #重启后无效
vi ~/.bashrc #环境变量配置文件中写入 别名设置命令
unalias vi
常用的快捷键
Ctrl + c 强制退出命令
Ctrl + l 清屏
Ctrl + u 删除到行首
Ctrl + a 光标移到命令行首
Ctrl + e 光标移到命令行尾
Ctrl + z 把命令放入后台
Ctrl + r 在历史命令中搜索
2、历史命令
history [选项] [历史命令保存文件]
选项
-c:清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
history
cat /home/.bash_history
history -w
history -c
历史命令默认保存的是1000条
vi /etc/profile 修改默认保存的条数
history
!n 执行第n条命令
!! 执行上一次命令
!字串 调用最后一个字串开头的命令
命令补全
tab键
3、输出重定向
标准输入输出
设备名 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/sdtout 1 标准输出
显示器 /dev/sdterr 2 标准错误输出
标准输出重定向
命令 > 文件 覆盖到文件
命令 >> 文件 追加都文件
标准错误输出重定向
错误命令 2>文件 覆盖到文件
错误命令 2>>文件 追加到文件
ifconfig > test.log
ls >> test.log
lschang 2>>test.log
正确或错误信息都写到文件的命令:
命令 > 文件 2>&1
命令 >> 文件 2>&1
命令 &>文件
命令 &>>文件
ifconfig >> test.log 2>&1
ifconfig laoshi >> test.log 2>&1
ls &>test.log
ls dhhf &>test.log
cat xdy >> access.log 2>>error.log #正确命令日志保存到前者,错误日志保存到后者
输入重定向
wc [选项][文件]
选项
-c :统计多少行
-w :统计多少单词
-l :统计多少字符
wc access.log
4、多命令顺序执行
; 命令1;命令2 #顺序执行
&& 命令1&&命令2 #按逻辑且执行
|| 命令1||命令2 #按逻辑或执行
date;ls;cd/etc/;pwd
date;tar -zcvf test.tar.gz;date
ls && echo yes || echo no #检测命令是否正确
管道符
格式:命令1 | 命令2
ps -ef | grep java
ls -l /etc | more
netstat -an | grep ESTABLISHED | wc -l
5、Shell中特殊符号
通配符
?匹配一个字符
* 匹配多个字符
[] 匹配中括号中任意一个字符
[-] 匹配中括号中任意的字符串
[0-9] 匹配中0到9中的一个数字
[^] 逻辑非
也就是正则表达式
其他特殊字符了解下
''
""
`` 反引号
$()
#
$
\ 转义符
ls c*
0 0
- shell入门基础
- Linux shell入门基础
- shell入门基础
- shell入门基础必备
- shell入门基础必备
- shell入门基础
- shell入门基础必备
- shell入门基础必备
- 01 Shell入门基础
- Shell入门基础
- shell入门基础
- shell基础入门
- shell基础入门
- shell脚本入门篇---shell基础
- linux shell 编程入门基础
- shell基础和简单入门
- shell基础入门(一)
- shell脚本的基础入门
- MySQL中的数据类型
- 一文看尽中国互动直播行业——低俗无聊?那是现状,不是未来
- Eclipse开发C/C++之使用技巧小结,写给新手
- 推荐算法预览
- msm8610 lcd driver code analysis
- Shell入门基础
- 学习maven---安装maven和体验maven的实现
- css3中的zoom元素属性值测试
- 如何处理监控类直播中遇到的奇葩问题【干货】
- 制作Linux U盘启动
- Java Web Filter(过滤器的使用)
- Python学习(1):注释
- UITableViewCell 多余不显示问题
- Swift实现"视差效果"的视图轮播