Shell基础

Centos7系统创建用户时出现“useradd: user ‘xxxx‘ already exists”错误(部署sssd启用ldap认证导致—> “ldap中包含创建的用户” ) Centos7系统上创建用户时出现“useradd: user 'xxxx' already exists”错误1、假设您正在尝试添加一个名为“leojiang”的用户并且您收到以下错误。2、调查,先查看系统上是否存在这个用户`leojiang`3、运行getent命令从名称服务切换库(Name Service Switch)中获取4、来让我们找到它,深入研究名称服务切换库配置文件。5、解决方案 背景: Centos7上需要创建一个用户leojiang,而用户时间不纯在系统上,但是还是报错说用户已经存在。 阅读详情

Shell 基础

Shell脚本基础

​ 什么是脚本:可以执行的一个文件,执行后可以实现某种功能

使用脚本输出hello World

# vim /root/hello.sh
# echo hello World!
# /root/hello.sh    #运行时候发现没权限
# chmod +x /root/hello.sh   #赋予所有用户执行权限
# /root/hello.sh 
hello World!

规范:Shell脚本的一般组成

  • #! 环境声明
  • # 注释文本
  • 可执行代码
重定向输出
> 	:只收集前面命令的正确输出
2>	:只收集前面命令的错误输出
&>	:收集前面命令的正确与错误输出

单引号和:都可以使特殊符号保持原型

``与 $()

```与 $() : #将命令的输出,将做参数直接参与下一个命令的运行`

这两个符号分别是 Bash Shell 中的命令替换和算术扩展运算符

  • $(command):将 command 的输出作为一个字符串返回给 Bash 脚本。举个例子,echo $(ls) 会将当前目录下所有文件和文件夹的名称打印出来。
  • $((expression)):用来进行基本算术运算的符号。举个例子,echo $((1+2)) 会输出 3。在 $((expression)) 中,可以使用加减乘除、取模、位运算等多种算术运算符。

需要注意的是,这两个符号在使用时需要注意语法规则,比如括号的匹配等问题。

--题:让系统每天备份一个文件夹,文件夹名称为nsd-时间(nsd-2023-3-14)
思路:定时任务,每天执行一个脚本,脚本里设置语句
- mkdir nsd-`date +%F`
- mkdir nsd-$(date +%F)
# crontab -e -u root
0 8 * * * mkdir /opt/nsp-$(date +%F)
:wq			#保存退出

变量

会变化的量

为了适应多变的环境需求

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J49LaAHP-1682328071218)(E:\ccstudy\markdown\img\脚本案例1.jpg)]

优化 - 传入变量

# a= 100
# echo a
a
# echo $a
100
#vim /root/user.sh
#! /bin/bash
# 新建用户   赋予密码

a=harry
useradd $a &> /dev/null    #/dev/null相当于垃圾回收站,里面的文件会直接粉碎
echo 用户$a创建成功
echo 123 | passwd --stdin $a  &> /dev/null 
echo 用户$a密码设置成功

# chmod +x user.sh
# /root/user.sh

人机交互

在命令行向脚本中传递参数

read命令:1.产生交互

​ 2.记录用户在键盘输入

​ 3.将记录的信息赋值给一个变量存储

#vim /root/user.sh
#! /bin/bash
# 新建用户   赋予密码
read -p '请输入您要创建的用户名:' a     # 只改这一个 -p添加提示信息
useradd $a &> /dev/null    #/dev/null相当于垃圾回收站,里面的文件会直接粉碎
echo 用户$a创建成功
echo 123 | passwd --stdin $a  &> /dev/null 
echo 用户$a密码设置成功

:wq

[root@CC ~]# /root/user.sh
请输入您要创建的用户名:
jack
用户jack创建成功
用户jack密码设置成功

# # 让密码也使用变量
#vim /root/user.sh
#! /bin/bash
# 新建用户   赋予密码
read -p '请输入您要创建的用户名:' a     # 只改这一个 -p添加提示信息
read -p '请输入您要创建的用户密码:' b 
useradd $a &> /dev/null    #/dev/null相当于垃圾回收站,里面的文件会直接粉碎
echo 用户$a创建成功
echo $b | passwd --stdin $a  &> /dev/null 
echo 用户$a密码设置成功
:wq

变量

​ 变量由字母数字下划线组成,严格区分大小写

​ 不能以数字开头,不能以关键字命名

​ 等号两边不能有空格 Shell不能有

