linux 之 shell
echo 输出命令
语法:echo 【选项】【输出内容】
选项
-e:支持反斜线控制的字符转换
范例 vi hello.sh
#!/bin/bash
#author liuch
echo "我是最正直的人。"
修改执行权限:chmod 755 hello.sh
调用方法1: ./hello.sh
调用方法2: bash hello.sh
历史命令
history【选项】【历史命令保持文件】
选项:
-c: 清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件~/.bash_history
历史命令默认保存1000条,可以修改HISTSIZE,设置条数。
vi /etc/profile
HISTSIZE=1000
历史命令的调用
使用上下箭头调用以前的历史命令
使用“!n”重复执行第n条历史命令
使用“!!”重复执行上一条命令
使用“!字串”重复执行最后一条以该字串开头的命令
命令与文件补全
在输入命令或文件时,输入开头部分,按“tab”键就会自动进行补全
如果有多个相同开头的文件或命令,按两下“tab”键会列出所有相同开头的文件或命令,再补全字符,按“tab”补全剩余字符。
命令别名
alias 别名=‘原命令’ #设定命令别名
alias #查询命令别名
命令执行顺序
- 第一顺序执行用绝对路径或相对路径执行的命令
- 执行别名
- 执行bash的内部命令
- 执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
让别名永久生效
vi ~/.bashrc
删除别名
unalias 别名
- Ctrl + a :移到命令行首
- Ctrl + e :移到命令行尾
- Ctrl + f :按字符前移(右向)
- Ctrl + b :按字符后移(左向)
- Alt + f :按单词前移(右向)
- Alt + b :按单词后移(左向)
- Ctrl + u :从光标处删除至命令行首
- Ctrl + k :从光标处删除至命令行尾
- Ctrl + y :粘贴至光标后
- Alt + u :从光标处更改为全部大写的单词
- Alt + l :从光标处更改为全部小写的单词
- Ctrl + t :交换光标处和之前的字符
- Alt + t :交换光标处和之前的单词
- Ctrl + r:逆向搜索命令历史
- Ctrl + g:从历史搜索模式退出
- Ctrl + p:历史中的上一条命令
- Ctrl + n:历史中的下一条命令
- Ctrl + l:清屏
- Ctrl + o:执行当前命令,并选择上一条命令
- Ctrl + s:阻止屏幕输出
- Ctrl + q:允许屏幕输出
- Ctrl + c:终止命令
- Ctrl + z:挂起命令
- Ctrl + c:强制终止当前的命令



输入重定向
语法:wc 【选项】【文件名】
选项:
-c 统计字节数
-w 统计单词数
-l 统计行数
语法2:命令< 文件


