linux命令运维 - zsh, oh-my-zsh 应用

作者: LinuxStack

oh-my-zsh 应用

1. Zsh 简介

1.1. Zsh 是什么

使用 Linux 的人都知道:*Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell_ 既是一种命令语言,又是一种程序设计语言

Shell 的类型有很多种,linux 下默认的是 bash,虽然 bash 的功能已经很强大,但对于以懒惰为美德的程序员来说,bash 的提示功能不够强大,界面也不够炫,并非理想工具。

Zsh 也是一种 Shell(据传说 99% 的 Bash 操作 和 Zsh 是相同的),它的功能极其强大,只是配置过于复杂,起初只有极客才在用。后来,出现了一个名叫 oh-my-zsh 的开源项目,使用 zsh 就变得十分简易了。

2. Zsh 安装

2.1. 环境要求

  • CentOS 6.7 64 bit
  • root 用户

2.2. 安装 zsh

  • 先看下你的 CentOS 支持哪些 shell:cat /etc/shells,正常结果应该是这样的:
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh

如果已经有 zsh ,那么我们就不必安装了。

  • CentOS 安装:sudo yum install -y zsh
  • Ubuntu 安装:sudo apt-get install -y zsh
  • 检查系统的 shell:cat /etc/shells,你会发现多了一个:/bin/zsh

2.3. 安装 oh-my-zsh

使用 Zsh,怎么能离开灵魂伴侣 oh-my-zsh

# 安装 oh-my-zsh
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

2.4. 配置 oh-my-zsh

2.4.1. 插件

oh-my-zsh 插件太多,不一一列举,请参考:oh-my-zsh 插件列表

  • 启用 oh-my-zsh 中自带的插件。
  • 查看 oh-my-zsh 插件数:ls -l /root/.oh-my-zsh/plugins |grep "^d"|wc -l
  • 编辑配置文件:vim /root/.zshrc
  • 插件推荐:
  • zsh-autosuggestions
    • 这个插件会对历史命令一些补全,类似 fish 终端
    • 安装,复制该命令:git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-\~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions - 编辑:vim \~/.zshrc,找到这一行,后括号里面的后面添加:plugins=( 前面的一些插件名称,换行,加上:zsh-autosuggestions) - 刷新下配置:source \~/.zshrc
  • extract
    • 功能强大的解压插件,所有类型的文件解压一个命令 x 全搞定,再也不需要去记 tar 后面到底是哪几个参数了。
  • z
    • 强大的目录自动跳转命令,会记忆你曾经进入过的目录,用模糊匹配快速进入你想要的目录。
  • zsh-syntax-highlighting
    • 这个插件会对终端命令高亮显示,比如正确的拼写会是绿色标识,否则是红色,另外对于一些 shell 输出语句也会有高亮显示,算是不错的辅助插件
    • 安装,复制该命令:git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-\~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
    • 编辑:vim \~/.zshrc,找到这一行,后括号里面的后面添加:plugins=( 前面的一些插件名称,换行,加上:zsh-syntax-highlighting) - 刷新下配置:source \~/.zshrc
  • wd
    • 简单地讲就是给指定目录映射一个全局的名字,以后方便直接跳转到这个目录,比如:
    • 编辑配置文件,添加上 wd 的名字:vim /root/.zshrc
    • 我常去目录:/opt/setups,每次进入该目录下都需要这样:cd /opt/setups
    • 现在用 wd 给他映射一个快捷方式:cd /opt/setups ; wd add setups
    • 以后我在任何目录下只要运行:wd setups 就自动跑到 /opt/setups 目录下了
  • autojump
    • 这个插件会记录你常去的那些目录,然后做一下权重记录,你可以用这个命令看到你的习惯:j --stat,如果这个里面有你的记录,那你就只要敲最后一个文件夹名字即可进入,比如我个人习惯的 program:j program,就可以直接到:/usr/program
    • 插件下载:wget https://github.com/downloads/wting/autojump/autojump_v21.1.2.tar.gz
    • 解压:tar zxvf autojump_v21.1.2.tar.gz
    • 进入解压后目录并安装:cd autojump_v21.1.2/ ; ./install.sh
    • 再执行下这个:source /etc/profile.d/autojump.sh
    • 编辑配置文件,添加上 autojump 的名字:vim /root/.zshrc

2.4.2. 主题

oh-my-zsh 主题太多,不一一列举,请参考:oh-my-zsh 主题列表

  • 查看 oh-my-zsh 主题数:ls -l /root/.oh-my-zsh/themes |grep "^-"|wc -l
  • 个人比较推荐的是(排名有先后):
  • ys
  • agnoster
  • avit
  • blinks
  • 编辑配置文件:vim /root/.zshrc
  • 配置好新主题需要重新连接 shell 才能看到效果

zsh 效果如下:

img

