OC中Protocol理解及在代理模式中的使用 Protocol基本概念 Protocol翻译过来, 叫做"协议",其作用就是用来声明一些方法: Protocol(协议)的作用 定义一套公用的接口(Public) @required:必须实现的方法,默认在@protocol里的方法都要求实现. @optional:可选实现的方法(可以全部都不实现) 委托代理(Delegate)传值 它本身是一个设计模式,它的意思是委托别人去做某事. 比如:两个类之间的传值,类A调用类B的方法,类B在执…
定义bash Emacs模式下的快捷键请参考: Readline-在BASH下自定义键盘热键 未完待续...…
工作中经常会遇到命令行操作数据库或登陆至其他服务器等情况,往往需要通过命令行进入相关的数据库或登陆至相关的服务器,再执行指令操作,因此有没有方法,在命令行或bash脚本中模拟进入数据库或登陆服务器操作呢?本文将对这一现状进行探讨! 1. Here Document Here document 是linux shell中一种特殊的重定向方式,其格式为: cmd << delimiter Here document content delimiter 其作用在于将两个分隔符delimiter之间的…
在日常运维工作中,公司不同人员(一般是运维人员)共用root账号登录linux服务器进行维护管理,在不健全的账户权限审计制度下,一旦出现问题,就很难找出源头,甚是麻烦!在此,介绍下利用编译bash使不同人员在使用root账号登陆服务器后,能记录各自的操作,并且可以结合ELK日志分析系统收集登陆操作日志. 废话不多说!下面分享下操作记录: 服务器ip:192.168.1.180 首先是编译bash[root@dev ~]# cd /usr/local/src/[root@dev src]# wge…
一.什么是 Shell? 狭义的shell指的是指令列方面的软件,包括基本的Linux操作窗口Bash等,广义的shell则包括 图形接口的软件,因为图形接口其实也可以操作各种驱动程序来呼叫核心进行工作. 系统合法的 shell 均写在 /etc/shells 文件中. 二.Bash Shell 的基本操作技巧 1.查看前一次登录执行过的命令:vim ~/.bash_history 2.命令和文件补全功能(Tab键) tab 接在一串指令的第一个字后面,则为命令补全 tab 接在一串指令的第二个…
在日常业务运维中,有时为了配合解决问题,需要给非运维人员开通系统账号,用于查询日志或代码.通常为了系统安全或避免不必要的误操作等目的,会将账号权限降至最低.下面介绍下在Linux下通过受限bash创建指定权限账号的操作记录: [root@mq-server ~]# ln -s /bin/bash /bin/rbash [root@mq-server ~]# useradd -s /bin/rbash wangshibo [root@mq-server ~]# passwd wangshibo […
第10章 vim程序编辑器 可以将vim看做vi的进阶版本,vim可以用颜色或底线等方式来显示出一些特殊的信息. 为何要学习vim?因为: a. 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在: b. 很多个别软件的编辑接口都会主动呼叫 vi (例如未来会谈到的 crontab, visudo, edquota 等指令): c. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计: d. 因为程序简单,编辑速度相当快速. v…
前言 想在docker容器中安装docker部署fabric网络,有了以下尝试. 尝试了centos镜像.redhat镜像都没解决docker容器中安装运行docker的问题,最后ubuntu成功了! 虽然最后并没有使用,有兴趣的可以折腾下,哈哈哈. 安装 1.拉取ubuntu镜像并容器运行 # 拉取ubuntu镜像 docker pull ubuntu # 以特权模式运行容器 docker run --privileged --net host -dit -v /fabric:/opt --n…
4.1.1 探查程序 ps 命令 默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户进程的进程 显示的当前进程的项目 进程号 运行在哪个终端(tty) 进程占用的CPU时间 Linux系统支持的GNU ps命令支持3个不同的命令行参数 Unix风格的参数,前面加单破折线 常用的参数选项 -ef:查看系统上的所有运行的所有进程 -e:显示所有进程 -f:显示完整格式的输出 显示的列表项目 UID:启动这些进程的用户 PID:进程的进程号 PPID:父进程的进程号(如果该进程是由另一个进程…