Mac终端技巧和Linux入门指南

    想必大家在工作当中会经常跟linux打交道,这篇文章从终端的工具开始,介绍了一套完整的也是比较基础的入门路线,有需要的同学可以了解一下。

    终端实用技巧

    俗话说得好:“工欲善其事,必先利其器”,一个好的终端可以让你事半功倍,工作效率提升自然不用说。因为笔者主要用mac办公,所以这部分内容主要针对mac用户,当然这是技巧在windows上面也是有样例的,可以搜索相关关键词自行了解学习。

    你需要一个更好的终端软件

    windows主要推荐实用CRT,mac主要推荐iTerm2。(如何安装就不赘述了)

    mac自带的终端办公也可以,只是功能相对比较单薄,iTerm算是mac下面主流的终端软件,虽然crt也有mac版本,不过破解起来非常费劲。

    让你的工具赏心悦目

    专业,让工作更高效

    前提你已经安装了iTerm2,这些配置的改动建议了解一些,尤其是经常会使用终端的同学,强烈推荐。

    • 字体
      等宽字体Consolas、monoco、sourcepro...各取所需

    • 配色
      黑白、黑绿这种高对比度的配色非常伤害眼睛
      主题很多,推荐一下solarized

    • 编码
      拒绝中文乱码,统一UTF-8

    最终看起来就会比较有辨识度,接下来介绍几个常用的工作技巧。

    技巧一:会话保存与tag使用

    你有没有遇到过这样的问题,比如:

    同样的机器每次都要登录,比如公司跳板机…
    机器太多记不住,都是数字特别容易混淆…
    已经登录过了,新开窗口还是要再登录…

    当然有办法啦,CRT其实已经自带了这个功能,iTerm实现也很轻松

    iTerm2的配置方法:

    1. 安装sshpass(安装方法自行百度) 2. 打开iterm2->Peferences->Profiles 3. 添加对应profile,比如新增标签paclous,登录命令为/usr/local/bin/sshpass -p 密码 ssh [email protected] 4. 在窗口选项中点击对应名字即可实现不输入密码登录

    技巧二:session会话克隆

    你可能还会遇到这样的问题,比如

    机器的登录密码是变动的,刚才那个技巧不管用了
    已经登录了某机器,新开窗口还得再次登录

    iTerm配置方法

    1. 编辑vim ~/.ssh/config 2. 增加如下配置     host *     ControlMaster auto     ControlPath ~/.ssh/master-%r@%h:%p

    再也不用为多开而苦恼

    其他技巧

    1. 选中即复制,滚轮是粘贴,当然ctrl+C(commond+C),ctrl+V(commond+V)也是可以的

    2. ctrl+a, ctrl+e回到行首行尾

    3. ctrl+r,搜索历史记录

    4. zsh了解一下

    Linux基础入门

    目录结构

    Mac终端技巧和Linux入门指南

    /bin:bin是Binary的缩写,这个目录存放着最经常使用的命令。

    /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

    /dev:dev是Device(设备)的缩写,外部设备

    /etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。

    /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

    /lib:这个目录里存放着系统最基本的动态连接共享库

    /mnt:文件、光驱挂载

    /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

    /root:该目录为系统管理员,也称作超级权限者的用户主目录。

    /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

    /srv:该目录存放一些服务启动之后需要提取的数据。/tmp这个目录是用来存放一些临时文件的。

    /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。

    /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

    最基础命令

    linux命令很多,每个命令支持的参数也很多,详细了解每个命令的用法可以man command或者command -h或者command --help自行学习,下面主要介绍一些常用的命令。


    '-h'和'--help'主要是shell风格的差异,功能是完全一样的,比如-r其实是等同于--regular的,不用太纠结这个

    cd路径切换

    ls显示文件或目录信息(ls –l = ll)

    mkdir当前目录下创建一个空目录,mkdir –p可用于级联创建

    rmdir删除目录,要求目录为空

    touch生成一个空文件

    cp复制文件,cp –r递归复制,复制文件夹是需要用到

    mv移动文件或目录、文件或目录改名

    rm删除文件或目录,rm –r删除目录,rm –f强制删除(不问是否),一定要慎用rm –rf易翻车!!!

    find查找文件,比如在当前目录下查到nginx.conf这个文件find ./ -name "nginx.conf"

    cat查看文本文件内容,文件较大时终端容易开始,使用more或者less代替

    more查看文件内容

    less查看文件内容,功能更强大

    tail查看文件内容,常用于日志文件的查看和检测

    head查看文件的头部

    echo把内容重定向到指定的文件中 ,有则打开,无则创建

    绝对路径与相对路径

    .或./表示当前目录, cd .或者cd ./表示当前目录

    ..或../表示上一级目录

    ~ 表示当前登录用户的主目录(等于echo $HOME

    通配符

    比较常用的通配符*,参考正则表达式

    几个常用场景

    1. 当前目录下显示文件名中带audit的文件ls –l “*audit*”

    2. 在系统中搜索一个包含123关键词的文件find / -name “*123*”

    中断与挂起

    ctrl+c是发送中断信号,ctrl+z是挂起任务或者服务,需要手动终止

    管道“|”

    用于连接多个命令,并将上一个命令的输出作为下一个命令的输入

    查找tomcat进程: ps aux | grep “tomcat”

    串行执行多个命令 && 或者 ;

    多个命令如何一起执行呢?答案是&&或者;

    cd /home/test && ls -al && echo "123" > test.txt cd /home/test ; ls -al ; echo "123" > test.txt; mkdir -p test/a/b && cd test/a/b && do something

    重定向

    >表示清空文件并写入

    >>表示向文件中追加写入内容

    创建一个空文件touch test.txt可以用echo "" > test.txt代替

    echo "" > access.log可用于清空文件内容

    echo "haha" >> access.log往access.log文件末尾追加内容

    grep、awk、sed文本处理三剑客

    grep文本过滤,经常配合管道、awk一起使用(大小写敏感)

    查找tomcat进程ps –ef|grep tomcat

    查找匹配关键词的文件行cat test.txt | grep keyword

    grep常见用法:

    grep ios正向过滤,过滤出包括ios关键词的行

    grep –v test反向过滤,过滤不包括test关键字的行

    grep “ios”|grep “android”|…过滤出同时包含ios和android的行

    grep “ios|android”包含ios或者android的行

    grep –E “正则”根据正则匹配目标行

    grep –r “关键字” .递归匹配,在当前目录下查找所有文件中能匹配到关键字的行

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

    命令格式:

    awk [-F field-separator] 'commands' input-file(s)

    awk默认以空格为切分符号,比如我们想拿到当前系统下nginx的master进程的pid,可以这么操作ps aux | grep nginx | grep master | awk '{print $2}'

    awk很强大,可自定义变量还可以使用更高级语法的来做更复杂的计算,比如计算总和,求平均值等

    sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作

    sed常用格式:sed [-nefri] ‘command’ 输入文本

    显示第一行到第二行sed -n '1,2p' ab

    显示第一行sed -n '5p' ab

    grep/awk/sed是linux下面文本处理三剑客,功能很强大,有兴趣的话自己深入学习一下吧。

    文件压缩与解压

    比较常见的两种格式:gz和zip

    压缩:tar –zcvf test.tar.gz ./test

    解压:tar -xf test.tar.gz

    压缩:zip test.zip ./test

    解压:unzip test.zip

    文件上传与下载

    1秒钟搞定服务器文件上传和下载,前提是iTerm和服务器都要支持rzsz才可以使用

    iTerm配置rzsz参考配置链接

    服务器安装lrzsz扩展:Yum –y install lrzsz

    上传:rz –e 单文件(只能是单文件,不能是文件夹)

    下载: sz + 文件名

    注意,上传文件不要太大,容易卡死


    定时任务crontab

    crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。

    基本格式:* * * * * command

    Cront –e编辑当前用户的crontab

    Crontab –l限时当前crontab列表

    */15 * * * * do something每小时内15/30/45/0时执行操作

    1,3,5 * * * * do something每小时内分钟为1,3,5时执行操作


    vim常用操作

    Vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。

    Vim提供了三种模式:普通模式、编辑模式、命令模式

    常用操作:
    打开文件: vim test.txt
    插入:i
    在当前行的下一行插入o
    在当前行的上一行插入O
    跳到文件开头gg
    跳到文件末尾G
    翻页:ctrl+F(下一页), ctrl+B(上一页)
    搜索:/关键字 (在搜索结果间跳转n N)
    替换:%s/原始字符串/目标字符串/g
    光标移动:hjkl 或者 方向键
    撤销u
    复制yy,粘贴p

    vim键盘图谱

    Mac终端技巧和Linux入门指南

    alias超级实用的别名

    alias命令用来设置指令的别名,我们可以使用该命令可以将一些较长的命令进行简化。

    操作方法:

    1. 编辑~/.bashrc文件

    2. alias 新的命令='原命令 -选项/参数'

    3. source ~/.bashrc

    要删除一个别名,可以使用 unalias 命令,如 unalias l

    举个实例,执行jmeter压测/root/goodstart/apache-jmeter-3.2/bin/jmeter.sh -n -t test.jmx命令很长,按照上面的操作方法我们可以使用alias优化一下alias jmeter="/root/goodstart/apache-jmeter-3.2/bin/jmeter.sh -n”,之后在系统中直接输入jmeter就等同于你输入了/root/goodstart/apache-jmeter-3.2/bin/jmeter.sh -n,非常实用哦。

    进程相关

    ps(process)

    常用过滤用户进程ps aux | grep tomcat

    • Cpu升序ps -aux --sort -pcpu | less

    • 内存升序ps -aux --sort -pmem | less

    端口占用lsof

    常用与查看某个端口占用情况,laof –i:8080

    top

    显示所有正在运行而且处于活动状态的实时进程, 而且会定期更新显示结果;它显示了CPU使用率,内存使用率,交换内存使用大小,调整缓存使用大小,缓冲区使用大小,进程PID, 使用的命令等信息。

    iostat

    查看存储设备输入和输出状态统计的工具,用来追踪存储设备的性能 问题;包括设备,磁盘,NFS远程磁盘

    iftop

    网络流量监控(需要自己安装)

    Mac终端技巧和Linux入门指南

    pmap

    pmap命令用于报告进程的内存映射关系,是Linux调试及运维一个很好的工具。pmap pid查看pid的内存占用情况


    avatar
    • 本文由 发表于 2018年6月26日
    匿名

    发表评论

    匿名网友 填写信息