调用变量值 $变量名 , ${}

​ 例:name拼接:name 拼接:name拼接:{name}7

变量种类:

​ 环境变量 一般大写,用来设置用户/系统环境

​ USER=当前登录的身份

​ echo $USER

​ 位置变量 bash内置,存储执行脚本时提供的命令行参数

​ 表示为$n,n为序号

​ $1,$2,3,...,3,...,3,...,{10},${11}… 10以上要加{}

    # # 使用位置变量非交互式添加账号
    #vim /root/user.sh
    #! /bin/bash
    # 新建用户   赋予密码
    #read -p '请输入您要创建的用户名:' a     # 只改这一个 -p		添加提示信息
   # read -p '请输入您要创建的用户密码:' b 
    useradd $1 &> /dev/null    #/dev/null相当于垃圾回收	站,里面的文件会直接粉碎
    echo 用户$1创建成功
    echo $2 | passwd --stdin $1  &> /dev/null 
    echo 用户$1密码设置成功
    :wq
	[root@CC ~]# ./user.sh harry 123
	用户harry创建成功
	用户harry密码设置成功

​ 预定义变量 bash内置,可直接调用的特殊值,不能直接修改

​ $# 已加载的位置变量的个数

# # 使用 $#
    #vim /root/user.sh
    #! /bin/bash
    # 新建用户   赋予密码
    #read -p '请输入您要创建的用户名:' a     # 只改这一个 -p		添加提示信息
   # read -p '请输入您要创建的用户密码:' b 
    useradd $1 &> /dev/null    #/dev/null相当于垃圾回收	站,里面的文件会直接粉碎
    echo 用户$1创建成功
    echo $2 | passwd --stdin $1  &> /dev/null 
    echo 用户$1密码设置成功
    echo 传进来的参数个数:$#
    :wq
    [root@CC ~]# ./user.sh harry 123 111
    用户harry创建成功
	用户harry密码设置成功
	传进来的参数个数:3
    # 会显示有三个参数,虽然脚本只是用了两个,但是他会计算命令行传进来多少个参数,而不是使用了多少个参数,主要用来做if判断,判断用户是否输入参数

​ $? 程序退出后的状态值,0正常,其他值异常

	[root@CC ~]# useradd test1
    [root@CC ~]# echo $?
    0
    [root@CC ~]# useradd test1
    useradd: user 'test1' already exists
    [root@CC ~]# echo $?
    9
    #可以用来判断上一条语句是否执行成功

​ 自定义变量 用户自主设置、修改及使用

if 语句

测试表示式

[ 测试表达式 ]:里面的左右都要有空格

检查文件状态

  • **-e **: 文档存在才为真

  • -d : 文档存在,且必须为目录才为真

  • **-f **: 文档存在,且必须为文件才为真

[root@CC ~]# [ -e /etc ]
[root@CC ~]# echo $?
0
[root@CC ~]# [ -f /etc ]
[root@CC ~]# echo $?
1
[root@CC ~]# [ -f /etc/passwd ]
[root@CC ~]# echo $?
0
[root@CC ~]# [ -d /etc ]
[root@CC ~]# echo $?
0
[root@CC ~]# [ -d /etc/passwd ]
[root@CC ~]# echo $?
1

比较整数大小

  • -gt :大于
  • -ge :大于等于
  • -e :等于
  • -ne :不等于
  • -lt : 小于
  • -le : 小于等于
[root@CC ~]# [ 1 -gt 2 ]
[root@CC ~]# echo $?
1

字符串比较

  • == :一致为真
  • != :不一致为真
[root@CC ~]# [ $USER != root ]
[root@CC ~]# echo $?
1
[root@CC ~]# [ $USER == root ]
[root@CC ~]# echo $?
0
[root@CC ~]# [ xixi == haha ]
[root@CC ~]# echo $?
1

if 双分支处理

if [条件测试];then
	命令序列xx
else
	命令序列xy
fi	
root@CC ~]# vim /root/test1.sh
#! /bin/bash
if [ $1 -eq 1 ];then
	echo 相等
else
	echo 不相等
