首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Shell笔记1

1.shell环境及特性

a.定义:shell在Linux内核与用户之间的解释器程序,通常指/bin/bash

负责向内核翻译及传达用户程序指令

相当于操作系统的外壳

b.使用方式:

交互式--命令行

非交互式--脚本

c.shell种类

切换shell环境:

更改登陆shell:usermod chsh

手动执行目标shell程序

d.操作历史命令

history工具:

-history

-history -c 清空历史

!78 调用历史记录中的第78条命令

!str执行最近一次以str开头的历史命令

2.IO设备与重定向

a.交互式硬件设备

标准输入:从该设备接受用户输入的数据 0

标准输出:从改设备向用户输出数据 1

标准错误:通过该设备报告执行中的出错信息 2

ls -lh /etc/hah /etc/ >/tmp/test.test 2>&1

3.shell脚本

作为命令字:指定脚本的路径,需要x权限

作为参数:不需要x权限

sh 脚本路径

source 脚本路径

.脚本路径

调试shell脚本:sh -x 脚本路径

4.简单脚本示例

安装vsftpd服务,启动并设置为开机自启

vim /root/ftpon.sh

#!/bin/bash

yum install vsftpd -y

service vsftpd start

chkconfig vsftpd on

5.shell变量

定义赋值变量,注意等号两边不能有空格,不要使用关键字和特殊字符

X=12 定义变量X,赋值为12

var1=centos 定义变量var1,赋值为centos

取消变量:退出变量的shell环境时,变量会自动失效

手动取消变量 unset 变量名

unset X

使用env查看环境变量,使用set查看所有变量

6.预定义变量

$0:shell自身

$$:这个程式PID

$?:执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)

$#:这个程式的参数个数

$*:所有变量

$!:最近一个后台进程的PID号

$PS1:shell环境的一级提示符,即命令提示符,\u用户名\h主机名\W工作目录\$权限标识符

$PS2:表示二级提示符,出现在强制换行,at任务编辑等场景

7.位置变量

$1:变量1

$2:变量2

$10:变量10

8.三种引号对变量赋值的影响

双引号:可以定义一个完整字符串,也允许在范围内通过$调用其他变量的值,大多数情况下可以省略,但包含空格等特殊字符时不能省略

单引号:禁用扩展,范围内的特殊字符均视为普通字符

反撇号`或者$():使用反撇号或者$()时,可以将命令执行时的标准输出作为字符串存储,因为称为命令替换,

例如:

KVER=`uname -r`

rpm -qf `which man`

9.使用read从键盘读取变量值

read -p "请输入一个数字:" i

10.stty终端显示控制

在某些情况下,比如输入密码时,建议将关闭回显功能stty -echo,取完变量时再开启回显功能stty echo,取完变量时再开启回显功能stty echo,

例如:

#!/bin/bash

read -p "请输入用户名:" username

stty -echo

read -p "请输入密码:" password

stty echo

echo "username is $username,password is $password"

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180808G0KCOV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券