01: shell基本使用
目录:
1.1 shell基础返回顶部
1、系统变量
(1)新建脚本文件welcome.sh,用来输出各种监控信息。
[root@localhost ~]# vi /root/welcome.sh
#!/bin/bash
echo "已开启进程数:$(ps aux | wc -l)"
echo "已登录用户数:$(who | wc -l)"
echo "根分区磁盘使用率:$(df -h | grep "/$" | awk '{print $4}')"
[root@localhost ~]# chmod +x /root/welcome.sh (2)修改/root/.bash_profile文件,调用welcome.sh脚本程序。
[root@localhost ~]# vi /root/.bash_profile
# 在文件末尾添加这条语句
/root/welcome.sh (3)使用root用户重新登录,验证欢迎脚本的输出信息。
Last login: Mon Feb 26 14:52:41 2018 from 1.1.1.100
已开启进程数:183
已登录用户数:4
根分区磁盘空闲:7.4G
编写登录欢迎脚本
1.2 重定向与管道操作返回顶部
1、重定向输出
[root@localhost ~]# uname > kernel.txt
[root@localhost ~]# cat kernel.txt
[root@localhost ~]# uname -r >> kernel.txt \\追加并保存,不覆盖原有的数据
[root@localhost ~]# cat kernel.txt
2、重定向输入
[root@localhost ~]# vi pass.txt
添加
123456
[root@localhost 桌面]# useradd aaa
[root@localhost ~]# passwd --stdin aaa <pass.txt \\selinux要设置为disabled
1.3 使用shell变量 返回顶部
1、自定义变量
[root@localhost ~]# product=benet
[root@localhost ~]# version=5.0
2、查看和引用变量的值
[root@localhost ~]# echo $product
benet
[root@localhost ~]# echo $product $version
benet 5.0
[root@localhost ~]# echo $product4.5 \\错误的引用
.5
[root@localhost ~]# echo ${product}4.5
benet4.5
3、变量赋值的特殊操作
1. 双引号(可以引用其他变量的值)
[root@localhost ~]# benet=benet 5.0 \\错误的赋值
bash: 5.0: command not found
[root@localhost ~]# benet="benet 5.0"
[root@localhost ~]# echo $benet
[root@localhost ~]# accp="accp $version"
[root@localhost ~]# echo $accp
2. 单引号(任何字符都当做普通字符)
[root@localhost ~]# accp='accp $version'
[root@localhost ~]# echo $accp
3. 反撇号(必须是可执行的命令)
[root@localhost ~]# ls -lh `which useradd`
[root@localhost ~]# DenyList=`grep -v "^#" /etc/profile`
[root@localhost ~]# echo $DenyList
[root@localhost ~]# rpm -qc $(rpm -qf $(which useradd))
4、数值变量的运算
[root@localhost ~]# x=35
[root@localhost ~]# y=16
[root@localhost ~]# expr $x+$y
35+16
[root@localhost ~]# expr $x + $y
51
[root@localhost ~]# expr $x - $y
19
[root@localhost ~]# expr $x \* $y
560
[root@localhost ~]# expr $x / $y
2
[root@localhost ~]# expr $x % $y
3
[root@localhost ~]# Ycube=`expr $y \* $y \* $y`
[root@localhost ~]# echo $Ycube
4096
1.4 特殊的shell变量 返回顶部
1、位置变量
[root@localhost ~]# vi adder2num.sh
#!/bin/bash
SUM=`expr $1 + $2`
echo "$1 + $2 = $SUM"
[root@localhost ~]# ./adder2num.sh 12 14
12 + 14 = 26
ls -lh /root
$0 $1 $2
2、shell中常用预定义变量
$# (命令行中位置参数个数)
$* (所有位置参数内容)
$? (前一条命令返回状态)
$0 (当前执行脚本名称)
1.5 read与echo使用比较返回顶部
echo "使用-p参数完成多个变量赋值:"
read -p "请输入三个数字或字符:(用空格隔开)" num1 num2 num3 echo "num1="$num1
echo "num2="$num2
echo "num3="$num3
echonum.sh
[root@localhost bbb]# ./echonum.sh
使用-p参数完成多个变量赋值:
请输入三个数字或字符:(用空格隔开)22 33 44
num1=22
num2=33
num3=44
01: shell基本使用的更多相关文章
- shell编程01—shell基础
01.学习shell编程需要的知识储备 1.vi.vim编辑器的命令,vimrc设置 2.命令基础,100多个命令 3.基础.高端的网络服务,nfs,rsync,inotify,lanmp,sersy ...
- 【转】shell 教程——01 Shell简介:什么是Shell,Shell命令的两种执行方式
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...
- 01 shell编程规范与变量
前言: 大家对shell脚本应该都不算陌生了,如果突然问你什么是shell脚本?是干什么用的?由什么组成以及怎么使用?变量的概念是什么?作用范围是什么?变量间的算术运算怎么表示?你能很容易答出来吗 本 ...
- linux系列之-—01 shell编程笔记
一.特殊变量($0.$1.$2. $?. $# .$@. $*) shell编程中有一些特殊的变量可以使用.这些变量在脚本中可以作为全局变量来使用. 名称 说明 $0 脚本名称 $1-9 脚本执行时的 ...
- Shell 01 shell概述
1.查看shells:/etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin / ...
- 01 . Shell详细入门介绍及简单应用
Shell简介 Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 解释处理Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输 ...
- 01 shell编程之变量定义
一.SHELL介绍 ㈠ 什么是shell脚本? 简单来说就是将需要执行的命令保存到文本中,按照顺序执行.它是解释型的,意味着不需要编译. 若干命令 + 脚本的基本格式 + 脚本特定语法 + 思想= s ...
- Linux shell入门基础(六)
六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...
- Java如何滚动几个小时和几个月?
在Java中,如何滚动几个小时和几个月? 本示例展示了如何使用calender类的roll()方法滚动月(不改变年)或小时(不更改月或年). package com.yiibai; import ja ...
随机推荐
- java 中方法的重写
方法的重写 1.在子类中可以根据需要对从基类中继承来的方法进行重写. 2.方法重写必须要和被重写方法具有相同方法名称.参数列表和返回类型. 3.重写方法不能使用比被重写方法更严格的访问权限 4.注意与 ...
- Pycharm中如何使用科学计算库
1.简便起见 比起麻烦的安装各种库,我们选择最方便的Anaconda的conda或pip(兼容支持)安装相关库. Pycharm本身缺少numpy和matplotlib这些库,而另一个Python的开 ...
- [Oracle]Oracle之Chr函数返回
Chr函数 返回:返回 String,其中包含有与指定的字符代码相关的字符. chr('39')是单引号 Chr("0") 为0的字符 Chr("1") Chr ...
- 0003python中的可变参数
>>>def foo(x,y,z,*args,**kargs): print x print y print z print args print kargs >>> ...
- nginx的一些基本功能
1.静态HTTP服务器 首先,Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML.图片)通过HTTP协议展现给客户端. 配置:[plain] view plain copy serv ...
- 网站编辑须知9个SEO技巧
1. 文章当中最好需要出现一个网站核心关键词所谓的网站核心的关键词就是指与网站内容相关性比较高并且是比较受欢迎的关键词,当然还有相当高的转化率 2. 文章标题当中需要出现关键词.关键字在标题标签< ...
- 在本机搭建vue-cli3项目
vue-cli3官方网址: https://cli.vuejs.org/zh/ 由于公司开始一个新项目,用到的是vue-cli3搭建的项目,所以自己想搭建一个项目,今天搭建的项目就是一个很简单的项目, ...
- LeetCode-104.Maxinum Depth of Binary Tree
Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longe ...
- Percona Data Recovery Tool 单表恢复
前几天写过update或者delete忘加where条件的数据恢复.今天介绍一款开源的MySQL数据库InnoDB数据恢复工具:innodb-tools,它通过从原始数据文件中提取表的行记录,实现从丢 ...
- dedecms后台每页文章条数如何修改(“文档列表”每一页显示的文档条数)
小明在学习采集,弄了个dedecms作为发布平台,几个小时后跑来报喜说好简单,但又不想制造那么多spam,每个分类只保留几条就好.在后台删除这些文章,每页只显示30个,看了下有100多页,立马沮丧了, ...