shell(众多解释器的总结) bash(默认的解释器)

解释器存放位置:
/etc/shells查看已装的解释器
没有解释器可以安装相应的解释器
直接输入解释器名称进入,exit退出

永久更改解释器:
useradd -s 解释器/bin/ksh 新用户 #针对新用户,之前要创建新用户
usermod -s 解释器/bin/ksh 老用户/root #针对老用户
在 /etc/passwd查看

某些解释器不支持tab键,需安装bash-completion包

历史命令:history
vim /etc/profile
HISTSIZE=1000 #默认1000条
清空历史:history -c
统计历史命令个数:history | wc -l

标准输出 1 >ok.log
错误输出 2 2>ok.log
标准输入 0 <ok.log
默认输出在屏幕
[root@svr7 ~]# ls anaconda-ks.cfg bbb >ok.log
ls: 无法访问bbb: 没有那个文件或目录
[root@svr7 ~]# cat ok.log
anaconda-ks.cfg
[root@svr7 ~]# ls anaconda-ks.cfg bbb 2>ok.log
anaconda-ks.cfg
[root@svr7 ~]# cat ok.log
ls: 无法访问bbb: 没有那个文件或目录

邮件:
1.echo "内容" | mail -s 标题 用户 #缺点:内容少
2.mail -s 标题 用户 < mail.txt(提前创建,vim mail.txt)

