Shell初学(一)hello world】的更多相关文章

超简单的一段shell代码,查看电脑属性,删除无效安装包,查看天气.FYI  #!/bin/bash echo -e '\n' echo "Hello,`whoami`" echo "-----------------------------------------------------------------------" echo "Now time is:`date`" #wheather info if [ -e "10102…
一.算术运算符 下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20: 运算符 说明 举例 + 加法 `expr $a + $b` 结果为 30. - 减法 `expr $a - $b` 结果为 -10. * 乘法 `expr $a \* $b` 结果为  200. / 除法 `expr $b / $a` 结果为 2. % 取余 `expr $b % $a` 结果为 0. = 赋值 a=$b 将把变量 b 的值赋给 a. == 相等.用于比较两个数字,相同则返回 true. […
一. 脚本代码:test.sh echo "Shell 传递参数实例!"; echo "执行的文件名:$0"; echo "第一个参数为:$1"; echo "第二个参数为:$2"; echo "第三个参数为:$3"; $ chmod +x test.sh $ ./test.sh 1 2 3   执行的文件名:./test.sh 第一个参数为:1 第二个参数为:2 第三个参数为:3 参数处理 说明 $# 传…
精简: 1.创建:可以使用 vi/vim 命令来创建文件如: test.sh   ,扩展名并不影响脚本执行,写什么都可以. 2.hello_world: #!/bin/bash                -------解释此脚本文件的 Shell 程序echo "Hello World !" 3.运行脚本 步骤: (1)查看是否有权限,ls -l test.sh (2)如果没有则赋予执行权限 chmod +x ./test.sh #使脚本具有执行权限 (3)执行文件 ./test.…
Linux Shell 时间运算以及时间差计算方法 时间的加减,以及时间差的计算. 1. 时间加减 这里处理方法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成 秒. 如:1990-01-01 01:01:01 加上 1小时 20分 处理方法: a.将基础时间转为时间戳 time1=$(date +%s -d '1990-01-01 01:01:01') echo $time1 [时间戳] b.将增加时间变成秒 [root localhost ~]# time2=$((**+*))…
记住,所谓的bash shell 并不单纯指的是shell脚本,其实是Linux系统的所有指令集. shell脚本 只是汇总了指令集到文件,然后按流程和顺序执行. [1]如何查看我们的预设shell 是什么? /etc/passwd 很明显,这里是bash [2]命令记录能力 bash shell 会把输入过的指令记录在 ~/.bash_history  ~/.bash_history 记录的是上一次登录以前所执行过的置零,而当前登录所执行的指令暂存在内存中.但注销用户后,该指令信息才会记录到…
精简版: 定义:your_name=123      PS:=符号左右不能有空格! 使用:${your_name},单独使用变量时可以不加{} 只读:readonly your_name  PS:设置为只读后不可删除 删除:unset your_name 引号:单引号显示实质内容,双引号可以拼接字符串并且可以使用转义字符 大小:${#your_name} 可以查看变量所占大小,字符串长度 提取子字符串:echo ${string:1:4} 字符串以0为下表起始 查找子字符串:`expr inde…
[1]ACL的作用 简单直接解释一下ACL的作用,即把权限的个别化额外添加. 可以解决如下问题~~比如: [1.1]基于用户: 我有10个用户a1-a10,我有一个文件夹/tmp/test,我想给a1-a2 rw的权限,其他人只想给r的权限. 我们这里就不能通过改变other来实现,因为它改变的是所有用户. [1.2]基于用户组 同理,我有10个用户组b1~b10,我想把一个文件/文件夹额外让b1~b2拥有,但不想给b3~b10拥有. 主要实现,基于3个命令 (1)setfacl (2)getf…
[1]新建用户 用户相关文件:/etc/passwd  /etc/shadow useradd useradd的默认预设 [2]设置密码 passwd 常见修改密码使用技巧: echo "123456"|passwd --stdin test     passwd   密码  #这样是修改当前登录用户的. [2.1]建立账户但不让其登陆系统 请注意要在root用户下进行 修改已经存在的用户使其不允许登录: usermod -s /sbin/nologin <username &g…
创建三个以域名区分的网站a.com,b.com,c.com:访问a.b时,分别显示a.b两个网站的内容:访问c时,会出现依次显示两次a网站的内容,一次b网站的内容. 1 #!/bin/bash 2 setenforce 0 3 sed -i 's/=enforcing/=disabled/g' /etc/sysconfig/selinux 4 systemctl start firewalld 5 systemctl enable firewalld 6 yum -y install epel-…
创建两个以域名区分的虚拟网站: 1 #!/bin/bash 2 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 3 sed -i 's/80/8080/g' /etc/httpd/conf/httpd.conf 4 systemctl restart httpd 5 yum -y install epel-* 6 yum -y install nginx 7 mkdir…
初次接触脚本,写了一个通过Apache实现PHP动态网站的脚本: #!/bin/bash yum -y install php rm -rf /etc/httpd/conf.d/welcome.conf echo "<?php phpinfo(); ?>" > /var/www/html/index.php systemctl restart httpd systemctl enable httpd firewall-cmd --add-service=http --…
初学shell编程,遇到的一些问题和总结: 一.#!/bin/sh 为什么要在shell程序里要加这一行? 首先在shell编程里面,"#"符号确实是一个注释符号,但是在这里绝对不是注释符号,是给的一个shell的路径,相当于是给的一个环境变量.如果没有加上这一句话,则程序执行会用默认的shell来解释执行,极有可能会报错.所以建议大家就把"#!/bin/sh当成C 语言的main函数一样,写shell必须有,以使shell程序更严密. 二.useradd 和 adduser…
博客园(FOREVER_ENJOY):http://www.cnblogs.com/zyx1314/ 本文版权归作者所有:欢迎转载!请注明文章作者和原文连接 Shell是什么? 1. Shell作为应用程序部署在Linux内核周围.Linux是高度模块化的系统,可安装多种Shell程序. 2. Shell是一个作为用户与Linux系统间接口的程序,它允许用户向操作系统输入需要执行的命令. 3. Shell的种类有很多,Linux中典型的默认Shell是 /bin/bash. Shell常用分类有…
什么是shell Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的 Shell有两种执行命令的方式: 交互式(Interactive):解释执行用户的命令,用户输入一条命令,Shell就解释执行一条.批处理(Batch):用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令.第一个脚本: vi hello.sh 一般shell脚本都以.sh为结尾 #!/bi…
1斐波拉契数列前10个  #!/binbash#declare A=0declare B=1for ((i=1;i<6;i++)); do    let A+=B    printf "%-5s" $A    let B+=A    printf "%-5s" $Bdone    printf "\n" =====================================================================…
变量引用 那么定义好变量,如何打印变量的值呢?举例下变量引用的方式. ${变量名}称作为对变量的引用 echo ${变量名}查看变量的值 ${变量名}在部分情况下可以省略成 $变量名 [root@lincoding ~]# string="hello Shell" [root@lincoding ~]# echo ${string} hello Shell [root@lincoding ~]# echo $string hello Shell 那么有花括号括起来的变量和没有花括号的区…
介绍 在上一篇使用完了环境变量,并且知道PATH环境变量概念,那么我们对命令的执行就有了一定深入的理解.那么PATH环境变量或其他环境变量是保存在哪呢?那么这篇文章主要介绍环境变量配置文件. 配置文件 环境变量主要保存在以下四个文件和一个目录中: /etc/profile /etc/profile.d/ ~/.bash_profile ~/.bashrc /etc/bashrc 保存在/etc/目录下的配置文件,都是所有用户通用的配置,就是不管是root用户还是普通用户. 保存在~/用户家目录的…
环境变量 环境变量:每个Shell打开都可以获得到的变量. 我们知道通过export的方式打开可以让子进程读取父进程的变量的值,那怎么样才能让每一个进程都能读取到变量的值呢? 在这呢,系统有一些默认的配置文件,把变量嵌入到配置文件就可以了. 那么,系统已经自带了哪些环境变量呢?我们可以通过env这个命令,查看系统中内置的环节变量. [root@lincoding ~]# env HOSTNAME=lincoding SHELL=/bin/bash -- SSH_TTY=/dev/pts/0 US…
变量的意义 我们在使用Linux命令或脚本的时候,会有一些输出,那么这些输出的信息可以用变量临时存储,以备我们下一条命令或脚本使用. 变量的定义 变量的定义建议用一个有意义的英文单词来代表变量,不要使用简单的字母a,b 这类的变量名定义.因为我们写好Shell脚本实际上是要给人看的,所以我们定义好的变量,是希望变量有具体的含义,能让阅读Shell脚本人能轻松的明白. 变量的命名规则: 字母.数字.下划线 不以数字开头 变量的赋值 为变量赋值的过程,称为变量替换 Shell脚本里变量是不区分变量类…
重定向作用 一个进程默认会打开标准输入.标准输出.错误输出三个文件描述符. 重定向可以让我们的程序的标准输出.错误输出的信息重定向文件里,那么这里还可以将文件的内容代替键盘作为一种标准输入的方式. 重定向符号 输入重定向符号"<" 输出重定向符号">",">>","2>","&>" 输入重定向功能 01 输入重定向符号"<"的作用: 会把…
执行命令的方式 执行Shell脚本的方式通常有以下四种 方式一:bash ./test.sh 方式二:./test.sh 方式三:source ./test.sh 方式四:. ./test.sh 执行方式的区别 方式一bash方式执行脚本的话,会在当前的终端下面产生一个bash子进程来运行脚本,所以对当前的环境是没有影响的. [root@lincoding usr]# bash ./test.sh 方式二./test.sh的方式运行,则脚本第一行声明是哪个Shell解释器就会产生哪个Shell解…
管道作用 管道实际上就是进程之间的一个通信工具,那么用在Linux命令中主要是方便两条命令互相之间可以相互通信. 管道符 管道符(匿名管道)是Shell编程经常用到的通信工具. 管道符是"|",主要是把两个应用程序连接在一起,然后把第一个应用程序的输出,作为第二个应用程序的输入.如果还有第三个应用程序的话,可以把第二个程序的输出,作为第三个应用程序的输入,以此类推. 如ls | grep test.sh,在当前文件过滤出test.sh文件: [root@lincoding /]# ls…
Shell脚本 编写Python.PHP脚本通常需要掌握语言的函数,那么Shell脚本则不需要,只需要掌握Linux命令就可以编写Shell脚本,因为Shell脚本就是由多个Linux命令组成,通过将多个Linux命令组合保存成一个脚本文件,可直接给其他人使用. 组合命令 进入一个目录,查看目录的文件,这个过程分别需要执行两条命令,分别是cd 和ls. 分开执行两个命令的形式如下: [root@lincoding usr]# cd /usr/ [root@lincoding usr]# [roo…
开篇介绍 Linux里非常的有用的一个功能,这个功能就叫Shell脚本. Shell脚本在我日常开发工作里也占了非常重要的角色,项目中一些简单的工作我们都可以使用Shell脚本来完成,比如定时删除日志文件脚本.一键部署系统脚本等一些自动化的功能. 所以掌握好Shell脚本编程,处理一些自动化繁琐的事情会有事半功倍的效果.不管是Linux开发人员还是运维人员都有必要掌握Shell编程. 什么是Shell? Shell是命令解释器,用于解释用户对操作系统的操作. 简单的理解就是,Shell会把用户所…
今天用wget想下载文件,结果下载了一堆本地的index.html文件,一查看全是乱码,然后百度了一下,网页的编码格式大概有三种: 1.utf-8 2.gb2312 3.gbk 要在网页源码中的<head>下的<meta >属性的设置中查看 charset  对应的属性值. 而我的centos的操作系统只识别utf-8格式的,由环境变量LANG保存的配置,我们可以查看一下 echo $LANG  ,系统返回的是:zh_CN.UTF-8 .所以我们需要一个转换编码格式的命令:icon…
1 #!/bin/bash   2 <<Comment   3 批量修改文件名的脚本   4 2015/10/24   5 webber   6 Comment   7 ARGS=2   8 ONE=1   9 if [ $# -ne "$ARGS" ];then  10   echo "传参错误!!"  11   exit 2  12 fi  13  14 num=0  15  16 for file in *$1*  17 do  18   if […
1) 为何叫做 shell ?在介绍 shell 是甚幺东西之前,不妨让我们重新检视使用者与计算机系统的关系:图(FIXME)我们知道计算机的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为"操作系统(Operating System)"的软件来控管,事实上,我们每天所谈的 linux ,严格来说只是一个操作系统,我们称之为"核心(kernel)".然而,从使用者的角度来说,使用者也没办法直接操作 kernel ,而是透过 kernel…
此代码是用来回忆当初学的shell脚本,很多知识忘了,写这个花了我三个小时的时间 #!/bin/ksh #count *.c file the num of lineg_csum=0g_hsum=0 count(){# echo "$1,count_line" file_name="$1" res_line=`wc -l $file_name | awk '{print $1}'` echo $res_line return# find . -name "…
今天入门Shell脚本编程:今天的目标是完成冒泡排序,遇到了很多问题,总结了一下: 我从c转到shell遇到了这样的一些情况: 1:首先这几个符号非常重要 $变量:把变量的值拿出来使用(所以赋值语句应该是a=$b,如果写成$a=$b那就相当于把变量的值拿出来给把变量的值显然不合理,初学常错) {变量}:其实很多情况不用加也可以通过解释,但是它起到了一个界定变量名范围的作用,所以尽量所有变量都加上能避免很多奇怪的错误 '字符串'"字符串":用来把字符串赋值给变量也是一个界定的作用前者不管…