Linux命令行基础知识(有一些bash命令)
创建时间:2019-03-31

继续上篇我的博文:Linux基本命令行操作(一)
本片博文将介绍最近我见到并使用过的一些常用Linux命令,所以分类会略微有一些杂乱,且本片博文以网络相关的Linux命令为主。因为我使用命令大多数都是在GitBash上进行使用,所以会有一些bashshell的命令,在文章中会指出。

一:我个人最新用到过的Linux命令整理(2019-03-31整理)

  1. echo $PATH命令
    echo $PATH命令可以在bash上打印显示出当前PATH环境变量,每一个在PATH环境变量设置的地址与地址之间使用冒号" :" 分隔。
    其实Linux命令在执行时 即是自动根据PATH变量的值(地址)搜索该命令(可执行文件)的。
    可以使用which命令来查看。
    which命令的作用是在PATH环境变量指定的路径中,搜索到某个系统命令的为止,并返回第一个搜索结果。
    如:在GitBash上输入which pwd 返回结果为:/usr/bin/pwd 进入/usr/bin/目录下:cd /usr/bin 后 使用命令:ls 后 可以找到 pwd.exe 这个可执行文件。
    而 在GitBash 上能使用 pwd 这个命令的原因也是因为在环境变量PATH中 已经配置好了 /usr/bin 这样一个路径 使用 echo $PATH 显示所有PATH配置好的路径 在其中一定可以找到/usr/bin这样的一个路径。

  2. which命令
    which命令即是在PATH变量指定的路径中,搜索某个系统命令的为止,并返回第一个搜索结果。像在上文中使用过的:which pwd 一样使用即可。

  3. vim命令
    vim其实并非是一个命令,而是一种Linux和Unix中最基本的一种文本编辑器,被Linux开源社区的程序员们奉为一种极客精神的象征。本文仅仅涉及到关于vim编辑器最简单的使用。
    vim fileName
    使用命令:vim fileName 如果文件名已存在,那么将会直接打开该文件,按i键,进入编辑模式,在编辑模式的状态下,只能使用键盘进行操作。
    Esc键并敲入:wq 保存退出,如果不想保存直接退出,则按Esc键后敲入:q!。这样即不会对文档做任何保存动作。
    如果在使用命令:vim fileName 文件名不存在时,则需要看使用哪种方式来退出。如果编辑后保存退出,则会在当前目录下创建编辑保存好的文件,文件名即是你自己使用vim命令定义的fileName,如果选择不保存即强制退出,相应的 即使 编辑了内容也不会有创建文件和保存的动作。

  4. export PATH="yourDefinePath:$PATH" 非Linux命令
    这段代码并非是一个Linux命令,而是在GitBash 的配置文件.bashrc中 添加环境变量PATH的自定义路径的方法。
    GitBash的配置文件.bashrc在家目录下,上文刚刚介绍了vim命令 可以使用命令vim ~/.bashrc 对配置文件进行编辑 ,在环境变量PATH中添加这段代码export PATH="yourDefinePath:$PATH"那么,添加自己定义的目录路径有什么作用呢?如果你的目录下是一个可执行的程序,也就是一个脚本文件,那么,当你的脚本文件路径添加在了PATH中,在GitBash 下 输入执行这个脚本的命令+脚本文件名 就可完成执行该脚本的操作。具体的方法在我的博客:bash及node.js简单的脚本入门中。
    在编辑完毕后,按Esc键并敲入:wq 保存退出。
    这时候还需要执行一个命令即:source ~/.bashrc
    source命令是 bashshell 的命令,其作用为当修改某文件 并希望其立刻生效,而不用重新登陆。
    source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。source ~/.bashrc 可使修改后的配置文件.bashrc 立刻生效,如果不执行此命令则需要关闭GitBash 并重新打开才会生效。执行完上述操作后,使用命令echo $PATH 后 就可以看到自己定义的路径显示在了PATH所有的路径中。

  5. open命令
    open命令用于打开某一文件,在windows操作系统下对应的命令为:start

