zoukankan      html  css  js  c++  java
  • shell基础

    1、shell概述

    作用:命令解释器

    shell分类:#cat /etc/shells

    ​ /sbin/nologin -->不让账号登录

    ​ /bin/bash -->默认的shell,与sh兼容

    ​ /bin/sh -->从UNIX继承来的一套

    ​ /bin/csh -->BSD系统,语法与C语言类似

    查看当前系统具体用的哪个shell:

    ​ #echo $SHELL

    2、shell中的常用命令

    a、history查看历史命令

    ​ 历史命令默认1000条,可修改/etc/profile中的“HISTSIZE=1000

    ”字段来进行配置。

    ​ #!n:执行第n条历史命令

    ​ #!!:重复执行上一条命令

    ​ #!字符:重复执行以该字符开头的最后一个历史命令

    b、alias起别名

    ​ 别名永久保存:在/etc/bashrc文件末尾追加”alias grep='grep --color=never'“,然后使用“source /etc/bashrc”让配置立即生效!

    ​ unalias:取消别名

    c、执行多条命令

    ​ ';':顺序执行多条命令

    ​ '&&':前面命令执行成功才执行后面命令,否则后面命令不执行

    ​ '||':前面命令不成功才执行后面命令,否则后面命令不执行

    ​ 举例:ls test.sh > /dev/null&& echo "good" || echo "not good“

    ​ 注意:重定向不影响命令错误与否的最终判断。

    ​ ls test.sh >& /dev/null

    ​ 等同于:ls test.sh 1>/dev/null 2>/dev/null

    d、'|'管道符号

    ​ 举例:#ls -l | grep "test"

    e、echo显示字符串

    ​ --help选项:/bin/echo –help

    ​ --version选项:/bin/echo --version

    3、shell脚本的简单使用

    习惯命名:“***.sh”

    基本元素:

    ​ #!/bin/bash -->必须写,指定接下来要使用shell

    ​ #字符串 -->注释信息

    ​ 脚本内容:常见的命令,变量,控制语句

    举例:

    ​ #!/bin/bash

    ​ #我们的第一个脚本

    ​ pwd

    ​ date;who

    脚本的运行:

    ​ i、可以直接使用sh命令来运行脚本

    ​ 例:$sh f3.sh

    ​ ii、可以修改脚本文件的可执行权限

    ​ 例:$chmod +x f3.sh

    ​ $./f3.sh

    4、shell中的变量

    命名规范:由字母、数字和_组成,但是不能以数字开头。

    注意:bash中变量类型默认为字符串,如果进行数字运算必须修改为数值型。

    变量的分类:本地变量(一般是脚本中声明的变量)、环境变量(在操作系统上声明的变量,多个脚本都能使用,用户可以修改其值)、内部变量(系统中声明的变量,用户不能修改值)

    a、本地变量

    ​ 语法格式:变量名=值

    ​ 注意:=左右没有空格;值中如果有空格,则需要用""括起来;变量名严格区分大小写。

    ​ 举例:

    ​ #name="zhang san"

    ​ #echo $name

    ​ #echo ${name}is good man

    ​ 建议:变量使用时加上{}

    ​ set命令:查看本地所有变量

    ​ 例:#set | grep "name"

    ​ unset命令:清除变量

    ​ 例:#unset name

    b、环境变量

    ​ 概念:进程(正在运行的软件或脚本)

    ​ 举例:vi f1.sh

    ​ #!/bin/bash

    ​ echo "当前账号的家$HOME"

    ​ 注意:环境变量字母都大写

    ​ 设置环境变量:

    ​ #环境变量名=值

    ​ #export 环境变量名 -->告诉操作系统该变量是环境变量

    ​ env命令:查看所有环境变量

    ​ 扩展:HOME(存放家目录)、USER(当前账号)、SHELL(当前系统使用的shell)、LANG(当前系统使用的语言)、PWD(当前工作目录)、PATH(保存软件的可执行文件路径)

    ​ 注意:PATH中的路径用‘:’隔开,谁在前先使用谁。

    ​ unset命令:清除环境变量

    ​ 环境变量的永久保存:将环境变量的声明放到~/.bash_profile

    ​ 注意:按照传统,定义的变量如PATH放到.bash_profile中,而像别名函数等放在.bashrc中.

    c、内部变量

    ​ 举例:TODO

    ​ $#参数个数

    ​ $?最后命令执行是否成功,0表示成功

    ​ $0脚本名

    ​ $*/$@参数列表

    ​ $n第n个参数

    ​ $$本进程id,即pid

    d、特殊符号

    ​ '':原样输出

    ​ "":除了$、、`之外都是普通字符

    ​ ``:在字符串中当作命令来执行

    ​ :针对特殊字符,想在双引号中原样输出,需要转义

  • 相关阅读:
    muduo 库解析之四:TimeZone
    muduo 库解析之三:Date
    muduo 库解析之九:Condition
    muduo 库解析之八:Mutex
    muduo 库解析之七:Atomic
    [linux]查看文件目录是否为硬链接
    [go] 解决:concurrent write to websocket connection
    [windows] 保存浏览器网页长截图
    [项目] 系统迁移的几个注意点
    [MySQL] order by field 自定义排序
  • 原文地址:https://www.cnblogs.com/striver20/p/12785475.html
Copyright © 2011-2022 走看看