fi	
:wq
root@CC ~]# chmod +x /root/test1.sh
[root@CC ~]# ./test1.sh 1
相等
[root@CC ~]# ./test1.sh 1
不相等
# 对参数进行统计
#! /bin/bash
if [ $# -eq 0 ];then
	echo 您没有输入参数
else
	echo 您输入的参数个数为:$#
fi	
# 写一个脚本:命令行输入一个用户,判断该用户是否存在
vim /root/ifuser.sh
#! /bin/bash
read -p '请输入您要测试的用户名:' a
id $a > /dev/null
if [ $? -eq 0 ];then
	echo $a用户存在
else
	echo "$a用户不存在"
fi	
:wq

if 多条件分支

if [ 条件测试 ];then
	命令序列xx
elif [ 条件测试2 ];then
	命令序列yy
else
	命令序列zz
fi	
# 成绩查询脚本
#!/bin/bath
read -p '请输入你的成绩:' num
if [ $a -ge 90 ];then
	echo 优秀
elif [ $a -ge 80 ];then
	echo 良好
elif [ $a -ge 70 ];then
	echo 一般	
elif [ $a -ge 60 ];then
	echo 合格
else 
	echo 不及格
fi	

for 循环

for 变量名 in 值列表
do
	命令序列
done
for a in zhangsan lisi wangwu
do
	echo "我是$a"
done

# 循环的列表值,可以不参与循环执行的重复操作
for a in zhangsan lisi wangwu
do 
	echo "我爱吃饭"   # 值列表完全不参与
done

造数工具

{x…y} 直接生成x到y

# 造数工具
for a in {1..10}
do 
	echo "我爱吃饭:$a"   # 输出是我爱吃饭:1~10
done

>&2 错误信息

[root@CC ~]# echo "我爱吃饭"   
我爱吃饭
[root@CC ~]# echo  $?
0
[root@CC ~]# echo "我爱吃饭" >&2
我爱吃饭
[root@CC ~]# echo $?
1
if [ $1 -eq 0];then
   echo "您未输入参数" >&2
   exit 3  # 退出返回脚本状态值 相当于java传给前端的状态码
else 
   echo "$1"
fi	

在这里插入图片描述

用户测试列表文件内容:

# 文件路径/root/userlisr
zhangsan
lisi
wangwu
zhaoliu
# vim /root/batchusers
#! /bin/bash
if [ $# -eq 0 ];then
	echo "Usage:/root/batchusers" >&2
	exit 3
elif [ -f $1 ];then	
    for a in $(cat $1)	# $(cat /root/userlisr)   # 	$(内容)  把内容的输出当成值参与运算
    do
        useradd -s /bin/false $a &> /dev/null
        echo "$a创建成功"
    done	
else
	echo Input file not fount >&2
fi
:wq
# /root/batchusers /root/userlisr
Cadence Allegro16.6怎么导出器件引脚信息的报告 当我们需要用到器件的引脚相关信息时,可以利用allegro中的reports这个功能导出器件的相关信息。下面是具体的操作步骤。 阅读详情

相关推荐

京东云鼎环境配置与API安全接入实战:ISV服务商如何搞定数据加密与商家授权

本文详细介绍了京东云鼎环境配置与API安全接入的实战指南,帮助ISV服务商解决数据加密与商家授权等核心问题。通过京东开放平台的应用申请流程,结合多租户数据隔离策略和自动化授权实现,确保电商生态中的安全高效运营。文章还提供了避坑指南,助力开发者规避常见配置错误。

weixin_28705087的博客 353

Shell函数

文章目录一、Shell函数的概述1. 函数的定义2.函数的作用3.函数的格式4.调用函数的方法5.暂停循环命令6.函数的作用范围7.函数内部变量通过local来实现1.设置内部变量2.设置全局变量7.函数的参数1.参数的用法2.参数的表示方法二、递归函数1.递归作用2. 递归遍历目录 一、Shell函数的概述 1. 函数的定义 就是将命令序列按格式写在一起,可方便重复使用命令序列 注:Shell函数是需要定义然后在调用 2.函数的作用 在编写Shell脚本的时候,经常会发现多个地方使用同一段代码,如果只是一

F2001523的博客 1349

Cadence Allegro PCB文件对比实战:3分钟搞定两份设计差异(附颜色标注技巧)

本文详细介绍了如何高效使用Cadence Allegro的Design Compare功能进行PCB文件差异对比。通过实战工作流,可在3分钟内精准定位并理解两份设计在布局、布线、元件等方面的关键差异,并分享了自定义颜色标注技巧,帮助工程师快速聚焦重要修改,提升设计评审与团队协作效率。

weixin_29248653的博客 380

shell Usage

Usage(){ cat <<EOF Usage: $0 [tenant] $0 (Run database table check_table_data_config all tenants) $0 mycommunity_agile (Run database table che...

weixin_30664539的博客 5334

面试中常考的数学题——截木棍、圆上取点、赛马、红蓝墨水,测试毒药、坐到正确座位问题

文章目录1.将一根木棒截成三段,问能够组成三角形的概率;2.在圆上任取三点,问能够组成锐角、直角、钝角三角形的概率;3.共有25匹马,找出最快的3匹,只有5个赛道,每次比赛只能得到5匹马的速度排序,最少需要多少次比赛;4 有两瓶红蓝墨水,体积一样,现在从红墨水中舀一勺加入蓝墨水中,搅拌均匀后,在从蓝墨水中舀一勺加到红墨水中,试问这两瓶墨水哪瓶纯度更高。 1.将一根木棒截成三段,问能够组成三角形的概率; 来源:https://blog.youkuaiyun.com/weixin_41245919/article/deta

weixin_41558411的博客 4906

Python 中调用 R 语言的教程(包含编码问题解决办法)

rpy2 是一个 Python 库,允许在 Python 中直接运行 R 代码并实现数据转换。安装需确保 Python 和 R 环境正确配置,Windows 用户需注意编码问题(GBK 错误可通过控制面板调整区域设置解决)。基本用法包括执行 R 代码、传递数据(支持 Python 与 R 数据类型自动转换)以及调用 R 包函数。通过 robjects.r() 执行 R 代码,使用 pandas2ri 转换器处理 DataFrame 数据交换,并支持像导入 Python 模块一样加载 R 包(如 import

zygalaxy的博客 995

Shell 脚本语言

管道符用于命令间的值传递。管道符左命令正确输出值作为管道符右命令的操作对象,右命令操作左命令的正确输出。管道符命令的最终值为最右边命令的输出值。=),&&(与),||(或)。exit 0 可以告知你的程序的使用者:你的程序是正常结束的。单引号之间的字符,会被当做一个单独的参数。(5)管道符左命令的正确输出值只能传递给相邻的右命令,反之,右命令仅能处理相邻左命令的正确输出值。代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如。(ps: 1>f.out缩写:>f.out,通常1>省略成>)

weixin_47464737的博客 879

LLC谐振变换器软启动,不只是“慢启动”,还是“智能启动”

LLC谐振变换器的软启动,不只是“慢慢来”,而是要在控制时序、限流、响应速度之间精妙权衡。而数字控制,特别是用查表法或混合信号法,为实现真正的“最佳轨迹”提供了可能。✨小Tips:如果你的系统成本敏感,选择查表法准没错;如果你的设计目标是超高速响应,那就上混合信号的高配方案!

weixin_43199439的博客 691

shell之usage()函数

usage()函数,用来说明脚本的作用以及脚本接收的参数,以及不同的参数不同的功能。如果我们在脚本中定义了usage()函数,那么我们可以使用-h和–help来触发usage()函数。在脚本test中定义如下usage()函数,之后在命令行工具中执行。

onebutterfly 1203

IMEI引起的无法驻网问题

问题不复杂,场景很简单,如上图,UE在进行LTE attach过程时,在送完NAS security mode complete后,就立刻收到了网络attach reject 带cause 6 Illegal ME,根据协议描述这个cause 代表ME不被网络可接受,例如ME在禁止名单或者黑名单中就会有这种cause。然而前方在报这个问题的时候,也是知道SIM卡和手机IMEI在运营商那边没能成功绑定,然后才报的问题,要查看手机是不是有问题...... 告诉前方原因后,还认为是手机问题,告知要继续查。

asd199086的博客 1426

【YoloV8改进策略】上采样改进|EUCB,轻量高效的上采样模块|即插即用

YOLOv8作为当前最先进的实时目标检测与实例分割模型之一,其在速度与精度之间取得了出色的平衡。然而,在资源受限的边缘设备或对实时性要求极高的应用场景中,YOLOv8的计算开销,尤其是在特征金字塔网络(FPN)和路径聚合网络(PAN)中用于特征融合的上采样操作,仍然是一个瓶颈。YOLOv8的颈部(Neck)结构中广泛使用nn.Upsample进行上采样,该操作虽然简单,但缺乏对特征内容的感知能力,且后续通常需要标准卷积来修复因插值带来的伪影,这增加了不必要的计算负担。

m0_47867638的博客 754

shell 编程基础

shell编程基础

qq_67582098的博客 1882

【传感器模块项目实战】自动驾驶/机器人相关传感器原理及标定

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、IMU二、相机三、激光雷达四、轮速里程计五、GPS/RTK六、毫米波雷达总结 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对**【自动驾驶相关传感器原理及标定】**做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、IMU IMU惯导系统的特性(imu_calc函数功能) IMU运行的

qq_35635374的博客 1232

shell基础语法

shell基础语法

Garfield0_0的博客 1157

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Shell脚本基础

shell 是一种脚本语言 脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译) shell 既是应用程序 又是一种脚本语言(应用程序 解析 脚本语言)打开文本编辑器(vi/vim),新建一个文件first.sh,扩展名为sh(sh代表shell)。扩展名并不 影响脚本执行。 运行Shell脚本方式1. 作为可执行程序 将上面的代码保存为first.sh,并cd到相应目录: $ chmod +x first.sh $ ./first.s

Z2460986913的博客 787

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Shell 基础

函数定义# 函数体# 或者# 函数体函数调用直接使用函数名调用,函数可以接受参数,通过$1$2等访问。

shuijing55hi的博客 920

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

SHELL基础

SHELL基础 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 脚本(shell script),是一种为 shell 编写的脚本程序。 文章目录SHELL基础SHELL脚本SHELL变量SHELL符号和字符串SHELL运算符test命令echo命令SHELL传递参数 SHELL脚本 平时所说的 shell 通常都是指 shell 脚本,但是shell 和 shell script 是两个不同的概念。 示例: v

weixin_45680960的博客 697

Shell脚本编程基础

Shell脚本的基础知识

weixin_67782795的博客 1416

shell基础学习

Shell是在Linux内核与用户之间的解释器程序,通常指的是bash,负责向内核翻译及传达用户/程序指令。

weixin_47699991的博客 1262

shell基础知识

shell是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。为什么要学习和使用shell?Shell属于内置的脚本,程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务(批处理)语法简单,代码写起来比较轻松,简单易学1.1 记录命令历史我们执行过的Linux命令都会有记录,预设可以记录1000条历史命令。

xiaoquanzeilaniu的博客 611

【shell】shell脚本之基础语法

定义变量:不需要指定类型,直接赋值即可访问变量:需要在变量名前加上$命名规则:变量名只能包含字母、数字和下划线(_),但不能以数字开头。变量名大小写敏感,myVariable 和 MYVARIABLE 是不同的。读取用户输入:用read命令读取用户输入并存储在变量中:返回上一次的执行结果,返回0为正确,返回其他值则是错误$$:输出当前bash的pid号$0:表示脚本的名称$#:表示位置参数的总个数$@:返回所有的参数,将参数逐个返回$*:返回所有的参数,将参数当作一个整体一起返回。

GB100200的博客 823

《Shell脚本基础详解》玩转Shell

Shell脚本 是一个脚本语言,用来自动执行我们指定的系统命令的。 通俗的讲,再shell脚本当中,我们会编写一些需要使用的系统命令于其中再运行这个叫本的时候,这些被编写进去的系统命令会按照书写的顺序及规则以此运行。 包括后期我们要学的python实际原本也是通过shell演变过去的!! 学习一们语言首先我们要先了解什么叫变量@ 在很多的编程语言当中都会有变量这样一个概念性的名词。 变量实际上是一个抽象的概念。它本身并没有任何意义。只作为一个名称来使用这个名称指代表了什么呢? 我们如果想要在脚本或程序当中设

小啊宇的博客 3689

【Linux入门】shell基础篇——shell的构成及基础调试

Shell(外壳)是在 Linux/Unix 系统中用于与操作系统进行交互的一种命令行界面。它允许用户通过键入文本命令来执行各种任务,如文件操作、程序运行、设备管理等。Shell 不仅允许用户直接输入命令执行,还可以通过 Shell 脚本将多个命令组合起来,实现更复杂的自动化任务。简而言之就是给要执行的命令按照顺序保存到一个文本文件中,然后给文件可执行权限,可以结合shell控制语句完成更复杂的操作。Shell 的主要功能包括:命令执行:用户可以在 Shell 中输入命令,系统会解释并执行这些命令。

Karoku的博客 1588
上一篇: linux基础
下一篇: linux安全(防火墙)
旧活新整
博客等级 码龄7年 33粉丝 15原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值