脚本的编写
1.新建文件(.sh)
2.写内容(解释器#!/bin/bash、注释#:时间、版本、功能、联系人(多为邮箱))
3.给权限,执行

echo {1..5}


for i in {1..5}
do
#######################################################vncviewer 172.40.50.118:8
######################################################
top 大写的P 按CPU排序                                             #M 按内存排序                                            #
######################################################uptime       CPU
free         内存#######################
small [有点:快,漏洞少bug]【缺点:功能少,依赖关系】yum-config-manager createrepo  /opt/libreoffice/#####################################################
执行脚本:
1.绝对路径 /root/*.sh
2.相对路径 ./*.sh
3.bash 脚本名(不需赋予权限)
4.source 脚本名(特例)
1.2.3种都是开子进程
4不开子进程子进程:用pstree查看进程,-sshd-sshd-bash-pstreepstree这个命令是bash的子进程
开子进程:若bash是当前命令的窗口,那么脚本在pstree里执行
不开子进程:就在bash里执行
source是特例,比如:脚本里写个exit,开子进程执行就会在pstree里执行exit然后跳出到bash里,  不开子进程执行,跳到sshd里,远程断了!脚本写在/bin目录下就不要写.sh
##########################################################
PS1:1级提示符
PS2:2级提示符
修改提示符(临时):PS1=XXX#!/bin/bash
#准备yum源
echo "准备配置yum源..."#清空之前的yum配置文件
rm -rf /etc/yum.repos.d/*#写入yum配置信息,并导入到/etc/yum.repos.d/dvd.repo文件当中
echo "[dvd]
name=dvd
baseurl=http://192.168.4.254/rhel7
enabled=1
gpgcheck=0" > /etc/yum.repos.d/dvd.repo#清空yum缓存
yum clean all &> /dev/null
#列出可用软件包
echo -e "\033[35m yum repolist | grep "repolist" \033[0m"
#建立缓存文件
echo -e "\033[36m yum makecache \033[0m"
echo "yum仓库建立成功"# 安装FTP服务
yum -y install vsftpd >/dev/null 2>error.log
# 启动FTP服务
systemctl restart vsftpd >/dev/null 2>error.log# 设置FTP服务开机自启动
systemctl enable vsftpd
# 提示是否成功
systemctl is-enabled vsftpd | grep enabled && echo "设置开机自启成功"
echo    "请去测试是否成功ftp"
##############################################################
a=1
b=2
[root@04:49:06 opt 72]#echo $a$b
12
[root@04:49:31 opt 74]#echo ${a}${b}
12
###############################################
02.
#!/bin/bashecho $0 脚本名
echo $1 第一个参数
echo $2 第二个参数
echo $3 第三个参数
echo $* 所有参数
echo $# 共几个参数
##########################################################单引号''  :界定一个整体,并且实现屏蔽特殊字符号
[root@svr7~]# a=24
[root@svr7~]# echo $a
24
[root@svr7~]# echo "$a"
24
[root@svr7~]# echo '$a'
$a
[root@svr7~]# echo 11'$a'
11$a
[root@svr7~]# echo 11$a
1124
[root@svr7~]# echo 11"$a"
1124双引号"" :界定一个整体"a  b"   !=    a  b           #两者不相等"ab"  == ab                   #两者相等touch "a    b"               #创建一个文件为"a    b",而不是a和b两个   rm a b双引和单引的区别:有无特殊符号无特殊符号就相等
echo "a  b"  ==  echo 'a  b'
echo "$ab"   !=  echo '$ab'反引号``   $()
$(cat /etc/passwd)引用()内可执行的命令
`cat /etc/passwd` 优先级提高[root@svr7~]# tar -jpcv log-$(date +%F).tar.gz  /var/log
tar -czf后面没指定路径则指定当前路径下的log。。。每周五备份一个/var/log,使用tar,备份到root
crontab -e
03 03 * * 5 tar -czf /root/log-.tar  /var/log变量:
局部变量(自定义默认)
全局变量(系统变量)   要想改为全局变量 加个export
常见linux系统预设变量:
$USER(用户名变量)    $UID(用户ID)
$PATH(命令搜索路径)   $HOME(用户家目录)
$SHELL(当前使用的shell) $PWD(当前工作目录)
[root@svr7~]# export bb=88
[root@svr7~]# echo $bb
88
[root@svr7~]# bash
[root@svr7 ~]# echo $bb
88删除变量名:unset 变量名stty-echo:关闭回显,在键盘上敲命令不显示
stty echo:打开回显

转载于:https://blog.51cto.com/13400552/2047712

shell:概述、脚本编写、变量的简单基础相关推荐

  1. Linux shell:脚本编写快速入门

    文章目录 1.Sha-Bang 2."变量" 2.1 变量 2.2 运算 2.3 字符串 2.4 数组 3.流程控制 3.1 if 判断 3.2 case 分支 3.3 for 循 ...

  2. kafka安装、配置、启动、常用命令及shell启动脚本编写

    config  :kafka配置文件所在目录 server.properties    主要配置文件 zookeeper.properties   kafka内置了zk,一般要将其替换掉 以下关于生产 ...

  3. SHELL的脚本编写(2)

    目录 1.编写脚本for1.sh,使用for循环创建20账户,账户名前缀由用户从键盘输入,账户初始密码由用户输入,例如:test1.test2.test3........test10 首先创建并编写f ...

  4. Linux编写脚本查看mod,Linux shell脚本编写基础

    在进行linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称,运行时只要键入 ./smartzip就能运行脚本了.. 每行 ...

  5. linux 脚本编写 -eq,关于shell脚本基础编程第四篇

    shell脚本基础编程第四篇 本章主要内容:函数 函数 function: function 名称 { 命令 ; } 或 name () { 命令 ; } 定义 shell 函数. 创建一个以 NAM ...

  6. shell脚本编写之常用基础命令(diff、patch、cut、sort、uniq、与||、test、tr)

    文章目录 一.shell(计算机壳层) 二.shell中常用的基本命令 1.diff 命令(比对文件) 1.1 基本概念以及命令的格式 1.2 结果读取方式 1.3 diff中常用的参数 2.patc ...

  7. linux shell概述,Linux学习 -- Shell基础 -- 概述

    Shell是什么? 命令解释器 编程语言 Linux支持的Shell类型 cat /etc/shells 主要学习 bash 脚本执行方式 echo echo -e 单引号 -- 原始字符串  双引号 ...

  8. linux运维脚本编写,最强Linux自动化运维 Shell高级脚本编程实战 带习题+项目实战案例+全套配置脚本...

    最强Linux自动化运维 Shell高级脚本编程实战 带习题+项目实战案例+全套配置脚本 大家可以通过参考下面的课程学习目录,就会发现单单只从目录上来分析就知道这是一部非常系统的Shell自动化脚本运 ...

  9. linux 脚本在哪里编写,Linux 脚本编写基础(一)

    1. Linux脚本编写基础1.1语法基本介绍1.1.1开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使 ...

最新文章

  1. 腾讯面试官:如何停止一个正在运行的线程?我蒙了。。。
  2. ajax、offset
  3. 微信小程序设置域名、不校验域名
  4. asp.net mvc连接mysql_ASP.Net MVC连接MySQL和Code First的使用
  5. 如何避免在IE内核时,按BackSpace时进行网页会进行回退
  6. Hbase报错ERROR: KeeperErrorCode = NoNode for /hbase/master
  7. 数据结构期末复习之平衡二叉树
  8. lamuda表达式 list移除空元素_java8 Lambda表达式遍历并移除元素,报错:ConcurrentModificationException的解决办法...
  9. python thread 多线程
  10. SparkStreaming读取本地文件进行wordCount
  11. PyCharm(Python编译器汉化)
  12. 图像处理--VGA分辨率
  13. 【Uniapp】Uniapp 实现 App 版本自动升级
  14. anaconda安装完怎么打开_10分钟带你安装和配置Anaconda
  15. c语言 虚拟示波器软件下载,多功能串口虚拟示波器(DataScope)
  16. UVa 1586 Molar mass
  17. JVM|记一次生产环境 CPU 占用飙高问题解决
  18. C语言二维数求矩阵每行的最大值与最小值
  19. 健身管理系统源码设计和实现
  20. 渗透测试-完整渗透流程(一.信息收集)

热门文章

  1. C++新特性探究(七):初始化列表(Initialization List)
  2. r730服务器内置SD卡位置,已解决: RE: 关于r730xd做存储服务器的疑问 - Dell Community...
  3. 郑州轻工业学校计算机网络,计算机网络期末考试a卷(郑州轻工业学院).doc
  4. C++安全方向(三):3.5 SHA-1 算法分析和代码演示
  5. python的网络编程学什么_【Python学习】网络编程
  6. python小老鼠编程_Python小老鼠编程,Python入门到精通(非常详细)
  7. oracle根据当前月份往前,oracle获取系统日期--当前时间+前一天+当前月+前一个月...
  8. python的实例属性_python 实例属性和类属性
  9. java stream intermediateterminal方法
  10. Spring 解耦工厂模式