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 #查询命令别名

命令执行顺序

  1. 第一顺序执行用绝对路径或相对路径执行的命令
  2. 执行别名
  3. 执行bash的内部命令
  4. 执行按照$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:命令< 文件

变量分类

  • 用户自定义变量
  • 环境变量:这种变量中主要保存的是和系统操作环境相关的数据
  • 位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。
  • 预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。

本地变量

只在当前的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的更多相关文章

  1. 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器

    本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...

  2. linux中shell变量$#,$@,$0,$1,$2的含义解释

    linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

  3. 使用C#给Linux写Shell脚本(下篇)

    在上篇的<使用C#给Linux写Shell脚本>结尾中,我们留下了一个关于C#如何调用BashShell的问题.在文章发布之后,我留意到有读者留言推荐使用“Pash”(一款类PowerSh ...

  4. linux中用shell获取昨天、明天或多天前的日期

    linux中用shell获取昨天.明天或多天前的日期 时间 -- :: BlogJava-专家区 原文 http://www.blogjava.net/xzclog/archive/2015/12/0 ...

  5. linux中用shell获取时间,日期

    linux中用shell获取昨天.明天或多天前的日期:在Linux中对man date -d 参数说的比较模糊,以下举例进一步说明:# -d, --date=STRING display time d ...

  6. Linux 的shell 字符串截取很有用。有八种方法。

    一 Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.linuxidc.com/123.htm 1  # 号截取,删除左边字符,保留右边字符. echo ${va ...

  7. Linux Bash Shell 快速入门

    BASH 的基本语法 最简单的例子 —— Hello World! 关于输入.输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 2.1     ...

  8. linux,shell输入反斜杠显示'W'。

    linux,shell输入反斜杠显示'W'. solution: 字体必须为"Courier New".

  9. 06 Linux下Shell介绍

    一.概述 每个人在成功登陆Linux后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的 ...

  10. linux BASH shell设置字体与背景颜色

    linux BASH shell下设置字体及背景颜色的方法. BASH shell下设置字体及背景颜色  echo -e "\e[31mtest\e[41m"  \e[30m 将字 ...

随机推荐

  1. 压力测试:系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式

    PS:下面是性能测试的主要概念和计算公式,记录下: 一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联.单个reqeust 对CPU消耗越高, ...

  2. Python图片裁剪

    我们使用的是Image中的crop(box)功能,它需要一个参数box,元组 类型,元组包括4个元素,如:(距离图片左边界距离x, 距离图片上边界距离y,距离图片左边界距离+裁剪框宽度x+w,距离图片 ...

  3. 西门子S7-200SMART PLC视频教程(百度网盘)

    西门子S7-200SMART PLC视频教程(百度网盘)西门子S7-200 SMART PLC是西门子公司推出的高性价比小型plc,是国内广泛使用的S7-200PLC的更新换代产品. 以下是关于S7- ...

  4. ubuntu 14.04升级gcc 4.8到5.3

    添加PPA库 #sudo apt-get install software-properties-common #sudo add-apt-repository ppa:ubuntu-toolchai ...

  5. Android环境下hanlp汉字转拼音功能的使用介绍

    由于项目需要在Android手机设备上实现汉字转拼音功能(支持多音字),于是首先想到了Pinyin4j+多音字映射对照表的实现方案,并在项目中试用了一段时间,发现数据量大时,其耗时非常严重.后来寻找其 ...

  6. 使用Let's Encrypt搭建永久免费的HTTPS服务

    1.概述1.1 HTTPS概述HTTPS即HTTP + TLS,TLS 是传输层加密协议,它的前身是 SSL 协议.我们知道HTTP协议是基于TCP的.简而言之HTTPS就是在TCP的基础上套一层TL ...

  7. 使用Visual Studio Code开发(编译、调试)C++程序

    总体安装步骤 安装VSC(Visual Studio Code). 安装C/C++编译器(如MinGW-w64),然后配置好环境变量.//完成这步即可在VSC的终端(命令行)下编译.运行.cpp程序了 ...

  8. 二维码(android)

    我们都知道一般的二微码都是以不同形式显示有的是登入,有的是网页,其实二维码只是一个字符串.到这里我们就有一个疑问那二维码是这样判断是网站或者是登入功能的呢? 其实这些判断部分,二维码生成器早就给你完成 ...

  9. Spring boot加载REACTIVE源码分析

    一,加载REACTIVE相关自动配置 spring boot通过判断含org.springframework.web.reactive.DispatcherHandler字节文件就确定程序类型是REA ...

  10. CleanMyMac X教程之-安装卸载

    Mac清理软件CleanMyMac X的出现成功的吸引了Mac用户的注意,CleanMyMac X是2018年发布的,深受许多Mac用户的青睐.windows操作端有360等众多清洁软件,那么Mac端 ...