《Shell基础》

来源:互联网 发布:淘宝主图图片转码 编辑:程序博客网 时间:2024/06/04 23:28

Shell基础

Shell是一个命令行解释器,它为用户提供一个像Linux内核发送请求以便运行程序的界面系统级程序。Shell还是一个编程语言,在Shell中可以直接调用Linux系统命令。echo $SHELL 查看Linux使用的shell类型(bash)。
- 通过/etc/shells文件,查看当前shell支持哪些shell,sh进入sh的Shell界面简洁,exit退出当前子shell。

echo [选项] [输出内容]选项:-e,支持反斜线控制的字符转换。[\a,警告音;\b,\n,\r,\t,\v,\o,\x]echo -e "\e[1;31m binggo \e[0m",显示颜色30m=黑色,31m=红色,32m=绿色,33m=黄色,34m=蓝色,35m=杨红,36m=青色,37m=白色

#!/bin/bash后路径所指定的程序是解释该脚本的shell程序,不能省略。
运行shell的两种方式:

bash test.sh chmod u+x test.sh./test.sh

不能直接test.sh,除非当前工作目录在PATH中。./表示在当前目录中执行该shell脚本。

别名

alias    //查看别名alias ls='ls --color=never'    //设定别名unalias ls    //删除别名//~.bashrc环境变量配置文件,在其中修改别名会永久生效source ~.bashrc     //使.bashrc立刻生效,不然只有重启

命令生效的顺序
第一,绝对路径或相对路径执行的命令;
第二,别名;
第三,Bash内部命令;
第四,$PATH环境变量定义目录(echo $PATH)顺序查找的第一个命令。

历史命令

history [选项]选项c:清空,w:写入~.bash_history!字符    //重复最后一天以该字符开始的命令vim /etc/profile    //其中HISTSIZE=1000限定了历史命令储存条数

输出重定向

标准输出重定向:>(覆盖),>>(追加)
错误输出重定向:2>,2>>

ls > test.log    #test.log不存在,则会自动创建ls &>> test.log    #无论ls正确、错误,都想信息保存到test.log中去(或ls >> test.log 2>&1ls >>test1.log 2>>test2.log    # ls正确则保存到test1.log,,错误则保存到test2.log中去
wc [选项]-c:字节数,-w:单词数(检测到空格),-l:行数。

命令补齐:命令补齐是根据PTAH中的命令补齐,文件补齐根据当前目录下文件补齐

管道符

命令1 && 命令2:命名1正确执行才执行命令2
命令1 || 命令2:命令1出错在执行命令2
命令1 && echo yes || echo no可判断命令1是否被正确执行(或echo $?)
命令1 | 命令2,命令1正确执行结果作为命令2的输入,注意,命令2要能够执行命令1的输出结果。

通配符

通配符 说明 ? 任意一个字符 * 任意个字符 [abc] 匹配a或b或c [0-9] 匹配0-9一个数字 [^a] 匹配不是a的一个字符

特征符号

符号 作用 ”(单引号) 单引号内的所有的特殊字符都没有意义 “”(双引号) “(反引号)/$(),a=$(ls) 将系统命令的结果储存到变量a $ 调用变量 # 注释

bash

type [-tpa] name:查看指令是否为bash的内部指令.
[ctrl]+u/[ctrl]+k:光标前/后的指令删除
[ctrl]+a/[ctrl]+e:移动光标到最前/最后

work="/root/yy/yolo/darknet"cd $work    #->直接进入darknet这个工作目录

env:查看环境变量
set:查看所有变量
PS1:提示符设定,\d:”Mod Sun 13”;\H:完整主机名;\h:第一个点号之前主机名;\u:用户名;\w:完整工作目录;\W:工作目录最后一个目录;#:下达的第几个指令;$:提示符
echo $$查看本shellPID,$本shell的PID
echo $?上个指令的回传值,若上个指令成功执行,返回0,否则返回错误代码
read [-pt] variable p:接字符串表示提示符;t,接数字表示等待的秒数。
declare [-aixr]宣告变量类型,i整数数字;x环境变量;r只读变量。