6.sh命令与Shebang
sh命令为执行脚本文件的命令,可以执行shell 脚本文件 也可以执行bash脚本。在执行sh命令之前首先要保证脚本有可执行权限 即:使用命令chmod +x fileName 这个命令需要在Linux系统下才能执行,windows系统无法使用此命令。
但是出现的问题是每次想要执行脚本时都需要sh命令+脚本文件名 (默认已配置了环境变量PATH)。使用Shebang即可简化操作,即输入脚本文件名即可实现脚本的执行 省去了每次都要键入命令sh的烦恼。
在脚本文件的开头添加一行代码#!/usr/bin/sh 这就是Shebang ,规定了该脚本是由 /usr/bin/sh这个命令(可执行文件)执行的,通过Shebang这个简单的设置,接下来就可以仅仅使用脚本文件名来执行脚本了。
node.js的Shebang 为:#!/usr/bin/env node

二:与网络相关的Linux命令

  1. pingnslookup
    ping命令与nslookup命令不仅在Linux系统下可使用,在windows系统下也可以使用该命令。这两个命令是非常重要的也是最常用的与网络相关的命令。本文只会对这两个命令做简单的用法介绍。
    1:nslookup 命令
    nslookup 命令用于检测网络中DNS服务器是否能正确实现域名解析的工具。
    用法为:nslookup DomainName
    如使用 nslookup www.baidu.com

    nslookup1.JPG

    第一个Address 代表的是 本地域名服务器的IP地址 ,本地域名服务器是由ISP给你分配的
    在下一行中可以看到 返回的是一个非权威应答 即说明本地DNS服务器有缓存www.baidu.com这个域名所对应的IP地址,并且返回了两个IP,这两个IP都是可以直接访问到百度的服务器地址。
    2:ping命令
    ping命令一般用于检测网络是否通畅 ,检验网络的状况及时延。ping向目标服务器(地址)发送一个请求的数据包,要求目标主机收到请求后给予答复,从而 判断网络的相应时间,以及本机是否与目标主机地址处于联通的状态。
    例如:
    ping www.baidu.com
    ping.JPG

    如上例所示 主机通过ping命令向百度发送了4次32个字节的数据 不仅可以看到 为我这台电脑提供百度服务的服务器的IP地址为14.215.177.39还可以看到四次ping数据结果中最短的发收时间为8ms 最长的发收时间为60ms,平均时延为33ms。通过ping命令不仅可以判断网络是否联通还可以通过时延来判断网络的好坏。
  2. curl命令
    curl命令是一个Linux命令行工具,能从服务器下载数据,也能往服务器上发送数据,并支持多种协议如:HTTP,HTTPS,FTP协议等等。curl命令十分强大在本文中仅介绍一些常用的简单的命令。
    1: curl url
    这个命令也是curl 最简单的命令,作用为获取页面内容 如:curl "https://www.baidu.com" 获取到的是百度的首页信息 以HTML的格式显示
    2: -s/--slient
    静音模式,减少输出的信息,比如进度
    3: -v/--verbose
    显示整个HTTP访问的过程。
    4: -G/--get
    以get的方式来发送数据(默认)
    5: -X/--request <command>
    指定发送的命令 curl 默认的HTTP动词为GET 使用 -X 参数可以支持其他动词,如POST
    6: -H/--header<header>
    指定请求头参数 需要以key:value的形式进行指定
    7: -d/--data<data>
    使用-d 可以发送带参数的请求默认方式为 post提交方式

关于curl命令更详细的介绍请参考我的简书文章:浅谈HTTP

  1. dig命令
    dig命令是Linux命令中常用的域名查询工具
    用法为dig DomainName
    我使用过的和dig有关的命令只有dig DomainName +trace 这条命令可以显示DNS分级查询的所有过程。具体的过程还是参考我的文章:浅谈HTTP