3. 快捷键

  • 呃,这个其实可以不用讲的,你自己用的时候你自己会发现的,各种便捷,特别是用 Tab 多的人一定会有各种惊喜的。
  • 使用 ctrl-r 来搜索命令历史记录。按完此快捷键后,可以输入关键命令词语,如果历史记录有含有此词语会显示出来。
  • 命令别名: - 在命令行中输入 alias 可以查看已经有的命令别名 - 自己新增一些别名,编辑文件:vim \~/.zshrc,在文件加入下面格式的命令,比如以下是网友提供的一些思路:
alias cls='clear'
alias ll='ls -l'
alias la='ls -a'
alias grep="grep --color=auto"
alias -s html='vim'   # 在命令行直接输入后缀为 html 的文件名,会在 Vim 中打开
alias -s rb='vim'     # 在命令行直接输入 ruby 文件,会在 Vim 中打开
alias -s py='vim'      # 在命令行直接输入 python 文件,会用 vim 中打开,以下类似
alias -s js='vim'
alias -s c='vim'
alias -s java='vim'
alias -s txt='vim'
alias -s gz='tar -xzvf' # 在命令行直接输入后缀为 gz 的文件名,会自动解压打开
alias -s tgz='tar -xzvf'
alias -s zip='unzip'
alias -s bz2='tar -xjvf'

4. 参考资料

更多推荐

更多
  • Linux二进制-一、Linux 环境及其工具 Linux 工具,有用的设备和文件,与连接器相关的环境点,GDB,Objdump from GNU binutils,Objcopy from GNU binutils,strace,追踪,基本 ltrace 命令,ftrace,rea
    Apache CN

  • Linux二进制-零、前言 这本书的内容,你需要什么来写这本书,这本书是写给谁的,约定,读者反馈,客户支持,示例代码下载,勘误表,盗版,问题, 软件工程是创造一项在微处理器上存在、存在和呼吸的发明。 我们称之为程序。 逆向工程的行为发现这个项目如何生活和呼吸,而且
    Apache CN

  • Linux二进制-二、ELF 二进制格式 ELF 文件类型,ELF 程序头文件,ELF 节标题,精灵符号,ELF 重置,ELF 动态链接,编写 ELF 解析器,pt_load,PT_DYNAMICPhdr 为动态段,pt_note,pt_interp,PT_PHDR,文本部
    Apache CN

  • Linux二进制-五、Linux 二进制程序保护 ELF 二进制封隔器哑保护,存根机制和用户域执行,由保护根执行的其他工作,已有的 ELF 二进制保护,下载 maya 保护的二进制文件,反调试二进制保护,抗仿真,模糊处理方法,保护控制流的完整性,其他资源,保护器的一个例子,DacryF
    Apache CN

  • Linux二进制-九、Linux `/proc/kcore`分析 九、Linux /proc/kcore分析Linux 内核取证和 rootkit,普通 vmlinux 没有符号,/proc/kcore 和 GDB 探索,直接修改 sys_call_table,Kprobe rootkits,VFS
    Apache CN

  • Linux二进制-三、Linux 进程跟踪 ptrace 的重要性,进程寄存器状态和标志,一个简单的基于实践的调试器,一个简单的 ptrace 调试器,具有进程附加功能,高级功能跟踪软件,ptrace 和法医学分析,处理图像重建从内存到可执行文件,简单的例子并不总是那么微不足道,
    Apache CN

  • 四、ELF 病毒技术——Linux/Unix 病毒 ELF 病毒技术,ELF 病毒工程挑战,ELF 病毒寄生虫感染方法,PT_NOTE 到 PT_LOAD 转换感染方法,感染控制流程,ELF 防调试和包装技术,ELF 病毒检测及消毒,寄生代码必须是自包含的,字符串存储的复杂性,寻找存储寄
    Apache CN

  • Linux二进制-七、进程内存取证 流程是什么样子的?,进程内存感染,Linux ELF 核心文件,可执行内存映射,程序堆,共享库映射,堆栈、vdso 和 vsycall,进程感染工具,工艺感染技术,Azazel userland rootkit 检测,进程地址空间的映射
    Apache CN

  • Linux二进制-八、扩展核心文件快照技术 历史,ECFS 理念,ECFS 入门,libecfs 用于解析 ECFS 文件的库,readecfs,使用 ECFS 检查受感染的进程,ECFS 参考指南,使用 ECFS 处理巫术,了解更多有关 ECFS,将 ECFS 插入核心处理器,
    Apache CN

  • Linux二进制-六、Linux 中的 ELF 二进制取证 检测入口点修改的科学,检测其他形式的控制流劫持,寄生虫代码特征识别,识别反向文本填充感染,识别文本段填充感染,标识受保护的二进制文件,IDA Pro,正在修补。ctors/。 init_array 节,检测 PLT/GOT 挂钩,检测蹦
    Apache CN

  • 近期文章

    更多
    文章目录

      推荐作者

      更多