3 变量分类
- 用户自定义变量
- 环境变量:这种变量中主要保存的是和系统操作环境相关的数据
- 位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。
- 预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。
4 本地变量
只在当前的shell中生效
name="hello"
aa=123
aa="$aa"456
aa="$aa"789
变量调用 echo $name
变量查看(所有变量) set
变量删除 unset name
环境变量
环境变量会在当前shell和这个shell的所有子shell当中生效。如果把环境变量写入响应的配置文件,那么这个环境变量就会在所有的shell中生效。
设置环境变量
export 变量名=变量值 #申明变量
export 变量名 #自定义变量转为环境变量
env #查询变量
unset 变量名 #删除变量
pstree #确定进程树
PATH:系统查找命令的路径
#echo $PATH
PATH=$PATH:/root #命令叠加
PS1:定义系统提示符的变量
\d:显示日期,格式“星期 月 日”
\h: 显示简写主机名。如默认主机名 “localhost”
\t:显示24小时制时间,格式为“HH:MM:SS”
\T: 显示12小时制时间,格式为“HH:MM:SS”
\A:显示24小时制时间,格式为“HH:MM:”
\u: 显示当前用户名
\w:显示当前所在目录的完整名称
\W:显示当前所在目录的最后一个目录名称
\#: 执行的第几个命令
\$: 提示符。如果是root用户会显示提示符为"#",如果是普通用户会显示提示符为“$”
举例: PS1=‘[\u@\t \# \w]\$ ’
位置参数变量
$n: n为数字,$0代表命令本身,$1-$9 代表第一到第9个参数,十以上的参数需要用大括号包含,如${10}
$*:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
$#:这个变量代表命令行中所有参数的个数
例子:
#!/bin/bash
num1=$1
num2=$2
sum=$(($num1+$num2)) #变量sum的和是num1加num2
echo $sum #打印变量sum的值
例子:
#!/bin/bash
echo “A total of $# paramenters”
#使用$#代表所有参数的个数
echo “The paramenters is : $* ”
#使用$*代表所有参数
echo “The paramenters is : $@”
#使用$@代表所有参数
环境变量作用

条件判断
test -e student.txt
#检查是否存在student.txt文件
[ -e student.txt ]
#检查是否存在student.txt文件
echo $?
#检查上一条命令是否正确执行。
[ -d /root ] && echo "yes" || echo "no"
#判断存在目录/root,存在打印yes,否则打印no






linux 之 shell的更多相关文章
- 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器
本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...
- linux中shell变量$#,$@,$0,$1,$2的含义解释
linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...
- 使用C#给Linux写Shell脚本(下篇)
在上篇的<使用C#给Linux写Shell脚本>结尾中,我们留下了一个关于C#如何调用BashShell的问题.在文章发布之后,我留意到有读者留言推荐使用“Pash”(一款类PowerSh ...
- linux中用shell获取昨天、明天或多天前的日期
linux中用shell获取昨天.明天或多天前的日期 时间 -- :: BlogJava-专家区 原文 http://www.blogjava.net/xzclog/archive/2015/12/0 ...
- linux中用shell获取时间,日期
linux中用shell获取昨天.明天或多天前的日期:在Linux中对man date -d 参数说的比较模糊,以下举例进一步说明:# -d, --date=STRING display time d ...
- Linux 的shell 字符串截取很有用。有八种方法。
一 Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.linuxidc.com/123.htm 1 # 号截取,删除左边字符,保留右边字符. echo ${va ...
- Linux Bash Shell 快速入门
BASH 的基本语法 最简单的例子 —— Hello World! 关于输入.输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 2.1 ...
- linux,shell输入反斜杠显示'W'。
linux,shell输入反斜杠显示'W'. solution: 字体必须为"Courier New".
- 06 Linux下Shell介绍
一.概述 每个人在成功登陆Linux后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的 ...
- linux BASH shell设置字体与背景颜色
linux BASH shell下设置字体及背景颜色的方法. BASH shell下设置字体及背景颜色 echo -e "\e[31mtest\e[41m" \e[30m 将字 ...
随机推荐
- centos7安装配置tomcat9
什么是Tomcat Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaSe ...
- HttpWebResponse Post 前端控件数据,后台如何接收?
MVC视图页: @{ Layout = null; } <!DOCTYPE html> <html> <head> <title>test</ti ...
- 工控随笔_21_西门子_WinCC的VBS脚本_10_对象_01
最近有点小忙,各种事情,心情也不是很好,烦心事特别多,因此最近更新的比较慢. 不敢再松懈了,今天正好有点时间,就继续看了一下VBScript中关于对象的一些内容. 一.对象 OOP是编程规模发展到一定 ...
- 工控随笔_10_西门子_WinCC的VBS脚本_01_基础入门
很多人都认为VB语言或者VBS脚本语言是一种很low的语言,从心里看不起VB或者VBS, 但是其实VBS不仅可以做为系统管理员的利器,同样在工控领域VBS语言大有用武之地. 西门子的WinCC提供了两 ...
- transform、transition、animation 区别
Transform 在部分的test case当中,每每演示transform属性的,看起来好像都是带动画.这使得小部分直觉化思维的人(包括我)认为transform属性是动画属性.而恰恰相反,tra ...
- ABBYY FineReader 14OCR解锁
ABBYY FineReader 14是2017年新推的文字处理编辑软件,能够将图像扫描转换成文档处理.不论是在使用群体方面还是功能特性方面都是极好的. •确保扫描仪正确地连接到电脑,并将其打开.查阅 ...
- Cleanmymac X空间透镜再升级
什么是空间镜透,在Cleanmymac X中具体干什么使得?你了解多少?没关系,不要紧,看这里,下面给大家分享一下这款好用软件下的实用功能-空间透镜.盘它! 首先,Cleanmymac X是一款Mac ...
- scrapy实战之scrapyrt的使用
scrapyrt为scrapy提供了一个http接口,有了它,我们不用再执行命令,而是直接请求一个http接口来启动项目,如果项目是部署在远程的,会比较方便. 1.安装: pip install sc ...
- docker 删除指令
杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有已经停止的容器 docker rm $(docker ps -a -q) 删除所有未打 dangling ...
- Web 应用程序项目 Himall.Web 已配置为使用 IIS。 无法访问 IIS 元数据库
Web应用程序项目XXXX已配置为使用IIS.无法访问IIS元数据库.您没有足够的特权访问计算机上的IIS网站,xxxxiis 问题:Windows8下直接使用VS打开项目,出现问题:XXXX已配置为 ...