学习笔记(18)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记(18)相关的知识,希望对你有一定的参考价值。

1.函数可以在交互模式下编辑,并通过函数名来执行,func1 () { echo function1; }

  如果函数名与命令名冲突,在交互式执行中,函数的定义的优先级高于别名优先级,尽量不要让函数名与命令名冲突,如前缀:func_

2.declare -f func1 查看已创建函数定义(declare -f 查看所有函数定义)

3.unset 函数名   删除函数定义

4.cmd1  || (cmd2;exit;) 退出子shell,并不退出脚本

   cmd1 || { cmd2; exit; } 退出脚本

   退出函数本身,使用return关键字,return 数字,函数中return返回的数字存储在$?中,可以作为判断条件

5.函数内部定义的变量的作用范围是当前shell,func1() { name=mage; echo "func1:$name"; } 该函数可以影响当前shell中定义的变量

   若使变量只在内部有效,可以使用local关键字,防止修改当前shell中的同名变量 func1() { local name=mage; echo "func1:$name"; }

   全局变量(export  当前shell 与子shell中有效),局部变量(name=mage  当前shell中有效),本地变量(local name=mage 只在当前函数内部有效)

   函数内部使用declare时自带local特性即只在函数中有效,当前shell中无效, func1 () { declare -i num=100; echo "func1:$num"; } 

   使用declare全局生效的话  declare -ig num=100,则作用范围是当前shell(declare -g 选项只在centos7中可用)

   函数先定义后使用,注意顺序,函数调用在前,声明在后会报错

   help return 查看return关键字的帮助

   引用函数可以使用source 文件名(或者 .  文件名)(如:/etc/init.d/functions),来将文件中函数调用至当前的shell中

   export -f func1 使func1在全局范围内有效,包括子shell范围中

   export -f 显示所有的全局函数

   help test 可查看shell脚本中可用的判断参数,如-f, -e, -s等参数说明

6. . functions  调用脚本中可以调用的函数文件

   action "command successful" /bin/false

   action "command successful" /bin/true 

   action是functions中定义的函数

7.修改内核参数,可以直接指定运行级别,不再读取/etc/inittab文件来启动,Centos6中如输入a键 指定1 或 5

8.ntsysv(工具修改的其实就是文件名的首写字母)  有*号的默认启动,可以修改开机服务启动或修改,也可以通过修改文件的首写字母来设置开机是否启动

  ntsysv --level=3 可以指定修改哪个级别的开机启动服务

  chkconfig --list atd   查看atd服务是否开机启动

  chkconfig --level 35 atd off  设置atd服务在3、5运行级别默认不自启动

  chkconfig atd off atd 修改2345级别的服务器是否启动(不指定--level默认是2345运行级别)

  ls /var/lock/subsys 通过判断该文件是否存在来判断服务是否启动(启动脚本中定义),服务开机时判断服务

  /etc/rc3.d/下的脚本存在依赖关系,所以顺序存在先后关系,数字序号就是启动的顺序

  chkconfig --add testsrv 添加自定义服务脚本(脚本要有执行权限)

  chkconfig --del testsrv 从服务中删除,脚本文件依旧存在

  /etc/rc.local 也可以制作开机自启动服务(不需要使用服务脚本的特有行),centos7中要手动加执行权限

  service --status-all 查看所有服务的状态

  yum install telnet-server  以来xinetd(按需要来确定服务) ,chkconfig --list 

  telnet是基于超级守护进程用来管理不经常使用的服务,需要时按照需要来启动,但是需要启动的服务设置成on状态,以便让xinetd守护进程唤醒

  chkconfig telnet on  修改/etc/xinited/telnet   文件重启服务生效配置文件

  xinetd 负责激活telnet服务,注意要使用chkconfig telnet on来让xinetd可以激活服务(可以通过服务ps命令来查看连接前连接后的进程观察区别,连接前是xinetd来代为监听23号端口,有链接时有真正的telnet来响应请求)

  mingetty 是登录界面,因为respawn选项是再生的意思,所以mingetty不能被杀死(kill -9)

  以上参考redhat5,(centos 6的原理相同,但配置文件独立)


  服务脚本:

  # chkconfig: 345 95 5   345:运行级别, 95是默认开启95顺序,5 是关闭的顺序 脚本中必须有的行

    - 表示所有服务关闭 chkconfg: -  95 5

  修复grub ,grub-install /dev/sda,救援模式下需要切根 chroot /mnt/sysimage/  修复所有阶段(第1阶段、第1.5阶段、第2阶段)

  启动菜单中selinux=0 可以在启动的时候不在启动selinux

  hd0,0  第一块磁盘,第一个分区   /boot所在分区是否为第一个磁盘

  /boot/grub 下的文件是备份文件 stage  修复所有阶段

  修复过后,如果阶段模板文件删除重启就会报错,如果为修复之前,删除阶段模板文件,不影响系统启动


  kernel (hd0,0)/vmlinuz-..  root=/dev/sda2

  根文件系统加载的时候需要驱动,需要initramfs文件,因为驱动在initramfs中

  rhgb:是用图形化加载操作系统引导过程  

  quiet:不显示内核加载信息

  注意initrd 和 kernel的顺序

  default=0  默认是第1个title

  password magedu

  grub-md5-crypt md5生成加密口令

  password --md5  加密后口令

  grub-crypt 生成sha512加密口令

  password --encrypted 后加sha512 加密口令


以上是关于学习笔记(18)的主要内容,如果未能解决你的问题,请参考以下文章

springmvc学习笔记(18)-json数据交互

python学习笔记 18-4-11

Linux第一周学习笔记(18)

3.18学习笔记

python的学习笔记/002-1(2018-5-18 )

[原创]java WEB学习笔记18:java EE 中的MVC 设计模式